You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2015/04/09 22:08:24 UTC
[1/7] incubator-tinkerpop git commit: added ReferenceEdgeTest...
clean and consistent.
Repository: incubator-tinkerpop
Updated Branches:
refs/heads/TINKERPOP3-581 85e1a7145 -> 16d97e077
added ReferenceEdgeTest... clean and consistent.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/2e9d3464
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/2e9d3464
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/2e9d3464
Branch: refs/heads/TINKERPOP3-581
Commit: 2e9d3464409518560d7020d63acdc8cddc69ff32
Parents: e09e229
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Thu Apr 9 13:03:21 2015 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Thu Apr 9 13:03:21 2015 -0600
----------------------------------------------------------------------
.../structure/StructureStandardSuite.java | 6 +-
.../util/reference/ReferenceEdgeTest.java | 136 +++++++++++++++++++
.../util/reference/ReferenceVertexTest.java | 3 +-
.../structure/util/star/StarGraphTest.java | 31 ++++-
4 files changed, 171 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/2e9d3464/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/StructureStandardSuite.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/StructureStandardSuite.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/StructureStandardSuite.java
index 10645df..1b65447 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/StructureStandardSuite.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/StructureStandardSuite.java
@@ -25,6 +25,7 @@ import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedEdgeTest;
import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedPropertyTest;
import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertexPropertyTest;
import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertexTest;
+import org.apache.tinkerpop.gremlin.structure.util.reference.ReferenceEdgeTest;
import org.apache.tinkerpop.gremlin.structure.util.reference.ReferenceVertexTest;
import org.apache.tinkerpop.gremlin.structure.util.star.StarGraphTest;
import org.junit.runners.model.InitializationError;
@@ -46,6 +47,8 @@ import java.util.stream.Stream;
* "Suite" implements {@link org.apache.tinkerpop.gremlin.GraphProvider} as a convenience only. It could be implemented in a
* separate class file):
* <code>
+ *
+ * @author Stephen Mallette (http://stephen.genoprime.com)
* @RunWith(StructureStandardSuite.class)
* @StructureStandardSuite.GraphProviderClass(TinkerGraphStructureStandardTest.class) public class TinkerGraphStructureStandardTest implements GraphProvider {
* }
@@ -58,8 +61,6 @@ import java.util.stream.Stream;
* Set the {@code gremlin.structure.tests} environment variable to a comma separated list of test classes to execute.
* This setting can be helpful to restrict execution of tests to specific ones being focused on during development.
* <br/>
- *
- * @author Stephen Mallette (http://stephen.genoprime.com)
*/
public class StructureStandardSuite extends AbstractGremlinSuite {
@@ -79,6 +80,7 @@ public class StructureStandardSuite extends AbstractGremlinSuite {
VertexPropertyTest.class,
VariablesTest.class,
PropertyTest.class,
+ ReferenceEdgeTest.class,
ReferenceVertexTest.class,
SerializationTest.class,
StarGraphTest.class,
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/2e9d3464/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceEdgeTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceEdgeTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceEdgeTest.java
new file mode 100644
index 0000000..9857fa0
--- /dev/null
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceEdgeTest.java
@@ -0,0 +1,136 @@
+/*
+ *
+ * * Licensed to the Apache Software Foundation (ASF) under one
+ * * or more contributor license agreements. See the NOTICE file
+ * * distributed with this work for additional information
+ * * regarding copyright ownership. The ASF licenses this file
+ * * to you under the Apache License, Version 2.0 (the
+ * * "License"); you may not use this file except in compliance
+ * * with the License. You may obtain a copy of the License at
+ * *
+ * * http://www.apache.org/licenses/LICENSE-2.0
+ * *
+ * * Unless required by applicable law or agreed to in writing,
+ * * software distributed under the License is distributed on an
+ * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * * KIND, either express or implied. See the License for the
+ * * specific language governing permissions and limitations
+ * * under the License.
+ *
+ */
+
+package org.apache.tinkerpop.gremlin.structure.util.reference;
+
+import org.apache.tinkerpop.gremlin.AbstractGremlinTest;
+import org.apache.tinkerpop.gremlin.FeatureRequirement;
+import org.apache.tinkerpop.gremlin.FeatureRequirementSet;
+import org.apache.tinkerpop.gremlin.LoadGraphWith;
+import org.apache.tinkerpop.gremlin.structure.Direction;
+import org.apache.tinkerpop.gremlin.structure.Edge;
+import org.apache.tinkerpop.gremlin.structure.Graph;
+import org.apache.tinkerpop.gremlin.structure.Vertex;
+import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedFactory;
+import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+public class ReferenceEdgeTest extends AbstractGremlinTest {
+
+ @Test
+ @FeatureRequirementSet(FeatureRequirementSet.Package.SIMPLE)
+ public void shouldNotConstructNewWithSomethingAlreadyReferenced() {
+ final Vertex v = graph.addVertex();
+ final Edge e = v.addEdge("test", v);
+ final ReferenceEdge re = ReferenceFactory.detach(e);
+ assertSame(re, ReferenceFactory.detach(re));
+ }
+
+ @Test
+ @LoadGraphWith(LoadGraphWith.GraphData.MODERN)
+ @FeatureRequirementSet(FeatureRequirementSet.Package.SIMPLE)
+ @FeatureRequirement(featureClass = Graph.Features.EdgePropertyFeatures.class, feature = Graph.Features.EdgePropertyFeatures.FEATURE_DOUBLE_VALUES)
+ public void shouldConstructReferenceEdge() {
+ g.E(convertToEdgeId("marko", "knows", "vadas")).next().property("year", 2002);
+ final ReferenceEdge referenceEdge = ReferenceFactory.detach(g.E(convertToEdgeId("marko", "knows", "vadas")).next());
+ assertEquals(convertToEdgeId("marko", "knows", "vadas"), referenceEdge.id());
+ assertEquals(0, IteratorUtils.count(referenceEdge.properties()));
+ assertEquals(0, IteratorUtils.count(referenceEdge.vertices(Direction.BOTH)));
+ }
+
+ @Test
+ @LoadGraphWith(LoadGraphWith.GraphData.MODERN)
+ public void shouldEvaluateToEqual() {
+ assertTrue(ReferenceFactory.detach(g.E(convertToEdgeId("josh", "created", "lop")).next()).equals(ReferenceFactory.detach(g.E(convertToEdgeId("josh", "created", "lop")).next())));
+ assertTrue(ReferenceFactory.detach(g.E(convertToEdgeId("josh", "created", "lop")).next()).equals(g.E(convertToEdgeId("josh", "created", "lop")).next()));
+ assertTrue(ReferenceFactory.detach(g.E(convertToEdgeId("josh", "created", "lop")).next()).equals(DetachedFactory.detach(g.E(convertToEdgeId("josh", "created", "lop")).next(), true)));
+ //
+ assertTrue(ReferenceFactory.detach(g.E(convertToEdgeId("josh", "created", "lop")).next()).equals(ReferenceFactory.detach(g.E(convertToEdgeId("josh", "created", "lop")).next())));
+ assertTrue(g.E(convertToEdgeId("josh", "created", "lop")).next().equals(ReferenceFactory.detach(g.E(convertToEdgeId("josh", "created", "lop")).next())));
+ assertTrue(DetachedFactory.detach(g.E(convertToEdgeId("josh", "created", "lop")).next(), true).equals(ReferenceFactory.detach(g.E(convertToEdgeId("josh", "created", "lop")).next())));
+ }
+
+ @Test
+ @LoadGraphWith(LoadGraphWith.GraphData.MODERN)
+ public void shouldHaveSameHashCode() {
+ assertEquals(ReferenceFactory.detach(g.E(convertToEdgeId("josh", "created", "lop")).next()).hashCode(), ReferenceFactory.detach(g.E(convertToEdgeId("josh", "created", "lop")).next()).hashCode());
+ assertEquals(ReferenceFactory.detach(g.E(convertToEdgeId("josh", "created", "lop")).next()).hashCode(), g.E(convertToEdgeId("josh", "created", "lop")).next().hashCode());
+ assertEquals(ReferenceFactory.detach(g.E(convertToEdgeId("josh", "created", "lop")).next()).hashCode(), DetachedFactory.detach(g.E(convertToEdgeId("josh", "created", "lop")).next(), false).hashCode());
+ }
+
+ @Test
+ @LoadGraphWith(LoadGraphWith.GraphData.MODERN)
+ public void shouldAttachToGraph() {
+ final Edge toReference = g.E(convertToEdgeId("josh", "created", "lop")).next();
+ final ReferenceEdge referenceEdge = ReferenceFactory.detach(toReference);
+ final Edge referenced = referenceEdge.attach(graph);
+
+ assertEquals(toReference, referenced);
+ assertFalse(referenced instanceof ReferenceEdge);
+ }
+
+ @Test
+ @LoadGraphWith(LoadGraphWith.GraphData.MODERN)
+ public void shouldAttachToVertex() {
+ final Edge toReference = g.E(convertToEdgeId("josh", "created", "lop")).next();
+ final Vertex outV = toReference.vertices(Direction.OUT).next();
+ final ReferenceEdge detachedEdge = ReferenceFactory.detach(toReference);
+ final Edge attached = detachedEdge.attach(outV);
+
+ assertEquals(toReference, attached);
+ assertFalse(attached instanceof ReferenceEdge);
+ }
+
+ @Test
+ @LoadGraphWith(LoadGraphWith.GraphData.MODERN)
+ @FeatureRequirementSet(FeatureRequirementSet.Package.SIMPLE)
+ @FeatureRequirement(featureClass = Graph.Features.EdgePropertyFeatures.class, feature = Graph.Features.EdgePropertyFeatures.FEATURE_DOUBLE_VALUES)
+ public void shouldNotEvaluateToEqualDifferentId() {
+ final Object joshCreatedLopEdgeId = convertToEdgeId("josh", "created", "lop");
+ final Vertex vOut = g.V(convertToVertexId("josh")).next();
+ final Vertex vIn = g.V(convertToVertexId("lop")).next();
+ final Edge e = vOut.addEdge("created", vIn, "weight", 0.4d);
+ assertFalse(ReferenceFactory.detach(g.E(joshCreatedLopEdgeId).next()).equals(ReferenceFactory.detach(e)));
+ }
+
+ @Test(expected = IllegalStateException.class)
+ @FeatureRequirementSet(FeatureRequirementSet.Package.SIMPLE)
+ public void shouldNotAllowSetProperty() {
+ final Vertex v = graph.addVertex();
+ final Edge e = v.addEdge("test", v);
+ final ReferenceEdge re = ReferenceFactory.detach(e);
+ re.property("test", "test");
+ }
+
+ @Test(expected = IllegalStateException.class)
+ @FeatureRequirementSet(FeatureRequirementSet.Package.SIMPLE)
+ public void shouldNotAllowRemove() {
+ final Vertex v = graph.addVertex();
+ final Edge e = v.addEdge("test", v);
+ final ReferenceEdge re = ReferenceFactory.detach(e);
+ re.remove();
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/2e9d3464/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceVertexTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceVertexTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceVertexTest.java
index 5250c39..f621fa7 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceVertexTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceVertexTest.java
@@ -63,12 +63,13 @@ public class ReferenceVertexTest extends AbstractGremlinTest {
public void shouldEvaluateToEqualForVerticesAndDetachments() {
assertTrue(ReferenceFactory.detach(g.V(convertToVertexId("marko")).next()).equals(ReferenceFactory.detach(g.V(convertToVertexId("marko")).next())));
assertTrue(ReferenceFactory.detach(g.V(convertToVertexId("marko")).next()).equals(g.V(convertToVertexId("marko")).next()));
+ assertTrue(ReferenceFactory.detach(g.V(convertToVertexId("marko")).next()).equals(DetachedFactory.detach(g.V(convertToVertexId("marko")).next(), true)));
assertTrue(ReferenceFactory.detach(g.V(convertToVertexId("marko")).next()).equals(DetachedFactory.detach(g.V(convertToVertexId("marko")).next(), false)));
// reverse
assertTrue(ReferenceFactory.detach(g.V(convertToVertexId("marko")).next().equals(ReferenceFactory.detach(g.V(convertToVertexId("marko")).next()))));
assertTrue(g.V(convertToVertexId("marko")).next().equals(ReferenceFactory.detach(g.V(convertToVertexId("marko")).next())));
+ assertTrue(DetachedFactory.detach(g.V(convertToVertexId("marko")).next(), true).equals(ReferenceFactory.detach(g.V(convertToVertexId("marko")).next())));
assertTrue(DetachedFactory.detach(g.V(convertToVertexId("marko")).next(), false).equals(ReferenceFactory.detach(g.V(convertToVertexId("marko")).next())));
-
}
@Test
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/2e9d3464/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphTest.java
index d50d9ee..eedde68 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphTest.java
@@ -101,7 +101,7 @@ public class StarGraphTest extends AbstractGremlinTest {
final AtomicInteger originalPropertyCounter = new AtomicInteger(0);
final AtomicInteger starCounter = new AtomicInteger(0);
matthias.properties().forEachRemaining(vertexProperty -> {
- starCounter.incrementAndGet();
+ originalCounter.incrementAndGet();
matthiasStar.properties(vertexProperty.label()).forEachRemaining(starVertexProperty -> {
if (starVertexProperty.equals(vertexProperty)) {
assertEquals(starVertexProperty.id(), vertexProperty.id());
@@ -109,7 +109,7 @@ public class StarGraphTest extends AbstractGremlinTest {
assertEquals(starVertexProperty.value(), vertexProperty.value());
assertEquals(starVertexProperty.key(), vertexProperty.key());
assertEquals(starVertexProperty.element(), vertexProperty.element());
- originalCounter.incrementAndGet();
+ starCounter.incrementAndGet();
vertexProperty.properties().forEachRemaining(p -> {
originalPropertyCounter.incrementAndGet();
assertEquals(p.value(), starVertexProperty.property(p.key()).value());
@@ -122,5 +122,32 @@ public class StarGraphTest extends AbstractGremlinTest {
assertEquals(5, originalCounter.get());
assertEquals(5, starCounter.get());
assertEquals(7, originalPropertyCounter.get());
+
+ originalCounter.set(0);
+ starCounter.set(0);
+ originalPropertyCounter.set(0);
+
+ matthiasStar.properties().forEachRemaining(starVertexProperty -> {
+ starCounter.incrementAndGet();
+ matthias.properties(starVertexProperty.label()).forEachRemaining(vertexProperty -> {
+ if (starVertexProperty.equals(vertexProperty)) {
+ assertEquals(vertexProperty.id(), starVertexProperty.id());
+ assertEquals(vertexProperty.label(), starVertexProperty.label());
+ assertEquals(vertexProperty.value(), starVertexProperty.value());
+ assertEquals(vertexProperty.key(), starVertexProperty.key());
+ assertEquals(vertexProperty.element(), starVertexProperty.element());
+ originalCounter.incrementAndGet();
+ starVertexProperty.properties().forEachRemaining(p -> {
+ originalPropertyCounter.incrementAndGet();
+ assertEquals(p.value(), vertexProperty.property(p.key()).value());
+ assertEquals(p.key(), vertexProperty.property(p.key()).key());
+ assertEquals(p.element(), vertexProperty.property(p.key()).element());
+ });
+ }
+ });
+ });
+ assertEquals(5, originalCounter.get());
+ assertEquals(5, starCounter.get());
+ assertEquals(7, originalPropertyCounter.get());
}
}
[7/7] incubator-tinkerpop git commit: Add javadoc to the
TinkerGraph.DefaultIdManager.
Posted by sp...@apache.org.
Add javadoc to the TinkerGraph.DefaultIdManager.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/16d97e07
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/16d97e07
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/16d97e07
Branch: refs/heads/TINKERPOP3-581
Commit: 16d97e0772fbd9375fd9e2b1e54308e6158dd236
Parents: b86c466
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Apr 9 16:07:48 2015 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu Apr 9 16:07:48 2015 -0400
----------------------------------------------------------------------
.../tinkergraph/structure/TinkerGraph.java | 65 ++++++++------------
1 file changed, 24 insertions(+), 41 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/16d97e07/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraph.java
----------------------------------------------------------------------
diff --git a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraph.java b/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraph.java
index 31ff696..25b3a3e 100644
--- a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraph.java
+++ b/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraph.java
@@ -450,47 +450,6 @@ public class TinkerGraph implements Graph {
}
}
- ///////////// HELPERS METHODS ///////////////
-
- /**
- * Function to coerce a provided identifier to a different type given the expected id type of an element.
- * This allows something like {@code g.V(1,2,3)} and {@code g.V(1l,2l,3l)} to both mean the same thing.
- */
- private UnaryOperator<Object> convertToId(final Object id, final Class<?> elementIdClass) {
- if (id instanceof Number) {
- if (elementIdClass != null) {
- if (elementIdClass.equals(Long.class)) {
- return o -> ((Number) o).longValue();
- } else if (elementIdClass.equals(Integer.class)) {
- return o -> ((Number) o).intValue();
- } else if (elementIdClass.equals(Double.class)) {
- return o -> ((Number) o).doubleValue();
- } else if (elementIdClass.equals(Float.class)) {
- return o -> ((Number) o).floatValue();
- } else if (elementIdClass.equals(String.class)) {
- return o -> o.toString();
- }
- }
- } else if (id instanceof String) {
- if (elementIdClass != null) {
- final String s = (String) id;
- if (elementIdClass.equals(Long.class)) {
- return o -> Long.parseLong(s);
- } else if (elementIdClass.equals(Integer.class)) {
- return o -> Integer.parseInt(s);
- } else if (elementIdClass.equals(Double.class)) {
- return o -> Double.parseDouble(s);
- } else if (elementIdClass.equals(Float.class)) {
- return o -> Float.parseFloat(s);
- } else if (elementIdClass.equals(UUID.class)) {
- return o -> UUID.fromString(s);
- }
- }
- }
-
- return UnaryOperator.identity();
- }
-
/**
* TinkerGraph will use an implementation of this interface to generate identifiers when a user does not supply
* them and to handle identifier conversions when querying to provide better flexibility with respect to
@@ -512,7 +471,14 @@ public class TinkerGraph implements Graph {
T convert(final Object id);
}
+ /**
+ * A default set of {@link IdManager} implementations for common identifier types.
+ */
public enum DefaultIdManager implements IdManager {
+ /**
+ * Manages identifiers of type {@code Long}. Will convert any class that extends from {@link Number} to a
+ * {@link Long} and will also attempt to convert {@code String} values
+ */
LONG {
private long currentId = -1l;
@Override
@@ -530,6 +496,11 @@ public class TinkerGraph implements Graph {
throw new IllegalArgumentException("Expected an id that is convertible to Long");
}
},
+
+ /**
+ * Manages identifiers of type {@code Integer}. Will convert any class that extends from {@link Number} to a
+ * {@link Integer} and will also attempt to convert {@code String} values
+ */
INTEGER {
private int currentId = -1;
@Override
@@ -547,6 +518,11 @@ public class TinkerGraph implements Graph {
throw new IllegalArgumentException("Expected an id that is convertible to Integer");
}
},
+
+ /**
+ * Manages identifiers of type {@link java.util.UUID}. Will convert {@code String} values to
+ * {@link java.util.UUID}.
+ */
UUID {
@Override
public UUID getNextId(final TinkerGraph graph) {
@@ -563,6 +539,13 @@ public class TinkerGraph implements Graph {
throw new IllegalArgumentException("Expected an id that is convertible to UUID");
}
},
+
+ /**
+ * Manages identifiers of any type. This represents the default way {@link TinkerGraph} has always worked.
+ * In other words, there is no identifier conversion so if the identifier of a vertex is a {@code Long}, then
+ * trying to request it with an {@code Integer} will have no effect. Also, like the original
+ * {@link TinkerGraph}, it will generate {@link Long} values for identifiers.
+ */
ANY {
private long currentId = -1l;
@Override
[3/7] incubator-tinkerpop git commit: more testing around hashing and
equality.
Posted by sp...@apache.org.
more testing around hashing and equality.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/5575ab6e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/5575ab6e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/5575ab6e
Branch: refs/heads/TINKERPOP3-581
Commit: 5575ab6e9c45db7195a7da19d646f68952a960fe
Parents: ce33a05
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Thu Apr 9 13:25:51 2015 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Thu Apr 9 13:25:51 2015 -0600
----------------------------------------------------------------------
.../structure/util/detached/DetachedEdgeTest.java | 17 +++++++++++++++++
.../util/detached/DetachedVertexTest.java | 15 +++++++++++++++
.../util/reference/ReferenceEdgeTest.java | 16 ++++++++++++++++
.../util/reference/ReferenceVertexTest.java | 15 +++++++++++++++
.../structure/util/star/StarGraphTest.java | 18 ++++++++++++++++++
5 files changed, 81 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/5575ab6e/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedEdgeTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedEdgeTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedEdgeTest.java
index 12cba03..eaf62b1 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedEdgeTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedEdgeTest.java
@@ -26,13 +26,16 @@ import org.apache.tinkerpop.gremlin.structure.Direction;
import org.apache.tinkerpop.gremlin.structure.Edge;
import org.apache.tinkerpop.gremlin.structure.Graph;
import org.apache.tinkerpop.gremlin.structure.Vertex;
+import org.apache.tinkerpop.gremlin.structure.util.reference.ReferenceFactory;
import org.apache.tinkerpop.gremlin.util.StreamFactory;
import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
import org.javatuples.Pair;
import org.junit.Test;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Map;
+import java.util.Set;
import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData;
import static org.junit.Assert.*;
@@ -44,6 +47,20 @@ public class DetachedEdgeTest extends AbstractGremlinTest {
@Test
@FeatureRequirementSet(FeatureRequirementSet.Package.SIMPLE)
+ public void shouldHashAndEqualCorrectly() {
+ final Vertex v = graph.addVertex();
+ final Edge e = v.addEdge("test", v);
+ final Set<Edge> set = new HashSet<>();
+ for (int i = 0; i < 100; i++) {
+ set.add(DetachedFactory.detach(e,true));
+ set.add(DetachedFactory.detach(e,false));
+ set.add(e);
+ }
+ assertEquals(1, set.size());
+ }
+
+ @Test
+ @FeatureRequirementSet(FeatureRequirementSet.Package.SIMPLE)
public void shouldNotConstructNewWithSomethingAlreadyDetached() {
final Vertex v = graph.addVertex();
final Edge e = v.addEdge("test", v);
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/5575ab6e/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexTest.java
index 98fe1ac..46542f8 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexTest.java
@@ -31,8 +31,10 @@ import org.junit.Test;
import java.util.Arrays;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import static org.junit.Assert.*;
@@ -43,6 +45,19 @@ public class DetachedVertexTest extends AbstractGremlinTest {
@Test
@FeatureRequirementSet(FeatureRequirementSet.Package.VERTICES_ONLY)
+ public void shouldHashAndEqualCorrectly() {
+ final Vertex v = graph.addVertex();
+ final Set<Vertex> set = new HashSet<>();
+ for (int i = 0; i < 100; i++) {
+ set.add(DetachedFactory.detach(v, true));
+ set.add(DetachedFactory.detach(v, false));
+ set.add(v);
+ }
+ assertEquals(1, set.size());
+ }
+
+ @Test
+ @FeatureRequirementSet(FeatureRequirementSet.Package.VERTICES_ONLY)
public void shouldNotConstructNewWithSomethingAlreadyDetached() {
final Vertex v = graph.addVertex();
final DetachedVertex dv = DetachedFactory.detach(v, true);
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/5575ab6e/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceEdgeTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceEdgeTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceEdgeTest.java
index 9857fa0..616d26e 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceEdgeTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceEdgeTest.java
@@ -33,6 +33,9 @@ import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedFactory;
import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
import org.junit.Test;
+import java.util.HashSet;
+import java.util.Set;
+
import static org.junit.Assert.*;
/**
@@ -42,6 +45,19 @@ public class ReferenceEdgeTest extends AbstractGremlinTest {
@Test
@FeatureRequirementSet(FeatureRequirementSet.Package.SIMPLE)
+ public void shouldHashAndEqualCorrectly() {
+ final Vertex v = graph.addVertex();
+ final Edge e = v.addEdge("test", v);
+ final Set<Edge> set = new HashSet<>();
+ for (int i = 0; i < 100; i++) {
+ set.add(ReferenceFactory.detach(e));
+ set.add(e);
+ }
+ assertEquals(1, set.size());
+ }
+
+ @Test
+ @FeatureRequirementSet(FeatureRequirementSet.Package.SIMPLE)
public void shouldNotConstructNewWithSomethingAlreadyReferenced() {
final Vertex v = graph.addVertex();
final Edge e = v.addEdge("test", v);
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/5575ab6e/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceVertexTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceVertexTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceVertexTest.java
index f621fa7..575d151 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceVertexTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceVertexTest.java
@@ -32,6 +32,9 @@ import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedFactory;
import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
import org.junit.Test;
+import java.util.HashSet;
+import java.util.Set;
+
import static org.junit.Assert.*;
/**
@@ -41,6 +44,18 @@ public class ReferenceVertexTest extends AbstractGremlinTest {
@Test
@FeatureRequirementSet(FeatureRequirementSet.Package.VERTICES_ONLY)
+ public void shouldHashAndEqualCorrectly() {
+ final Vertex v = graph.addVertex();
+ final Set<Vertex> set = new HashSet<>();
+ for (int i = 0; i < 100; i++) {
+ set.add(ReferenceFactory.detach(v));
+ set.add(v);
+ }
+ assertEquals(1, set.size());
+ }
+
+ @Test
+ @FeatureRequirementSet(FeatureRequirementSet.Package.VERTICES_ONLY)
public void shouldNotConstructNewWithSomethingAlreadyDetached() {
final Vertex v = graph.addVertex();
final ReferenceVertex referenceVertex = ReferenceFactory.detach(v);
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/5575ab6e/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphTest.java
index eedde68..c9db32d 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/star/StarGraphTest.java
@@ -26,11 +26,14 @@ import org.apache.tinkerpop.gremlin.LoadGraphWith;
import org.apache.tinkerpop.gremlin.structure.Direction;
import org.apache.tinkerpop.gremlin.structure.Edge;
import org.apache.tinkerpop.gremlin.structure.Vertex;
+import org.apache.tinkerpop.gremlin.structure.util.reference.ReferenceFactory;
import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
import org.junit.Test;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import java.util.concurrent.atomic.AtomicInteger;
import static org.junit.Assert.assertEquals;
@@ -42,6 +45,21 @@ public class StarGraphTest extends AbstractGremlinTest {
@Test
@LoadGraphWith(LoadGraphWith.GraphData.CREW)
+ public void shouldHashAndEqualsCorrectly() {
+ final Vertex gremlin = g.V(convertToVertexId("gremlin")).next();
+ final StarGraph starGraph = StarGraph.of(gremlin);
+ final StarGraph.StarVertex gremlinStar = starGraph.getStarVertex();
+ final Set<Vertex> set = new HashSet<>();
+ for (int i = 0; i < 100; i++) {
+ set.add(gremlin);
+ set.add(gremlinStar);
+ }
+ assertEquals(1, set.size());
+ }
+
+
+ @Test
+ @LoadGraphWith(LoadGraphWith.GraphData.CREW)
public void originalAndStarVerticesShouldHaveTheSameTopology() {
final Vertex gremlin = g.V(convertToVertexId("gremlin")).next();
final StarGraph starGraph = StarGraph.of(gremlin);
[2/7] incubator-tinkerpop git commit: minor tweak to
TraverserExecutor.
Posted by sp...@apache.org.
minor tweak to TraverserExecutor.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/ce33a057
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/ce33a057
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/ce33a057
Branch: refs/heads/TINKERPOP3-581
Commit: ce33a057eb8623b909ac1c4da24bef4ddbb04f8a
Parents: 2e9d346
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Thu Apr 9 13:18:15 2015 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Thu Apr 9 13:18:15 2015 -0600
----------------------------------------------------------------------
.../gremlin/process/computer/traversal/TraverserExecutor.java | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/ce33a057/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraverserExecutor.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraverserExecutor.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraverserExecutor.java
index d927d74..79175b1 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraverserExecutor.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraverserExecutor.java
@@ -30,6 +30,7 @@ import org.apache.tinkerpop.gremlin.structure.Element;
import org.apache.tinkerpop.gremlin.structure.Property;
import org.apache.tinkerpop.gremlin.structure.Vertex;
import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedElement;
+import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedProperty;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -62,7 +63,9 @@ public final class TraverserExecutor {
if (traverser.get() instanceof Element || traverser.get() instanceof Property) { // GRAPH OBJECT
// if the element is remote, then message, else store it locally for re-processing
final Vertex hostingVertex = TraverserExecutor.getHostingVertex(traverser.get());
- if (!vertex.equals(hostingVertex) || traverser.get() instanceof DetachedElement) { // TODO: why is the DetachedElement instanceof needed?
+ if (!vertex.equals(hostingVertex)
+ || traverser.get() instanceof DetachedElement
+ || traverser.get() instanceof DetachedProperty) { // necessary for path access (but why are these not ReferenceXXX?)
voteToHalt.set(false);
traverser.detach();
messenger.sendMessage(MessageScope.Global.of(hostingVertex), new TraverserSet<>(traverser));
[4/7] incubator-tinkerpop git commit: Dropped an unused interface
method on the TinkerGraph.IdManager.
Posted by sp...@apache.org.
Dropped an unused interface method on the TinkerGraph.IdManager.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/ec8258e9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/ec8258e9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/ec8258e9
Branch: refs/heads/TINKERPOP3-581
Commit: ec8258e951cbc6a47b9b416e70cea6acc9d33c49
Parents: 85e1a71
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Apr 9 15:46:24 2015 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu Apr 9 15:46:24 2015 -0400
----------------------------------------------------------------------
.../tinkergraph/structure/TinkerGraph.java | 21 --------------------
1 file changed, 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/ec8258e9/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraph.java
----------------------------------------------------------------------
diff --git a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraph.java b/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraph.java
index 4acbf66..d310f94 100644
--- a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraph.java
+++ b/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraph.java
@@ -493,7 +493,6 @@ public class TinkerGraph implements Graph {
public interface IdManager<T> {
T getNextId(final TinkerGraph graph);
- Class<? extends T> getIdClass();
T convert(final Object o);
}
@@ -506,11 +505,6 @@ public class TinkerGraph implements Graph {
}
@Override
- public Class<? extends Long> getIdClass() {
- return Long.class;
- }
-
- @Override
public Object convert(final Object o) {
if (o instanceof Number)
return ((Number) o).longValue();
@@ -528,11 +522,6 @@ public class TinkerGraph implements Graph {
}
@Override
- public Class<? extends Integer> getIdClass() {
- return Integer.class;
- }
-
- @Override
public Object convert(final Object o) {
if (o instanceof Number)
return ((Number) o).intValue();
@@ -549,11 +538,6 @@ public class TinkerGraph implements Graph {
}
@Override
- public Class<? extends UUID> getIdClass() {
- return java.util.UUID.class;
- }
-
- @Override
public Object convert(final Object o) {
if (o instanceof java.util.UUID)
return o;
@@ -571,11 +555,6 @@ public class TinkerGraph implements Graph {
}
@Override
- public Class<? extends Object> getIdClass() {
- return Object.class;
- }
-
- @Override
public Object convert(final Object o) {
return o;
}
[5/7] incubator-tinkerpop git commit: Add some javadoc to the
TinkerGraph.IdManager interface.
Posted by sp...@apache.org.
Add some javadoc to the TinkerGraph.IdManager interface.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/0559f8f8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/0559f8f8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/0559f8f8
Branch: refs/heads/TINKERPOP3-581
Commit: 0559f8f877b6006adb44cc8b293326dfc6ac1c61
Parents: ec8258e
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Apr 9 15:53:56 2015 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu Apr 9 15:53:56 2015 -0400
----------------------------------------------------------------------
.../tinkergraph/structure/TinkerGraph.java | 52 +++++++++++++-------
1 file changed, 34 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/0559f8f8/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraph.java
----------------------------------------------------------------------
diff --git a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraph.java b/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraph.java
index d310f94..31ff696 100644
--- a/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraph.java
+++ b/tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraph.java
@@ -491,9 +491,25 @@ public class TinkerGraph implements Graph {
return UnaryOperator.identity();
}
+ /**
+ * TinkerGraph will use an implementation of this interface to generate identifiers when a user does not supply
+ * them and to handle identifier conversions when querying to provide better flexibility with respect to
+ * handling different data types that mean the same thing. For example, the
+ * {@link DefaultIdManager#LONG} implementation will allow {@code g.vertices(1l, 2l)} and
+ * {@code g.vertices(1, 2)} to both return values.
+ *
+ * @param <T> the id type
+ */
public interface IdManager<T> {
+ /**
+ * Generate an identifier which should be unique to the {@link TinkerGraph} instance.
+ */
T getNextId(final TinkerGraph graph);
- T convert(final Object o);
+
+ /**
+ * Convert an identifier to the type required by the manager.
+ */
+ T convert(final Object id);
}
public enum DefaultIdManager implements IdManager {
@@ -505,11 +521,11 @@ public class TinkerGraph implements Graph {
}
@Override
- public Object convert(final Object o) {
- if (o instanceof Number)
- return ((Number) o).longValue();
- else if (o instanceof String)
- return Long.parseLong((String) o);
+ public Object convert(final Object id) {
+ if (id instanceof Number)
+ return ((Number) id).longValue();
+ else if (id instanceof String)
+ return Long.parseLong((String) id);
else
throw new IllegalArgumentException("Expected an id that is convertible to Long");
}
@@ -522,11 +538,11 @@ public class TinkerGraph implements Graph {
}
@Override
- public Object convert(final Object o) {
- if (o instanceof Number)
- return ((Number) o).intValue();
- else if (o instanceof String)
- return Integer.parseInt((String) o);
+ public Object convert(final Object id) {
+ if (id instanceof Number)
+ return ((Number) id).intValue();
+ else if (id instanceof String)
+ return Integer.parseInt((String) id);
else
throw new IllegalArgumentException("Expected an id that is convertible to Integer");
}
@@ -538,11 +554,11 @@ public class TinkerGraph implements Graph {
}
@Override
- public Object convert(final Object o) {
- if (o instanceof java.util.UUID)
- return o;
- else if (o instanceof String)
- return java.util.UUID.fromString((String) o);
+ public Object convert(final Object id) {
+ if (id instanceof java.util.UUID)
+ return id;
+ else if (id instanceof String)
+ return java.util.UUID.fromString((String) id);
else
throw new IllegalArgumentException("Expected an id that is convertible to UUID");
}
@@ -555,8 +571,8 @@ public class TinkerGraph implements Graph {
}
@Override
- public Object convert(final Object o) {
- return o;
+ public Object convert(final Object id) {
+ return id;
}
}
}
[6/7] incubator-tinkerpop git commit: Merge remote-tracking branch
'origin/master' into TINKERPOP3-581
Posted by sp...@apache.org.
Merge remote-tracking branch 'origin/master' into TINKERPOP3-581
Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/b86c4664
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/b86c4664
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/b86c4664
Branch: refs/heads/TINKERPOP3-581
Commit: b86c46645055cb34faa61d72fa0d81db01679115
Parents: 0559f8f 5575ab6
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Apr 9 15:54:23 2015 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu Apr 9 15:54:23 2015 -0400
----------------------------------------------------------------------
.../computer/traversal/TraverserExecutor.java | 5 +-
.../structure/StructureStandardSuite.java | 6 +-
.../util/detached/DetachedEdgeTest.java | 17 +++
.../util/detached/DetachedVertexTest.java | 15 ++
.../util/reference/ReferenceEdgeTest.java | 152 +++++++++++++++++++
.../util/reference/ReferenceVertexTest.java | 18 ++-
.../structure/util/star/StarGraphTest.java | 49 +++++-
7 files changed, 256 insertions(+), 6 deletions(-)
----------------------------------------------------------------------