assertEquals(1, v1.query().direction(OUT).labels("bought").has("time", 1).edgeCount()); assertEquals(1, v1.query().direction(OUT).labels("bought").has("time", Cmp.LESS_THAN, 3).has("time", Cmp.GREATER_THAN, 1).edgeCount()); assertEquals(3, v1.query().direction(OUT).labels("bought").has("time", Cmp.LESS_THAN, 5).edgeCount()); assertEquals(3, v1.query().direction(OUT).labels("bought").has("time", Cmp.GREATER_THAN, 0).edgeCount()); assertEquals(2, v1.query().direction(OUT).labels("bought").has("time", Cmp.LESS_THAN, 3).edgeCount()); assertEquals(1, v1.query().direction(OUT).labels("bought").has("time", Cmp.GREATER_THAN, 2).edgeCount()); assertEquals(2, v1.query().direction(OUT).labels("bought").hasNot("time").edgeCount()); assertEquals(5, v1.query().direction(OUT).labels("bought").edgeCount()); assertEquals(1, v1.query().direction(OUT).labels("bought").has("time", 1).edgeCount()); assertEquals(1, v1.query().direction(OUT).labels("bought").has("time", Cmp.LESS_THAN, 3).has("time", Cmp.GREATER_THAN, 1).edgeCount()); assertEquals(3, v1.query().direction(OUT).labels("bought").has("time", Cmp.LESS_THAN, 5).edgeCount()); assertEquals(3, v1.query().direction(OUT).labels("bought").has("time", Cmp.GREATER_THAN, 0).edgeCount()); assertEquals(2, v1.query().direction(OUT).labels("bought").has("time", Cmp.LESS_THAN, 3).edgeCount()); assertEquals(1, v1.query().direction(OUT).labels("bought").has("time", Cmp.GREATER_THAN, 2).edgeCount()); assertEquals(2, v1.query().direction(OUT).labels("bought").hasNot("time").edgeCount()); assertEquals(5, v1.query().direction(OUT).labels("bought").edgeCount());
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()); assertCount(1, v.query().direction(Direction.BOTH).labels("knows").has("~nid", eid.getRelationId()).edges()); assertCount(0, v.query().direction(Direction.BOTH).labels("knows").has("~nid", 110111).edges()); assertEquals(1, v.query().direction(BOTH).has("~adjacent", u.id()).edgeCount()); assertCount(1, v.query().direction(BOTH).has("~adjacent", (int) getId(u)).edges()); try { assertCount(0, v.query().direction(BOTH).has("~adjacent", 110111).edges()); fail(); } catch (IllegalArgumentException ex) {
assertEquals(10, size(v.query().labels("connect").has("time", Cmp.GREATER_THAN, 30).limit(10).vertices())); assertEquals(10, size(u.query().labels("connectDesc").has("time", Cmp.GREATER_THAN, 30).limit(10).vertices())); assertEquals(10, size(v.query().labels("connect").direction(OUT).has("time", Cmp.GREATER_THAN, 60).limit(10).vertices())); assertEquals(10, size(u.query().labels("connectDesc").direction(OUT).has("time", Cmp.GREATER_THAN, 60).limit(10).vertices())); evaluateQuery(v.query().labels("connect").direction(OUT).has("time", 15).has("weight", 3.5), EDGE, 1, 1, new boolean[]{false, true}); evaluateQuery(u.query().labels("connectDesc").direction(OUT).interval("time", 3, 31), EDGE, 10, 1, new boolean[]{true, true}); assertEquals(10, v.query().labels("connect").direction(IN).interval("time", 3, 31).edgeCount()); assertEquals(10, u.query().labels("connectDesc").direction(IN).interval("time", 3, 31).edgeCount()); assertEquals(0, v.query().labels("connect").direction(OUT).has("time", null).edgeCount()); assertEquals(10, v.query().labels("connect").direction(OUT).interval("time", 3, 31).vertexIds().size()); assertEquals(edgesPerLabel - 10, v.query().labels("connect").direction(OUT).has("time", Cmp.GREATER_THAN, 31).count()); assertEquals(10, size(v.query().labels("connect").direction(OUT).interval("time", 3, 31).vertices())); assertEquals(3, v.query().labels("friend").direction(OUT).limit(3).count()); evaluateQuery(v.query().labels("friend").direction(OUT).has("weight", 0.5).limit(3), EDGE, 3, 1, new boolean[]{true, true}); evaluateQuery(v.query().labels("friend").direction(OUT).interval("time", 3, 33).has("weight", 0.5), EDGE, 3, 1, new boolean[]{true, true}); evaluateQuery(v.query().labels("friend").direction(OUT).interval("time", 3, 33).has("weight", Contain.IN, ImmutableList.of(0.5)), EDGE, 3, 1, new boolean[]{true, true}); evaluateQuery(v.query().labels("friend").direction(OUT).has("weight", Contain.IN, ImmutableList.of(0.5, 1.5, 2.5)).interval("time", 3, 33), EDGE, 7, 3, new boolean[]{true, true}); evaluateQuery(v.query().labels("friend").direction(OUT).has("weight", Contain.IN, ImmutableList.of(0.5, 1.5)), EDGE, 1667, 2, new boolean[]{true, true}); assertEquals(3, u.query().labels("friendDesc").direction(OUT).interval("time", 3, 33).has("weight", 0.5).edgeCount()); assertEquals(1, v.query().labels("friend").direction(OUT).has("weight", 0.5).interval("time", 4, 10).edgeCount()); assertEquals(1, u.query().labels("friendDesc").direction(OUT).has("weight", 0.5).interval("time", 4, 10).edgeCount()); assertEquals(3, v.query().labels("friend").direction(OUT).interval("time", 3, 33).has("weight", 0.5).edgeCount()); assertEquals(4, v.query().labels("friend").direction(OUT).has("time", Cmp.LESS_THAN_EQUAL, 10).edgeCount()); assertEquals(edgesPerLabel - 4, v.query().labels("friend").direction(OUT).has("time", Cmp.GREATER_THAN, 10).edgeCount()); assertEquals(20, v.query().labels("friend", "connect").direction(OUT).interval("time", 3, 33).edgeCount()); assertEquals((int) Math.ceil(edgesPerLabel / 5.0), v.query().labels("knows").direction(OUT).has("number", 0).edgeCount());
evaluateQuery(v.query().keys("name").has("weight", Cmp.GREATER_THAN, 3.6), PROPERTY, 2 * numV / 10, 1, new boolean[]{false, true}); evaluateQuery(v.query().keys("name").has("weight", Cmp.LESS_THAN, 0.9).orderBy("weight", incr), PROPERTY, 2 * numV / 10, 1, new boolean[]{true, true}, weight, Order.ASC); evaluateQuery(v.query().keys("name").interval("weight", 1.1, 2.2).orderBy("weight", decr).limit(numV / 10), PROPERTY, numV / 10, 1, new boolean[]{true, false}, weight, Order.DESC); evaluateQuery(v.query().keys("name").has("time", Cmp.EQUAL, 5).orderBy("weight", decr), PROPERTY, 1, 1, new boolean[]{false, false}, weight, Order.DESC); evaluateQuery(v.query().keys("name"), PROPERTY, numV, 1, new boolean[]{true, true}); evaluateQuery(v.query().labels("child").direction(OUT).has("time", Cmp.EQUAL, 5), EDGE, 1, 1, new boolean[]{true, true}); evaluateQuery(v.query().labels("child").direction(BOTH).has("time", Cmp.EQUAL, 5), EDGE, 1, 2, new boolean[0]); evaluateQuery(v.query().labels("child").direction(OUT).interval("time", 10, 20).orderBy("weight", decr).limit(5), evaluateQuery(v.query().labels("connect").has("time", Cmp.EQUAL, 5).interval("weight", 0.0, 5.0).direction(OUT), EDGE, 1, 1, new boolean[]{true, true}); evaluateQuery(v.query().labels("connect").has("time", Cmp.EQUAL, 5).interval("weight", 0.0, 5.0).direction(BOTH), EDGE, 1, 2, new boolean[0]); evaluateQuery(v.query().labels("connect").interval("time", 10, 20).interval("weight", 0.0, 5.0).direction(OUT), evaluateQuery(v.query().labels("connect").direction(OUT).interval("weight", 1.4, 2.75).orderBy("weight", decr), EDGE, 3 * numV / 10, 1, new boolean[]{true, true}, weight, Order.DESC); evaluateQuery(v.query().labels("connect").direction(OUT).has("time", Cmp.EQUAL, 22).orderBy("weight", decr), EDGE, 1, 1, new boolean[]{true, true}, weight, Order.DESC); evaluateQuery(v.query().labels("connect").direction(OUT).has("time", Cmp.EQUAL, 22).orderBy("weight", incr), EDGE, 1, 1, new boolean[]{true, false}, weight, Order.ASC);
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()); newTx(); assertCount(1, v.query().direction(Direction.IN).labels("know").edges()); assertCount(0, v.query().direction(Direction.IN).labels("knows").edges()); assertCount(1, v.query().direction(Direction.OUT).labels("know").has("time", 11).edges());
assertCount(1, v12.query().direction(Direction.OUT).labels("parent").has("weight").edges()); assertCount(1, v13.query().direction(Direction.OUT).labels("parent").has("weight").edges()); assertEquals(v12, getOnlyElement(v.query().direction(Direction.OUT).labels("spouse").vertices())); edge = getOnlyElement(v.query().direction(Direction.BOTH).labels("connect").edges()); assertCount(1, v12.query().direction(Direction.OUT).labels("parent").has("weight").edges()); assertCount(1, v13.query().direction(Direction.OUT).labels("parent").has("weight").edges()); assertEquals(v12, getOnlyElement(v.query().direction(Direction.OUT).labels("spouse").vertices())); edge = getOnlyElement(v.query().direction(Direction.BOTH).labels("connect").edges());
assertEquals("knows",e.getProperty("label")); assertEquals(BaseVertexLabel.DEFAULT_VERTEXLABEL.getName(),v.getProperty("label")); assertEquals(1,v.query().labels("knows").direction(BOTH).has("id",eid).count()); assertEquals(0,v.query().labels("knows").direction(BOTH).has("id",RelationIdentifier.get(new long[]{4,5,6,7})).count()); assertEquals(1,v.query().labels("knows").direction(BOTH).has("$titanid",eid.getRelationId()).count()); assertEquals(0,v.query().labels("knows").direction(BOTH).has("$titanid",110111).count()); assertEquals(1,v.query().has("$adjacent",u.getLongId()).count()); assertEquals(1,v.query().has("$adjacent",(int)u.getLongId()).count()); try { assertEquals(0,v.query().has("$adjacent",110111).count()); fail(); } catch (IllegalArgumentException ex) {}
assertEquals(10, Iterables.size(v.query().labels("connect").has("time", Compare.GREATER_THAN, 30).limit(10).vertices())); assertEquals(10, Iterables.size(u.query().labels("connectDesc").has("time", Compare.GREATER_THAN, 30).limit(10).vertices())); assertEquals(10, Iterables.size(v.query().labels("connect").direction(OUT).has("time", Compare.GREATER_THAN, 60).limit(10).vertices())); assertEquals(10, Iterables.size(u.query().labels("connectDesc").direction(OUT).has("time", Compare.GREATER_THAN, 60).limit(10).vertices())); evaluateQuery(v.query().labels("connect").direction(OUT).has("time", 15).has("weight", 3.5),EDGE,1,1,new boolean[]{false,true}); evaluateQuery(u.query().labels("connectDesc").direction(OUT).interval("time", 3, 31),EDGE,10,1,new boolean[]{true,true}); assertEquals(10, v.query().labels("connect").direction(IN).interval("time", 3, 31).count()); assertEquals(10, u.query().labels("connectDesc").direction(IN).interval("time", 3, 31).count()); assertEquals(0, v.query().labels("connect").direction(OUT).has("time", null).count()); assertEquals(10, v.query().labels("connect").direction(OUT).interval("time", 3, 31).vertexIds().size()); assertEquals(edgesPerLabel-10, v.query().labels("connect").direction(OUT).has("time", Compare.GREATER_THAN, 31).count()); assertEquals(10, Iterables.size(v.query().labels("connect").direction(OUT).interval("time", 3, 31).vertices())); assertEquals(3, v.query().labels("friend").direction(OUT).limit(3).count()); evaluateQuery(v.query().labels("friend").direction(OUT).has("weight", 0.5).limit(3), EDGE, 3, 1, new boolean[]{true, true}); evaluateQuery(v.query().labels("friend").direction(OUT).interval("time", 3, 33).has("weight", 0.5),EDGE,3,1,new boolean[]{true,true}); evaluateQuery(v.query().labels("friend").direction(OUT).interval("time", 3, 33).has("weight", Contain.IN, ImmutableList.of(0.5)),EDGE,3,1,new boolean[]{true,true}); evaluateQuery(v.query().labels("friend").direction(OUT).has("weight", Contain.IN, ImmutableList.of(0.5,1.5,2.5)).interval("time", 3, 33),EDGE,7,3,new boolean[]{true,true}); evaluateQuery(v.query().labels("friend").direction(OUT).has("weight", Contain.IN, ImmutableList.of(0.5,1.5)),EDGE,1667,2,new boolean[]{true,true}); assertEquals(3, u.query().labels("friendDesc").direction(OUT).interval("time", 3, 33).has("weight", 0.5).count()); assertEquals(1, v.query().labels("friend").direction(OUT).has("weight", 0.5).interval("time", 4, 10).count()); assertEquals(1, u.query().labels("friendDesc").direction(OUT).has("weight", 0.5).interval("time", 4, 10).count()); assertEquals(3, v.query().labels("friend").direction(OUT).interval("time", 3, 33).has("weight", 0.5).count()); assertEquals(4, v.query().labels("friend").direction(OUT).has("time", Compare.LESS_THAN_EQUAL, 10).count()); assertEquals(edgesPerLabel-4, v.query().labels("friend").direction(OUT).has("time", Compare.GREATER_THAN, 10).count()); assertEquals(20, v.query().labels("friend", "connect").direction(OUT).interval("time", 3, 33).count()); assertEquals((int)Math.ceil(edgesPerLabel/5.0), v.query().labels("knows").direction(OUT).has("author", v).count());
assertEquals(10, Iterables.size(v.query().labels("connect").has("time", Compare.GREATER_THAN, 30).limit(10).vertices())); assertEquals(10, Iterables.size(u.query().labels("connectDesc").has("time", Compare.GREATER_THAN, 30).limit(10).vertices())); assertEquals(10, Iterables.size(v.query().labels("connect").direction(OUT).has("time", Compare.GREATER_THAN, 60).limit(10).vertices())); assertEquals(10, Iterables.size(u.query().labels("connectDesc").direction(OUT).has("time", Compare.GREATER_THAN, 60).limit(10).vertices())); assertEquals(10, v.query().labels("connect").direction(IN).interval("time", 3, 31).count()); assertEquals(10, u.query().labels("connectDesc").direction(IN).interval("time", 3, 31).count()); assertEquals(0, v.query().labels("connect").direction(OUT).has("time", null).count()); assertEquals(10, v.query().labels("connect").direction(OUT).interval("time", 3, 31).vertexIds().size()); assertEquals(edgesPerLabel-10, v.query().labels("connect").direction(OUT).has("time", Compare.GREATER_THAN, 31).count()); assertEquals(10, Iterables.size(v.query().labels("connect").direction(OUT).interval("time", 3, 31).vertices())); assertEquals(3, v.query().labels("friend").direction(OUT).interval("time", 3, 33).has("weight", 0.5).count()); assertEquals(3, u.query().labels("friendDesc").direction(OUT).interval("time", 3, 33).has("weight", 0.5).count()); assertEquals(1, v.query().labels("friend").direction(OUT).has("weight", 0.5).interval("time", 4, 10).count()); assertEquals(1, u.query().labels("friendDesc").direction(OUT).has("weight", 0.5).interval("time", 4, 10).count()); assertEquals(3, v.query().labels("friend").direction(OUT).interval("time", 3, 33).has("weight", 0.5).count()); assertEquals(4, v.query().labels("friend").direction(OUT).has("time", Compare.LESS_THAN_EQUAL, 10).count()); assertEquals(edgesPerLabel-4, v.query().labels("friend").direction(OUT).has("time", Compare.GREATER_THAN, 10).count()); assertEquals(20, v.query().labels("friend", "connect").direction(OUT).interval("time", 3, 33).count()); assertEquals((int)Math.ceil(edgesPerLabel/5.0), v.query().labels("knows").direction(OUT).has("author", v).count()); assertEquals((int)Math.ceil(edgesPerLabel/5.0), v.query().labels("knows").direction(OUT).has("author", v).interval("weight", 0.0, 4.0).count()); assertEquals((int)Math.ceil(edgesPerLabel/(5.0*2)), v.query().labels("knows").direction(OUT).has("author", v).interval("weight", 0.0, 2.0).count()); assertEquals((int)Math.floor(edgesPerLabel/(5.0*2)), v.query().labels("knows").direction(OUT).has("author", v).interval("weight", 2.1, 4.0).count()); assertEquals(20, Iterables.size(v.query().labels("connect", "friend").direction(OUT).interval("time", 3, 33).vertices())); assertEquals(20, Iterables.size(v.query().labels("connect", "friend").direction(OUT).interval("time", 3, 33).vertexIds())); assertEquals(30, v.query().labels("friend", "connect", "knows").direction(OUT).interval("time", 3, 33).count()); assertEquals(noVertices-2, v.query().labels("friend", "connect", "knows").direction(OUT).has("time", Compare.NOT_EQUAL, 10).count());
assertEquals(5,v.getProperty("time")); assertEquals(1,Iterables.size(v.getEdges(IN,"knows"))); assertEquals(1,v.query().labels("knows").direction(OUT).has("time",11).count()); newTx(); assertEquals(1,Iterables.size(v.getEdges(Direction.IN,"know"))); assertEquals(0,Iterables.size(v.getEdges(Direction.IN,"knows"))); assertEquals(1,v.query().labels("know").direction(OUT).has("time",11).count());
assertEquals(1, Iterables.size(v1.query().direction(IN).labels("parent").has("weight", Compare.GREATER_THAN, 10.0).edges())); assertEquals(1, Iterables.size(v12.query().direction(OUT).labels("parent").has("weight").edges())); assertEquals(1, Iterables.size(v12.query().direction(OUT).labels("parent").has("weight", Compare.GREATER_THAN, 3).edges())); assertEquals(1, Iterables.size(v13.query().direction(OUT).labels("parent").has("weight").edges())); v13 = (TitanVertex) tx.getVertex(v13); assertEquals(2, Iterables.size(v1.query().direction(IN).labels("parent").edges())); assertEquals(1, Iterables.size(v1.query().direction(IN).labels("parent").has("weight", Compare.GREATER_THAN, 10.0).edges())); assertEquals(1, Iterables.size(v12.query().direction(OUT).labels("parent").has("weight").edges())); assertEquals(1, Iterables.size(v12.query().direction(OUT).labels("parent").has("weight", Compare.GREATER_THAN, 3).edges())); assertEquals(1, Iterables.size(v13.query().direction(OUT).labels("parent").has("weight").edges()));
evaluateQuery(v.query().keys(name.getName()).has(weight,Cmp.GREATER_THAN,3.6), PROPERTY, 2*numV/10, 1, new boolean[]{false,true}); evaluateQuery(v.query().keys(name.getName()).has(weight,Cmp.LESS_THAN,0.9).orderBy(weight,Order.ASC), PROPERTY, 2*numV/10, 1, new boolean[]{true,true},weight,Order.ASC); evaluateQuery(v.query().keys(name.getName()).interval(weight, 1.1, 2.2).orderBy(weight,Order.DESC).limit(numV/10), PROPERTY, numV/10, 1, new boolean[]{true,false},weight,Order.DESC); evaluateQuery(v.query().keys(name.getName()).has(time,Cmp.EQUAL,5).orderBy(weight,Order.DESC), PROPERTY, 1, 1, new boolean[]{false,false},weight,Order.DESC); evaluateQuery(v.query().keys(name.getName()), PROPERTY, numV, 1, new boolean[]{true,true}); evaluateQuery(v.query().labels(child.getName()).direction(OUT).has(time,Cmp.EQUAL,5), EDGE, 1, 1 , new boolean[]{true,true}); evaluateQuery(v.query().labels(child.getName()).direction(BOTH).has(time,Cmp.EQUAL,5), EDGE, 1, 2 , new boolean[0]); evaluateQuery(v.query().labels(child.getName()).direction(OUT).interval(time,10,20).orderBy(weight,Order.DESC).limit(5), evaluateQuery(v.query().labels(connect.getName()).has(time,Cmp.EQUAL,5).interval(weight,0.0,5.0).direction(OUT), EDGE, 1, 1 , new boolean[]{true,true}); evaluateQuery(v.query().labels(connect.getName()).has(time,Cmp.EQUAL,5).interval(weight,0.0,5.0).direction(BOTH), EDGE, 1, 2 , new boolean[0]); evaluateQuery(v.query().labels(connect.getName()).interval(time,10,20).interval(weight,0.0,5.0).direction(OUT), evaluateQuery(v.query().labels(connect.getName()).direction(OUT).interval(weight,1.4,2.75).orderBy(weight,Order.DESC), EDGE, 3*numV/10, 1 , new boolean[]{true,true},weight,Order.DESC); evaluateQuery(v.query().labels(connect.getName()).direction(OUT).has(time,Cmp.EQUAL,22).orderBy(weight,Order.DESC), EDGE, 1, 1 , new boolean[]{true,true},weight,Order.DESC); evaluateQuery(v.query().labels(connect.getName()).direction(OUT).has(time,Cmp.EQUAL,22).orderBy(weight,Order.ASC), EDGE, 1, 1 , new boolean[]{true,false},weight,Order.ASC);
assertEquals(1, Iterables.size(v12.query().direction(OUT).types(parent).has(weight,Cmp.EQUAL,4.5).edges())); assertEquals(1, Iterables.size(v13.query().direction(OUT).types(parent).has(weight,Cmp.EQUAL,4.5).edges())); assertEquals(v12,Iterables.getOnlyElement(v.getVertices(OUT,spouse.getName()))); edge = (TitanEdge)Iterables.getOnlyElement(v.query().types(connect).direction(BOTH).edges()); assertEquals(1, Iterables.size(v12.query().direction(OUT).types(parent).has(weight,Cmp.EQUAL,4.5).edges())); assertEquals(1, Iterables.size(v13.query().direction(OUT).types(parent).has(weight,Cmp.EQUAL,4.5).edges())); assertEquals(v12,Iterables.getOnlyElement(v.getVertices(OUT,spouse.getName()))); edge = (TitanEdge)Iterables.getOnlyElement(v.query().types(connect).direction(BOTH).edges());