Skip to content

Commit 6280b4e

Browse files
awalter17imagejan
authored andcommitted
Add tests for removing/adding rows/columns to ResultsTable
1 parent 3a0fed8 commit 6280b4e

File tree

1 file changed

+166
-1
lines changed

1 file changed

+166
-1
lines changed

src/test/java/net/imagej/table/DefaultResultsTableTest.java

Lines changed: 166 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434
import static org.junit.Assert.assertEquals;
3535
import static org.junit.Assert.assertSame;
3636

37+
import java.util.List;
38+
3739
import 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

Comments
 (0)