@Override public void addAll(VertexList vertexlist) { final LongArrayList otherVertexIds; if (vertexlist instanceof VertexLongList) { otherVertexIds = ((VertexLongList) vertexlist).vertices; } else if (vertexlist instanceof VertexArrayList) { VertexArrayList other = (VertexArrayList) vertexlist; otherVertexIds = new LongArrayList(other.size()); for (int i = 0; i < other.size(); i++) otherVertexIds.add(other.getID(i)); } else { throw new IllegalArgumentException("Unsupported vertex-list: " + vertexlist.getClass()); } if (sorted && vertexlist.isSorted()) { //Merge join vertices = AbstractLongListUtil.mergeSort(vertices,otherVertexIds); } else { sorted = false; vertices.add(otherVertexIds.buffer, 0, otherVertexIds.size()); } }
vl = v.query().labels("child").direction(BOTH).vertexIds(); assertEquals(numV, vl.size()); assertTrue(vl.isSorted()); assertTrue(isSortedByID(vl)); evaluateQuery(v.query().labels("child").interval("weight", 0.0, 1.0).direction(OUT), vl = v.query().labels("child").interval("weight", 0.0, 1.0).direction(OUT).vertexIds(); assertEquals(2 * numV / 10, vl.size()); assertTrue(vl.isSorted()); assertTrue(isSortedByID(vl)); evaluateQuery(v.query().labels("child").interval("time", 70, 80).direction(OUT).orderBy("time", incr), vl = v.query().labels("child").interval("time", 70, 80).direction(OUT).orderBy("time", incr).vertexIds(); assertEquals(10, vl.size()); assertFalse(vl.isSorted()); assertFalse(isSortedByID(vl)); vl.sort(); assertTrue(vl.isSorted()); assertTrue(isSortedByID(vl)); vl = v.query().labels("child").direction(BOTH).vertexIds(); assertEquals(numV, vl.size()); assertTrue(vl.isSorted()); assertTrue(isSortedByID(vl)); evaluateQuery(v.query().labels("child").interval("weight", 0.0, 1.0).direction(OUT), vl = v.query().labels("child").interval("weight", 0.0, 1.0).direction(OUT).vertexIds(); assertEquals(2 * numV / 10, vl.size()); assertTrue(vl.isSorted());