
com.tinkerpop.gremlin.process.graph.step.map.LocalTest Maven / Gradle / Ivy
The newest version!
package com.tinkerpop.gremlin.process.graph.step.map;
import com.tinkerpop.gremlin.LoadGraphWith;
import com.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
import com.tinkerpop.gremlin.process.T;
import com.tinkerpop.gremlin.process.Traversal;
import com.tinkerpop.gremlin.structure.Order;
import com.tinkerpop.gremlin.structure.Vertex;
import org.junit.Ignore;
import org.junit.Test;
import java.util.Arrays;
import java.util.Collection;
import java.util.Map;
import static com.tinkerpop.gremlin.LoadGraphWith.GraphData.CREW;
import static com.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
import static com.tinkerpop.gremlin.process.graph.AnonymousGraphTraversal.Tokens.__;
import static org.junit.Assert.*;
/**
* @author Marko A. Rodriguez (http://markorodriguez.com)
*/
public abstract class LocalTest extends AbstractGremlinProcessTest {
public abstract Traversal get_g_V_localXpropertiesXlocationX_order_byXvalueX_limitX2XX_value();
public abstract Traversal get_g_V_localXoutE_countX();
public abstract Traversal>> get_g_V_hasXlabel_personX_localXoutXcreatedX_group_byXlangX_byXnameX();
//public abstract Traversal> get_g_V_localXoutE_weight_groupCountX();
@Test
@LoadGraphWith(CREW)
public void g_V_localXpropertiesXlocationX_orderByXvalueX_limitX2XX_value() {
final Traversal traversal = get_g_V_localXpropertiesXlocationX_order_byXvalueX_limitX2XX_value();
printTraversalForm(traversal);
checkResults(Arrays.asList("brussels", "san diego", "centreville", "dulles", "baltimore", "bremen", "aachen", "kaiserslautern"), traversal);
}
@Test
@LoadGraphWith(MODERN)
public void g_V_localXoutE_countX() {
final Traversal traversal = get_g_V_localXoutE_countX();
printTraversalForm(traversal);
checkResults(Arrays.asList(3l, 0l, 0l, 0l, 1l, 2l), traversal);
}
@Test
@Ignore("Do local sideEffect reset?")
@LoadGraphWith(MODERN)
public void g_V_hasXlabel_personX_localXoutXcreatedX_group_byXlangX_byXnameX() {
final Traversal>> traversal = get_g_V_hasXlabel_personX_localXoutXcreatedX_group_byXlangX_byXnameX();
printTraversalForm(traversal);
int counter = 0;
int count0 = 0;
int count1 = 0;
int count2 = 0;
while (traversal.hasNext()) {
counter++;
final Map> map = traversal.next();
if (map.size() == 0) {
count0++;
} else if (map.size() == 1) {
if (map.get("java").size() == 1) {
count1++;
assertEquals(1, map.get("java").size());
assertTrue(map.get("java").contains("lop"));
} else if (map.get("java").size() == 2) {
count2++;
assertEquals(2, map.get("java").size());
assertTrue(map.get("java").contains("lop"));
assertTrue(map.get("java").contains("ripple"));
}
} else {
fail("No suppose to be a map this big: " + map.size());
}
}
assertFalse(traversal.hasNext());
assertEquals(4, counter);
assertEquals(1, count0);
assertEquals(2, count1);
assertEquals(1, count2);
}
/*@Test
@LoadGraphWith(MODERN)
public void g_V_localXoutE_weight_groupCountX() {
final Traversal> traversal = get_g_V_localXoutE_weight_groupCountX();
int counter = 0;
int zeroCounter = 0;
while (traversal.hasNext()) {
counter++;
final Map map = traversal.next();
if(0 == map.size()) zeroCounter++;
System.out.println(map);
}
assertEquals(6, counter);
assertEquals(3, zeroCounter);
}*/
public static class StandardTest extends LocalTest {
public StandardTest() {
requiresGraphComputer = false;
}
@Override
public Traversal get_g_V_localXpropertiesXlocationX_order_byXvalueX_limitX2XX_value() {
return g.V().local(__.properties("location").order().by(T.value, Order.incr).range(0, 2)).value();
}
@Override
public Traversal get_g_V_localXoutE_countX() {
return g.V().local(__.outE().count());
}
@Override
public Traversal>> get_g_V_hasXlabel_personX_localXoutXcreatedX_group_byXlangX_byXnameX() {
return (Traversal) g.V().has(T.label, "person").local(__.out("created").group().by("lang").by("name").cap());
}
/*@Override
public Traversal> get_g_V_localXoutE_weight_groupCountX() {
return g.V().local((Traversal) __.outE().values("weight").groupCount());
}*/
}
public static class ComputerTest extends LocalTest {
public ComputerTest() {
requiresGraphComputer = true;
}
@Override
public Traversal get_g_V_localXpropertiesXlocationX_order_byXvalueX_limitX2XX_value() {
return g.V().local(__.properties("location").order().by(T.value, Order.incr).range(0, 2)).value().submit(g.compute());
}
@Override
public Traversal get_g_V_localXoutE_countX() {
return g.V().local(__.outE().count()).submit(g.compute());
}
@Override
public Traversal>> get_g_V_hasXlabel_personX_localXoutXcreatedX_group_byXlangX_byXnameX() {
return (Traversal) g.V().has(T.label, "person").local(__.out("created").group().by("lang").by("name")).submit(g.compute());
}
/*@Override
public Traversal> get_g_V_localXoutE_weight_groupCountX() {
return g.V().local((Traversal) __.outE().values("weight").groupCount()).submit(g.compute());
}*/
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy