All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.tinkerpop.gremlin.process.graph.step.map.OrderTest Maven / Gradle / Ivy

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

import com.tinkerpop.gremlin.AbstractGremlinTest;
import com.tinkerpop.gremlin.LoadGraphWith;
import com.tinkerpop.gremlin.process.Traversal;
import com.tinkerpop.gremlin.structure.Vertex;
import com.tinkerpop.gremlin.util.StreamFactory;
import org.junit.Test;

import java.util.List;
import java.util.stream.Collectors;

import static com.tinkerpop.gremlin.LoadGraphWith.GraphData.CLASSIC;
import static org.junit.Assert.assertEquals;

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

    public abstract Traversal get_g_V_name_order();

    public abstract Traversal get_g_V_name_orderXabX();

    public abstract Traversal get_g_V_orderXa_nameXb_nameX_name();

    @Test
    @LoadGraphWith(CLASSIC)
    public void g_V_name_order() {
        final Traversal traversal = get_g_V_name_order();
        printTraversalForm(traversal);
        final List names = StreamFactory.stream(traversal).collect(Collectors.toList());
        assertEquals(names.size(), 6);
        assertEquals("josh", names.get(0));
        assertEquals("lop", names.get(1));
        assertEquals("marko", names.get(2));
        assertEquals("peter", names.get(3));
        assertEquals("ripple", names.get(4));
        assertEquals("vadas", names.get(5));
    }

    @Test
    @LoadGraphWith(CLASSIC)
    public void g_V_name_orderXabX() {
        final Traversal traversal = get_g_V_name_orderXabX();
        printTraversalForm(traversal);
        final List names = StreamFactory.stream(traversal).collect(Collectors.toList());
        assertEquals(names.size(), 6);
        assertEquals("josh", names.get(5));
        assertEquals("lop", names.get(4));
        assertEquals("marko", names.get(3));
        assertEquals("peter", names.get(2));
        assertEquals("ripple", names.get(1));
        assertEquals("vadas", names.get(0));
    }

    @Test
    @LoadGraphWith(CLASSIC)
    public void g_V_orderXa_nameXb_nameX_name() {
        final Traversal traversal = get_g_V_orderXa_nameXb_nameX_name();
        printTraversalForm(traversal);
        final List names = StreamFactory.stream(traversal).collect(Collectors.toList());
        assertEquals(names.size(), 6);
        assertEquals("josh", names.get(0));
        assertEquals("lop", names.get(1));
        assertEquals("marko", names.get(2));
        assertEquals("peter", names.get(3));
        assertEquals("ripple", names.get(4));
        assertEquals("vadas", names.get(5));
    }

    public static class JavaOrderTest extends OrderTest {

        public Traversal get_g_V_name_order() {
            return g.V().value("name").order();
        }

        public Traversal get_g_V_name_orderXabX() {
            return g.V().value("name").order((a, b) -> b.get().compareTo(a.get()));
        }

        public Traversal get_g_V_orderXa_nameXb_nameX_name() {
            return g.V().order((a, b) -> a.get().value("name").compareTo(b.get().value("name"))).value("name");
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy