package test.prefuse.data.expression;
import junit.framework.TestCase;
import prefuse.data.Table;
import prefuse.data.expression.IfExpression;
import prefuse.data.expression.Predicate;
import prefuse.data.expression.parser.ExpressionParser;
import prefuse.util.PredicateChain;
import test.prefuse.data.TableTest;
public class PredicateChainTest extends TestCase {
private PredicateChain m_chain;
private Table m_table;
private Predicate p1, p2, p3;
protected void setUp() throws Exception {
m_table = TableTest.getTestCaseTable();
p1 = (Predicate)ExpressionParser.parse("id=3");
p2 = (Predicate)ExpressionParser.parse("float<2");
p3 = (Predicate)ExpressionParser.parse("id>3");
m_chain = new PredicateChain();
m_chain.add(p1, new Integer(1));
m_chain.add(p2, new Integer(2));
m_chain.add(p3, new Integer(3));
}
protected void tearDown() throws Exception {
m_chain = null;
m_table = null;
p1 = null;
p2 = null;
p3 = null;
}
/*
* Test method for 'prefuse.util.PredicateChain.get(Tuple)'
*/
public void testGet() {
assertEquals(new Integer(1), m_chain.get(m_table.getTuple(2)));
assertEquals(new Integer(2), m_chain.get(m_table.getTuple(0)));
assertEquals(new Integer(3), m_chain.get(m_table.getTuple(3)));
assertEquals(null, m_chain.get(m_table.getTuple(1)));
}
/*
* Test method for 'prefuse.util.PredicateChain.add(Predicate, Object)'
*/
public void testAdd() {
Predicate p = (Predicate)ExpressionParser.parse("id=2");
m_chain.add(p, new Integer(4));
assertEquals(new Integer(4), m_chain.get(m_table.getTuple(1)));
}
/*
* Test method for 'prefuse.util.PredicateChain.remove(Predicate)'
*/
public void testRemove() {
assertTrue(m_chain.getExpression() instanceof IfExpression);
assertTrue(m_chain.remove(p1));
assertEquals(new Integer(2), m_chain.get(m_table.getTuple(2)));
assertTrue(m_chain.getExpression() instanceof IfExpression);
assertTrue(m_chain.remove(p2));
assertEquals(null, m_chain.get(m_table.getTuple(0)));
assertEquals(null, m_chain.get(m_table.getTuple(1)));
assertEquals(null, m_chain.get(m_table.getTuple(2)));
assertTrue(m_chain.getExpression() instanceof IfExpression);
assertTrue(m_chain.remove(p3));
assertEquals(null, m_chain.get(m_table.getTuple(3)));
assertFalse(m_chain.getExpression() instanceof IfExpression);
assertFalse(m_chain.remove(p1));
assertFalse(m_chain.remove(p2));
assertFalse(m_chain.remove(p3));
}
/*
* Test method for 'prefuse.util.PredicateChain.clear()'
*/
public void testClear() {
assertTrue(m_chain.getExpression() instanceof IfExpression);
m_chain.clear();
assertEquals(null, m_chain.get(m_table.getTuple(0)));
assertEquals(null, m_chain.get(m_table.getTuple(1)));
assertEquals(null, m_chain.get(m_table.getTuple(2)));
assertEquals(null, m_chain.get(m_table.getTuple(3)));
assertFalse(m_chain.getExpression() instanceof IfExpression);
assertFalse(m_chain.remove(p1));
assertFalse(m_chain.remove(p2));
assertFalse(m_chain.remove(p3));
}
public void testRemove2() {
PredicateChain pc = new PredicateChain();
Predicate p1 = (Predicate) ExpressionParser.parse("_fixed");
Predicate p2 = (Predicate) ExpressionParser.parse("_highlight");
pc.add(p1, new Integer(1));
pc.add(p2, new Integer(2));
assertTrue(pc.remove(p2));
}
}