package test.prefuse.data;
import junit.framework.TestCase;
import prefuse.Visualization;
import prefuse.data.Table;
import prefuse.data.Tuple;
import prefuse.data.expression.AbstractPredicate;
import prefuse.data.expression.Predicate;
import prefuse.data.io.DelimitedTextTableWriter;
import prefuse.data.util.TableIterator;
import prefuse.visual.VisualTable;
import test.prefuse.TestConfig;
public class VisualItemTableTest extends TestCase implements TableTestData {
Table t;
/**
* @see junit.framework.TestCase#setUp()
*/
protected void setUp() throws Exception {
super.setUp();
t = TableTest.getTestCaseTable();
}
/**
* @see junit.framework.TestCase#tearDown()
*/
protected void tearDown() throws Exception {
super.tearDown();
t = null;
}
/*
* Test method for 'edu.berkeley.guir.prefuse.data.VisualItemTable.VisualItemTable(Table, RowFilter)'
*/
public void testVisualItemTableTableRowFilter() {
final float thresh = 5.0f;
Predicate p = new AbstractPredicate() {
public boolean getBoolean(Tuple t) {
return t.getFloat(HEADERS[3]) < thresh;
}
};
Visualization vis = new Visualization();
VisualTable vt = new VisualTable(t, vis, "data", p);
for ( int i=0, r=0; i<NROWS; ++i ) {
float val = ((Float)TABLE[3][i]).floatValue();
if ( val < thresh ) {
try {
for ( int c=0; c<NCOLS; ++c ) {
Object o1 = TABLE[c][i];
Object o2 = vt.get(r, HEADERS[c]);
assertEquals(o1, o2);
}
++r;
} catch ( Exception e ) {
fail("Caught exception: "+e);
}
}
}
// add an extra column to the filtered table
String name = "test";
vt.addColumn(name, double.class, new Double(Math.PI));
TableIterator iter = vt.iterator();
while ( iter.hasNext() ) {
int row = iter.nextInt();
iter.setDouble(name, Math.E);
assertTrue(Math.E == vt.getDouble(row, name));
}
int nr = t.addRow();
t.setFloat(nr, HEADERS[3], 0.5f);
if ( TestConfig.verbose() ) {
try {
new DelimitedTextTableWriter().writeTable(vt, System.out);
} catch ( Exception e ) { e.printStackTrace(); }
}
}
}