Skip to content

Commit

Permalink
Added another body of tests implementations for the TinkerPop suite.
Browse files Browse the repository at this point in the history
  • Loading branch information
spmallette committed May 9, 2016
1 parent 1ceaaa8 commit 6cf4989
Show file tree
Hide file tree
Showing 17 changed files with 806 additions and 32 deletions.
5 changes: 3 additions & 2 deletions src/clojure/clojurewerkz/ogre/anon.clj
Original file line number Diff line number Diff line change
Expand Up @@ -183,8 +183,9 @@

(defn __has-id
[ids]
(let [id-array (into-array Object ids)]
(org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__/hasId id-array)))
(if (seq? ids)
(org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__/hasId (into-array Object ids)))
(org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__/hasId (into-array Object [ids])))

(defn __has-key
[ks]
Expand Down
13 changes: 9 additions & 4 deletions src/clojure/clojurewerkz/ogre/core.clj
Original file line number Diff line number Diff line change
Expand Up @@ -123,8 +123,12 @@
(.by t ^Traversal arg1)))
([^GraphTraversal t arg1 ^java.util.Comparator compar]
(cond
(keyword? arg1)
(.by t (util/cast-param arg1) compar)
(instance? Column arg1)
(.by t ^Column arg1 compar)
(instance? clojure.lang.IFn arg1)
(.by t (util/f-to-function arg1 compar))
(.by t (util/f-to-function arg1) compar)
(instance? T arg1)
(.by t ^T arg1 compar)
(instance? String arg1)
Expand Down Expand Up @@ -256,8 +260,9 @@

(defn has-id
[^GraphTraversal t & ids]
(let [id-array (into-array Object ids)]
(.hasId t id-array)))
(if (seq? ids)
(.hasId t (into-array Object ids))
(.hasId t (into-array Object [ids]))))

(defn has-key
[^GraphTraversal t & ks]
Expand Down Expand Up @@ -415,7 +420,7 @@

(defn project
[^GraphTraversal t k & ks]
(.project t k (into-array ks)))
(.project t (util/cast-param k) (util/keywords-to-str-array ks)))

(defn properties
[^GraphTraversal t & ks]
Expand Down
4 changes: 2 additions & 2 deletions test/clojure/clojurewerkz/ogre/suite/add_edge_test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
(:require [clojure.test :refer [deftest testing is]]
[clojurewerkz.ogre.core :as q])
(:import (org.apache.tinkerpop.gremlin.structure T Vertex)
(org.apache.tinkerpop.gremlin.process.traversal P)))
(org.apache.tinkerpop.gremlin.process.traversal P Traversal)))

(defn get_g_VX1X_asXaX_outXcreatedX_addEXcreatedByX_toXaX_propertyXweight_2X
"g.V(v1Id).as('a').out('created').addE('createdBy').to('a').property('weight', 2.0d)"
Expand Down Expand Up @@ -78,7 +78,7 @@
(defn get_g_withSideEffectXx__g_V_toListX_addOutEXexistsWith_x_time_nowX
"g.withSideEffect('x', g.V().toList()).V().addOutE('existsWith', 'x', 'time', 'now')"
[g]
(q/traverse g (q/with-side-effect :x (.toList (q/traverse g (q/V))))
(q/traverse g (q/with-side-effect :x ^List (.toList ^Traversal (q/traverse g (q/V))))
(q/V)
(q/addE :existsWith)
(q/from :x)
Expand Down
30 changes: 30 additions & 0 deletions test/clojure/clojurewerkz/ogre/suite/aggregate_test.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
(ns clojurewerkz.ogre.suite.aggregate-test
(:refer-clojure :exclude [and count drop filter group-by key key identity iterate loop map max min next not or range repeat reverse shuffle])
(:require [clojure.test :refer [deftest testing is]]
[clojurewerkz.ogre.core :as q])
(:import (org.apache.tinkerpop.gremlin.structure T Vertex)
(org.apache.tinkerpop.gremlin.process.traversal P)))

(defn get_g_V_name_aggregateXxX_capXxX
"g.V().values('name').aggregate('x').cap('x')"
[g]
(q/traverse g (q/V)
(q/values :name)
(q/aggregate :x)
(q/cap :x)))

(defn get_g_V_out_aggregateXaX_path
"g.V().out().aggregate('a').path()"
[g]
(q/traverse g (q/V)
(q/out)
(q/aggregate :a)
(q/path)))

(defn get_g_V_aggregateXxX_byXnameX_capXxX
"g.V().aggregate('x').by('name').cap('x')"
[g]
(q/traverse g (q/V)
(q/aggregate :x)
(q/by :name)
(q/cap :x)))
4 changes: 2 additions & 2 deletions test/clojure/clojurewerkz/ogre/suite/graph_test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
(:require [clojure.test :refer [deftest testing is]]
[clojurewerkz.ogre.core :as q])
(:import (org.apache.tinkerpop.gremlin.structure T Vertex)
(org.apache.tinkerpop.gremlin.process.traversal P)))
(org.apache.tinkerpop.gremlin.process.traversal P Traversal)))

(defn get_g_V_hasXname_GarciaX_inXsungByX_asXsongX_V_hasXname_Willie_DixonX_inXwrittenByX_whereXeqXsongXX_name
"g.V().has('artist', 'name', 'Garcia').in('sungBy').as('song')
Expand All @@ -23,7 +23,7 @@
[g]
(q/traverse g (q/V)
(q/has-label :person) (q/as :p)
(q/midV (.toList (q/traverse g (q/V) (q/has-label :software))))
(q/midV ^List (.toList ^Traversal (q/traverse g (q/V) (q/has-label :software))))
(q/addE :uses)
(q/from :p)))

Expand Down
2 changes: 1 addition & 1 deletion test/clojure/clojurewerkz/ogre/suite/has_test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
(org.apache.tinkerpop.gremlin.process.traversal P Traverser)))

