@Test public void testLimitWithMixedIndexCoverage() { final String vt = "vt"; final String fn = "firstname"; final String user = "user"; final String alice = "alice"; final String bob = "bob"; PropertyKey vtk = makeVertexIndexedKey(vt, String.class); PropertyKey fnk = makeKey(fn, String.class); finishSchema(); JanusGraphVertex a = tx.addVertex(vt, user, fn, "alice"); JanusGraphVertex b = tx.addVertex(vt, user, fn, "bob"); JanusGraphVertex v; v = Iterables.getOnlyElement(tx.query().has(vt, user).has(fn, bob).limit(1).vertices()); assertEquals(bob, v.value(fn)); assertEquals(user, v.value(vt)); v = Iterables.getOnlyElement(tx.query().has(vt, user).has(fn, alice).limit(1).vertices()); assertEquals(alice, v.value(fn)); assertEquals(user, v.value(vt)); tx.commit(); tx = graph.newTransaction(); v = Iterables.getOnlyElement(tx.query().has(vt, user).has(fn, bob).limit(1).vertices()); assertEquals(bob, v.value(fn)); assertEquals(user, v.value(vt)); v = Iterables.getOnlyElement(tx.query().has(vt, user).has(fn, alice).limit(1).vertices()); assertEquals(alice, v.value(fn)); assertEquals(user, v.value(vt)); }
assertEquals(fixedName, getVertex(tx,"uid", randomUniqueId).value("name")); tx.commit(); });
assertNotNull(v); boolean postCommit = postcommit[pos].get(); final Integer value = v.value(prop); lookups.incrementAndGet(); assertNotNull("On pos [" + pos + "]", value);
@Override public void process(JanusGraphVertex vertex, ScanMetrics metrics) { metrics.incrementCustom(VERTEX_COUNT); assertEquals(1 ,vertex.query().labels("numvals").propertyCount()); int numvals = vertex.value("numvals"); assertEquals(numvals, vertex.query().labels("values").propertyCount()); }
@Test public void testVertexTTLImplicitKey() throws Exception { Duration d; if (!features.hasCellTTL()) { return; } clopen(option(GraphDatabaseConfiguration.STORE_META_TTL, "edgestore"), true); int ttl1 = 1; VertexLabel label1 = mgmt.makeVertexLabel("event").setStatic().make(); mgmt.setTTL(label1, Duration.ofSeconds(ttl1)); assertEquals(Duration.ofSeconds(ttl1), mgmt.getTTL(label1)); mgmt.commit(); JanusGraphVertex v1 = tx.addVertex("event"); JanusGraphVertex v2 = tx.addVertex(); tx.commit(); /* TODO: this fails d = v1.getProperty("~ttl"); assertEquals(1, d); d = v2.getProperty("~ttl"); assertEquals(0, d); */ Object v1id = v1.id(); Object v2id = v2.id(); v1 = getV(graph, v1id); v2 = getV(graph, v2id); d = v1.value("~ttl"); assertEquals(Duration.ofSeconds(1), d); d = v2.value("~ttl"); assertEquals(Duration.ZERO, d); }
@Test public void degreeCounting() throws Exception { int numV = 200; int numE = generateRandomGraph(numV); clopen(); final JanusGraphComputer computer = graph.compute(); computer.resultMode(JanusGraphComputer.ResultMode.NONE); computer.workers(4); computer.program(new DegreeCounter()); computer.mapReduce(new DegreeMapper()); ComputerResult result = computer.submit().get(); System.out.println("Execution time (ms) ["+numV+"|"+numE+"]: " + result.memory().getRuntime()); assertTrue(result.memory().exists(DegreeMapper.DEGREE_RESULT)); Map<Long,Integer> degrees = result.memory().get(DegreeMapper.DEGREE_RESULT); assertNotNull(degrees); assertEquals(numV,degrees.size()); int totalCount = 0; for (Map.Entry<Long,Integer> entry : degrees.entrySet()) { int degree = entry.getValue(); final JanusGraphVertex v = getV(tx, entry.getKey()); int count = v.value("uid"); assertEquals(count,degree); totalCount+= degree; } assertEquals(numV*(numV+1)/2,totalCount); assertEquals(1,result.memory().getIteration()); }
assertTrue(v.<Boolean>value("boolval")); assertEquals(10, v.<SpecialInt>value("num").getValue()); assertEquals(c, v.value("birthday")); assertEquals(4, v.<byte[]>value("barr").length); assertEquals(point, v.<Geoshape>value("location")); assertEquals(shape, v.<Geoshape>value("boundary")); assertEquals(10.12345, v.<Double>value("precise"), 0.000001); assertCount(3, v.properties("any")); for (Object prop : v.query().labels("any").properties()) { assertTrue(v.<Boolean>value("boolval")); assertEquals(10, v.<SpecialInt>value("num").getValue()); assertEquals(c, v.value("birthday")); assertEquals(4, v.<byte[]>value("barr").length); assertEquals(point, v.<Geoshape>value("location")); assertEquals(shape, v.<Geoshape>value("boundary")); assertEquals(10.12345, v.<Double>value("precise"), 0.000001); assertCount(3, v.properties("any")); for (Object prop : v.query().labels("any").properties()) {
public static void assertGraphOfTheGods(JanusGraph graphOfTheGods) { assertCount(12, graphOfTheGods.query().vertices()); assertCount(3, graphOfTheGods.query().has(LABEL_NAME, "god").vertices()); final JanusGraphVertex h = getOnlyVertex(graphOfTheGods.query().has("name", "hercules")); assertEquals(30, h.<Integer>value("age").intValue()); assertEquals("demigod", h.label()); assertCount(5, h.query().direction(Direction.BOTH).edges()); graphOfTheGods.tx().commit(); }
long degree2 = ((Integer)v.value(DegreeCounter.DEGREE)).longValue(); long actualDegree2 = 0; for (Object w : v.query().direction(Direction.OUT).vertices()) {
private void processTx(JanusGraphTransaction tx, int transactionId, long vid, long uid) { JanusGraphVertex v = getV(tx,vid); JanusGraphVertex u = getV(tx,uid); assertEquals(5.0, v.<Double>value("weight"),0.00001); VertexProperty p = getOnlyElement(v.properties("weight")); assertEquals(1,p.<Integer>value("sig").intValue());
assertEquals(25, e2.<Integer>value("time").intValue()); assertEquals(35, v1.<Integer>value("age").intValue()); assertEquals(55, v3.<Integer>value("age").intValue()); v3.property("age", 65); assertEquals(65, v3.<Integer>value("age").intValue()); e1 = getE(graph, e1); assertEquals(5, e1.<Integer>value("time").intValue()); assertEquals(35, v1.<Integer>value("age").intValue()); assertEquals(65, v3.<Integer>value("age").intValue());
assertTrue("Invalid distance: " + dist,dist >= 0 && dist < Integer.MAX_VALUE); JanusGraphVertex v = getV(tx, kv.getKey()); assertEquals(v.<Integer>value("distance").intValue(), dist); vertexCount++;
assertEquals(6.0, v.<Double>value("weight"),0.00001); VertexProperty p = getOnlyElement(v.properties("weight")); assertEquals(wintx,p.<Integer>value("sig").intValue());
/** * Very simple graph operation to ensure minimal functionality and cleanup */ @Test public void testBasic() throws BackendException { PropertyKey uid = makeVertexIndexedUniqueKey("name", String.class); finishSchema(); JanusGraphVertex n1 = tx.addVertex(); uid = tx.getPropertyKey("name"); n1.property(uid.name(), "abcd"); clopen(); long nid = n1.longId(); uid = tx.getPropertyKey("name"); assertTrue(getV(tx, nid) != null); assertTrue(getV(tx, uid.longId()) != null); assertMissing(tx, nid + 64); uid = tx.getPropertyKey(uid.name()); n1 = getV(tx, nid); assertEquals(n1, getOnlyVertex(tx.query().has(uid.name(), "abcd"))); assertEquals(1, Iterables.size(n1.query().relations())); //TODO: how to expose relations? assertEquals("abcd", n1.value(uid.name())); assertCount(1, tx.query().vertices()); close(); JanusGraphFactory.drop(graph); open(config); assertEmpty(tx.query().vertices()); }
assertNotNull(v); assertEquals("people", v.label()); assertEquals(5, v.<Integer>value("time").intValue()); assertCount(1, v.query().direction(Direction.IN).labels("knows").edges()); assertCount(1, v.query().direction(Direction.OUT).labels("knows").has("time", 11).edges()); assertNotNull(v); assertEquals("person", v.label()); assertEquals(5, v.<Integer>value("time").intValue()); assertCount(1, v.query().direction(Direction.IN).labels("know").edges()); assertCount(0, v.query().direction(Direction.IN).labels("knows").edges());
RelationIdentifier eid = (RelationIdentifier) e.id(); assertEquals(v.id(), v.value(ID_NAME)); assertEquals(eid, e.value(ID_NAME)); assertEquals("knows", e.value(LABEL_NAME)); assertEquals(BaseVertexLabel.DEFAULT_VERTEXLABEL.name(), v.value(LABEL_NAME)); assertCount(1, v.query().direction(Direction.BOTH).labels("knows").has(ID_NAME, eid).edges()); assertCount(0, v.query().direction(Direction.BOTH).labels("knows").has(ID_NAME, RelationIdentifier.get(new long[]{4, 5, 6, 7})).edges());