package aima.test.core.unit.util; import java.util.HashSet; import java.util.Set; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import aima.core.util.SetOps; /** * @author Ravi Mohan * */ public class SetOpsTest { Set<Integer> s1, s2; @Before public void setUp() { s1 = new HashSet<Integer>(); s1.add(new Integer(1)); s1.add(new Integer(2)); s1.add(new Integer(3)); s1.add(new Integer(4)); s2 = new HashSet<Integer>(); s2.add(new Integer(4)); s2.add(new Integer(5)); s2.add(new Integer(6)); } @Test public void testUnion() { Set<Integer> union = SetOps.union(s1, s2); Assert.assertEquals(6, union.size()); Assert.assertEquals(4, s1.size()); Assert.assertEquals(3, s2.size()); s1.remove(new Integer(1)); Assert.assertEquals(6, union.size()); Assert.assertEquals(3, s1.size()); Assert.assertEquals(3, s2.size()); } @Test public void testIntersection() { Set<Integer> intersection = SetOps.intersection(s1, s2); Assert.assertEquals(1, intersection.size()); Assert.assertEquals(4, s1.size()); Assert.assertEquals(3, s2.size()); s1.remove(new Integer(1)); Assert.assertEquals(1, intersection.size()); Assert.assertEquals(3, s1.size()); Assert.assertEquals(3, s2.size()); } @Test public void testDifference() { Set<Integer> difference = SetOps.difference(s1, s2); Assert.assertEquals(3, difference.size()); Assert.assertTrue(difference.contains(new Integer(1))); Assert.assertTrue(difference.contains(new Integer(2))); Assert.assertTrue(difference.contains(new Integer(3))); } @Test public void testDifference2() { Set<Integer> one = new HashSet<Integer>(); Set<Integer> two = new HashSet<Integer>(); one.add(new Integer(1)); two.add(new Integer(1)); Set<Integer> difference = SetOps.difference(one, two); Assert.assertTrue(difference.isEmpty()); } }