3434import static org .junit .Assert .assertEquals ;
3535import static org .junit .Assert .assertSame ;
3636
37+ import java .util .List ;
38+
3739import org .junit .Test ;
3840
3941/**
@@ -150,6 +152,72 @@ public void testInsertColumn() {
150152 checkTableModifiedColumn (table , values , 1 );
151153 }
152154
155+ @ Test
156+ public void testAppendColumns () {
157+ final ResultsTable table = createTable ();
158+ final Double [][] values = {
159+ { -0.25 , 0.5 , 0.625 , -1.25 , 0.0 , 0.0325 , 100.5 , 13.25 , 110.5 , -2.25 ,
160+ 4.625 , -3.0 , 100.0 , 1209.25 , -10.5 , 16.25 , -200.0 , -0.0325 ,
161+ 940385034958.5 , -301284390284.25 , 17.25 },
162+ { 0.5 , 0.5 , 0.25 , 1.25 , 0.0 , 0.625 , 100.5 , 13.25 , 11.5 , -112.25 , 4.625 ,
163+ -3.5 , 105.0 , 19.625 , -10.5 , 16.25 , 200.0325 , -0.0325 , 940385034958.5 ,
164+ -1.25 , 17.25 }
165+ };
166+
167+ final String [] headers = {"Header4" , "Header5" };
168+ final List <DoubleColumn > col = table .appendColumns (headers );
169+ col .get (0 ).fill (values [0 ]);
170+ col .get (1 ).fill (values [1 ]);
171+
172+ // Test appending a column
173+ assertEquals (table .getColumnCount (), 5 );
174+ assertEquals (table .get (3 ).getHeader (), "Header4" );
175+ assertEquals (table .get (4 ).getHeader (), "Header5" );
176+
177+ checkTableModifiedColumns (table , values , 3 , 4 );
178+ }
179+
180+ @ Test
181+ public void testRemoveColumns () {
182+ final ResultsTable table = createTable ();
183+
184+ final List <DoubleColumn > col = table .removeColumns (0 ,2 );
185+
186+ // Test removing a column
187+ for (int q = 0 ; q < col .size (); q ++) {
188+ for (int i = 0 ; i < col .get (0 ).size (); i ++) {
189+ assertEquals (col .get (q ).getValue (i ), DATA [i ][q ], 0 );
190+ }
191+ }
192+ assertEquals (table .getColumnCount (), 1 );
193+
194+ checkTableModifiedColumns (table , null , 0 , 2 );
195+ }
196+
197+ @ Test
198+ public void testInsertColumns () {
199+ final ResultsTable table = createTable ();
200+ final Double [][] values = {
201+ { -0.25 , 0.5 , 0.625 , -1.25 , 0.0 , 0.0325 , 100.5 , 13.25 , 110.5 , -2.25 ,
202+ 4.625 , -3.0 , 100.0 , 1209.25 , -10.5 , 16.25 , -200.0 , -0.0325 ,
203+ 940385034958.5 , -301284390284.25 , 17.25 },
204+ { 0.5 , 0.5 , 0.25 , 1.25 , 0.0 , 0.625 , 100.5 , 13.25 , 11.5 , -112.25 , 4.625 ,
205+ -3.5 , 105.0 , 19.625 , -10.5 , 16.25 , 200.0325 , -0.0325 , 940385034958.5 ,
206+ -1.25 , 17.25 }
207+ };
208+
209+ final String [] headers = {"Header4" , "Header5" };
210+ final List <DoubleColumn > col = table .insertColumns (1 , headers );
211+ col .get (0 ).fill (values [0 ]);
212+ col .get (1 ).fill (values [1 ]);
213+
214+ assertEquals (table .getColumnCount (), 5 );
215+ assertEquals (table .get (1 ).getHeader (), "Header4" );
216+ assertEquals (table .get (2 ).getHeader (), "Header5" );
217+
218+ checkTableModifiedColumns (table , values , 1 , 2 );
219+ }
220+
153221 @ Test
154222 public void testAppendRow () {
155223 final ResultsTable table = createTable ();
@@ -181,7 +249,7 @@ public void testRemoveRow() {
181249 }
182250
183251 @ Test
184- public void testRowInsert () {
252+ public void testInsertRow () {
185253 final ResultsTable table = createTable ();
186254 final double [] values = { 1999 , 42 , 0.0 };
187255
@@ -195,6 +263,61 @@ public void testRowInsert() {
195263 checkTableModifiedRow (table , values , 6 );
196264 }
197265
266+ @ Test
267+ public void testAppendRows () {
268+ final ResultsTable table = createTable ();
269+ final double [][] values = {
270+ { 1999 , 42 , 0.123 },
271+ { 2000 , 43 , 0.006 },
272+ { 2001 , 44 , 0.89 },
273+ { 2002 , 45 , 0.0 },
274+ };
275+
276+ // Test appending a row
277+ table .appendRows (4 );
278+ assertEquals (table .getRowCount (), 25 );
279+ for (int r = 0 ; r < values .length ; r ++) {
280+ for (int c = 0 ; c < values [0 ].length ; c ++) {
281+ table .setValue (c , r + 21 , values [r ][c ]);
282+ assertEquals (table .getValue (c , r + 21 ), values [r ][c ], 0 );
283+ }
284+ }
285+
286+ checkTableModifiedRows (table , values , 21 , 24 );
287+ }
288+
289+ @ Test
290+ public void testRemoveRows () {
291+ final ResultsTable table = createTable ();
292+ table .removeRows (11 , 6 );
293+ assertEquals (table .getRowCount (), 15 );
294+
295+ checkTableModifiedRows (table , null , 11 , 16 );
296+ }
297+
298+ @ Test
299+ public void testInsertRows () {
300+ final ResultsTable table = createTable ();
301+ final double [][] values = {
302+ { 1999 , 42 , 0.123 },
303+ { 2000 , 43 , 0.006 },
304+ { 2001 , 44 , 0.89 },
305+ { 2002 , 45 , 0.0 },
306+ };
307+
308+ table .insertRows (3 , 4 );
309+
310+ assertEquals (table .getRowCount (), 25 );
311+ for (int r = 0 ; r < values .length ; r ++) {
312+ for (int c = 0 ; c < values [0 ].length ; c ++) {
313+ table .setValue (c , r + 3 , values [r ][c ]);
314+ assertEquals (table .getValue (c , r + 3 ), values [r ][c ], 0 );
315+ }
316+ }
317+
318+ checkTableModifiedRows (table , values , 3 , 6 );
319+ }
320+
198321 //TODO - Add more tests.
199322
200323 // -- Helper methods --
@@ -258,4 +381,46 @@ else if ( r >= mod && values == null ) {
258381 }
259382 }
260383
384+ private void checkTableModifiedColumns (final ResultsTable table ,
385+ final Double [][] values , final int startMod , final int endMod )
386+ {
387+ for (int r = 0 ; r < table .getRowCount (); r ++) {
388+ for (int c = 0 ; c < table .getColumnCount (); c ++) {
389+ if ( c >= startMod && c <= endMod && values != null ) {
390+ assertEquals (table .getValue (c , r ), values [c - startMod ][r ], 0 );
391+ }
392+ else if ( c > endMod && values != null ) {
393+ assertEquals (table .getValue (c , r ), DATA [r ][c - values .length ], 0 );
394+ }
395+ else if ( c >= startMod && values == null ) {
396+ assertEquals (table .getValue (c , r ), DATA [r ][c + (endMod -startMod )], 0 );
397+ }
398+ else {
399+ assertEquals (table .getValue (c , r ), DATA [r ][c ], 0 );
400+ }
401+ }
402+ }
403+ }
404+
405+ private void checkTableModifiedRows (final ResultsTable table ,
406+ final double [][] values , final int startMod , final int endMod )
407+ {
408+ for (int r = 0 ; r < table .getRowCount (); r ++) {
409+ for (int c = 0 ; c < table .getColumnCount (); c ++) {
410+ if ( r >= startMod && r <= endMod && values != null ) {
411+ assertEquals (table .getValue (c , r ), values [r - startMod ][c ], 0 );
412+ }
413+ else if ( r > endMod && values != null ) {
414+ assertEquals (table .getValue (c , r ), DATA [r - values .length ][c ], 0 );
415+ }
416+ else if ( r >= startMod && values == null ) {
417+ assertEquals (table .getValue (c , r ), DATA [r + (endMod -startMod + 1 )][c ], 0 );
418+ }
419+ else {
420+ assertEquals (table .getValue (c , r ), DATA [r ][c ], 0 );
421+ }
422+ }
423+ }
424+ }
425+
261426}
0 commit comments