Coverage Summary for Class: TestBatchEdgeWithMultipleOutLabels (org.umlg.sqlg.test.batch)
Class |
Class, %
|
Method, %
|
Branch, %
|
Line, %
|
TestBatchEdgeWithMultipleOutLabels |
0%
(0/1)
|
0%
(0/7)
|
0%
(0/12)
|
0%
(0/72)
|
package org.umlg.sqlg.test.batch;
import org.apache.tinkerpop.gremlin.structure.T;
import org.apache.tinkerpop.gremlin.structure.Vertex;
import org.junit.Assume;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.umlg.sqlg.structure.SqlgGraph;
import org.umlg.sqlg.test.BaseTest;
import java.util.UUID;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
/**
* Date: 2016/08/09
* Time: 9:10 AM
*/
public class TestBatchEdgeWithMultipleOutLabels extends BaseTest {
@BeforeClass
public static void beforeClass() {
BaseTest.beforeClass();
if (isPostgres()) {
configuration.addProperty("distributed", true);
}
}
@Before
public void beforeTest() {
Assume.assumeTrue(this.sqlgGraph.getSqlDialect().supportsBatchMode());
}
@Test
public void testBatchModeEdgeMultipleOutLabels() throws InterruptedException {
sqlgGraph.tx().normalBatchModeOn();
for (int i = 0; i < 5; i++) {
Vertex a1 = this.sqlgGraph.addVertex(T.label, "A1");
Vertex a2 = this.sqlgGraph.addVertex(T.label, "A2");
Vertex b = this.sqlgGraph.addVertex(T.label, "B");
a1.addEdge("address", b);
a2.addEdge("address", b);
}
this.sqlgGraph.tx().commit();
assertEquals(5, this.sqlgGraph.traversal().V().hasLabel("A1").count().next().intValue());
assertEquals(5, this.sqlgGraph.traversal().V().hasLabel("A2").count().next().intValue());
assertEquals(5, this.sqlgGraph.traversal().V().hasLabel("A1").out("address").count().next().intValue());
assertEquals(5, this.sqlgGraph.traversal().V().hasLabel("A2").out("address").count().next().intValue());
sqlgGraph.tx().normalBatchModeOn();
for (int i = 0; i < 5; i++) {
Vertex a1 = this.sqlgGraph.addVertex(T.label, "A1");
Vertex a2 = this.sqlgGraph.addVertex(T.label, "A2");
Vertex b = this.sqlgGraph.addVertex(T.label, "B");
a1.addEdge("address", b);
a2.addEdge("address", b);
}
this.sqlgGraph.tx().commit();
testBatchModeEdgeMulitpleOutLabels_assert(this.sqlgGraph);
if (this.sqlgGraph1 != null) {
Thread.sleep(SLEEP_TIME);
testBatchModeEdgeMulitpleOutLabels_assert(this.sqlgGraph1);
}
}
private void testBatchModeEdgeMulitpleOutLabels_assert(SqlgGraph sqlgGraph) {
assertEquals(10, sqlgGraph.traversal().V().hasLabel("A1").count().next().intValue());
assertEquals(10, sqlgGraph.traversal().V().hasLabel("A2").count().next().intValue());
assertEquals(10, sqlgGraph.traversal().V().hasLabel("A1").out("address").count().next().intValue());
assertEquals(10, sqlgGraph.traversal().V().hasLabel("A2").out("address").count().next().intValue());
}
@Test
public void issue57() throws InterruptedException {
sqlgGraph.tx().normalBatchModeOn();
String key = "AbstractTinkerPopFhirGraph.Prop.ID";
int indexCount = 100;
for (int index = 0; index < indexCount; index++) {
Vertex v1 = sqlgGraph.addVertex(T.label, "Patient", key, index);
Vertex v2 = sqlgGraph.addVertex(T.label, "HumanNameDt", key, UUID.randomUUID().toString());
v1.addEdge("name", v2);
Vertex v3 = sqlgGraph.addVertex(T.label, "Condition", key, index);
Vertex v4 = sqlgGraph.addVertex(T.label, "CodeableConceptDt", key, UUID.randomUUID().toString());
Vertex v5 = sqlgGraph.addVertex(T.label, "CodingDt", key, UUID.randomUUID().toString());
v3.addEdge("code", v4);
v4.addEdge("coding", v5);
v3.addEdge("patient", v1);
Vertex v6 = sqlgGraph.addVertex(T.label, "CodeableConcept", key, UUID.randomUUID().toString());
v3.addEdge("category", v6);
Vertex v7 = sqlgGraph.addVertex(T.label, "CodingDt", key, UUID.randomUUID().toString());
v6.addEdge("coding", v7);
}
sqlgGraph.tx().commit();
testIssue57_assert(this.sqlgGraph, indexCount);
if (this.sqlgGraph1 != null) {
Thread.sleep(SLEEP_TIME);
testIssue57_assert(this.sqlgGraph1, indexCount);
}
}
private void testIssue57_assert(SqlgGraph sqlgGraph, int indexCount) {
assertEquals(indexCount, sqlgGraph.traversal().V().hasLabel("Patient").count().next().intValue());
assertEquals(indexCount, sqlgGraph.traversal().V().hasLabel("HumanNameDt").count().next().intValue());
assertEquals(indexCount, sqlgGraph.traversal().V().hasLabel("Patient").out("name").count().next().intValue());
sqlgGraph.traversal().V().hasLabel("Patient").out("name").forEachRemaining(v -> assertTrue(v.label().equals("HumanNameDt")));
assertEquals(indexCount, sqlgGraph.traversal().V().hasLabel("Condition").count().next().intValue());
assertEquals(indexCount, sqlgGraph.traversal().V().hasLabel("CodeableConceptDt").count().next().intValue());
assertEquals(indexCount * 2, sqlgGraph.traversal().V().hasLabel("CodingDt").count().next().intValue());
assertEquals(indexCount, sqlgGraph.traversal().V().hasLabel("Condition").out("code").count().next().intValue());
assertEquals(indexCount, sqlgGraph.traversal().V().hasLabel("CodeableConceptDt").out("coding").count().next().intValue());
sqlgGraph.traversal().V().hasLabel("Condition").out("code").forEachRemaining(v -> assertTrue(v.label().equals("CodeableConceptDt")));
sqlgGraph.traversal().V().hasLabel("Condition").out("coding").forEachRemaining(v -> assertTrue(v.label().equals("CodingDt")));
sqlgGraph.traversal().V().hasLabel("Condition").out("patient").forEachRemaining(v -> assertTrue(v.label().equals("Patient")));
assertEquals(indexCount, sqlgGraph.traversal().V().hasLabel("CodeableConcept").count().next().intValue());
assertEquals(indexCount, sqlgGraph.traversal().V().hasLabel("Condition").out("category").count().next().intValue());
sqlgGraph.traversal().V().hasLabel("Condition").out("category").forEachRemaining(v -> assertTrue(v.label().equals("CodeableConcept")));
assertEquals(indexCount, sqlgGraph.traversal().V().hasLabel("CodeableConcept").out("coding").count().next().intValue());
sqlgGraph.traversal().V().hasLabel("CodeableConcept").out("coding").forEachRemaining(v -> assertTrue(v.label().equals("CodingDt")));
}
}