(defn get_g_V_outXcreatedX_hasXname__mapXlengthX_isXgtX3XXX_name
"g.V().out(\"created\").has(\"name\", __.<String, Integer>map(s -> s.get().length()).is(P.gt(3))).values(\"name\")"
"g.V().out(\"created\").has(\"name\", __.map(s -> s.get().length()).is(P.gt(3))).values(\"name\")"
[g]
(q/traverse g (q/V)
(q/out :created)
Expand Down
14 changes: 7 additions & 7 deletions test/clojure/clojurewerkz/ogre/suite/map_test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -3,36 +3,36 @@
(:require [clojure.test :refer [deftest testing is]]
[clojurewerkz.ogre.core :as q])
(:import (org.apache.tinkerpop.gremlin.structure T Vertex)
(org.apache.tinkerpop.gremlin.process.traversal P Traverser)))
(org.apache.tinkerpop.gremlin.process.traversal P Path Traverser)))

(defn get_g_VX1X_out_mapXnameX_mapXlengthX
"g.V(v1Id).out().map(v -> v.get().value('name')).map(n -> n.get().toString().length())"
[g v1Id]
(q/traverse g (q/V v1Id)
(q/out)
(q/map (fn [^Traverser v] (.value (.get v) "name")))
(q/map (fn [^Traverser n] (.length (.toString (.get n)))))))
(q/map (fn [^Traverser v] (.value ^Vertex (.get v) "name")))
(q/map (fn [^Traverser n] (.length ^String (.toString ^Object (.get n)))))))

(defn get_g_withPath_V_asXaX_out_out_mapXa_name_it_nameX
"g.withPath().V().as('a').out().out().map(v -> v.path('a').value('name') + v.get().value('name'))"
[g]
(q/traverse g (q/with-path) (q/V) (q/as :a)
(q/out)
(q/out)
(q/map (fn [^Traverser v] (str (.value (.path v "a") "name") (.value (.get v) "name"))))))
(q/map (fn [^Traverser v] (str (.value ^Vertex (.path v "a") "name") (.value ^Vertex (.get v) "name"))))))

(defn get_g_withPath_V_asXaX_out_mapXa_nameX
"g.withPath().V().as('a').out().map(v -> v.path('a').value('name'))"
[g]
(q/traverse g (q/with-path) (q/V) (q/as :a)
(q/out)
(q/map (fn [^Traverser v] (.value (.path v "a") "name")))))
(q/map (fn [^Traverser v] (.value ^Vertex (.path v "a") "name")))))

(defn get_g_VX1X_mapXnameX
"g.V(v1Id).map(v -> v.get().value('name'))"
[g v1Id]
(q/traverse g (q/V v1Id)
(q/map (fn [^Traverser v] (.value (.get v) "name")))))
(q/map (fn [^Traverser v] (.value ^Vertex (.get v) "name")))))

(defn get_g_V_mapXselectXaXX
"g.V().as('a').map(select('a'))"
Expand All @@ -46,4 +46,4 @@
(q/traverse g (q/V v1Id)
(q/outE)
(q/label)
(q/map (fn [l] (.length (.get l))))))
(q/map (fn [^Traverser l] (.length ^String (.get l))))))
31 changes: 31 additions & 0 deletions test/clojure/clojurewerkz/ogre/suite/min_test.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
(ns clojurewerkz.ogre.suite.min-test
(:refer-clojure :exclude [and count drop filter group-by key key identity iterate loop map max min next not or range repeat reverse shuffle])
(:require [clojure.test :refer [deftest testing is]]
[clojurewerkz.ogre.core :as q])
(:import (org.apache.tinkerpop.gremlin.structure T Vertex)
(org.apache.tinkerpop.gremlin.process.traversal P)))

(defn get_g_V_repeatXbothX_timesX5X_age_min
"g.V().repeat(both()).times(5).values('age').min()"
[g]
(q/traverse g (q/V)
(q/repeat (q/__ (q/both)))
(q/times 5)
(q/values :age)
(q/min)))

(defn get_g_V_hasLabelXsoftwareX_group_byXnameX_byXbothE_weight_minX
"g.V().hasLabel('software').group().by('name').by(bothE().values('weight').min())"
[g]
(q/traverse g (q/V)
(q/has-label :software)
(q/group)
(q/by :name)
(q/by (q/__ (q/bothE) (q/values :weight) (q/min)))))

(defn get_g_V_age_min
"g.V().values('age').min()"
[g]
(q/traverse g (q/V)
(q/values :age)
(q/min)))
Loading

0 comments on commit 6cf4989

Please sign in to comment.