@Test @FeatureRequirementSet(FeatureRequirementSet.Package.VERTICES_ONLY) @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_MULTI_PROPERTIES) public void shouldOverwriteEarlierKeyValuesWithLaterKeyValuesOnAddVertexIfMultiProperty() { final Vertex v = graph.addVertex("test", "A", "test", "B", "test", "C"); tryCommit(graph, graph -> { assertEquals(3, IteratorUtils.count(v.properties("test"))); assertTrue(IteratorUtils.stream(v.values("test")).anyMatch(t -> t.equals("A"))); assertTrue(IteratorUtils.stream(v.values("test")).anyMatch(t -> t.equals("B"))); assertTrue(IteratorUtils.stream(v.values("test")).anyMatch(t -> t.equals("C"))); }); }
private static void vertexPropertyChecks(final Vertex v) { assertEquals(2, v.keys().size()); assertTrue(v.keys().contains(VertexProgramR.PROPERTY_IN)); assertTrue(v.keys().contains(VertexProgramR.PROPERTY_OUT)); assertEquals(1, IteratorUtils.count(v.values(VertexProgramR.PROPERTY_IN))); assertEquals(1, IteratorUtils.count(v.values(VertexProgramR.PROPERTY_OUT))); }
@Test @FeatureRequirementSet(FeatureRequirementSet.Package.VERTICES_ONLY) @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_MULTI_PROPERTIES, supported = false) public void shouldOverwriteEarlierKeyValuesWithLaterKeyValuesOnAddVertexIfNoMultiProperty() { final Vertex v = graph.addVertex("test", "A", "test", "B", "test", "C"); tryCommit(graph, graph -> { assertEquals(1, IteratorUtils.count(v.properties("test"))); assertTrue(IteratorUtils.stream(v.values("test")).anyMatch(t -> t.equals("C"))); }); }
@Test @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES) @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES) @FeatureRequirement(featureClass = VertexPropertyFeatures.class, feature = FEATURE_STRING_VALUES) @FeatureRequirement(featureClass = VertexPropertyFeatures.class, feature = FEATURE_INTEGER_VALUES) @FeatureRequirement(featureClass = VertexPropertyFeatures.class, feature = FEATURE_FLOAT_VALUES) @FeatureRequirement(featureClass = VertexPropertyFeatures.class, feature = FEATURE_BOOLEAN_VALUES) @FeatureRequirement(featureClass = VertexPropertyFeatures.class, feature = FEATURE_LONG_VALUES) @FeatureRequirement(featureClass = VertexPropertyFeatures.class, feature = FEATURE_DOUBLE_VALUES) @FeatureRequirement(featureClass = EdgePropertyFeatures.class, feature = EdgePropertyFeatures.FEATURE_FLOAT_VALUES) public void shouldReadGraphMLWithoutStrictOption() throws IOException { final GraphReader reader = GraphMLReader.build().strict(false).create(); try (final InputStream stream = IoTest.class.getResourceAsStream(TestHelper.convertPackageToResourcePath(GraphMLResourceAccess.class) + "graph-types-bad.xml")) { reader.readGraph(stream, graph); } final Vertex v = graph.vertices().next(); assertFalse(v.values("d").hasNext()); assertEquals("some-string", v.<String>value("s")); assertFalse(v.values("i").hasNext()); assertEquals(false, v.<Boolean>value("b")); assertFalse(v.values("f").hasNext()); assertFalse(v.values("l").hasNext()); assertEquals("junk", v.<String>value("n")); }
assertEquals("animal", vertex.label()); assertEquals(2, IteratorUtils.count(vertex.properties("name"))); List<String> names = IteratorUtils.asList(vertex.values("name")); assertEquals(2, names.size()); assertTrue(names.contains("an animal"));
@Test @LoadGraphWith(MODERN) @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES) @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_PROPERTY) @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_MULTI_PROPERTIES) public void g_addVXanimalX_propertyXname_mateoX_propertyXname_gateoX_propertyXname_cateoX_propertyXage_5X() { final Traversal<Vertex, Vertex> traversal = get_g_addVXanimalX_propertyXname_mateoX_propertyXname_gateoX_propertyXname_cateoX_propertyXage_5X(); printTraversalForm(traversal); final Vertex mateo = traversal.next(); assertFalse(traversal.hasNext()); assertEquals("animal", mateo.label()); assertEquals(3, IteratorUtils.count(mateo.properties("name"))); mateo.values("name").forEachRemaining(name -> { assertTrue(name.equals("mateo") || name.equals("cateo") || name.equals("gateo")); }); assertEquals(5, ((Integer) mateo.value("age")).intValue()); }
assertEquals(otherId, id); assertEquals("name", vertexProperty.key()); assertEquals(convertToVertex(graph, vertexProperty.value()).values("name").next(), vertexProperty.value()); assertEquals(convertToVertex(graph, vertexProperty.value()).value("name"), vertexProperty.value());
assertTrue(v.keys().contains("name")); assertTrue(v.keys().contains(PageRankVertexProgram.PAGE_RANK)); assertEquals(1, IteratorUtils.count(v.values("name"))); assertEquals(1, IteratorUtils.count(v.values(PageRankVertexProgram.PAGE_RANK))); final String name = v.value("name"); final Double pageRank = v.value(PageRankVertexProgram.PAGE_RANK);
assertTrue(v.keys().contains("name")); assertTrue(v.keys().contains(PageRankVertexProgram.PAGE_RANK)); assertEquals(1, IteratorUtils.count(v.values("name"))); assertEquals(1, IteratorUtils.count(v.values(PageRankVertexProgram.PAGE_RANK))); final String name = v.value("name"); final Double pageRank = v.value(PageRankVertexProgram.PAGE_RANK);
assertEquals(2, IteratorUtils.count(v.properties())); assertEquals(2, IteratorUtils.count(v.properties("name"))); final List<String> values = IteratorUtils.list(v.values("name")); assertTrue(values.contains("marko")); assertTrue(values.contains("marko a. rodriguez")); assertEquals(3, IteratorUtils.count(v.properties())); assertEquals(3, IteratorUtils.count(v.properties("name"))); final List<String> values = IteratorUtils.list(v.values("name")); assertTrue(values.contains("marko")); assertTrue(values.contains("marko a. rodriguez")); assertEquals(3, IteratorUtils.count(v.properties())); assertEquals(3, IteratorUtils.count(v.properties("name"))); final List<String> values = IteratorUtils.list(v.values("name")); assertTrue(values.contains("marko")); assertTrue(values.contains("marko a. rodriguez"));
@Override public void map(final Vertex vertex, final MapEmitter emitter) { assertFalse(vertex.property("v1").isPresent()); assertFalse(vertex.property("v2").isPresent()); assertTrue(vertex.property("v3").isPresent()); assertTrue(vertex.property("name").isPresent()); assertEquals(3, IteratorUtils.count(vertex.properties())); assertEquals(3, IteratorUtils.count(vertex.values())); }
assertEquals(3, IteratorUtils.count(v.properties())); assertEquals(3, IteratorUtils.count(v.properties("name"))); final List<String> values = IteratorUtils.list(v.values("name")); assertTrue(values.contains("marko")); assertTrue(values.contains("marko a. rodriguez")); assertEquals(3, IteratorUtils.count(v.properties())); assertEquals(3, IteratorUtils.count(v.properties("name"))); final List<String> values = IteratorUtils.list(v.values("name")); assertTrue(values.contains("marko")); assertTrue(values.contains("marko a. rodriguez"));
assertEquals(5, IteratorUtils.count(v.properties())); assertEquals(4, IteratorUtils.count(v.properties("name"))); final List<String> values = IteratorUtils.list(v.values("name")); assertThat(values, hasItem("marko a. rodriguez")); assertThat(values, hasItem("marko rodriguez"));
@Test @FeatureRequirementSet(FeatureRequirementSet.Package.VERTICES_ONLY) @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_MULTI_PROPERTIES) @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_DUPLICATE_MULTI_PROPERTIES) public void shouldAllowIdenticalValuedMultiProperties() { final Vertex v = graph.addVertex(); v.property(VertexProperty.Cardinality.list, "name", "stephen"); v.property(VertexProperty.Cardinality.list, "name", "stephen"); v.property(VertexProperty.Cardinality.list, "name", "steve"); v.property(VertexProperty.Cardinality.list, "name", "stephen"); v.property(VertexProperty.Cardinality.list, "color", "red"); tryCommit(graph, g -> { final Vertex vertex = graph.vertices(v).next(); assertEquals(4, IteratorUtils.count(vertex.properties("name"))); assertEquals(1, IteratorUtils.count(vertex.properties("color"))); assertEquals(5, IteratorUtils.count(vertex.properties())); assertThat(IteratorUtils.set(vertex.values("name")), contains("stephen", "steve")); }); } }
@Test @FeatureRequirementSet(FeatureRequirementSet.Package.VERTICES_ONLY) @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_MULTI_PROPERTIES) public void shouldOverwriteEarlierKeyValuesWithLaterKeyValuesOnAddVertexIfMultiProperty() { final Vertex v = graph.addVertex("test", "A", "test", "B", "test", "C"); tryCommit(graph, graph -> { assertEquals(3, IteratorUtils.count(v.properties("test"))); assertTrue(IteratorUtils.stream(v.values("test")).anyMatch(t -> t.equals("A"))); assertTrue(IteratorUtils.stream(v.values("test")).anyMatch(t -> t.equals("B"))); assertTrue(IteratorUtils.stream(v.values("test")).anyMatch(t -> t.equals("C"))); }); }
private static void vertexPropertyChecks(final Vertex v) { assertEquals(2, v.keys().size()); assertTrue(v.keys().contains(VertexProgramR.PROPERTY_IN)); assertTrue(v.keys().contains(VertexProgramR.PROPERTY_OUT)); assertEquals(1, IteratorUtils.count(v.values(VertexProgramR.PROPERTY_IN))); assertEquals(1, IteratorUtils.count(v.values(VertexProgramR.PROPERTY_OUT))); }
@Override public void map(final Vertex vertex, final MapEmitter emitter) { assertFalse(vertex.property("v1").isPresent()); assertFalse(vertex.property("v2").isPresent()); assertTrue(vertex.property("v3").isPresent()); assertTrue(vertex.property("name").isPresent()); assertEquals(3, IteratorUtils.count(vertex.properties())); assertEquals(3, IteratorUtils.count(vertex.values())); }