Package com.tinkerpop.gremlin.process.graph.step.sideEffect

Source Code of com.tinkerpop.gremlin.process.graph.step.sideEffect.TreeTest$ComputerTest

package com.tinkerpop.gremlin.process.graph.step.sideEffect;

import com.tinkerpop.gremlin.LoadGraphWith;
import com.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
import com.tinkerpop.gremlin.process.Traversal;
import com.tinkerpop.gremlin.process.graph.util.Tree;
import com.tinkerpop.gremlin.structure.Vertex;
import org.junit.Test;

import java.util.Arrays;
import java.util.List;
import java.util.Map;

import static com.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
import static org.junit.Assert.*;

/**
* @author Marko A. Rodriguez (http://markorodriguez.com)
* @author Stephen Mallette (http://stephen.genoprime.com)
*/
public abstract class TreeTest extends AbstractGremlinProcessTest {

    public abstract Traversal<Vertex, Tree> get_g_V_out_out_treeXidX();

    public abstract Traversal<Vertex, Tree> get_g_V_out_out_treeXa_idX();

    public abstract Traversal<Vertex, Tree> get_g_V_out_out_treeXaX();

    public abstract Traversal<Vertex, Tree> get_g_v1_out_out_treeXnameX(final Object v1Id);

    public abstract Traversal<Vertex, Tree> get_g_v1_out_out_treeXa_nameX_both_both_capXaX(final Object v1Id);

    @Test
    @LoadGraphWith(MODERN)
    public void g_v1_out_out_treeXnameX() {
        List<Traversal<Vertex, Tree>> traversals = Arrays.asList(
                get_g_v1_out_out_treeXnameX(convertToVertexId("marko")),
                get_g_v1_out_out_treeXa_nameX_both_both_capXaX(convertToVertexId("marko")));
        traversals.forEach(traversal -> {
            printTraversalForm(traversal);
            final Tree tree = traversal.next();
            assertFalse(traversal.hasNext());
            assertEquals(1, tree.size());
            assertTrue(tree.containsKey("marko"));
            assertEquals(1, ((Map) tree.get("marko")).size());
            assertTrue(((Map) tree.get("marko")).containsKey("josh"));
            assertTrue(((Map) ((Map) tree.get("marko")).get("josh")).containsKey("lop"));
            assertTrue(((Map) ((Map) tree.get("marko")).get("josh")).containsKey("ripple"));
        });
    }

    @Test
    @LoadGraphWith(MODERN)
    public void g_V_out_out_treeXidX() {
        List<Traversal<Vertex, Tree>> traversals = Arrays.asList(get_g_V_out_out_treeXidX(), get_g_V_out_out_treeXa_idX());
        traversals.forEach(traversal -> {
            printTraversalForm(traversal);
            final Tree tree = traversal.next();
            assertFalse(traversal.hasNext());
            assertEquals(1, tree.size());
            assertTrue(tree.containsKey(convertToVertexId("marko")));
            assertEquals(1, ((Map) tree.get(convertToVertexId("marko"))).size());
            assertTrue(((Map) tree.get(convertToVertexId("marko"))).containsKey(convertToVertexId("josh")));
            assertTrue(((Map) ((Map) tree.get(convertToVertexId("marko"))).get(convertToVertexId("josh"))).containsKey(convertToVertexId("lop")));
            assertTrue(((Map) ((Map) tree.get(convertToVertexId("marko"))).get(convertToVertexId("josh"))).containsKey(convertToVertexId("ripple")));
        });
    }

    @Test
    @LoadGraphWith(MODERN)
    public void g_V_out_out_treeXaX() {
        List<Traversal<Vertex, Tree>> traversals = Arrays.asList(get_g_V_out_out_treeXaX());
        traversals.forEach(traversal -> {
            printTraversalForm(traversal);
            final Tree tree = traversal.next();
            assertFalse(traversal.hasNext());
            assertEquals(1, tree.size());
            assertTrue(tree.containsKey(convertToVertex(g, "marko")));
            assertEquals(1, ((Map) tree.get(convertToVertex(g, "marko"))).size());
            assertTrue(((Map) tree.get(convertToVertex(g, "marko"))).containsKey(convertToVertex(g, "josh")));
            assertTrue(((Map) ((Map) tree.get(convertToVertex(g, "marko"))).get(convertToVertex(g, "josh"))).containsKey(convertToVertex(g, "lop")));
            assertTrue(((Map) ((Map) tree.get(convertToVertex(g, "marko"))).get(convertToVertex(g, "josh"))).containsKey(convertToVertex(g, "ripple")));
        });
    }

    public static class StandardTest extends TreeTest {
        public StandardTest() {
            requiresGraphComputer = false;
        }

        @Override
        public Traversal<Vertex, Tree> get_g_v1_out_out_treeXnameX(final Object v1Id) {
            return (Traversal) g.v(v1Id).out().out().tree(v -> ((Vertex) v).value("name"));
        }

        @Override
        public Traversal<Vertex, Tree> get_g_v1_out_out_treeXa_nameX_both_both_capXaX(final Object v1Id) {
            return g.v(v1Id).out().out().tree("a", v -> ((Vertex) v).value("name")).both().both().cap("a");
        }

        @Override
        public Traversal<Vertex, Tree> get_g_V_out_out_treeXidX() {
            return (Traversal) g.V().out().out().tree(v -> ((Vertex) v).id());
        }

        @Override
        public Traversal<Vertex, Tree> get_g_V_out_out_treeXa_idX() {
            return (Traversal) g.V().out().out().tree("a", v -> ((Vertex) v).id());
        }

        @Override
        public Traversal<Vertex, Tree> get_g_V_out_out_treeXaX() {
            return (Traversal) g.V().out().out().tree("a");
        }
    }

    public static class ComputerTest extends TreeTest {
        public ComputerTest() {
            requiresGraphComputer = true;
        }

        @Override
        public Traversal<Vertex, Tree> get_g_v1_out_out_treeXnameX(final Object v1Id) {
            // TODO: micropaths don't have vertex properties
            return (Traversal) g.v(v1Id).out().out().tree(v -> ((Vertex) v).value("name"));
        }

        @Override
        public Traversal<Vertex, Tree> get_g_v1_out_out_treeXa_nameX_both_both_capXaX(final Object v1Id) {
            // TODO: micropaths don't have vertex properties
            return g.v(v1Id).out().out().tree("a", v -> ((Vertex) v).value("name")).both().both().<Tree>cap("a");
        }

        @Override
        public Traversal<Vertex, Tree> get_g_V_out_out_treeXidX() {
            return (Traversal) g.V().out().out().tree(v -> ((Vertex) v).id()).submit(g.compute());
        }

        @Override
        public Traversal<Vertex, Tree> get_g_V_out_out_treeXa_idX() {
            return (Traversal) g.V().out().out().tree("a", v -> ((Vertex) v).id()).submit(g.compute());
        }

        @Override
        public Traversal<Vertex, Tree> get_g_V_out_out_treeXaX() {
            return (Traversal) g.V().out().out().tree("a").submit(g.compute());
        }
    }
}
TOP

Related Classes of com.tinkerpop.gremlin.process.graph.step.sideEffect.TreeTest$ComputerTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.