blob: 5b7ccea4b2d9c1749da029ec50b76b47533f6203 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.tinkerpop.gremlin.process.traversal.step.map
import org.apache.tinkerpop.gremlin.process.traversal.Traversal
import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalScriptHelper
import org.apache.tinkerpop.gremlin.structure.Vertex
/**
* @author Marko A. Rodriguez (http://markorodriguez.com)
*/
public abstract class GroovyOrderTest {
public static class Traversals extends OrderTest {
@Override
public Traversal<Vertex, String> get_g_V_name_order() {
TraversalScriptHelper.compute("g.V().name.order()", g)
}
@Override
public Traversal<Vertex, String> get_g_V_name_order_byXa1_b1X_byXb2_a2X() {
TraversalScriptHelper.compute("g.V.name.order.by { a, b -> a[1] <=> b[1] }.by { a, b -> b[2] <=> a[2] }", g)
}
@Override
public Traversal<Vertex, String> get_g_V_order_byXname_incrX_name() {
TraversalScriptHelper.compute("g.V.order.by('name', incr).name", g)
}
@Override
public Traversal<Vertex, String> get_g_V_order_byXnameX_name() {
TraversalScriptHelper.compute("g.V.order.by('name').name", g)
}
@Override
public Traversal<Vertex, Double> get_g_V_outE_order_byXweight_decrX_weight() {
TraversalScriptHelper.compute("g.V.outE.order.by('weight', Order.decr).weight", g)
}
@Override
public Traversal<Vertex, String> get_g_V_order_byXname_a1_b1X_byXname_b2_a2X_name() {
TraversalScriptHelper.compute("g.V.order.by('name', { a, b -> a[1].compareTo(b[1]) }).by('name', { a, b -> b[2].compareTo(a[2]) }).name", g)
}
@Override
public Traversal<Vertex, Map<String, Vertex>> get_g_V_asXaX_outXcreatedX_asXbX_order_byXshuffleX_selectXa_bX() {
TraversalScriptHelper.compute("g.V.as('a').out('created').as('b').order.by(shuffle).select('a','b')", g)
}
@Override
public Traversal<Vertex, Map<Integer, Integer>> get_g_VX1X_hasXlabel_personX_mapXmapXint_ageXX_orderXlocalX_byXvalues_decrX_byXkeys_incrX(
final Object v1Id) {
TraversalScriptHelper.compute("""g.V(v1Id).hasLabel("person").map {
final Map map = [:];
map[1] = it.age;
map[2] = it.age * 2;
map[3] = it.age * 3;
map[4] = it.age;
return map;
}.order(local).by(values,decr).by(keys,incr)""", g, "v1Id", v1Id);
}
@Override
public Traversal<Vertex, Vertex> get_g_V_order_byXoutE_count__decrX() {
TraversalScriptHelper.compute("g.V.order.by(__.outE.count, decr)", g)
}
@Override
public Traversal<Vertex, Map<String, List<Vertex>>> get_g_V_group_byXlabelX_byXnameX_byXorderXlocalX_byXdecrXX() {
TraversalScriptHelper.compute("g.V.group.by(label).by(values('name').order().by(decr).fold())", g)
}
@Override
public Traversal<Vertex, List<Double>> get_g_V_localXbothE_weight_foldX_order_byXsumXlocalX_decrX() {
TraversalScriptHelper.compute("g.V.local(__.bothE.weight.fold).order.by(sum(local), decr)", g)
}
@Override
public Traversal<Vertex, Map<String, Object>> get_g_V_asXvX_mapXbothE_weight_foldX_sumXlocalX_asXsX_selectXv_sX_order_byXselectXsX_decrX() {
TraversalScriptHelper.compute("g.V.as('v').map(__.bothE.weight.fold).sum(local).as('s').select('v', 's').order.by(select('s'),decr)", g);
}
@Override
public Traversal<Vertex, Vertex> get_g_V_hasLabelXpersonX_order_byXageX() {
TraversalScriptHelper.compute("g.V.hasLabel('person').order.by('age')", g);
}
@Override
public Traversal<Vertex, List<Vertex>> get_g_V_hasLabelXpersonX_fold_orderXlocalX_byXageX() {
TraversalScriptHelper.compute("g.V.hasLabel('person').fold.order(local).by('age')", g)
}
@Override
public Traversal<Vertex, Vertex> get_g_V_hasXsong_name_OHBOYX_outXfollowedByX_outXfollowedByX_order_byXperformancesX_byXsongType_incrX() {
TraversalScriptHelper.compute("g.V.has('song', 'name', 'OH BOY').out('followedBy').out('followedBy').order.by('performances').by('songType',decr)", g);
}
}
}