package tests; import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertFalse; import org.junit.Test; import models.algebra.Constant; import models.algebra.Symbol; import models.algebra.Term; import models.algebra.Variable; public class TermTest { @Test public void test() { Symbol add = new Symbol("add", 2); Symbol mul = new Symbol("mul", 2); Constant one = new Constant("1"); Constant two = new Constant("2"); Variable x = new Variable("x"); Variable y = new Variable("y"); Variable z = new Variable("z"); Term t1 = new Term(add); // add(1, x) t1.addChild(one); t1.addChild(x); Term t2 = new Term(mul); // mul(add(1, x), y) t2.addChild(t1); t2.addChild(y); Term t3 = new Term(add); // add(1, x) t3.addChild(one); t3.addChild(x); assertTrue(t1.contains(x)); assertFalse(t1.contains(y)); assertTrue(t2.contains(x)); assertTrue(t2.contains(y)); assertTrue(t2.contains(t1)); assertTrue(t2.contains(t3)); assertFalse(t2.contains(z)); assertFalse(t2.contains(two)); assertTrue(one.equals(one)); assertTrue(two.equals(two)); assertTrue(x.equals(x)); assertTrue(y.equals(y)); assertFalse(x.equals(y)); assertFalse(x.equals(one)); assertFalse(t1.equals(x)); System.out.println(t1); System.out.println(t2); } }