From 39cdf05787f32531cd5e74dc8908ef813b30e7ec Mon Sep 17 00:00:00 2001 From: Xiao Ling Date: Mon, 10 Nov 2014 15:33:17 -0800 Subject: [PATCH 1/2] creates a separate test code directory and adds a few test cases --- src/HEXGraphTest.java | 69 ---------------------- test/HEXGraphTest.java | 130 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 130 insertions(+), 69 deletions(-) delete mode 100644 src/HEXGraphTest.java create mode 100644 test/HEXGraphTest.java diff --git a/src/HEXGraphTest.java b/src/HEXGraphTest.java deleted file mode 100644 index c26e77d..0000000 --- a/src/HEXGraphTest.java +++ /dev/null @@ -1,69 +0,0 @@ - -import static org.junit.Assert.*; - -import java.io.IOException; - -import org.junit.BeforeClass; -import org.junit.Test; - -/** - * @author dgorrie - * - * Testing class for our HEXGraphImplementation - */ -public class HEXGraphTest { - private static HEXGraph graph; - private static final String[] testNames = {"PERSON", "MOUNTAIN", "ANIMAL"}; - private static final String[] exclusions = {"CAT, DOG", "ANIMAL, LAKE", "LAKE, MOUNTAIN"}; - private static final String[] subsets = {"ARTIST, POLITICIAN", "", "PUPPY, PERSON, KITTEN, ARTIST, CAT, POLITICIAN, DOG"}; - private static final String[] supersets = {"ANIMAL", "", ""}; - - - @BeforeClass - public static void setup() throws IOException, IllegalStateException { - HEXGraphFactory factory = new HEXGraphFactory(); - String filepath = "/Users/dgorrie/Documents/workspace/hexgraph/src/sample.hxg"; - factory.buildHEXGraph(filepath); - graph = factory.getLiteralGraph(filepath); - } - - @Test - public void testExclusions() { - for (int i = 0; i < testNames.length; i++) { - // System.out.println(graph.getExcluded(testNames[i]).toString()); - assertEquals(graph.getExcluded(testNames[i]).toString(), "[" + exclusions[i] + "]"); - } - } - - @Test - public void testHierarchySubset() { - for (int i = 0; i < testNames.length; i++) { - // System.out.println(graph.getHierarchySubset(testNames[i]).toString()); - assertEquals(graph.getHierarchySubset(testNames[i]).toString(), "[" + subsets[i] + "]"); - } - } - - @Test - public void testHierarchySuperset() { - for (int i = 0; i < testNames.length; i++) { - // System.out.println(graph.getHierarchySuperset(testNames[i]).toString()); - assertEquals(graph.getHierarchySuperset(testNames[i]).toString(), "[" + supersets[i] + "]"); - } - } - - @Test - public void testCreation() { - HEXGraph graph = new HEXGraph(); - graph.addNode("Person"); - graph.addNode("Dog"); - graph.addNode("Actor"); - graph.addNode("Politician"); - graph.addExclusion("Person", "Dog"); - graph.addHierarchy("Person", "Actor"); - graph.addHierarchy("Person", "Politician"); - assertEquals(4, graph.getNodes().size()); - } - - - -} diff --git a/test/HEXGraphTest.java b/test/HEXGraphTest.java new file mode 100644 index 0000000..d579374 --- /dev/null +++ b/test/HEXGraphTest.java @@ -0,0 +1,130 @@ + +import static org.junit.Assert.*; + +import java.io.IOException; + +import org.junit.BeforeClass; +import org.junit.Test; + +/** + * @author dgorrie + *

+ * Testing class for our HEXGraphImplementation + */ +public class HEXGraphTest { + private static HEXGraph graph; + private static final String[] testNames = {"PERSON", "MOUNTAIN", "ANIMAL"}; + private static final String[] exclusions = {"CAT, DOG", "ANIMAL, LAKE", "LAKE, MOUNTAIN"}; + private static final String[] subsets = {"ARTIST, POLITICIAN", "", "PUPPY, PERSON, KITTEN, ARTIST, CAT, POLITICIAN, DOG"}; + private static final String[] supersets = {"ANIMAL", "", ""}; + + + @BeforeClass + public static void setup() throws IOException, IllegalStateException { + HEXGraphFactory factory = new HEXGraphFactory(); + String filepath = "src/sample.hxg"; + factory.buildHEXGraph(filepath); + graph = factory.getLiteralGraph(filepath); + } + + @Test + public void testExclusions() { + for (int i = 0; i < testNames.length; i++) { + // System.out.println(graph.getExcluded(testNames[i]).toString()); + assertEquals(graph.getExcluded(testNames[i]).toString(), "[" + exclusions[i] + "]"); + } + } + + @Test + public void testHierarchySubset() { + for (int i = 0; i < testNames.length; i++) { + // System.out.println(graph.getHierarchySubset(testNames[i]).toString()); + assertEquals(graph.getHierarchySubset(testNames[i]).toString(), "[" + subsets[i] + "]"); + } + } + + @Test + public void testHierarchySuperset() { + for (int i = 0; i < testNames.length; i++) { + // System.out.println(graph.getHierarchySuperset(testNames[i]).toString()); + assertEquals(graph.getHierarchySuperset(testNames[i]).toString(), "[" + supersets[i] + "]"); + } + } + + private HEXGraph createSimpleGraph() { + HEXGraph graph = new HEXGraph(); + graph.addNode("Person"); + graph.addNode("Dog"); + graph.addNode("Actor"); + graph.addNode("Politician"); + graph.addExclusion("Person", "Dog"); + graph.addHierarchy("Person", "Actor"); + graph.addHierarchy("Person", "Politician"); + return graph; + } + + @Test + public void testCreation() { + HEXGraph graph = createSimpleGraph(); + assertEquals(4, graph.getNodes().size()); + assertEquals(HEXGraph.Relationship.EXCLUSION, graph.getRelationship("Dog", "Person")); + assertEquals(HEXGraph.Relationship.EXCLUSION, graph.getRelationship("Person", "Dog")); + assertEquals(HEXGraph.Relationship.HIERARCHY_SUPER, graph.getRelationship("Actor", "Person")); + assertEquals(HEXGraph.Relationship.HIERARCHY_SUPER, graph.getRelationship("Politician", "Person")); + assertEquals(HEXGraph.Relationship.HIERARCHY_SUB, graph.getRelationship("Person", "Actor")); + assertEquals(HEXGraph.Relationship.HIERARCHY_SUB, graph.getRelationship("Person", "Politician")); + assertEquals(HEXGraph.Relationship.OVERLAPPING, graph.getRelationship("Actor", "Politician")); + assertEquals(HEXGraph.Relationship.OVERLAPPING, graph.getRelationship("Politician", "Actor")); + } + + + @Test + public void testDensify() { + HEXGraph graph = createSimpleGraph(); + graph.densify(); + assertEquals(HEXGraph.Relationship.EXCLUSION, graph.getRelationship("Dog", "Actor")); + assertEquals(HEXGraph.Relationship.EXCLUSION, graph.getRelationship("Dog", "Person")); + assertEquals(HEXGraph.Relationship.EXCLUSION, graph.getRelationship("Dog", "Politician")); + assertEquals(HEXGraph.Relationship.EXCLUSION, graph.getRelationship("Actor", "Dog")); + assertEquals(HEXGraph.Relationship.EXCLUSION, graph.getRelationship("Person", "Dog")); + assertEquals(HEXGraph.Relationship.EXCLUSION, graph.getRelationship("Politician", "Dog")); + assertEquals(HEXGraph.Relationship.HIERARCHY_SUPER, graph.getRelationship("Actor", "Person")); + assertEquals(HEXGraph.Relationship.HIERARCHY_SUPER, graph.getRelationship("Politician", "Person")); + assertEquals(HEXGraph.Relationship.HIERARCHY_SUB, graph.getRelationship("Person", "Actor")); + assertEquals(HEXGraph.Relationship.HIERARCHY_SUB, graph.getRelationship("Person", "Politician")); + assertEquals(HEXGraph.Relationship.OVERLAPPING, graph.getRelationship("Actor", "Politician")); + assertEquals(HEXGraph.Relationship.OVERLAPPING, graph.getRelationship("Politician", "Actor")); + } + + @Test + public void testSparisfy() { + HEXGraph graph = createSimpleGraph(); + graph.sparsify(); + // graph stays the same + assertEquals(HEXGraph.Relationship.EXCLUSION, graph.getRelationship("Dog", "Person")); + assertEquals(HEXGraph.Relationship.EXCLUSION, graph.getRelationship("Person", "Dog")); + assertEquals(HEXGraph.Relationship.HIERARCHY_SUPER, graph.getRelationship("Actor", "Person")); + assertEquals(HEXGraph.Relationship.HIERARCHY_SUPER, graph.getRelationship("Politician", "Person")); + assertEquals(HEXGraph.Relationship.HIERARCHY_SUB, graph.getRelationship("Person", "Actor")); + assertEquals(HEXGraph.Relationship.HIERARCHY_SUB, graph.getRelationship("Person", "Politician")); + assertEquals(HEXGraph.Relationship.OVERLAPPING, graph.getRelationship("Actor", "Politician")); + assertEquals(HEXGraph.Relationship.OVERLAPPING, graph.getRelationship("Politician", "Actor")); + } + + @Test + public void testSparisfyAfterDensify() { + HEXGraph graph = createSimpleGraph(); + graph.densify(); + graph.sparsify(); + // graph stays the same + assertEquals(HEXGraph.Relationship.EXCLUSION, graph.getRelationship("Dog", "Person")); + assertEquals(HEXGraph.Relationship.EXCLUSION, graph.getRelationship("Person", "Dog")); + assertEquals(HEXGraph.Relationship.HIERARCHY_SUPER, graph.getRelationship("Actor", "Person")); + assertEquals(HEXGraph.Relationship.HIERARCHY_SUPER, graph.getRelationship("Politician", "Person")); + assertEquals(HEXGraph.Relationship.HIERARCHY_SUB, graph.getRelationship("Person", "Actor")); + assertEquals(HEXGraph.Relationship.HIERARCHY_SUB, graph.getRelationship("Person", "Politician")); + assertEquals(HEXGraph.Relationship.OVERLAPPING, graph.getRelationship("Actor", "Politician")); + assertEquals(HEXGraph.Relationship.OVERLAPPING, graph.getRelationship("Politician", "Actor")); + } + +} From 00116b389089e846c40079c70f2a48a660f65b3e Mon Sep 17 00:00:00 2001 From: Xiao Ling Date: Sun, 16 Nov 2014 21:34:00 -0800 Subject: [PATCH 2/2] a test case for listStateSpace --- test/HEXGraphTest.java | 37 ++++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/test/HEXGraphTest.java b/test/HEXGraphTest.java index 88c9a28..e4a0b7e 100644 --- a/test/HEXGraphTest.java +++ b/test/HEXGraphTest.java @@ -23,7 +23,7 @@ public class HEXGraphTest { @BeforeClass public static void setup() throws IOException, IllegalStateException { HEXGraphFactory factory = new HEXGraphFactory(); - String directory = "/Users/dgorrie/Documents/workspace/hexgraph/src/"; + String directory = "src/"; String sample = directory + "sample.hxg"; String unconnected = directory + "no_connections.hxg"; factory.buildHEXGraph(sample); @@ -55,6 +55,12 @@ public void testHierarchySuperset() { } } + @Test + public void testListStateSpace() { + Set> configs = mHexGraphMethods.ListStateSpace(); + assertEquals(1024, configs.size()); + } + private HEXGraph createSimpleGraph() { HEXGraph graph = new HEXGraph(); graph.addNode("Person"); @@ -132,19 +138,24 @@ public void testSparisfyAfterDensify() { } @Test - public void testListStateSpace() { - Set> configs = mHexGraphMethods.ListStateSpace(); - assertEquals(1024, configs.size()); - } - - @Test - public void testListStateSpace() { + public void testListStateSpace2() { System.out.println("testing list state space"); - HEXGraph graph = createSimpleGraph(); - HEXGraphMethods method = new HEXGraphMethods(graph); - Configuration conf = method.ListStateSpace(); -System.out.println("printing"); - System.out.println(conf.toString()); + HEXGraph graph = createSimpleGraph(); + HEXGraphMethods method = new HEXGraphMethods(graph); + Set> confs = method.ListStateSpace(); + System.out.println("printing"); + for (Configuration conf : confs) { + System.out.println(conf.toString()); + } + // 6 configurations + // Politician, Actor, Dog, Person + // 0 0 0 0 + // 0 0 1 0 + // 0 0 0 1 + // 0 1 0 1 + // 1 0 0 1 + // 1 1 0 1 + assertEquals(6, confs.size()); } }