package edu.berkeley.lipstick.testing; import edu.berkeley.lipstick.util.KeyDependency; import edu.berkeley.lipstick.util.KeyDependencySet; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; public class KeyDependencySetTest { /* @Test public void testPutGetDependency() throws Exception { KeyDependencySet kds = new KeyDependencySet(); kds.putDependency("foo", new KeyDependency("testWriter", 1, 2)); assertEquals("testWriter", kds.getDependency("foo").getWriter()); assertEquals(1, kds.getDependency("foo").getWriteNumber()); assertEquals(2, kds.getDependency("foo").getTimestamp()); assertEquals(1, kds.getKeys().size()); assertTrue(kds.getKeys().contains("foo")); kds.putDependency("foo", new KeyDependency("testWriter", 3, 4)); assertEquals("testWriter", kds.getDependency("foo").getWriter(), "testWriter"); assertEquals(3, kds.getDependency("foo").getWriteNumber()); assertEquals(4, kds.getDependency("foo").getTimestamp()); assertEquals(1, kds.getKeys().size()); assertTrue(kds.getKeys().contains("foo")); kds.putDependency("bar", new KeyDependency("testWriter2", 5, 6)); assertEquals("testWriter2", kds.getDependency("bar").getWriter()); assertEquals(5, kds.getDependency("bar").getWriteNumber()); assertEquals(6, kds.getDependency("bar").getTimestamp()); assertEquals(2, kds.getKeys().size()); assertTrue(kds.getKeys().contains("bar")); } @Test public void testIntersectSet() throws Exception { KeyDependencySet a = new KeyDependencySet(); a.putDependency("x", new KeyDependency("foo", 1, 0)); a.putDependency("y", new KeyDependency("foo", 2, 4)); KeyDependencySet b = new KeyDependencySet(); b.putDependency("x", new KeyDependency("foo", 1, 0)); b.putDependency("y", new KeyDependency("bar", 3, 8)); KeyDependencySet c = new KeyDependencySet(); c.putDependency("x", new KeyDependency("foo", 1, 0)); c.putDependency("y", new KeyDependency("foo", 3, 8)); a.intersectSet(b); assertEquals(4, a.getDependency("y").getTimestamp()); } @Test public void testMergeSet() throws Exception { KeyDependencySet kds1 = new KeyDependencySet(); KeyDependencySet kds2 = new KeyDependencySet(); kds1.putDependency("foo", new KeyDependency("testWriter", 1, 1)); kds2.putDependency("bar", new KeyDependency("testWriter", 1, 2)); kds1.mergeSet(kds2); assertEquals(1, kds2.getKeys().size()); assertTrue(kds2.getDependency("bar").match(new KeyDependency("testWriter", 1, 2))); assertEquals(2, kds1.getKeys().size()); assertTrue(kds1.getDependency("foo").match(new KeyDependency("testWriter", 1, 1))); assertTrue(kds1.getDependency("bar").match(new KeyDependency("testWriter", 1, 2))); //merging with a lower timestamp shouldn't affect kds1 kds2.putDependency("foo", new KeyDependency("testWriter", 4, 0)); kds1.mergeSet(kds2); assertEquals(2, kds1.getKeys().size()); assertTrue(kds1.getDependency("foo").match(new KeyDependency("testWriter", 1, 1))); assertTrue(kds1.getDependency("bar").match(new KeyDependency("testWriter", 1, 2))); //merging with a higher timestamp should affect kds1 kds2.putDependency("foo", new KeyDependency("testWriter2", 4, 100)); kds1.mergeSet(kds2); assertEquals(2, kds1.getKeys().size()); assertTrue(kds1.getDependency("foo").match(new KeyDependency("testWriter2", 4, 100))); assertTrue(kds1.getDependency("bar").match(new KeyDependency("testWriter", 1, 2))); } */ }