KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > test > prefuse > data > column > ExpressionColumnTest


1 package test.prefuse.data.column;
2
3 import junit.framework.TestCase;
4 import prefuse.data.Table;
5 import prefuse.data.expression.ArithmeticExpression;
6 import prefuse.data.expression.ColumnExpression;
7 import prefuse.data.expression.Expression;
8 import prefuse.data.expression.NumericLiteral;
9 import prefuse.data.io.DelimitedTextTableWriter;
10 import prefuse.data.util.TableIterator;
11 import test.prefuse.TestConfig;
12 import test.prefuse.data.TableTest;
13 import test.prefuse.data.TableTestData;
14
15 public class ExpressionColumnTest extends TestCase implements TableTestData {
16
17     Table t;
18     
19     protected void setUp() throws Exception JavaDoc {
20         super.setUp();
21         t = TableTest.getTestCaseTable();
22     }
23
24     protected void tearDown() throws Exception JavaDoc {
25         super.tearDown();
26         t = null;
27     }
28     
29     public void testDerivedColumn() {
30         String JavaDoc AVG = "average";
31         
32         Expression fc = new ColumnExpression(HEADERS[3]);
33         Expression dc = new ColumnExpression(HEADERS[4]);
34         Expression l2 = new NumericLiteral(2);
35         
36         Expression add = new ArithmeticExpression(
37                 ArithmeticExpression.ADD, fc, dc);
38         Expression avg = new ArithmeticExpression(
39                 ArithmeticExpression.DIV, add, l2);
40         
41         t.addColumn(AVG, avg);
42         
43         TableIterator it = t.iterator();
44         while ( it.hasNext() ) {
45             it.nextInt();
46             float f = it.getFloat(HEADERS[3]);
47             double d = it.getDouble(HEADERS[4]);
48             double av = (f+d)/2;
49             assertTrue(av == it.getDouble(AVG));
50         }
51         
52         int r = t.addRow();
53         assertTrue(t.getDouble(r, AVG) == 0.0);
54         
55         t.setFloat(r, HEADERS[3], 2.0f);
56         assertTrue(t.getDouble(r, AVG) == 1.0);
57         
58         t.setDouble(r, HEADERS[4], 3.0f);
59         assertTrue(t.getDouble(r, AVG) == 2.5);
60                 
61         if ( TestConfig.verbose() ) {
62             try {
63                 new DelimitedTextTableWriter().writeTable(t, System.out);
64             } catch ( Exception JavaDoc e ) { e.printStackTrace(); }
65         }
66         
67         t.removeColumn(AVG);
68         t.setDouble(0, HEADERS[4], 0);
69         System.gc();
70         t.setDouble(0, HEADERS[4], 0);
71         
72         if ( TestConfig.verbose() ) {
73             try {
74                 new DelimitedTextTableWriter().writeTable(t, System.out);
75             } catch ( Exception JavaDoc e ) { e.printStackTrace(); }
76         }
77     }
78
79 }
80
Popular Tags