@Override public void run() { int reads = 0; while (reads<numReads) { final int pos = random.nextInt(vids.length); long vid = vids[pos]; TitanVertex v = getV(graph,vid); assertNotNull(v); boolean postCommit = postcommit[pos].get(); Integer value = v.value(prop); lookups.incrementAndGet(); assertNotNull("On pos [" + pos + "]", value); if (!precommit[pos].get()) assertEquals(0, value.intValue()); else if (postCommit) assertEquals(1, value.intValue()); graph.tx().commit(); try { Thread.sleep(readSleepTime); } catch (InterruptedException e) { return; } reads++; } } });
@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(); TitanVertex a = tx.addVertex(vt, user, fn, "alice"); TitanVertex b = tx.addVertex(vt, user, fn, "bob"); TitanVertex v; v = getOnlyElement(tx.query().has(vt, user).has(fn, bob).limit(1).vertices()); assertEquals(bob, v.value(fn)); assertEquals(user, v.value(vt)); v = 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 = getOnlyElement(tx.query().has(vt, user).has(fn, bob).limit(1).vertices()); assertEquals(bob, v.value(fn)); assertEquals(user, v.value(vt)); v = getOnlyElement(tx.query().has(vt, user).has(fn, alice).limit(1).vertices()); assertEquals(alice, v.value(fn)); assertEquals(user, v.value(vt)); }
@Override public void process(TitanVertex 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 degreeCounting() throws Exception { int numV = 200; int numE = generateRandomGraph(numV); clopen(); final TitanGraphComputer computer = graph.compute(); computer.resultMode(TitanGraphComputer.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(); TitanVertex v = getV(tx, entry.getKey().longValue()); int count = v.value("uid"); assertEquals(count,degree); totalCount+= degree; } assertEquals(numV*(numV+1)/2,totalCount); assertEquals(1,result.memory().getIteration()); }
@Override public void run() { TitanTransaction tx = graph.newTransaction(); long ruid = random.nextInt(maxUID) + 1; getVertex(tx,"uid", ruid).property(VertexProperty.Cardinality.single, "name", fixedName); for (int t = 1; t <= trials; t++) { TitanVertex v = getVertex(tx,"uid", random.nextInt(maxUID) + 1); assertCount(2, v.properties()); int count = 0; for (TitanEdge e : v.query().direction(Direction.BOTH).edges()) { count++; assertTrue(e.<Integer>value("time") >= 0); } assertTrue(count <= 2); // if (t%(trials/10)==0) System.out.println(t); } assertEquals(fixedName, getVertex(tx,"uid", ruid).value("name")); tx.commit(); } });
public static void assertGraphOfTheGods(TitanGraph gotg) { assertCount(12, gotg.query().vertices()); assertCount(3, gotg.query().has(LABEL_NAME, "god").vertices()); TitanVertex h = getOnlyVertex(gotg.query().has("name", "hercules")); assertEquals(30, h.<Integer>value("age").intValue()); assertEquals("demigod", h.label()); assertCount(5, h.query().direction(Direction.BOTH).edges()); gotg.tx().commit(); }
long degree2 = ((Integer)v.value(DegreeCounter.DEGREE)).longValue(); long actualDegree2 = 0; for (TitanVertex w : v.query().direction(Direction.OUT).vertices()) {
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());
private void processTx(TitanTransaction tx, int txid, long vid, long uid) { TitanVertex v = getV(tx,vid); TitanVertex u = getV(tx,uid); assertEquals(5.0,v.<Double>value("weight").doubleValue(),0.00001); VertexProperty p = getOnlyElement(v.properties("weight")); assertEquals(1,p.<Integer>value("sig").intValue());
assertTrue("Invalid distance: " + dist,dist >= 0 && dist < Integer.MAX_VALUE); TitanVertex v = getV(tx, kv.getKey()); assertEquals(v.<Integer>value("distance").intValue(), dist); vertexCount++;
tx = graph.buildTransaction().groupName(metricsPrefix).start(); v = getOnlyElement(tx.query().has("uid",1).vertices()); assertEquals(1,v.<Integer>value("uid").intValue()); u = getOnlyElement(v.query().direction(Direction.BOTH).labels("knows").vertices()); e = getOnlyElement(u.query().direction(Direction.IN).labels("knows").edges()); assertEquals("juju",u.value("name")); assertEquals("edge",e.value("name")); tx.commit();
/** * Very simple graph operation to ensure minimal functionality and cleanup */ @Test public void testBasic() { PropertyKey uid = makeVertexIndexedUniqueKey("name", String.class); finishSchema(); TitanVertex 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(); TitanCleanup.clear(graph); open(config); assertEmpty(tx.query().vertices()); }
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());
assertNotNull(v); assertEquals("neptune", v.value("name"));
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());