package test.prefuse.visual; import java.util.Iterator; import junit.framework.TestCase; import prefuse.Visualization; import prefuse.visual.AggregateTable; import prefuse.visual.VisualItem; import prefuse.visual.VisualTable; import test.prefuse.data.TableTest; public class VisualAggregateTableTest extends TestCase { private AggregateTable m_agg; private VisualTable m_items; protected void setUp() throws Exception { Visualization v = new Visualization(); m_items = v.addTable("items", TableTest.getTestCaseTable()); m_agg = v.addAggregates("aggregates", VisualItem.SCHEMA); m_agg.addRow(); m_agg.addRow(); Iterator iter = m_items.tuples(); for ( int i=0, count=m_items.getRowCount(); iter.hasNext(); ++i ) { VisualItem item = (VisualItem)iter.next(); int j = i<count/2 ? 0 : 1; m_agg.addToAggregate(j, item); } } protected void tearDown() throws Exception { m_items = null; m_agg = null; } /* * Test method for 'prefuse.data.tuple.AggregateTable.getAggregateSize(int)' */ public void testGetAggregateSize() { int cc = m_items.getRowCount(); int s1 = cc/2, s2 = cc-s1; assertEquals(s1, m_agg.getAggregateSize(0)); assertEquals(s2, m_agg.getAggregateSize(1)); } /* * Test method for 'prefuse.data.tuple.AggregateTable.addToAggregate(int, Tuple)' */ public void testAddToAggregate() { VisualItem t = m_items.getItem(0); int size = m_agg.getAggregateSize(1); assertFalse(m_agg.aggregateContains(1, t)); m_agg.addToAggregate(1, t); assertTrue(m_agg.aggregateContains(1, t)); assertEquals(size+1, m_agg.getAggregateSize(1)); } /* * Test method for 'prefuse.data.tuple.AggregateTable.removeFromAggregate(int, Tuple)' */ public void testRemoveFromAggregate() { int s = m_agg.getAggregateSize(0); assertTrue(m_agg.aggregateContains(0, m_items.getItem(0))); m_agg.removeFromAggregate(0, m_items.getItem(0)); assertFalse(m_agg.aggregateContains(0, m_items.getItem(0))); assertEquals(--s, m_agg.getAggregateSize(0)); assertTrue(m_agg.aggregateContains(0, m_items.getItem(1))); m_agg.removeFromAggregate(0, m_items.getItem(1)); assertFalse(m_agg.aggregateContains(0, m_items.getItem(1))); assertEquals(--s, m_agg.getAggregateSize(0)); } public void testRemoveFromAggregateUnderIteration() { int s = m_agg.getAggregateSize(0); Iterator iter = m_agg.aggregatedTuples(0); while ( iter.hasNext() ) { VisualItem t = (VisualItem)iter.next(); assertTrue(m_agg.aggregateContains(0, t)); m_agg.removeFromAggregate(0, t); assertEquals(--s, m_agg.getAggregateSize(0)); assertFalse(m_agg.aggregateContains(0, t)); } } /* * Test method for 'prefuse.data.tuple.AggregateTable.removeAllFromAggregate(int)' */ public void testRemoveAllFromAggregate() { m_agg.removeAllFromAggregate(0); m_agg.removeAllFromAggregate(1); assertEquals(0, m_agg.getAggregateSize(0)); assertEquals(0, m_agg.getAggregateSize(1)); } /* * Test method for 'prefuse.data.tuple.AggregateTable.aggregateContains(int, Tuple)' */ public void testAggregateContains() { VisualItem vi0 = m_items.getItem(0); VisualItem vi1 = m_items.getItem(m_items.getRowCount()-1); assertTrue(m_agg.aggregateContains(0, vi0)); assertTrue(m_agg.aggregateContains(1, vi1)); } /* * Test method for 'prefuse.data.tuple.AggregateTable.aggregatedTuples(int)' */ public void testAggregatedTuples() { int s = m_agg.getAggregateSize(0); Iterator iter = m_agg.aggregatedTuples(0); int count = 0; for ( ; iter.hasNext(); ++count ) { VisualItem t = (VisualItem)iter.next(); assertTrue(m_agg.aggregateContains(0, t)); } assertEquals(s, count); } /* * Test method for 'prefuse.data.tuple.AggregateTable.getAggregates(Tuple)' */ public void testGetAggregates() { for ( int i=0; i<2; ++i ) { Iterator iter = m_agg.aggregatedTuples(0); while ( iter.hasNext() ) { VisualItem t = (VisualItem)iter.next(); Iterator aggr = m_agg.getAggregates(t); assertEquals(m_agg.getTuple(0), aggr.next()); } } } }