You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by ke...@apache.org on 2024/07/23 17:29:02 UTC
(tinkerpop) 01/01: Update tests to reflect v4 serialization types
This is an automated email from the ASF dual-hosted git repository.
kenhuuu pushed a commit to branch v4-io-test
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
commit 14bc366f815d587deb32389a3b4e74010aacdfc6
Author: Ken Hu <10...@users.noreply.github.com>
AuthorDate: Tue Jul 23 10:14:49 2024 -0700
Update tests to reflect v4 serialization types
---
.../structure/graphbinary/bulked-traverser-v4.gbin | Bin 0 -> 81 bytes
.../structure/graphbinary/edge-property-v4.gbin | Bin 0 -> 19 bytes
.../structure/graphbinary/empty-binary-v4.gbin | Bin 0 -> 6 bytes
.../structure/graphbinary/empty-bulkset-v4.gbin | Bin 0 -> 6 bytes
.../structure/graphbinary/empty-list-v4.gbin | Bin 0 -> 6 bytes
.../structure/graphbinary/empty-map-v4.gbin | Bin 0 -> 6 bytes
.../structure/graphbinary/empty-path-v4.gbin | Bin 0 -> 14 bytes
.../structure/graphbinary/empty-set-v4.gbin | Bin 0 -> 6 bytes
.../structure/graphbinary/empty-traverser-v4.gbin | Bin 0 -> 12 bytes
.../structure/graphbinary/forever-duration-v4.gbin | Bin 0 -> 14 bytes
.../gremlin/structure/graphbinary/max-byte-v4.gbin | Bin 0 -> 3 bytes
.../gremlin/structure/graphbinary/max-date-v4.gbin | Bin 0 -> 10 bytes
.../structure/graphbinary/max-double-v4.gbin | Bin 0 -> 10 bytes
.../structure/graphbinary/max-float-v4.gbin | Bin 0 -> 6 bytes
.../gremlin/structure/graphbinary/max-int-v4.gbin | Bin 0 -> 6 bytes
.../gremlin/structure/graphbinary/max-long-v4.gbin | Bin 0 -> 10 bytes
.../graphbinary/max-offsetdatetime-v4.gbin | Bin 0 -> 20 bytes
.../structure/graphbinary/max-short-v4.gbin | Bin 0 -> 4 bytes
.../graphbinary/meta-vertexproperty-v4.gbin | Bin 0 -> 55 bytes
.../gremlin/structure/graphbinary/min-byte-v4.gbin | Bin 0 -> 3 bytes
.../gremlin/structure/graphbinary/min-date-v4.gbin | Bin 0 -> 10 bytes
.../structure/graphbinary/min-double-v4.gbin | Bin 0 -> 10 bytes
.../structure/graphbinary/min-float-v4.gbin | Bin 0 -> 6 bytes
.../gremlin/structure/graphbinary/min-int-v4.gbin | Bin 0 -> 6 bytes
.../gremlin/structure/graphbinary/min-long-v4.gbin | Bin 0 -> 10 bytes
.../graphbinary/min-offsetdatetime-v4.gbin | Bin 0 -> 20 bytes
.../structure/graphbinary/min-short-v4.gbin | Bin 0 -> 4 bytes
.../structure/graphbinary/nan-double-v4.gbin | Bin 0 -> 10 bytes
.../structure/graphbinary/nan-float-v4.gbin | Bin 0 -> 6 bytes
.../structure/graphbinary/neg-bigdecimal-v4.gbin | Bin 0 -> 25 bytes
.../structure/graphbinary/neg-biginteger-v4.gbin | Bin 0 -> 21 bytes
.../structure/graphbinary/neg-inf-double-v4.gbin | Bin 0 -> 10 bytes
.../structure/graphbinary/neg-inf-float-v4.gbin | Bin 0 -> 6 bytes
.../structure/graphbinary/neg-max-double-v4.gbin | Bin 0 -> 10 bytes
.../structure/graphbinary/neg-max-float-v4.gbin | Bin 0 -> 6 bytes
.../structure/graphbinary/neg-min-double-v4.gbin | Bin 0 -> 10 bytes
.../structure/graphbinary/neg-min-float-v4.gbin | Bin 0 -> 6 bytes
.../gremlin/structure/graphbinary/nil-uuid-v4.gbin | Bin 0 -> 18 bytes
.../structure/graphbinary/no-prop-edge-v4.gbin | Bin 0 -> 62 bytes
.../structure/graphbinary/no-prop-vertex-v4.gbin | Bin 0 -> 24 bytes
.../structure/graphbinary/null-property-v4.gbin | Bin 0 -> 10 bytes
.../structure/graphbinary/pos-bigdecimal-v4.gbin | Bin 0 -> 25 bytes
.../structure/graphbinary/pos-biginteger-v4.gbin | Bin 0 -> 21 bytes
.../structure/graphbinary/pos-inf-double-v4.gbin | Bin 0 -> 10 bytes
.../structure/graphbinary/pos-inf-float-v4.gbin | Bin 0 -> 6 bytes
.../structure/graphbinary/prop-path-v4.gbin | Bin 0 -> 575 bytes
.../set-cardinality-vertexproperty-v4.gbin | Bin 0 -> 72 bytes
.../structure/graphbinary/specified-uuid-v4.gbin | Bin 0 -> 18 bytes
.../structure/graphbinary/str-binary-v4.gbin | Bin 0 -> 24 bytes
.../structure/graphbinary/tinker-graph-v4.gbin | Bin 0 -> 2264 bytes
.../structure/graphbinary/traversal-edge-v4.gbin | Bin 0 -> 81 bytes
.../structure/graphbinary/traversal-path-v4.gbin | Bin 0 -> 575 bytes
.../structure/graphbinary/traversal-vertex-v4.gbin | Bin 0 -> 405 bytes
.../graphbinary/traversal-vertexproperty-v4.gbin | Bin 0 -> 39 bytes
.../structure/graphbinary/var-bulkset-v4.gbin | Bin 0 -> 43 bytes
.../structure/graphbinary/var-type-list-v4.gbin | Bin 0 -> 29 bytes
.../structure/graphbinary/var-type-map-v4.gbin | Bin 0 -> 79 bytes
.../structure/graphbinary/var-type-set-v4.gbin | Bin 0 -> 29 bytes
.../structure/graphbinary/vertex-traverser-v4.gbin | Bin 0 -> 415 bytes
.../structure/graphbinary/zero-date-v4.gbin | Bin 0 -> 10 bytes
.../structure/graphbinary/zero-duration-v4.gbin | Bin 0 -> 14 bytes
.../graphson/bulked-traverser-v4-no-types.json | 14 +
.../structure/graphson/bulked-traverser-v4.json | 32 +
.../graphson/edge-property-v4-no-types.json | 4 +
.../structure/graphson/edge-property-v4.json | 10 +
.../graphson/empty-binary-v4-no-types.json | 1 +
.../structure/graphson/empty-binary-v4.json | 4 +
.../graphson/empty-bulkset-v4-no-types.json | 1 +
.../structure/graphson/empty-bulkset-v4.json | 4 +
.../structure/graphson/empty-list-v4-no-types.json | 1 +
.../gremlin/structure/graphson/empty-list-v4.json | 4 +
.../structure/graphson/empty-map-v4-no-types.json | 1 +
.../gremlin/structure/graphson/empty-map-v4.json | 4 +
.../structure/graphson/empty-path-v4-no-types.json | 4 +
.../gremlin/structure/graphson/empty-path-v4.json | 13 +
.../structure/graphson/empty-set-v4-no-types.json | 1 +
.../gremlin/structure/graphson/empty-set-v4.json | 4 +
.../graphson/empty-traverser-v4-no-types.json | 4 +
.../structure/graphson/empty-traverser-v4.json | 10 +
.../graphson/forever-duration-v4-no-types.json | 1 +
.../structure/graphson/forever-duration-v4.json | 4 +
.../structure/graphson/max-byte-v4-no-types.json | 1 +
.../gremlin/structure/graphson/max-byte-v4.json | 4 +
.../structure/graphson/max-date-v4-no-types.json | 1 +
.../gremlin/structure/graphson/max-date-v4.json | 4 +
.../structure/graphson/max-double-v4-no-types.json | 1 +
.../gremlin/structure/graphson/max-double-v4.json | 4 +
.../structure/graphson/max-float-v4-no-types.json | 1 +
.../gremlin/structure/graphson/max-float-v4.json | 4 +
.../structure/graphson/max-int-v4-no-types.json | 1 +
.../gremlin/structure/graphson/max-int-v4.json | 4 +
.../structure/graphson/max-long-v4-no-types.json | 1 +
.../gremlin/structure/graphson/max-long-v4.json | 4 +
.../graphson/max-offsetdatetime-v4-no-types.json | 1 +
.../structure/graphson/max-offsetdatetime-v4.json | 4 +
.../structure/graphson/max-short-v4-no-types.json | 1 +
.../gremlin/structure/graphson/max-short-v4.json | 4 +
.../graphson/meta-vertexproperty-v4-no-types.json | 8 +
.../structure/graphson/meta-vertexproperty-v4.json | 14 +
.../structure/graphson/min-byte-v4-no-types.json | 1 +
.../gremlin/structure/graphson/min-byte-v4.json | 4 +
.../structure/graphson/min-date-v4-no-types.json | 1 +
.../gremlin/structure/graphson/min-date-v4.json | 4 +
.../structure/graphson/min-double-v4-no-types.json | 1 +
.../gremlin/structure/graphson/min-double-v4.json | 4 +
.../structure/graphson/min-float-v4-no-types.json | 1 +
.../gremlin/structure/graphson/min-float-v4.json | 4 +
.../structure/graphson/min-int-v4-no-types.json | 1 +
.../gremlin/structure/graphson/min-int-v4.json | 4 +
.../structure/graphson/min-long-v4-no-types.json | 1 +
.../gremlin/structure/graphson/min-long-v4.json | 4 +
.../graphson/min-offsetdatetime-v4-no-types.json | 1 +
.../structure/graphson/min-offsetdatetime-v4.json | 4 +
.../structure/graphson/min-short-v4-no-types.json | 1 +
.../gremlin/structure/graphson/min-short-v4.json | 4 +
.../structure/graphson/nan-double-v4-no-types.json | 1 +
.../gremlin/structure/graphson/nan-double-v4.json | 4 +
.../structure/graphson/nan-float-v4-no-types.json | 1 +
.../gremlin/structure/graphson/nan-float-v4.json | 4 +
.../graphson/neg-bigdecimal-v4-no-types.json | 1 +
.../structure/graphson/neg-bigdecimal-v4.json | 4 +
.../graphson/neg-biginteger-v4-no-types.json | 1 +
.../structure/graphson/neg-biginteger-v4.json | 4 +
.../graphson/neg-inf-double-v4-no-types.json | 1 +
.../structure/graphson/neg-inf-double-v4.json | 4 +
.../graphson/neg-inf-float-v4-no-types.json | 1 +
.../structure/graphson/neg-inf-float-v4.json | 4 +
.../graphson/neg-max-double-v4-no-types.json | 1 +
.../structure/graphson/neg-max-double-v4.json | 4 +
.../graphson/neg-max-float-v4-no-types.json | 1 +
.../structure/graphson/neg-max-float-v4.json | 4 +
.../graphson/neg-min-double-v4-no-types.json | 1 +
.../structure/graphson/neg-min-double-v4.json | 4 +
.../graphson/neg-min-float-v4-no-types.json | 1 +
.../structure/graphson/neg-min-float-v4.json | 4 +
.../structure/graphson/nil-uuid-v4-no-types.json | 1 +
.../gremlin/structure/graphson/nil-uuid-v4.json | 4 +
.../graphson/no-prop-edge-v4-no-types.json | 9 +
.../structure/graphson/no-prop-edge-v4.json | 20 +
.../graphson/no-prop-vertex-v4-no-types.json | 5 +
.../structure/graphson/no-prop-vertex-v4.json | 10 +
.../graphson/null-property-v4-no-types.json | 4 +
.../structure/graphson/null-property-v4.json | 7 +
.../graphson/pos-bigdecimal-v4-no-types.json | 1 +
.../structure/graphson/pos-bigdecimal-v4.json | 4 +
.../graphson/pos-biginteger-v4-no-types.json | 1 +
.../structure/graphson/pos-biginteger-v4.json | 4 +
.../graphson/pos-inf-double-v4-no-types.json | 1 +
.../structure/graphson/pos-inf-double-v4.json | 4 +
.../graphson/pos-inf-float-v4-no-types.json | 1 +
.../structure/graphson/pos-inf-float-v4.json | 4 +
.../structure/graphson/prop-path-v4-no-types.json | 62 ++
.../gremlin/structure/graphson/prop-path-v4.json | 165 ++++
...set-cardinality-vertexproperty-v4-no-types.json | 8 +
.../set-cardinality-vertexproperty-v4.json | 17 +
.../graphson/specified-uuid-v4-no-types.json | 1 +
.../structure/graphson/specified-uuid-v4.json | 4 +
.../structure/graphson/str-binary-v4-no-types.json | 1 +
.../gremlin/structure/graphson/str-binary-v4.json | 4 +
.../graphson/tinker-graph-v4-no-types.json | 313 ++++++++
.../structure/graphson/tinker-graph-v4.json | 829 +++++++++++++++++++++
.../graphson/traversal-edge-v4-no-types.json | 12 +
.../structure/graphson/traversal-edge-v4.json | 32 +
.../graphson/traversal-path-v4-no-types.json | 16 +
.../structure/graphson/traversal-path-v4.json | 49 ++
.../graphson/traversal-vertex-v4-no-types.json | 39 +
.../structure/graphson/traversal-vertex-v4.json | 100 +++
.../traversal-vertexproperty-v4-no-types.json | 5 +
.../graphson/traversal-vertexproperty-v4.json | 11 +
.../graphson/var-bulkset-v4-no-types.json | 1 +
.../gremlin/structure/graphson/var-bulkset-v4.json | 10 +
.../graphson/var-type-list-v4-no-types.json | 1 +
.../structure/graphson/var-type-list-v4.json | 7 +
.../graphson/var-type-map-v4-no-types.json | 0
.../structure/graphson/var-type-map-v4.json | 25 +
.../graphson/var-type-set-v4-no-types.json | 1 +
.../structure/graphson/var-type-set-v4.json | 7 +
.../graphson/vertex-traverser-v4-no-types.json | 42 ++
.../structure/graphson/vertex-traverser-v4.json | 109 +++
.../structure/graphson/zero-date-v4-no-types.json | 1 +
.../gremlin/structure/graphson/zero-date-v4.json | 4 +
.../graphson/zero-duration-v4-no-types.json | 1 +
.../structure/graphson/zero-duration-v4.json | 4 +
.../io/AbstractTypedCompatibilityTest.java | 658 ++++++++--------
.../tinkerpop/gremlin/structure/io/Model.java | 219 +++---
.../graphbinary/GraphBinaryCompatibilityTest.java | 10 +-
.../graphson/GraphSONTypedCompatibilityTest.java | 18 +-
187 files changed, 2652 insertions(+), 487 deletions(-)
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/bulked-traverser-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/bulked-traverser-v4.gbin
new file mode 100644
index 0000000000..ec0a589053
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/bulked-traverser-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/edge-property-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/edge-property-v4.gbin
new file mode 100644
index 0000000000..ddc34e5ae6
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/edge-property-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/empty-binary-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/empty-binary-v4.gbin
new file mode 100644
index 0000000000..bb44d2bb50
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/empty-binary-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/empty-bulkset-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/empty-bulkset-v4.gbin
new file mode 100644
index 0000000000..2f23c6bd4d
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/empty-bulkset-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/empty-list-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/empty-list-v4.gbin
new file mode 100644
index 0000000000..541fdf3033
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/empty-list-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/empty-map-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/empty-map-v4.gbin
new file mode 100644
index 0000000000..671d59ff44
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/empty-map-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/empty-path-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/empty-path-v4.gbin
new file mode 100644
index 0000000000..4f9b5b6f7d
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/empty-path-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/empty-set-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/empty-set-v4.gbin
new file mode 100644
index 0000000000..3426f04e7d
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/empty-set-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/empty-traverser-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/empty-traverser-v4.gbin
new file mode 100644
index 0000000000..c5f3d9af99
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/empty-traverser-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/forever-duration-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/forever-duration-v4.gbin
new file mode 100644
index 0000000000..3b1ba9218f
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/forever-duration-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/max-byte-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/max-byte-v4.gbin
new file mode 100644
index 0000000000..c817f1332c
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/max-byte-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/max-date-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/max-date-v4.gbin
new file mode 100644
index 0000000000..eb7bf90046
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/max-date-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/max-double-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/max-double-v4.gbin
new file mode 100644
index 0000000000..b768fbbd4c
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/max-double-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/max-float-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/max-float-v4.gbin
new file mode 100644
index 0000000000..82c30942b1
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/max-float-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/max-int-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/max-int-v4.gbin
new file mode 100644
index 0000000000..9577d1fb1d
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/max-int-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/max-long-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/max-long-v4.gbin
new file mode 100644
index 0000000000..f30240c34e
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/max-long-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/max-offsetdatetime-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/max-offsetdatetime-v4.gbin
new file mode 100644
index 0000000000..620169668a
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/max-offsetdatetime-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/max-short-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/max-short-v4.gbin
new file mode 100644
index 0000000000..a7d7c33b69
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/max-short-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/meta-vertexproperty-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/meta-vertexproperty-v4.gbin
new file mode 100644
index 0000000000..f06f76cbc4
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/meta-vertexproperty-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/min-byte-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/min-byte-v4.gbin
new file mode 100644
index 0000000000..e51d9ad444
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/min-byte-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/min-date-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/min-date-v4.gbin
new file mode 100644
index 0000000000..860ed36c2c
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/min-date-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/min-double-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/min-double-v4.gbin
new file mode 100644
index 0000000000..a68796faa1
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/min-double-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/min-float-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/min-float-v4.gbin
new file mode 100644
index 0000000000..6637c5056d
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/min-float-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/min-int-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/min-int-v4.gbin
new file mode 100644
index 0000000000..089e2791f1
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/min-int-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/min-long-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/min-long-v4.gbin
new file mode 100644
index 0000000000..c0c1ffac4e
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/min-long-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/min-offsetdatetime-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/min-offsetdatetime-v4.gbin
new file mode 100644
index 0000000000..b915bea8ca
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/min-offsetdatetime-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/min-short-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/min-short-v4.gbin
new file mode 100644
index 0000000000..f4ba58f825
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/min-short-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/nan-double-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/nan-double-v4.gbin
new file mode 100644
index 0000000000..8a0314418e
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/nan-double-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/nan-float-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/nan-float-v4.gbin
new file mode 100644
index 0000000000..7d2d01379e
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/nan-float-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/neg-bigdecimal-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/neg-bigdecimal-v4.gbin
new file mode 100644
index 0000000000..3fda5009e2
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/neg-bigdecimal-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/neg-biginteger-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/neg-biginteger-v4.gbin
new file mode 100644
index 0000000000..464792bbd2
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/neg-biginteger-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/neg-inf-double-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/neg-inf-double-v4.gbin
new file mode 100644
index 0000000000..b60a57f278
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/neg-inf-double-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/neg-inf-float-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/neg-inf-float-v4.gbin
new file mode 100644
index 0000000000..a84b7436ca
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/neg-inf-float-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/neg-max-double-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/neg-max-double-v4.gbin
new file mode 100644
index 0000000000..db658bfcfe
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/neg-max-double-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/neg-max-float-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/neg-max-float-v4.gbin
new file mode 100644
index 0000000000..e6bf5c3074
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/neg-max-float-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/neg-min-double-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/neg-min-double-v4.gbin
new file mode 100644
index 0000000000..7d6b5cf326
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/neg-min-double-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/neg-min-float-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/neg-min-float-v4.gbin
new file mode 100644
index 0000000000..583801e7d7
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/neg-min-float-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/nil-uuid-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/nil-uuid-v4.gbin
new file mode 100644
index 0000000000..828e057cf2
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/nil-uuid-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/no-prop-edge-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/no-prop-edge-v4.gbin
new file mode 100644
index 0000000000..201264742c
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/no-prop-edge-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/no-prop-vertex-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/no-prop-vertex-v4.gbin
new file mode 100644
index 0000000000..cb85436422
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/no-prop-vertex-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/null-property-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/null-property-v4.gbin
new file mode 100644
index 0000000000..12b81db1d5
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/null-property-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/pos-bigdecimal-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/pos-bigdecimal-v4.gbin
new file mode 100644
index 0000000000..a855c662b5
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/pos-bigdecimal-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/pos-biginteger-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/pos-biginteger-v4.gbin
new file mode 100644
index 0000000000..d841fbe39c
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/pos-biginteger-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/pos-inf-double-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/pos-inf-double-v4.gbin
new file mode 100644
index 0000000000..6ccb17151d
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/pos-inf-double-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/pos-inf-float-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/pos-inf-float-v4.gbin
new file mode 100644
index 0000000000..e17e136094
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/pos-inf-float-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/prop-path-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/prop-path-v4.gbin
new file mode 100644
index 0000000000..9306df5aa8
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/prop-path-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/set-cardinality-vertexproperty-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/set-cardinality-vertexproperty-v4.gbin
new file mode 100644
index 0000000000..133922bb45
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/set-cardinality-vertexproperty-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/specified-uuid-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/specified-uuid-v4.gbin
new file mode 100644
index 0000000000..7f1775d996
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/specified-uuid-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/str-binary-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/str-binary-v4.gbin
new file mode 100644
index 0000000000..39793d2360
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/str-binary-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/tinker-graph-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/tinker-graph-v4.gbin
new file mode 100644
index 0000000000..a0a76d1396
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/tinker-graph-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/traversal-edge-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/traversal-edge-v4.gbin
new file mode 100644
index 0000000000..f5404427d4
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/traversal-edge-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/traversal-path-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/traversal-path-v4.gbin
new file mode 100644
index 0000000000..9306df5aa8
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/traversal-path-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/traversal-vertex-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/traversal-vertex-v4.gbin
new file mode 100644
index 0000000000..4347734a13
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/traversal-vertex-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/traversal-vertexproperty-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/traversal-vertexproperty-v4.gbin
new file mode 100644
index 0000000000..8ddbebdefc
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/traversal-vertexproperty-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/var-bulkset-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/var-bulkset-v4.gbin
new file mode 100644
index 0000000000..4542906626
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/var-bulkset-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/var-type-list-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/var-type-list-v4.gbin
new file mode 100644
index 0000000000..273766eaa5
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/var-type-list-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/var-type-map-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/var-type-map-v4.gbin
new file mode 100644
index 0000000000..b91605798e
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/var-type-map-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/var-type-set-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/var-type-set-v4.gbin
new file mode 100644
index 0000000000..0e528d0729
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/var-type-set-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/vertex-traverser-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/vertex-traverser-v4.gbin
new file mode 100644
index 0000000000..2448b5c74f
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/vertex-traverser-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/zero-date-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/zero-date-v4.gbin
new file mode 100644
index 0000000000..d8f5a59290
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/zero-date-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/zero-duration-v4.gbin b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/zero-duration-v4.gbin
new file mode 100644
index 0000000000..2e103d7370
Binary files /dev/null and b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphbinary/zero-duration-v4.gbin differ
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/bulked-traverser-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/bulked-traverser-v4-no-types.json
new file mode 100644
index 0000000000..45197046be
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/bulked-traverser-v4-no-types.json
@@ -0,0 +1,14 @@
+{
+ "bulk" : 7,
+ "value" : {
+ "id" : 11,
+ "label" : "software",
+ "type" : "vertex",
+ "properties" : {
+ "name" : [ {
+ "id" : 5,
+ "value" : "tinkergraph"
+ } ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/bulked-traverser-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/bulked-traverser-v4.json
new file mode 100644
index 0000000000..d1f4f33ab8
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/bulked-traverser-v4.json
@@ -0,0 +1,32 @@
+{
+ "@type" : "g:Traverser",
+ "@value" : {
+ "bulk" : {
+ "@type" : "g:Int64",
+ "@value" : 7
+ },
+ "value" : {
+ "@type" : "g:Vertex",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 11
+ },
+ "label" : "software",
+ "properties" : {
+ "name" : [ {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 5
+ },
+ "value" : "tinkergraph",
+ "label" : "name"
+ }
+ } ]
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/edge-property-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/edge-property-v4-no-types.json
new file mode 100644
index 0000000000..c051c0a8ef
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/edge-property-v4-no-types.json
@@ -0,0 +1,4 @@
+{
+ "key" : "since",
+ "value" : 2009
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/edge-property-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/edge-property-v4.json
new file mode 100644
index 0000000000..296fe3230c
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/edge-property-v4.json
@@ -0,0 +1,10 @@
+{
+ "@type" : "g:Property",
+ "@value" : {
+ "key" : "since",
+ "value" : {
+ "@type" : "g:Int32",
+ "@value" : 2009
+ }
+ }
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-binary-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-binary-v4-no-types.json
new file mode 100644
index 0000000000..3cc762b550
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-binary-v4-no-types.json
@@ -0,0 +1 @@
+""
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-binary-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-binary-v4.json
new file mode 100644
index 0000000000..3fe0ec48bc
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-binary-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "gx:ByteBuffer",
+ "@value" : ""
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-bulkset-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-bulkset-v4-no-types.json
new file mode 100644
index 0000000000..8878e547a7
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-bulkset-v4-no-types.json
@@ -0,0 +1 @@
+[ ]
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-bulkset-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-bulkset-v4.json
new file mode 100644
index 0000000000..f9fb4a5eed
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-bulkset-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "g:BulkSet",
+ "@value" : [ ]
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-list-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-list-v4-no-types.json
new file mode 100644
index 0000000000..8878e547a7
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-list-v4-no-types.json
@@ -0,0 +1 @@
+[ ]
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-list-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-list-v4.json
new file mode 100644
index 0000000000..aacbd803fb
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-list-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "g:List",
+ "@value" : [ ]
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-map-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-map-v4-no-types.json
new file mode 100644
index 0000000000..6f31cf5a2e
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-map-v4-no-types.json
@@ -0,0 +1 @@
+{ }
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-map-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-map-v4.json
new file mode 100644
index 0000000000..2856adc6e7
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-map-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "g:Map",
+ "@value" : [ ]
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-path-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-path-v4-no-types.json
new file mode 100644
index 0000000000..3e3bdbfc27
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-path-v4-no-types.json
@@ -0,0 +1,4 @@
+{
+ "labels" : [ ],
+ "objects" : [ ]
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-path-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-path-v4.json
new file mode 100644
index 0000000000..9cb13f2327
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-path-v4.json
@@ -0,0 +1,13 @@
+{
+ "@type" : "g:Path",
+ "@value" : {
+ "labels" : {
+ "@type" : "g:List",
+ "@value" : [ ]
+ },
+ "objects" : {
+ "@type" : "g:List",
+ "@value" : [ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-set-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-set-v4-no-types.json
new file mode 100644
index 0000000000..8878e547a7
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-set-v4-no-types.json
@@ -0,0 +1 @@
+[ ]
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-set-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-set-v4.json
new file mode 100644
index 0000000000..76789a41ed
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-set-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "g:Set",
+ "@value" : [ ]
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-traverser-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-traverser-v4-no-types.json
new file mode 100644
index 0000000000..29bd471c6d
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-traverser-v4-no-types.json
@@ -0,0 +1,4 @@
+{
+ "bulk" : 0,
+ "value" : null
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-traverser-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-traverser-v4.json
new file mode 100644
index 0000000000..08298d82f3
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/empty-traverser-v4.json
@@ -0,0 +1,10 @@
+{
+ "@type" : "g:Traverser",
+ "@value" : {
+ "bulk" : {
+ "@type" : "g:Int64",
+ "@value" : 0
+ },
+ "value" : null
+ }
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/forever-duration-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/forever-duration-v4-no-types.json
new file mode 100644
index 0000000000..146f1dd430
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/forever-duration-v4-no-types.json
@@ -0,0 +1 @@
+"PT2562047788015215H30M7.999999999S"
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/forever-duration-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/forever-duration-v4.json
new file mode 100644
index 0000000000..ad8ff76989
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/forever-duration-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "gx:Duration",
+ "@value" : "PT2562047788015215H30M7.999999999S"
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-byte-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-byte-v4-no-types.json
new file mode 100644
index 0000000000..405e057083
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-byte-v4-no-types.json
@@ -0,0 +1 @@
+127
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-byte-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-byte-v4.json
new file mode 100644
index 0000000000..b004ec57b7
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-byte-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "gx:Byte",
+ "@value" : 127
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-date-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-date-v4-no-types.json
new file mode 100644
index 0000000000..996d127e59
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-date-v4-no-types.json
@@ -0,0 +1 @@
+9223372036854775807
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-date-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-date-v4.json
new file mode 100644
index 0000000000..3adcbd2ed3
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-date-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "g:Date",
+ "@value" : 9223372036854775807
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-double-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-double-v4-no-types.json
new file mode 100644
index 0000000000..d3770f5172
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-double-v4-no-types.json
@@ -0,0 +1 @@
+1.7976931348623157E308
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-double-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-double-v4.json
new file mode 100644
index 0000000000..37e607b85f
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-double-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "g:Double",
+ "@value" : 1.7976931348623157E308
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-float-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-float-v4-no-types.json
new file mode 100644
index 0000000000..4f37b13857
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-float-v4-no-types.json
@@ -0,0 +1 @@
+3.4028235E38
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-float-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-float-v4.json
new file mode 100644
index 0000000000..b008f1dd77
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-float-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "g:Float",
+ "@value" : 3.4028235E38
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-int-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-int-v4-no-types.json
new file mode 100644
index 0000000000..55a89f5564
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-int-v4-no-types.json
@@ -0,0 +1 @@
+2147483647
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-int-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-int-v4.json
new file mode 100644
index 0000000000..f3bc62c071
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-int-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "g:Int32",
+ "@value" : 2147483647
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-long-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-long-v4-no-types.json
new file mode 100644
index 0000000000..996d127e59
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-long-v4-no-types.json
@@ -0,0 +1 @@
+9223372036854775807
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-long-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-long-v4.json
new file mode 100644
index 0000000000..9bc12dc9d0
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-long-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "g:Int64",
+ "@value" : 9223372036854775807
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-offsetdatetime-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-offsetdatetime-v4-no-types.json
new file mode 100644
index 0000000000..b8617fc167
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-offsetdatetime-v4-no-types.json
@@ -0,0 +1 @@
+"+999999999-12-31T23:59:59.999999999-18:00"
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-offsetdatetime-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-offsetdatetime-v4.json
new file mode 100644
index 0000000000..552963b081
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-offsetdatetime-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "gx:OffsetDateTime",
+ "@value" : "+999999999-12-31T23:59:59.999999999-18:00"
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-short-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-short-v4-no-types.json
new file mode 100644
index 0000000000..850e73f6c5
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-short-v4-no-types.json
@@ -0,0 +1 @@
+32767
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-short-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-short-v4.json
new file mode 100644
index 0000000000..82decf22ad
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/max-short-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "gx:Int16",
+ "@value" : 32767
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/meta-vertexproperty-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/meta-vertexproperty-v4-no-types.json
new file mode 100644
index 0000000000..b56e8b7ee8
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/meta-vertexproperty-v4-no-types.json
@@ -0,0 +1,8 @@
+{
+ "id" : 1,
+ "value" : "stephen",
+ "label" : "person",
+ "properties" : {
+ "a" : "b"
+ }
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/meta-vertexproperty-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/meta-vertexproperty-v4.json
new file mode 100644
index 0000000000..3dfb5842d3
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/meta-vertexproperty-v4.json
@@ -0,0 +1,14 @@
+{
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 1
+ },
+ "value" : "stephen",
+ "label" : "person",
+ "properties" : {
+ "a" : "b"
+ }
+ }
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-byte-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-byte-v4-no-types.json
new file mode 100644
index 0000000000..0595e86704
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-byte-v4-no-types.json
@@ -0,0 +1 @@
+-128
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-byte-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-byte-v4.json
new file mode 100644
index 0000000000..fedaea0d48
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-byte-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "gx:Byte",
+ "@value" : -128
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-date-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-date-v4-no-types.json
new file mode 100644
index 0000000000..9af921bf67
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-date-v4-no-types.json
@@ -0,0 +1 @@
+-9223372036854775808
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-date-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-date-v4.json
new file mode 100644
index 0000000000..e062710a8d
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-date-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "g:Date",
+ "@value" : -9223372036854775808
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-double-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-double-v4-no-types.json
new file mode 100644
index 0000000000..af5e97e6e0
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-double-v4-no-types.json
@@ -0,0 +1 @@
+4.9E-324
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-double-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-double-v4.json
new file mode 100644
index 0000000000..689fe38b61
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-double-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "g:Double",
+ "@value" : 4.9E-324
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-float-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-float-v4-no-types.json
new file mode 100644
index 0000000000..9f2a05f5e3
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-float-v4-no-types.json
@@ -0,0 +1 @@
+1.4E-45
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-float-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-float-v4.json
new file mode 100644
index 0000000000..aa97eff785
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-float-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "g:Float",
+ "@value" : 1.4E-45
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-int-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-int-v4-no-types.json
new file mode 100644
index 0000000000..f6712382ee
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-int-v4-no-types.json
@@ -0,0 +1 @@
+-2147483648
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-int-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-int-v4.json
new file mode 100644
index 0000000000..6e43d75fcd
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-int-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "g:Int32",
+ "@value" : -2147483648
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-long-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-long-v4-no-types.json
new file mode 100644
index 0000000000..9af921bf67
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-long-v4-no-types.json
@@ -0,0 +1 @@
+-9223372036854775808
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-long-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-long-v4.json
new file mode 100644
index 0000000000..1f41b9c3b0
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-long-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "g:Int64",
+ "@value" : -9223372036854775808
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-offsetdatetime-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-offsetdatetime-v4-no-types.json
new file mode 100644
index 0000000000..92e884dfcc
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-offsetdatetime-v4-no-types.json
@@ -0,0 +1 @@
+"-999999999-01-01T00:00+18:00"
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-offsetdatetime-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-offsetdatetime-v4.json
new file mode 100644
index 0000000000..40d58e3cc8
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-offsetdatetime-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "gx:OffsetDateTime",
+ "@value" : "-999999999-01-01T00:00+18:00"
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-short-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-short-v4-no-types.json
new file mode 100644
index 0000000000..1531bbdf1a
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-short-v4-no-types.json
@@ -0,0 +1 @@
+-32768
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-short-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-short-v4.json
new file mode 100644
index 0000000000..065cafa4e6
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/min-short-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "gx:Int16",
+ "@value" : -32768
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/nan-double-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/nan-double-v4-no-types.json
new file mode 100644
index 0000000000..d994c6fb63
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/nan-double-v4-no-types.json
@@ -0,0 +1 @@
+"NaN"
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/nan-double-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/nan-double-v4.json
new file mode 100644
index 0000000000..7b10376544
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/nan-double-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "g:Double",
+ "@value" : "NaN"
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/nan-float-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/nan-float-v4-no-types.json
new file mode 100644
index 0000000000..d994c6fb63
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/nan-float-v4-no-types.json
@@ -0,0 +1 @@
+"NaN"
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/nan-float-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/nan-float-v4.json
new file mode 100644
index 0000000000..b831121e2f
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/nan-float-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "g:Float",
+ "@value" : "NaN"
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-bigdecimal-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-bigdecimal-v4-no-types.json
new file mode 100644
index 0000000000..e6b81107f3
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-bigdecimal-v4-no-types.json
@@ -0,0 +1 @@
+-123.456789987654321123456789987654321
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-bigdecimal-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-bigdecimal-v4.json
new file mode 100644
index 0000000000..31622f7a8d
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-bigdecimal-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "gx:BigDecimal",
+ "@value" : -123.456789987654321123456789987654321
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-biginteger-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-biginteger-v4-no-types.json
new file mode 100644
index 0000000000..e43591aa53
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-biginteger-v4-no-types.json
@@ -0,0 +1 @@
+-123456789987654321123456789987654321
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-biginteger-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-biginteger-v4.json
new file mode 100644
index 0000000000..3cda554ad2
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-biginteger-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "gx:BigInteger",
+ "@value" : -123456789987654321123456789987654321
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-inf-double-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-inf-double-v4-no-types.json
new file mode 100644
index 0000000000..5436817f29
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-inf-double-v4-no-types.json
@@ -0,0 +1 @@
+"-Infinity"
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-inf-double-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-inf-double-v4.json
new file mode 100644
index 0000000000..1c8db0fefd
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-inf-double-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "g:Double",
+ "@value" : "-Infinity"
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-inf-float-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-inf-float-v4-no-types.json
new file mode 100644
index 0000000000..5436817f29
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-inf-float-v4-no-types.json
@@ -0,0 +1 @@
+"-Infinity"
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-inf-float-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-inf-float-v4.json
new file mode 100644
index 0000000000..7eeef1151c
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-inf-float-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "g:Float",
+ "@value" : "-Infinity"
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-max-double-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-max-double-v4-no-types.json
new file mode 100644
index 0000000000..2ba118fd14
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-max-double-v4-no-types.json
@@ -0,0 +1 @@
+-1.7976931348623157E308
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-max-double-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-max-double-v4.json
new file mode 100644
index 0000000000..22ee62b946
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-max-double-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "g:Double",
+ "@value" : -1.7976931348623157E308
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-max-float-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-max-float-v4-no-types.json
new file mode 100644
index 0000000000..284d841655
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-max-float-v4-no-types.json
@@ -0,0 +1 @@
+-3.4028235E38
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-max-float-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-max-float-v4.json
new file mode 100644
index 0000000000..a1fb83b266
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-max-float-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "g:Float",
+ "@value" : -3.4028235E38
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-min-double-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-min-double-v4-no-types.json
new file mode 100644
index 0000000000..5384866d56
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-min-double-v4-no-types.json
@@ -0,0 +1 @@
+-4.9E-324
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-min-double-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-min-double-v4.json
new file mode 100644
index 0000000000..d71c0c4883
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-min-double-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "g:Double",
+ "@value" : -4.9E-324
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-min-float-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-min-float-v4-no-types.json
new file mode 100644
index 0000000000..07809a837a
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-min-float-v4-no-types.json
@@ -0,0 +1 @@
+-1.4E-45
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-min-float-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-min-float-v4.json
new file mode 100644
index 0000000000..49925406e2
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/neg-min-float-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "g:Float",
+ "@value" : -1.4E-45
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/nil-uuid-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/nil-uuid-v4-no-types.json
new file mode 100644
index 0000000000..48410c8b79
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/nil-uuid-v4-no-types.json
@@ -0,0 +1 @@
+"00000000-0000-0000-0000-000000000000"
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/nil-uuid-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/nil-uuid-v4.json
new file mode 100644
index 0000000000..a016ec298d
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/nil-uuid-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "g:UUID",
+ "@value" : "00000000-0000-0000-0000-000000000000"
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/no-prop-edge-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/no-prop-edge-v4-no-types.json
new file mode 100644
index 0000000000..5234e8cfa3
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/no-prop-edge-v4-no-types.json
@@ -0,0 +1,9 @@
+{
+ "id" : 13,
+ "label" : "develops",
+ "type" : "edge",
+ "inVLabel" : "software",
+ "outVLabel" : "person",
+ "inV" : 10,
+ "outV" : 1
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/no-prop-edge-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/no-prop-edge-v4.json
new file mode 100644
index 0000000000..8712885cee
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/no-prop-edge-v4.json
@@ -0,0 +1,20 @@
+{
+ "@type" : "g:Edge",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 13
+ },
+ "label" : "develops",
+ "inVLabel" : "software",
+ "outVLabel" : "person",
+ "inV" : {
+ "@type" : "g:Int32",
+ "@value" : 10
+ },
+ "outV" : {
+ "@type" : "g:Int32",
+ "@value" : 1
+ }
+ }
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/no-prop-vertex-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/no-prop-vertex-v4-no-types.json
new file mode 100644
index 0000000000..a888435f5a
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/no-prop-vertex-v4-no-types.json
@@ -0,0 +1,5 @@
+{
+ "id" : 1,
+ "label" : "person",
+ "type" : "vertex"
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/no-prop-vertex-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/no-prop-vertex-v4.json
new file mode 100644
index 0000000000..2d7fc68651
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/no-prop-vertex-v4.json
@@ -0,0 +1,10 @@
+{
+ "@type" : "g:Vertex",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 1
+ },
+ "label" : "person"
+ }
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/null-property-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/null-property-v4-no-types.json
new file mode 100644
index 0000000000..f46f6838f5
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/null-property-v4-no-types.json
@@ -0,0 +1,4 @@
+{
+ "key" : "",
+ "value" : null
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/null-property-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/null-property-v4.json
new file mode 100644
index 0000000000..bc62d63804
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/null-property-v4.json
@@ -0,0 +1,7 @@
+{
+ "@type" : "g:Property",
+ "@value" : {
+ "key" : "",
+ "value" : null
+ }
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/pos-bigdecimal-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/pos-bigdecimal-v4-no-types.json
new file mode 100644
index 0000000000..80d5076c6b
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/pos-bigdecimal-v4-no-types.json
@@ -0,0 +1 @@
+123.456789987654321123456789987654321
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/pos-bigdecimal-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/pos-bigdecimal-v4.json
new file mode 100644
index 0000000000..fcf7fd8c77
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/pos-bigdecimal-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "gx:BigDecimal",
+ "@value" : 123.456789987654321123456789987654321
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/pos-biginteger-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/pos-biginteger-v4-no-types.json
new file mode 100644
index 0000000000..7914536bc3
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/pos-biginteger-v4-no-types.json
@@ -0,0 +1 @@
+123456789987654321123456789987654321
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/pos-biginteger-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/pos-biginteger-v4.json
new file mode 100644
index 0000000000..58e6114369
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/pos-biginteger-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "gx:BigInteger",
+ "@value" : 123456789987654321123456789987654321
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/pos-inf-double-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/pos-inf-double-v4-no-types.json
new file mode 100644
index 0000000000..f5b43a070e
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/pos-inf-double-v4-no-types.json
@@ -0,0 +1 @@
+"Infinity"
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/pos-inf-double-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/pos-inf-double-v4.json
new file mode 100644
index 0000000000..7c025113c5
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/pos-inf-double-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "g:Double",
+ "@value" : "Infinity"
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/pos-inf-float-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/pos-inf-float-v4-no-types.json
new file mode 100644
index 0000000000..f5b43a070e
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/pos-inf-float-v4-no-types.json
@@ -0,0 +1 @@
+"Infinity"
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/pos-inf-float-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/pos-inf-float-v4.json
new file mode 100644
index 0000000000..61923d9e73
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/pos-inf-float-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "g:Float",
+ "@value" : "Infinity"
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/prop-path-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/prop-path-v4-no-types.json
new file mode 100644
index 0000000000..2eee883b41
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/prop-path-v4-no-types.json
@@ -0,0 +1,62 @@
+{
+ "labels" : [ [ ], [ ], [ ] ],
+ "objects" : [ {
+ "id" : 1,
+ "label" : "person",
+ "type" : "vertex",
+ "properties" : {
+ "name" : [ {
+ "id" : 0,
+ "value" : "marko"
+ } ],
+ "location" : [ {
+ "id" : 6,
+ "value" : "san diego",
+ "properties" : {
+ "startTime" : 1997,
+ "endTime" : 2001
+ }
+ }, {
+ "id" : 7,
+ "value" : "santa cruz",
+ "properties" : {
+ "startTime" : 2001,
+ "endTime" : 2004
+ }
+ }, {
+ "id" : 8,
+ "value" : "brussels",
+ "properties" : {
+ "startTime" : 2004,
+ "endTime" : 2005
+ }
+ }, {
+ "id" : 9,
+ "value" : "santa fe",
+ "properties" : {
+ "startTime" : 2005
+ }
+ } ]
+ }
+ }, {
+ "id" : 10,
+ "label" : "software",
+ "type" : "vertex",
+ "properties" : {
+ "name" : [ {
+ "id" : 4,
+ "value" : "gremlin"
+ } ]
+ }
+ }, {
+ "id" : 11,
+ "label" : "software",
+ "type" : "vertex",
+ "properties" : {
+ "name" : [ {
+ "id" : 5,
+ "value" : "tinkergraph"
+ } ]
+ }
+ } ]
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/prop-path-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/prop-path-v4.json
new file mode 100644
index 0000000000..a4edc99eae
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/prop-path-v4.json
@@ -0,0 +1,165 @@
+{
+ "@type" : "g:Path",
+ "@value" : {
+ "labels" : {
+ "@type" : "g:List",
+ "@value" : [ {
+ "@type" : "g:Set",
+ "@value" : [ ]
+ }, {
+ "@type" : "g:Set",
+ "@value" : [ ]
+ }, {
+ "@type" : "g:Set",
+ "@value" : [ ]
+ } ]
+ },
+ "objects" : {
+ "@type" : "g:List",
+ "@value" : [ {
+ "@type" : "g:Vertex",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 1
+ },
+ "label" : "person",
+ "properties" : {
+ "name" : [ {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 0
+ },
+ "value" : "marko",
+ "label" : "name"
+ }
+ } ],
+ "location" : [ {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 6
+ },
+ "value" : "san diego",
+ "label" : "location",
+ "properties" : {
+ "startTime" : {
+ "@type" : "g:Int32",
+ "@value" : 1997
+ },
+ "endTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2001
+ }
+ }
+ }
+ }, {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 7
+ },
+ "value" : "santa cruz",
+ "label" : "location",
+ "properties" : {
+ "startTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2001
+ },
+ "endTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2004
+ }
+ }
+ }
+ }, {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 8
+ },
+ "value" : "brussels",
+ "label" : "location",
+ "properties" : {
+ "startTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2004
+ },
+ "endTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2005
+ }
+ }
+ }
+ }, {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 9
+ },
+ "value" : "santa fe",
+ "label" : "location",
+ "properties" : {
+ "startTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2005
+ }
+ }
+ }
+ } ]
+ }
+ }
+ }, {
+ "@type" : "g:Vertex",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 10
+ },
+ "label" : "software",
+ "properties" : {
+ "name" : [ {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 4
+ },
+ "value" : "gremlin",
+ "label" : "name"
+ }
+ } ]
+ }
+ }
+ }, {
+ "@type" : "g:Vertex",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 11
+ },
+ "label" : "software",
+ "properties" : {
+ "name" : [ {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 5
+ },
+ "value" : "tinkergraph",
+ "label" : "name"
+ }
+ } ]
+ }
+ }
+ } ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/set-cardinality-vertexproperty-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/set-cardinality-vertexproperty-v4-no-types.json
new file mode 100644
index 0000000000..8a4eb488b4
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/set-cardinality-vertexproperty-v4-no-types.json
@@ -0,0 +1,8 @@
+{
+ "id" : 1,
+ "value" : [ "stephen", "marko" ],
+ "label" : "person",
+ "properties" : {
+ "a" : "b"
+ }
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/set-cardinality-vertexproperty-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/set-cardinality-vertexproperty-v4.json
new file mode 100644
index 0000000000..f768cd84f2
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/set-cardinality-vertexproperty-v4.json
@@ -0,0 +1,17 @@
+{
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 1
+ },
+ "value" : {
+ "@type" : "g:Set",
+ "@value" : [ "stephen", "marko" ]
+ },
+ "label" : "person",
+ "properties" : {
+ "a" : "b"
+ }
+ }
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/specified-uuid-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/specified-uuid-v4-no-types.json
new file mode 100644
index 0000000000..b36ff96647
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/specified-uuid-v4-no-types.json
@@ -0,0 +1 @@
+"41d2e28a-20a4-4ab0-b379-d810dede3786"
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/specified-uuid-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/specified-uuid-v4.json
new file mode 100644
index 0000000000..1cf09f07ac
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/specified-uuid-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "g:UUID",
+ "@value" : "41d2e28a-20a4-4ab0-b379-d810dede3786"
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/str-binary-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/str-binary-v4-no-types.json
new file mode 100644
index 0000000000..e0046e9513
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/str-binary-v4-no-types.json
@@ -0,0 +1 @@
+"c29tZSBieXRlcyBmb3IgeW91"
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/str-binary-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/str-binary-v4.json
new file mode 100644
index 0000000000..57241159a3
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/str-binary-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "gx:ByteBuffer",
+ "@value" : "c29tZSBieXRlcyBmb3IgeW91"
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/tinker-graph-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/tinker-graph-v4-no-types.json
new file mode 100644
index 0000000000..13719f6352
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/tinker-graph-v4-no-types.json
@@ -0,0 +1,313 @@
+{
+ "vertices" : [ {
+ "id" : 1,
+ "label" : "person",
+ "type" : "vertex",
+ "properties" : {
+ "name" : [ {
+ "id" : 0,
+ "value" : "marko"
+ } ],
+ "location" : [ {
+ "id" : 6,
+ "value" : "san diego",
+ "properties" : {
+ "startTime" : 1997,
+ "endTime" : 2001
+ }
+ }, {
+ "id" : 7,
+ "value" : "santa cruz",
+ "properties" : {
+ "startTime" : 2001,
+ "endTime" : 2004
+ }
+ }, {
+ "id" : 8,
+ "value" : "brussels",
+ "properties" : {
+ "startTime" : 2004,
+ "endTime" : 2005
+ }
+ }, {
+ "id" : 9,
+ "value" : "santa fe",
+ "properties" : {
+ "startTime" : 2005
+ }
+ } ]
+ }
+ }, {
+ "id" : 7,
+ "label" : "person",
+ "type" : "vertex",
+ "properties" : {
+ "name" : [ {
+ "id" : 1,
+ "value" : "stephen"
+ } ],
+ "location" : [ {
+ "id" : 10,
+ "value" : "centreville",
+ "properties" : {
+ "startTime" : 1990,
+ "endTime" : 2000
+ }
+ }, {
+ "id" : 11,
+ "value" : "dulles",
+ "properties" : {
+ "startTime" : 2000,
+ "endTime" : 2006
+ }
+ }, {
+ "id" : 12,
+ "value" : "purcellville",
+ "properties" : {
+ "startTime" : 2006
+ }
+ } ]
+ }
+ }, {
+ "id" : 8,
+ "label" : "person",
+ "type" : "vertex",
+ "properties" : {
+ "name" : [ {
+ "id" : 2,
+ "value" : "matthias"
+ } ],
+ "location" : [ {
+ "id" : 13,
+ "value" : "bremen",
+ "properties" : {
+ "startTime" : 2004,
+ "endTime" : 2007
+ }
+ }, {
+ "id" : 14,
+ "value" : "baltimore",
+ "properties" : {
+ "startTime" : 2007,
+ "endTime" : 2011
+ }
+ }, {
+ "id" : 15,
+ "value" : "oakland",
+ "properties" : {
+ "startTime" : 2011,
+ "endTime" : 2014
+ }
+ }, {
+ "id" : 16,
+ "value" : "seattle",
+ "properties" : {
+ "startTime" : 2014
+ }
+ } ]
+ }
+ }, {
+ "id" : 9,
+ "label" : "person",
+ "type" : "vertex",
+ "properties" : {
+ "name" : [ {
+ "id" : 3,
+ "value" : "daniel"
+ } ],
+ "location" : [ {
+ "id" : 17,
+ "value" : "spremberg",
+ "properties" : {
+ "startTime" : 1982,
+ "endTime" : 2005
+ }
+ }, {
+ "id" : 18,
+ "value" : "kaiserslautern",
+ "properties" : {
+ "startTime" : 2005,
+ "endTime" : 2009
+ }
+ }, {
+ "id" : 19,
+ "value" : "aachen",
+ "properties" : {
+ "startTime" : 2009
+ }
+ } ]
+ }
+ }, {
+ "id" : 10,
+ "label" : "software",
+ "type" : "vertex",
+ "properties" : {
+ "name" : [ {
+ "id" : 4,
+ "value" : "gremlin"
+ } ]
+ }
+ }, {
+ "id" : 11,
+ "label" : "software",
+ "type" : "vertex",
+ "properties" : {
+ "name" : [ {
+ "id" : 5,
+ "value" : "tinkergraph"
+ } ]
+ }
+ } ],
+ "edges" : [ {
+ "id" : 13,
+ "label" : "develops",
+ "type" : "edge",
+ "inVLabel" : "software",
+ "outVLabel" : "person",
+ "inV" : 10,
+ "outV" : 1,
+ "properties" : {
+ "since" : 2009
+ }
+ }, {
+ "id" : 14,
+ "label" : "develops",
+ "type" : "edge",
+ "inVLabel" : "software",
+ "outVLabel" : "person",
+ "inV" : 11,
+ "outV" : 1,
+ "properties" : {
+ "since" : 2010
+ }
+ }, {
+ "id" : 15,
+ "label" : "uses",
+ "type" : "edge",
+ "inVLabel" : "software",
+ "outVLabel" : "person",
+ "inV" : 10,
+ "outV" : 1,
+ "properties" : {
+ "skill" : 4
+ }
+ }, {
+ "id" : 16,
+ "label" : "uses",
+ "type" : "edge",
+ "inVLabel" : "software",
+ "outVLabel" : "person",
+ "inV" : 11,
+ "outV" : 1,
+ "properties" : {
+ "skill" : 5
+ }
+ }, {
+ "id" : 17,
+ "label" : "develops",
+ "type" : "edge",
+ "inVLabel" : "software",
+ "outVLabel" : "person",
+ "inV" : 10,
+ "outV" : 7,
+ "properties" : {
+ "since" : 2010
+ }
+ }, {
+ "id" : 18,
+ "label" : "develops",
+ "type" : "edge",
+ "inVLabel" : "software",
+ "outVLabel" : "person",
+ "inV" : 11,
+ "outV" : 7,
+ "properties" : {
+ "since" : 2011
+ }
+ }, {
+ "id" : 19,
+ "label" : "uses",
+ "type" : "edge",
+ "inVLabel" : "software",
+ "outVLabel" : "person",
+ "inV" : 10,
+ "outV" : 7,
+ "properties" : {
+ "skill" : 5
+ }
+ }, {
+ "id" : 20,
+ "label" : "uses",
+ "type" : "edge",
+ "inVLabel" : "software",
+ "outVLabel" : "person",
+ "inV" : 11,
+ "outV" : 7,
+ "properties" : {
+ "skill" : 4
+ }
+ }, {
+ "id" : 21,
+ "label" : "develops",
+ "type" : "edge",
+ "inVLabel" : "software",
+ "outVLabel" : "person",
+ "inV" : 10,
+ "outV" : 8,
+ "properties" : {
+ "since" : 2012
+ }
+ }, {
+ "id" : 22,
+ "label" : "uses",
+ "type" : "edge",
+ "inVLabel" : "software",
+ "outVLabel" : "person",
+ "inV" : 10,
+ "outV" : 8,
+ "properties" : {
+ "skill" : 3
+ }
+ }, {
+ "id" : 23,
+ "label" : "uses",
+ "type" : "edge",
+ "inVLabel" : "software",
+ "outVLabel" : "person",
+ "inV" : 11,
+ "outV" : 8,
+ "properties" : {
+ "skill" : 3
+ }
+ }, {
+ "id" : 24,
+ "label" : "uses",
+ "type" : "edge",
+ "inVLabel" : "software",
+ "outVLabel" : "person",
+ "inV" : 10,
+ "outV" : 9,
+ "properties" : {
+ "skill" : 5
+ }
+ }, {
+ "id" : 25,
+ "label" : "uses",
+ "type" : "edge",
+ "inVLabel" : "software",
+ "outVLabel" : "person",
+ "inV" : 11,
+ "outV" : 9,
+ "properties" : {
+ "skill" : 3
+ }
+ }, {
+ "id" : 26,
+ "label" : "traverses",
+ "type" : "edge",
+ "inVLabel" : "software",
+ "outVLabel" : "software",
+ "inV" : 11,
+ "outV" : 10
+ } ]
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/tinker-graph-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/tinker-graph-v4.json
new file mode 100644
index 0000000000..24e95ed6af
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/tinker-graph-v4.json
@@ -0,0 +1,829 @@
+{
+ "@type" : "tinker:graph",
+ "@value" : {
+ "vertices" : [ {
+ "@type" : "g:Vertex",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 1
+ },
+ "label" : "person",
+ "properties" : {
+ "name" : [ {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 0
+ },
+ "value" : "marko",
+ "label" : "name"
+ }
+ } ],
+ "location" : [ {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 6
+ },
+ "value" : "san diego",
+ "label" : "location",
+ "properties" : {
+ "startTime" : {
+ "@type" : "g:Int32",
+ "@value" : 1997
+ },
+ "endTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2001
+ }
+ }
+ }
+ }, {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 7
+ },
+ "value" : "santa cruz",
+ "label" : "location",
+ "properties" : {
+ "startTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2001
+ },
+ "endTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2004
+ }
+ }
+ }
+ }, {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 8
+ },
+ "value" : "brussels",
+ "label" : "location",
+ "properties" : {
+ "startTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2004
+ },
+ "endTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2005
+ }
+ }
+ }
+ }, {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 9
+ },
+ "value" : "santa fe",
+ "label" : "location",
+ "properties" : {
+ "startTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2005
+ }
+ }
+ }
+ } ]
+ }
+ }
+ }, {
+ "@type" : "g:Vertex",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 7
+ },
+ "label" : "person",
+ "properties" : {
+ "name" : [ {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 1
+ },
+ "value" : "stephen",
+ "label" : "name"
+ }
+ } ],
+ "location" : [ {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 10
+ },
+ "value" : "centreville",
+ "label" : "location",
+ "properties" : {
+ "startTime" : {
+ "@type" : "g:Int32",
+ "@value" : 1990
+ },
+ "endTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2000
+ }
+ }
+ }
+ }, {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 11
+ },
+ "value" : "dulles",
+ "label" : "location",
+ "properties" : {
+ "startTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2000
+ },
+ "endTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2006
+ }
+ }
+ }
+ }, {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 12
+ },
+ "value" : "purcellville",
+ "label" : "location",
+ "properties" : {
+ "startTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2006
+ }
+ }
+ }
+ } ]
+ }
+ }
+ }, {
+ "@type" : "g:Vertex",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 8
+ },
+ "label" : "person",
+ "properties" : {
+ "name" : [ {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 2
+ },
+ "value" : "matthias",
+ "label" : "name"
+ }
+ } ],
+ "location" : [ {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 13
+ },
+ "value" : "bremen",
+ "label" : "location",
+ "properties" : {
+ "startTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2004
+ },
+ "endTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2007
+ }
+ }
+ }
+ }, {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 14
+ },
+ "value" : "baltimore",
+ "label" : "location",
+ "properties" : {
+ "startTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2007
+ },
+ "endTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2011
+ }
+ }
+ }
+ }, {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 15
+ },
+ "value" : "oakland",
+ "label" : "location",
+ "properties" : {
+ "startTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2011
+ },
+ "endTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2014
+ }
+ }
+ }
+ }, {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 16
+ },
+ "value" : "seattle",
+ "label" : "location",
+ "properties" : {
+ "startTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2014
+ }
+ }
+ }
+ } ]
+ }
+ }
+ }, {
+ "@type" : "g:Vertex",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 9
+ },
+ "label" : "person",
+ "properties" : {
+ "name" : [ {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 3
+ },
+ "value" : "daniel",
+ "label" : "name"
+ }
+ } ],
+ "location" : [ {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 17
+ },
+ "value" : "spremberg",
+ "label" : "location",
+ "properties" : {
+ "startTime" : {
+ "@type" : "g:Int32",
+ "@value" : 1982
+ },
+ "endTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2005
+ }
+ }
+ }
+ }, {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 18
+ },
+ "value" : "kaiserslautern",
+ "label" : "location",
+ "properties" : {
+ "startTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2005
+ },
+ "endTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2009
+ }
+ }
+ }
+ }, {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 19
+ },
+ "value" : "aachen",
+ "label" : "location",
+ "properties" : {
+ "startTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2009
+ }
+ }
+ }
+ } ]
+ }
+ }
+ }, {
+ "@type" : "g:Vertex",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 10
+ },
+ "label" : "software",
+ "properties" : {
+ "name" : [ {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 4
+ },
+ "value" : "gremlin",
+ "label" : "name"
+ }
+ } ]
+ }
+ }
+ }, {
+ "@type" : "g:Vertex",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 11
+ },
+ "label" : "software",
+ "properties" : {
+ "name" : [ {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 5
+ },
+ "value" : "tinkergraph",
+ "label" : "name"
+ }
+ } ]
+ }
+ }
+ } ],
+ "edges" : [ {
+ "@type" : "g:Edge",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 13
+ },
+ "label" : "develops",
+ "inVLabel" : "software",
+ "outVLabel" : "person",
+ "inV" : {
+ "@type" : "g:Int32",
+ "@value" : 10
+ },
+ "outV" : {
+ "@type" : "g:Int32",
+ "@value" : 1
+ },
+ "properties" : {
+ "since" : {
+ "@type" : "g:Property",
+ "@value" : {
+ "key" : "since",
+ "value" : {
+ "@type" : "g:Int32",
+ "@value" : 2009
+ }
+ }
+ }
+ }
+ }
+ }, {
+ "@type" : "g:Edge",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 14
+ },
+ "label" : "develops",
+ "inVLabel" : "software",
+ "outVLabel" : "person",
+ "inV" : {
+ "@type" : "g:Int32",
+ "@value" : 11
+ },
+ "outV" : {
+ "@type" : "g:Int32",
+ "@value" : 1
+ },
+ "properties" : {
+ "since" : {
+ "@type" : "g:Property",
+ "@value" : {
+ "key" : "since",
+ "value" : {
+ "@type" : "g:Int32",
+ "@value" : 2010
+ }
+ }
+ }
+ }
+ }
+ }, {
+ "@type" : "g:Edge",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 15
+ },
+ "label" : "uses",
+ "inVLabel" : "software",
+ "outVLabel" : "person",
+ "inV" : {
+ "@type" : "g:Int32",
+ "@value" : 10
+ },
+ "outV" : {
+ "@type" : "g:Int32",
+ "@value" : 1
+ },
+ "properties" : {
+ "skill" : {
+ "@type" : "g:Property",
+ "@value" : {
+ "key" : "skill",
+ "value" : {
+ "@type" : "g:Int32",
+ "@value" : 4
+ }
+ }
+ }
+ }
+ }
+ }, {
+ "@type" : "g:Edge",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 16
+ },
+ "label" : "uses",
+ "inVLabel" : "software",
+ "outVLabel" : "person",
+ "inV" : {
+ "@type" : "g:Int32",
+ "@value" : 11
+ },
+ "outV" : {
+ "@type" : "g:Int32",
+ "@value" : 1
+ },
+ "properties" : {
+ "skill" : {
+ "@type" : "g:Property",
+ "@value" : {
+ "key" : "skill",
+ "value" : {
+ "@type" : "g:Int32",
+ "@value" : 5
+ }
+ }
+ }
+ }
+ }
+ }, {
+ "@type" : "g:Edge",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 17
+ },
+ "label" : "develops",
+ "inVLabel" : "software",
+ "outVLabel" : "person",
+ "inV" : {
+ "@type" : "g:Int32",
+ "@value" : 10
+ },
+ "outV" : {
+ "@type" : "g:Int32",
+ "@value" : 7
+ },
+ "properties" : {
+ "since" : {
+ "@type" : "g:Property",
+ "@value" : {
+ "key" : "since",
+ "value" : {
+ "@type" : "g:Int32",
+ "@value" : 2010
+ }
+ }
+ }
+ }
+ }
+ }, {
+ "@type" : "g:Edge",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 18
+ },
+ "label" : "develops",
+ "inVLabel" : "software",
+ "outVLabel" : "person",
+ "inV" : {
+ "@type" : "g:Int32",
+ "@value" : 11
+ },
+ "outV" : {
+ "@type" : "g:Int32",
+ "@value" : 7
+ },
+ "properties" : {
+ "since" : {
+ "@type" : "g:Property",
+ "@value" : {
+ "key" : "since",
+ "value" : {
+ "@type" : "g:Int32",
+ "@value" : 2011
+ }
+ }
+ }
+ }
+ }
+ }, {
+ "@type" : "g:Edge",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 19
+ },
+ "label" : "uses",
+ "inVLabel" : "software",
+ "outVLabel" : "person",
+ "inV" : {
+ "@type" : "g:Int32",
+ "@value" : 10
+ },
+ "outV" : {
+ "@type" : "g:Int32",
+ "@value" : 7
+ },
+ "properties" : {
+ "skill" : {
+ "@type" : "g:Property",
+ "@value" : {
+ "key" : "skill",
+ "value" : {
+ "@type" : "g:Int32",
+ "@value" : 5
+ }
+ }
+ }
+ }
+ }
+ }, {
+ "@type" : "g:Edge",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 20
+ },
+ "label" : "uses",
+ "inVLabel" : "software",
+ "outVLabel" : "person",
+ "inV" : {
+ "@type" : "g:Int32",
+ "@value" : 11
+ },
+ "outV" : {
+ "@type" : "g:Int32",
+ "@value" : 7
+ },
+ "properties" : {
+ "skill" : {
+ "@type" : "g:Property",
+ "@value" : {
+ "key" : "skill",
+ "value" : {
+ "@type" : "g:Int32",
+ "@value" : 4
+ }
+ }
+ }
+ }
+ }
+ }, {
+ "@type" : "g:Edge",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 21
+ },
+ "label" : "develops",
+ "inVLabel" : "software",
+ "outVLabel" : "person",
+ "inV" : {
+ "@type" : "g:Int32",
+ "@value" : 10
+ },
+ "outV" : {
+ "@type" : "g:Int32",
+ "@value" : 8
+ },
+ "properties" : {
+ "since" : {
+ "@type" : "g:Property",
+ "@value" : {
+ "key" : "since",
+ "value" : {
+ "@type" : "g:Int32",
+ "@value" : 2012
+ }
+ }
+ }
+ }
+ }
+ }, {
+ "@type" : "g:Edge",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 22
+ },
+ "label" : "uses",
+ "inVLabel" : "software",
+ "outVLabel" : "person",
+ "inV" : {
+ "@type" : "g:Int32",
+ "@value" : 10
+ },
+ "outV" : {
+ "@type" : "g:Int32",
+ "@value" : 8
+ },
+ "properties" : {
+ "skill" : {
+ "@type" : "g:Property",
+ "@value" : {
+ "key" : "skill",
+ "value" : {
+ "@type" : "g:Int32",
+ "@value" : 3
+ }
+ }
+ }
+ }
+ }
+ }, {
+ "@type" : "g:Edge",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 23
+ },
+ "label" : "uses",
+ "inVLabel" : "software",
+ "outVLabel" : "person",
+ "inV" : {
+ "@type" : "g:Int32",
+ "@value" : 11
+ },
+ "outV" : {
+ "@type" : "g:Int32",
+ "@value" : 8
+ },
+ "properties" : {
+ "skill" : {
+ "@type" : "g:Property",
+ "@value" : {
+ "key" : "skill",
+ "value" : {
+ "@type" : "g:Int32",
+ "@value" : 3
+ }
+ }
+ }
+ }
+ }
+ }, {
+ "@type" : "g:Edge",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 24
+ },
+ "label" : "uses",
+ "inVLabel" : "software",
+ "outVLabel" : "person",
+ "inV" : {
+ "@type" : "g:Int32",
+ "@value" : 10
+ },
+ "outV" : {
+ "@type" : "g:Int32",
+ "@value" : 9
+ },
+ "properties" : {
+ "skill" : {
+ "@type" : "g:Property",
+ "@value" : {
+ "key" : "skill",
+ "value" : {
+ "@type" : "g:Int32",
+ "@value" : 5
+ }
+ }
+ }
+ }
+ }
+ }, {
+ "@type" : "g:Edge",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 25
+ },
+ "label" : "uses",
+ "inVLabel" : "software",
+ "outVLabel" : "person",
+ "inV" : {
+ "@type" : "g:Int32",
+ "@value" : 11
+ },
+ "outV" : {
+ "@type" : "g:Int32",
+ "@value" : 9
+ },
+ "properties" : {
+ "skill" : {
+ "@type" : "g:Property",
+ "@value" : {
+ "key" : "skill",
+ "value" : {
+ "@type" : "g:Int32",
+ "@value" : 3
+ }
+ }
+ }
+ }
+ }
+ }, {
+ "@type" : "g:Edge",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 26
+ },
+ "label" : "traverses",
+ "inVLabel" : "software",
+ "outVLabel" : "software",
+ "inV" : {
+ "@type" : "g:Int32",
+ "@value" : 11
+ },
+ "outV" : {
+ "@type" : "g:Int32",
+ "@value" : 10
+ }
+ }
+ } ]
+ }
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/traversal-edge-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/traversal-edge-v4-no-types.json
new file mode 100644
index 0000000000..0f7f1682d1
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/traversal-edge-v4-no-types.json
@@ -0,0 +1,12 @@
+{
+ "id" : 13,
+ "label" : "develops",
+ "type" : "edge",
+ "inVLabel" : "software",
+ "outVLabel" : "person",
+ "inV" : 10,
+ "outV" : 1,
+ "properties" : {
+ "since" : 2009
+ }
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/traversal-edge-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/traversal-edge-v4.json
new file mode 100644
index 0000000000..ba1c52eb1e
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/traversal-edge-v4.json
@@ -0,0 +1,32 @@
+{
+ "@type" : "g:Edge",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 13
+ },
+ "label" : "develops",
+ "inVLabel" : "software",
+ "outVLabel" : "person",
+ "inV" : {
+ "@type" : "g:Int32",
+ "@value" : 10
+ },
+ "outV" : {
+ "@type" : "g:Int32",
+ "@value" : 1
+ },
+ "properties" : {
+ "since" : {
+ "@type" : "g:Property",
+ "@value" : {
+ "key" : "since",
+ "value" : {
+ "@type" : "g:Int32",
+ "@value" : 2009
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/traversal-path-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/traversal-path-v4-no-types.json
new file mode 100644
index 0000000000..8919b3e6f4
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/traversal-path-v4-no-types.json
@@ -0,0 +1,16 @@
+{
+ "labels" : [ [ ], [ ], [ ] ],
+ "objects" : [ {
+ "id" : 1,
+ "label" : "person",
+ "type" : "vertex"
+ }, {
+ "id" : 10,
+ "label" : "software",
+ "type" : "vertex"
+ }, {
+ "id" : 11,
+ "label" : "software",
+ "type" : "vertex"
+ } ]
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/traversal-path-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/traversal-path-v4.json
new file mode 100644
index 0000000000..216b39354d
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/traversal-path-v4.json
@@ -0,0 +1,49 @@
+{
+ "@type" : "g:Path",
+ "@value" : {
+ "labels" : {
+ "@type" : "g:List",
+ "@value" : [ {
+ "@type" : "g:Set",
+ "@value" : [ ]
+ }, {
+ "@type" : "g:Set",
+ "@value" : [ ]
+ }, {
+ "@type" : "g:Set",
+ "@value" : [ ]
+ } ]
+ },
+ "objects" : {
+ "@type" : "g:List",
+ "@value" : [ {
+ "@type" : "g:Vertex",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 1
+ },
+ "label" : "person"
+ }
+ }, {
+ "@type" : "g:Vertex",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 10
+ },
+ "label" : "software"
+ }
+ }, {
+ "@type" : "g:Vertex",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 11
+ },
+ "label" : "software"
+ }
+ } ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/traversal-vertex-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/traversal-vertex-v4-no-types.json
new file mode 100644
index 0000000000..a885f58b6f
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/traversal-vertex-v4-no-types.json
@@ -0,0 +1,39 @@
+{
+ "id" : 1,
+ "label" : "person",
+ "type" : "vertex",
+ "properties" : {
+ "name" : [ {
+ "id" : 0,
+ "value" : "marko"
+ } ],
+ "location" : [ {
+ "id" : 6,
+ "value" : "san diego",
+ "properties" : {
+ "startTime" : 1997,
+ "endTime" : 2001
+ }
+ }, {
+ "id" : 7,
+ "value" : "santa cruz",
+ "properties" : {
+ "startTime" : 2001,
+ "endTime" : 2004
+ }
+ }, {
+ "id" : 8,
+ "value" : "brussels",
+ "properties" : {
+ "startTime" : 2004,
+ "endTime" : 2005
+ }
+ }, {
+ "id" : 9,
+ "value" : "santa fe",
+ "properties" : {
+ "startTime" : 2005
+ }
+ } ]
+ }
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/traversal-vertex-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/traversal-vertex-v4.json
new file mode 100644
index 0000000000..f10223032f
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/traversal-vertex-v4.json
@@ -0,0 +1,100 @@
+{
+ "@type" : "g:Vertex",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 1
+ },
+ "label" : "person",
+ "properties" : {
+ "name" : [ {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 0
+ },
+ "value" : "marko",
+ "label" : "name"
+ }
+ } ],
+ "location" : [ {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 6
+ },
+ "value" : "san diego",
+ "label" : "location",
+ "properties" : {
+ "startTime" : {
+ "@type" : "g:Int32",
+ "@value" : 1997
+ },
+ "endTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2001
+ }
+ }
+ }
+ }, {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 7
+ },
+ "value" : "santa cruz",
+ "label" : "location",
+ "properties" : {
+ "startTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2001
+ },
+ "endTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2004
+ }
+ }
+ }
+ }, {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 8
+ },
+ "value" : "brussels",
+ "label" : "location",
+ "properties" : {
+ "startTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2004
+ },
+ "endTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2005
+ }
+ }
+ }
+ }, {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 9
+ },
+ "value" : "santa fe",
+ "label" : "location",
+ "properties" : {
+ "startTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2005
+ }
+ }
+ }
+ } ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/traversal-vertexproperty-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/traversal-vertexproperty-v4-no-types.json
new file mode 100644
index 0000000000..74025a80e8
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/traversal-vertexproperty-v4-no-types.json
@@ -0,0 +1,5 @@
+{
+ "id" : 0,
+ "value" : "marko",
+ "label" : "name"
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/traversal-vertexproperty-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/traversal-vertexproperty-v4.json
new file mode 100644
index 0000000000..af184b1766
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/traversal-vertexproperty-v4.json
@@ -0,0 +1,11 @@
+{
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 0
+ },
+ "value" : "marko",
+ "label" : "name"
+ }
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/var-bulkset-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/var-bulkset-v4-no-types.json
new file mode 100644
index 0000000000..a0517ac6f8
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/var-bulkset-v4-no-types.json
@@ -0,0 +1 @@
+[ "marko", 1, "josh", 2 ]
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/var-bulkset-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/var-bulkset-v4.json
new file mode 100644
index 0000000000..c216a36171
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/var-bulkset-v4.json
@@ -0,0 +1,10 @@
+{
+ "@type" : "g:BulkSet",
+ "@value" : [ "marko", {
+ "@type" : "g:Int64",
+ "@value" : 1
+ }, "josh", {
+ "@type" : "g:Int64",
+ "@value" : 2
+ } ]
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/var-type-list-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/var-type-list-v4-no-types.json
new file mode 100644
index 0000000000..ca5ed041f9
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/var-type-list-v4-no-types.json
@@ -0,0 +1 @@
+[ 1, "person", true, null ]
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/var-type-list-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/var-type-list-v4.json
new file mode 100644
index 0000000000..a940634beb
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/var-type-list-v4.json
@@ -0,0 +1,7 @@
+{
+ "@type" : "g:List",
+ "@value" : [ {
+ "@type" : "g:Int32",
+ "@value" : 1
+ }, "person", true, null ]
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/var-type-map-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/var-type-map-v4-no-types.json
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/var-type-map-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/var-type-map-v4.json
new file mode 100644
index 0000000000..730af8a30f
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/var-type-map-v4.json
@@ -0,0 +1,25 @@
+{
+ "@type" : "g:Map",
+ "@value" : [ {
+ "@type" : "g:Date",
+ "@value" : 1481750076295
+ }, "red", null, null, {
+ "@type" : "g:List",
+ "@value" : [ {
+ "@type" : "g:Int32",
+ "@value" : 1
+ }, {
+ "@type" : "g:Int32",
+ "@value" : 2
+ }, {
+ "@type" : "g:Int32",
+ "@value" : 3
+ } ]
+ }, {
+ "@type" : "g:Date",
+ "@value" : 1481750076295
+ }, "test", {
+ "@type" : "g:Int32",
+ "@value" : 123
+ } ]
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/var-type-set-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/var-type-set-v4-no-types.json
new file mode 100644
index 0000000000..86c07bf39a
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/var-type-set-v4-no-types.json
@@ -0,0 +1 @@
+[ null, 1, "person", true ]
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/var-type-set-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/var-type-set-v4.json
new file mode 100644
index 0000000000..0e7c06755a
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/var-type-set-v4.json
@@ -0,0 +1,7 @@
+{
+ "@type" : "g:Set",
+ "@value" : [ null, {
+ "@type" : "g:Int32",
+ "@value" : 1
+ }, "person", true ]
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/vertex-traverser-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/vertex-traverser-v4-no-types.json
new file mode 100644
index 0000000000..f521d56714
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/vertex-traverser-v4-no-types.json
@@ -0,0 +1,42 @@
+{
+ "bulk" : 1,
+ "value" : {
+ "id" : 1,
+ "label" : "person",
+ "type" : "vertex",
+ "properties" : {
+ "name" : [ {
+ "id" : 0,
+ "value" : "marko"
+ } ],
+ "location" : [ {
+ "id" : 6,
+ "value" : "san diego",
+ "properties" : {
+ "startTime" : 1997,
+ "endTime" : 2001
+ }
+ }, {
+ "id" : 7,
+ "value" : "santa cruz",
+ "properties" : {
+ "startTime" : 2001,
+ "endTime" : 2004
+ }
+ }, {
+ "id" : 8,
+ "value" : "brussels",
+ "properties" : {
+ "startTime" : 2004,
+ "endTime" : 2005
+ }
+ }, {
+ "id" : 9,
+ "value" : "santa fe",
+ "properties" : {
+ "startTime" : 2005
+ }
+ } ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/vertex-traverser-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/vertex-traverser-v4.json
new file mode 100644
index 0000000000..a59a29e9da
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/vertex-traverser-v4.json
@@ -0,0 +1,109 @@
+{
+ "@type" : "g:Traverser",
+ "@value" : {
+ "bulk" : {
+ "@type" : "g:Int64",
+ "@value" : 1
+ },
+ "value" : {
+ "@type" : "g:Vertex",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int32",
+ "@value" : 1
+ },
+ "label" : "person",
+ "properties" : {
+ "name" : [ {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 0
+ },
+ "value" : "marko",
+ "label" : "name"
+ }
+ } ],
+ "location" : [ {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 6
+ },
+ "value" : "san diego",
+ "label" : "location",
+ "properties" : {
+ "startTime" : {
+ "@type" : "g:Int32",
+ "@value" : 1997
+ },
+ "endTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2001
+ }
+ }
+ }
+ }, {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 7
+ },
+ "value" : "santa cruz",
+ "label" : "location",
+ "properties" : {
+ "startTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2001
+ },
+ "endTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2004
+ }
+ }
+ }
+ }, {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 8
+ },
+ "value" : "brussels",
+ "label" : "location",
+ "properties" : {
+ "startTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2004
+ },
+ "endTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2005
+ }
+ }
+ }
+ }, {
+ "@type" : "g:VertexProperty",
+ "@value" : {
+ "id" : {
+ "@type" : "g:Int64",
+ "@value" : 9
+ },
+ "value" : "santa fe",
+ "label" : "location",
+ "properties" : {
+ "startTime" : {
+ "@type" : "g:Int32",
+ "@value" : 2005
+ }
+ }
+ }
+ } ]
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/zero-date-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/zero-date-v4-no-types.json
new file mode 100644
index 0000000000..c227083464
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/zero-date-v4-no-types.json
@@ -0,0 +1 @@
+0
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/zero-date-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/zero-date-v4.json
new file mode 100644
index 0000000000..14f354ddf4
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/zero-date-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "g:Date",
+ "@value" : 0
+}
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/zero-duration-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/zero-duration-v4-no-types.json
new file mode 100644
index 0000000000..3745d35cd2
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/zero-duration-v4-no-types.json
@@ -0,0 +1 @@
+"PT0S"
\ No newline at end of file
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/zero-duration-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/zero-duration-v4.json
new file mode 100644
index 0000000000..e14db84027
--- /dev/null
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/graphson/zero-duration-v4.json
@@ -0,0 +1,4 @@
+{
+ "@type" : "gx:Duration",
+ "@value" : "PT0S"
+}
\ No newline at end of file
diff --git a/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/structure/io/AbstractTypedCompatibilityTest.java b/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/structure/io/AbstractTypedCompatibilityTest.java
index ba6ebec154..e881776185 100644
--- a/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/structure/io/AbstractTypedCompatibilityTest.java
+++ b/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/structure/io/AbstractTypedCompatibilityTest.java
@@ -88,20 +88,21 @@ import static org.junit.Assume.assumeThat;
public abstract class AbstractTypedCompatibilityTest extends AbstractCompatibilityTest {
@Test
- public void shouldReadWriteBarrier() throws Exception {
- final String resourceName = "barrier";
+ public void shouldReadWritePositiveBigDecimal() throws Exception {
+ final String resourceName = "pos-bigdecimal";
- final SackFunctions.Barrier resource = findModelEntryObject(resourceName);
- final SackFunctions.Barrier fromStatic = read(readFromResource(resourceName), SackFunctions.Barrier.class);
- final SackFunctions.Barrier recycled = read(write(fromStatic, SackFunctions.Barrier.class, resourceName), SackFunctions.Barrier.class);
+ final BigDecimal resource = findModelEntryObject(resourceName);
+ final BigDecimal fromStatic = read(readFromResource(resourceName), BigDecimal.class);
+ final BigDecimal recycled = read(write(fromStatic, BigDecimal.class, resourceName), BigDecimal.class);
+ assertNotSame(fromStatic, recycled);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
assertEquals(resource, recycled);
}
@Test
- public void shouldReadWriteBigDecimal() throws Exception {
- final String resourceName = "bigdecimal";
+ public void shouldReadWriteNegativeBigDecimal() throws Exception {
+ final String resourceName = "neg-bigdecimal";
final BigDecimal resource = findModelEntryObject(resourceName);
final BigDecimal fromStatic = read(readFromResource(resourceName), BigDecimal.class);
@@ -113,8 +114,21 @@ public abstract class AbstractTypedCompatibilityTest extends AbstractCompatibili
}
@Test
- public void shouldReadWriteBigInteger() throws Exception {
- final String resourceName = "biginteger";
+ public void shouldReadWritePositiveBigInteger() throws Exception {
+ final String resourceName = "pos-biginteger";
+
+ final BigInteger resource = findModelEntryObject(resourceName);
+ final BigInteger fromStatic = read(readFromResource(resourceName), BigInteger.class);
+ final BigInteger recycled = read(write(fromStatic, BigInteger.class, resourceName), BigInteger.class);
+ assertNotSame(fromStatic, recycled);
+ assertEquals(fromStatic, recycled);
+ assertEquals(resource, fromStatic);
+ assertEquals(resource, recycled);
+ }
+
+ @Test
+ public void shouldReadWriteNegativeBigInteger() throws Exception {
+ final String resourceName = "neg-biginteger";
final BigInteger resource = findModelEntryObject(resourceName);
final BigInteger fromStatic = read(readFromResource(resourceName), BigInteger.class);
@@ -126,8 +140,20 @@ public abstract class AbstractTypedCompatibilityTest extends AbstractCompatibili
}
@Test
- public void shouldReadWriteByte() throws Exception {
- final String resourceName = "byte";
+ public void shouldReadWriteMinByte() throws Exception {
+ final String resourceName = "min-byte";
+
+ final Byte resource = findModelEntryObject(resourceName);
+ final Byte fromStatic = read(readFromResource(resourceName), Byte.class);
+ final Byte recycled = read(write(fromStatic, Byte.class, resourceName), Byte.class);
+ assertEquals(fromStatic, recycled);
+ assertEquals(resource, fromStatic);
+ assertEquals(resource, recycled);
+ }
+
+ @Test
+ public void shouldReadWriteMaxByte() throws Exception {
+ final String resourceName = "max-byte";
final Byte resource = findModelEntryObject(resourceName);
final Byte fromStatic = read(readFromResource(resourceName), Byte.class);
@@ -138,8 +164,25 @@ public abstract class AbstractTypedCompatibilityTest extends AbstractCompatibili
}
@Test
- public void shouldReadWriteByteBuffer() throws Exception {
- final String resourceName = "bytebuffer";
+ public void shouldReadWriteEmptyByteBuffer() throws Exception {
+ final String resourceName = "empty-binary";
+
+ final ByteBuffer resource = findModelEntryObject(resourceName);
+ final ByteBuffer fromStatic = read(readFromResource(resourceName), ByteBuffer.class);
+ // have to re-read because once the bytebuffer is flushed to array it will be emptied
+ final ByteBuffer recycled = read(write(read(readFromResource(resourceName), ByteBuffer.class), ByteBuffer.class, resourceName), ByteBuffer.class);
+ assertNotSame(fromStatic, recycled);
+ final byte[] resourceArray = resource.array();
+ final byte[] fromStaticArray = fromStatic.array();
+ final byte[] recycledArray = recycled.array();
+ assertThat(Arrays.equals(fromStaticArray, recycledArray), is(true));
+ assertThat(Arrays.equals(resourceArray, fromStaticArray), is(true));
+ assertThat(Arrays.equals(resourceArray, recycledArray), is(true));
+ }
+
+ @Test
+ public void shouldReadWriteStringByteBuffer() throws Exception {
+ final String resourceName = "str-binary";
final ByteBuffer resource = findModelEntryObject(resourceName);
final ByteBuffer fromStatic = read(readFromResource(resourceName), ByteBuffer.class);
@@ -155,60 +198,64 @@ public abstract class AbstractTypedCompatibilityTest extends AbstractCompatibili
}
@Test
- public void shouldReadWriteCardinality() throws Exception {
- final String resourceName = "cardinality";
+ public void shouldReadWriteMaxDouble() throws Exception {
+ final String resourceName = "max-double";
- final VertexProperty.Cardinality resource = findModelEntryObject(resourceName);
- final VertexProperty.Cardinality fromStatic = read(readFromResource(resourceName), VertexProperty.Cardinality.class);
- final VertexProperty.Cardinality recycled = read(write(fromStatic, VertexProperty.Cardinality.class, resourceName), VertexProperty.Cardinality.class);
+ final Double resource = findModelEntryObject(resourceName);
+ final Double fromStatic = read(readFromResource(resourceName), Double.class);
+ final Double recycled = read(write(fromStatic, Double.class, resourceName), Double.class);
+ assertNotSame(fromStatic, recycled);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
assertEquals(resource, recycled);
}
@Test
- public void shouldReadWriteChar() throws Exception {
- final String resourceName = "char";
+ public void shouldReadWriteMinDouble() throws Exception {
+ final String resourceName = "min-double";
- final Character resource = findModelEntryObject(resourceName);
- final Character fromStatic = read(readFromResource(resourceName), Character.class);
- final Character recycled = read(write(fromStatic, Character.class, resourceName), Character.class);
+ final Double resource = findModelEntryObject(resourceName);
+ final Double fromStatic = read(readFromResource(resourceName), Double.class);
+ final Double recycled = read(write(fromStatic, Double.class, resourceName), Double.class);
+ assertNotSame(fromStatic, recycled);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
assertEquals(resource, recycled);
}
@Test
- public void shouldReadWriteClass() throws Exception {
- final String resourceName = "class";
+ public void shouldReadWriteMaxNegativeDouble() throws Exception {
+ final String resourceName = "neg-max-double";
- final Class resource = findModelEntryObject(resourceName);
- final Class fromStatic = read(readFromResource(resourceName), Class.class);
- final Class recycled = read(write(fromStatic, Class.class, resourceName), Class.class);
+ final Double resource = findModelEntryObject(resourceName);
+ final Double fromStatic = read(readFromResource(resourceName), Double.class);
+ final Double recycled = read(write(fromStatic, Double.class, resourceName), Double.class);
+ assertNotSame(fromStatic, recycled);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
assertEquals(resource, recycled);
}
@Test
- public void shouldReadWriteColumn() throws Exception {
- final String resourceName = "column";
+ public void shouldReadWriteMinNegativeDouble() throws Exception {
+ final String resourceName = "neg-min-double";
- final Column resource = findModelEntryObject(resourceName);
- final Column fromStatic = read(readFromResource(resourceName), Column.class);
- final Column recycled = read(write(fromStatic, Column.class, resourceName), Column.class);
+ final Double resource = findModelEntryObject(resourceName);
+ final Double fromStatic = read(readFromResource(resourceName), Double.class);
+ final Double recycled = read(write(fromStatic, Double.class, resourceName), Double.class);
+ assertNotSame(fromStatic, recycled);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
assertEquals(resource, recycled);
}
@Test
- public void shouldReadWriteDate() throws Exception {
- final String resourceName = "date";
+ public void shouldReadWriteNanDouble() throws Exception {
+ final String resourceName = "nan-double";
- final Date resource = findModelEntryObject(resourceName);
- final Date fromStatic = read(readFromResource(resourceName), Date.class);
- final Date recycled = read(write(fromStatic, Date.class, resourceName), Date.class);
+ final Double resource = findModelEntryObject(resourceName);
+ final Double fromStatic = read(readFromResource(resourceName), Double.class);
+ final Double recycled = read(write(fromStatic, Double.class, resourceName), Double.class);
assertNotSame(fromStatic, recycled);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
@@ -216,20 +263,21 @@ public abstract class AbstractTypedCompatibilityTest extends AbstractCompatibili
}
@Test
- public void shouldReadWriteDirection() throws Exception {
- final String resourceName = "direction";
+ public void shouldReadWritePositiveInfinityDouble() throws Exception {
+ final String resourceName = "pos-inf-double";
- final Direction resource = findModelEntryObject(resourceName);
- final Direction fromStatic = read(readFromResource(resourceName), Direction.class);
- final Direction recycled = read(write(fromStatic, Direction.class, resourceName), Direction.class);
+ final Double resource = findModelEntryObject(resourceName);
+ final Double fromStatic = read(readFromResource(resourceName), Double.class);
+ final Double recycled = read(write(fromStatic, Double.class, resourceName), Double.class);
+ assertNotSame(fromStatic, recycled);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
assertEquals(resource, recycled);
}
@Test
- public void shouldReadWriteDouble() throws Exception {
- final String resourceName = "double";
+ public void shouldReadWriteNegativeInfinityDouble() throws Exception {
+ final String resourceName = "neg-inf-double";
final Double resource = findModelEntryObject(resourceName);
final Double fromStatic = read(readFromResource(resourceName), Double.class);
@@ -241,8 +289,20 @@ public abstract class AbstractTypedCompatibilityTest extends AbstractCompatibili
}
@Test
- public void shouldReadWriteDuration() throws Exception {
- final String resourceName = "duration";
+ public void shouldReadWriteZeroDuration() throws Exception {
+ final String resourceName = "zero-duration";
+
+ final Duration resource = findModelEntryObject(resourceName);
+ final Duration fromStatic = read(readFromResource(resourceName), Duration.class);
+ final Duration recycled = read(write(fromStatic, Duration.class, resourceName), Duration.class);
+ assertEquals(fromStatic, recycled);
+ assertEquals(resource, fromStatic);
+ assertEquals(resource, recycled);
+ }
+
+ @Test
+ public void shouldReadWriteForeverDuration() throws Exception {
+ final String resourceName = "forever-duration";
final Duration resource = findModelEntryObject(resourceName);
final Duration fromStatic = read(readFromResource(resourceName), Duration.class);
@@ -255,7 +315,7 @@ public abstract class AbstractTypedCompatibilityTest extends AbstractCompatibili
@Test
public void shouldReadWriteEdge() throws Exception {
- final String resourceName = "edge";
+ final String resourceName = "traversal-edge";
final Edge resource = findModelEntryObject(resourceName);
final Edge fromStatic = read(readFromResource(resourceName), Edge.class);
@@ -269,37 +329,40 @@ public abstract class AbstractTypedCompatibilityTest extends AbstractCompatibili
}
@Test
- public void shouldReadWriteFloat() throws Exception {
- final String resourceName = "float";
+ public void shouldReadWriteNoPropertyEdge() throws Exception {
+ final String resourceName = "no-prop-edge";
- final Float resource = findModelEntryObject(resourceName);
- final Float fromStatic = read(readFromResource(resourceName), Float.class);
- final Float recycled = read(write(fromStatic, Float.class, resourceName), Float.class);
+ final Edge resource = findModelEntryObject(resourceName);
+ final Edge fromStatic = read(readFromResource(resourceName), Edge.class);
+ final Edge recycled = read(write(fromStatic, Edge.class, resourceName), Edge.class);
assertNotSame(fromStatic, recycled);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
assertEquals(resource, recycled);
+ assertEdge(resource, fromStatic);
+ assertEdge(resource, recycled);
}
@Test
- public void shouldReadWriteINetAddress() throws Exception {
- final String resourceName = "inetaddress";
+ public void shouldReadWriteMaxFloat() throws Exception {
+ final String resourceName = "max-float";
- final InetAddress resource = findModelEntryObject(resourceName);
- final InetAddress fromStatic = read(readFromResource(resourceName), InetAddress.class);
- final InetAddress recycled = read(write(fromStatic, Float.class, resourceName), InetAddress.class);
+ final Float resource = findModelEntryObject(resourceName);
+ final Float fromStatic = read(readFromResource(resourceName), Float.class);
+ final Float recycled = read(write(fromStatic, Float.class, resourceName), Float.class);
+ assertNotSame(fromStatic, recycled);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
assertEquals(resource, recycled);
}
@Test
- public void shouldReadWriteInstant() throws Exception {
- final String resourceName = "instant";
+ public void shouldReadWriteMinFloat() throws Exception {
+ final String resourceName = "min-float";
- final Instant resource = findModelEntryObject(resourceName);
- final Instant fromStatic = read(readFromResource(resourceName), Instant.class);
- final Instant recycled = read(write(fromStatic, Instant.class, resourceName), Instant.class);
+ final Float resource = findModelEntryObject(resourceName);
+ final Float fromStatic = read(readFromResource(resourceName), Float.class);
+ final Float recycled = read(write(fromStatic, Float.class, resourceName), Float.class);
assertNotSame(fromStatic, recycled);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
@@ -307,24 +370,25 @@ public abstract class AbstractTypedCompatibilityTest extends AbstractCompatibili
}
@Test
- public void shouldReadWriteInteger() throws Exception {
- final String resourceName = "integer";
+ public void shouldReadWriteMaxNegativeFloat() throws Exception {
+ final String resourceName = "neg-max-float";
- final Integer resource = findModelEntryObject(resourceName);
- final Integer fromStatic = read(readFromResource(resourceName), Integer.class);
- final Integer recycled = read(write(fromStatic, Integer.class, resourceName), Integer.class);
+ final Float resource = findModelEntryObject(resourceName);
+ final Float fromStatic = read(readFromResource(resourceName), Float.class);
+ final Float recycled = read(write(fromStatic, Float.class, resourceName), Float.class);
+ assertNotSame(fromStatic, recycled);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
assertEquals(resource, recycled);
}
@Test
- public void shouldReadWriteLambda() throws Exception {
- final String resourceName = "lambda";
+ public void shouldReadWriteMinNegativeFloat() throws Exception {
+ final String resourceName = "neg-min-float";
- final Lambda resource = findModelEntryObject(resourceName);
- final Lambda fromStatic = read(readFromResource(resourceName), Lambda.class);
- final Lambda recycled = read(write(fromStatic, Lambda.class, resourceName), Lambda.class);
+ final Float resource = findModelEntryObject(resourceName);
+ final Float fromStatic = read(readFromResource(resourceName), Float.class);
+ final Float recycled = read(write(fromStatic, Float.class, resourceName), Float.class);
assertNotSame(fromStatic, recycled);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
@@ -332,12 +396,12 @@ public abstract class AbstractTypedCompatibilityTest extends AbstractCompatibili
}
@Test
- public void shouldReadWriteLocalDate() throws Exception {
- final String resourceName = "localdate";
+ public void shouldReadWriteNanFloat() throws Exception {
+ final String resourceName = "nan-float";
- final LocalDate resource = findModelEntryObject(resourceName);
- final LocalDate fromStatic = read(readFromResource(resourceName), LocalDate.class);
- final LocalDate recycled = read(write(fromStatic, LocalDate.class, resourceName), LocalDate.class);
+ final Float resource = findModelEntryObject(resourceName);
+ final Float fromStatic = read(readFromResource(resourceName), Float.class);
+ final Float recycled = read(write(fromStatic, Float.class, resourceName), Float.class);
assertNotSame(fromStatic, recycled);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
@@ -345,12 +409,12 @@ public abstract class AbstractTypedCompatibilityTest extends AbstractCompatibili
}
@Test
- public void shouldReadWriteLocalDateTime() throws Exception {
- final String resourceName = "localdatetime";
+ public void shouldReadWritePositiveInfinityFloat() throws Exception {
+ final String resourceName = "pos-inf-float";
- final LocalDateTime resource = findModelEntryObject(resourceName);
- final LocalDateTime fromStatic = read(readFromResource(resourceName), LocalDateTime.class);
- final LocalDateTime recycled = read(write(fromStatic, LocalDateTime.class, resourceName), LocalDateTime.class);
+ final Float resource = findModelEntryObject(resourceName);
+ final Float fromStatic = read(readFromResource(resourceName), Float.class);
+ final Float recycled = read(write(fromStatic, Float.class, resourceName), Float.class);
assertNotSame(fromStatic, recycled);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
@@ -358,12 +422,12 @@ public abstract class AbstractTypedCompatibilityTest extends AbstractCompatibili
}
@Test
- public void shouldReadWriteLocalTime() throws Exception {
- final String resourceName = "localtime";
+ public void shouldReadWriteNegativeInfinityFloat() throws Exception {
+ final String resourceName = "neg-inf-float";
- final LocalTime resource = findModelEntryObject(resourceName);
- final LocalTime fromStatic = read(readFromResource(resourceName), LocalTime.class);
- final LocalTime recycled = read(write(fromStatic, LocalTime.class, resourceName), LocalTime.class);
+ final Float resource = findModelEntryObject(resourceName);
+ final Float fromStatic = read(readFromResource(resourceName), Float.class);
+ final Float recycled = read(write(fromStatic, Float.class, resourceName), Float.class);
assertNotSame(fromStatic, recycled);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
@@ -371,144 +435,123 @@ public abstract class AbstractTypedCompatibilityTest extends AbstractCompatibili
}
@Test
- public void shouldReadWriteLong() throws Exception {
- final String resourceName = "long";
+ public void shouldReadWriteMaxInteger() throws Exception {
+ final String resourceName = "max-int";
- final Long resource = findModelEntryObject(resourceName);
- final Long fromStatic = read(readFromResource(resourceName), Long.class);
- final Long recycled = read(write(fromStatic, Long.class, resourceName), Long.class);
+ final Integer resource = findModelEntryObject(resourceName);
+ final Integer fromStatic = read(readFromResource(resourceName), Integer.class);
+ final Integer recycled = read(write(fromStatic, Integer.class, resourceName), Integer.class);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
assertEquals(resource, recycled);
}
@Test
- public void shouldReadWriteList() throws Exception {
- final String resourceName = "list";
+ public void shouldReadWriteMinInteger() throws Exception {
+ final String resourceName = "min-int";
- assumeThat("GraphSON v2 didn't explicitly have List as a type",
- is(this.getClass().equals(GraphSONTypedCompatibilityTest.class) && getCompatibility().equals("v2")));
-
- final List resource = findModelEntryObject(resourceName);
- final List fromStatic = read(readFromResource(resourceName), List.class);
- final List recycled = read(write(fromStatic, List.class, resourceName), List.class);
+ final Integer resource = findModelEntryObject(resourceName);
+ final Integer fromStatic = read(readFromResource(resourceName), Integer.class);
+ final Integer recycled = read(write(fromStatic, Integer.class, resourceName), Integer.class);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
assertEquals(resource, recycled);
}
@Test
- public void shouldReadWriteMap() throws Exception {
- final String resourceName = "map";
+ public void shouldReadWriteMaxLong() throws Exception {
+ final String resourceName = "max-long";
- assumeThat("GraphSON v2 didn't explicitly have Map as a type",
- is(this.getClass().equals(GraphSONTypedCompatibilityTest.class) && getCompatibility().equals("v2")));
-
- final Map resource = findModelEntryObject(resourceName);
- final Map fromStatic = read(readFromResource(resourceName), Map.class);
- final Map recycled = read(write(fromStatic, Map.class, resourceName), Map.class);
+ final Long resource = findModelEntryObject(resourceName);
+ final Long fromStatic = read(readFromResource(resourceName), Long.class);
+ final Long recycled = read(write(fromStatic, Long.class, resourceName), Long.class);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
assertEquals(resource, recycled);
}
@Test
- public void shouldReadWriteMetrics() throws Exception {
- final String resourceName = "metrics";
+ public void shouldReadWriteMinLong() throws Exception {
+ final String resourceName = "min-long";
- final Metrics fromStatic = read(readFromResource(resourceName), Metrics.class);
- final Metrics recycled = read(write(fromStatic, Metrics.class, resourceName), Metrics.class);
- assertNotSame(fromStatic, recycled);
- // have to do compares on the object read from resources because it has statically calculated values. the
- // "new" one from Model is generated dynamically from a traversal and thus has variations in properties that
- // are based on time
- assertEquals(fromStatic.getAnnotations(), recycled.getAnnotations());
- assertEquals(fromStatic.getCounts(), recycled.getCounts());
- assertEquals(fromStatic.getDuration(TimeUnit.MILLISECONDS), recycled.getDuration(TimeUnit.MILLISECONDS));
- }
-
- @Test
- public void shouldReadWriteMonthDay() throws Exception {
- final String resourceName = "monthday";
-
- final MonthDay resource = findModelEntryObject(resourceName);
- final MonthDay fromStatic = read(readFromResource(resourceName), MonthDay.class);
- final MonthDay recycled = read(write(fromStatic, MonthDay.class, resourceName), MonthDay.class);
- assertNotSame(fromStatic, recycled);
+ final Long resource = findModelEntryObject(resourceName);
+ final Long fromStatic = read(readFromResource(resourceName), Long.class);
+ final Long recycled = read(write(fromStatic, Long.class, resourceName), Long.class);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
assertEquals(resource, recycled);
}
@Test
- public void shouldReadWriteOffsetDateTime() throws Exception {
- final String resourceName = "offsetdatetime";
+ public void shouldReadWriteMultiTypeList() throws Exception {
+ final String resourceName = "var-type-list";
- final OffsetDateTime resource = findModelEntryObject(resourceName);
- final OffsetDateTime fromStatic = read(readFromResource(resourceName), OffsetDateTime.class);
- final OffsetDateTime recycled = read(write(fromStatic, OffsetDateTime.class, resourceName), OffsetDateTime.class);
- assertNotSame(fromStatic, recycled);
+ final List resource = findModelEntryObject(resourceName);
+ final List fromStatic = read(readFromResource(resourceName), List.class);
+ final List recycled = read(write(fromStatic, List.class, resourceName), List.class);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
assertEquals(resource, recycled);
}
@Test
- public void shouldReadWriteOffsetTime() throws Exception {
- final String resourceName = "offsettime";
+ public void shouldReadWriteEmptyList() throws Exception {
+ final String resourceName = "empty-list";
- final OffsetTime resource = findModelEntryObject(resourceName);
- final OffsetTime fromStatic = read(readFromResource(resourceName), OffsetTime.class);
- final OffsetTime recycled = read(write(fromStatic, OffsetTime.class, resourceName), OffsetTime.class);
- assertNotSame(fromStatic, recycled);
+ final List resource = findModelEntryObject(resourceName);
+ final List fromStatic = read(readFromResource(resourceName), List.class);
+ final List recycled = read(write(fromStatic, List.class, resourceName), List.class);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
assertEquals(resource, recycled);
}
@Test
- public void shouldReadWriteOperator() throws Exception {
- final String resourceName = "operator";
+ public void shouldReadWriteMultiTypeMap() throws Exception {
+ final String resourceName = "var-type-map";
- final Operator resource = findModelEntryObject(resourceName);
- final Operator fromStatic = read(readFromResource(resourceName), Operator.class);
- final Operator recycled = read(write(fromStatic, Operator.class, resourceName), Operator.class);
+ final Map resource = findModelEntryObject(resourceName);
+ final Map fromStatic = read(readFromResource(resourceName), Map.class);
+ final Map recycled = read(write(fromStatic, Map.class, resourceName), Map.class);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
assertEquals(resource, recycled);
}
@Test
- public void shouldReadWriteOrder() throws Exception {
- final String resourceName = "order";
+ public void shouldReadWriteEmptyMap() throws Exception {
+ final String resourceName = "empty-map";
- final Order resource = findModelEntryObject(resourceName);
- final Order fromStatic = read(readFromResource(resourceName), Order.class);
- final Order recycled = read(write(fromStatic, Order.class, resourceName), Order.class);
+ final Map resource = findModelEntryObject(resourceName);
+ final Map fromStatic = read(readFromResource(resourceName), Map.class);
+ final Map recycled = read(write(fromStatic, Map.class, resourceName), Map.class);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
assertEquals(resource, recycled);
}
+
@Test
- public void shouldReadWriteP() throws Exception {
- final String resourceName = "p";
+ public void shouldReadWriteMaxOffsetDateTime() throws Exception {
+ final String resourceName = "max-offsetdatetime";
- final P resource = findModelEntryObject(resourceName);
- final P fromStatic = read(readFromResource(resourceName), P.class);
- final P recycled = read(write(fromStatic, P.class, resourceName), P.class);
+ final OffsetDateTime resource = findModelEntryObject(resourceName);
+ final OffsetDateTime fromStatic = read(readFromResource(resourceName), OffsetDateTime.class);
+ final OffsetDateTime recycled = read(write(fromStatic, OffsetDateTime.class, resourceName), OffsetDateTime.class);
+ assertNotSame(fromStatic, recycled);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
assertEquals(resource, recycled);
}
@Test
- public void shouldReadWritePAnd() throws Exception {
- final String resourceName = "pand";
+ public void shouldReadWriteMinOffsetDateTime() throws Exception {
+ final String resourceName = "min-offsetdatetime";
- final P resource = findModelEntryObject(resourceName);
- final P fromStatic = read(readFromResource(resourceName), P.class);
- final P recycled = read(write(fromStatic, P.class, resourceName), P.class);
+ final OffsetDateTime resource = findModelEntryObject(resourceName);
+ final OffsetDateTime fromStatic = read(readFromResource(resourceName), OffsetDateTime.class);
+ final OffsetDateTime recycled = read(write(fromStatic, OffsetDateTime.class, resourceName), OffsetDateTime.class);
+ assertNotSame(fromStatic, recycled);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
assertEquals(resource, recycled);
@@ -516,7 +559,7 @@ public abstract class AbstractTypedCompatibilityTest extends AbstractCompatibili
@Test
public void shouldReadWritePath() throws Exception {
- final String resourceName = "path";
+ final String resourceName = "traversal-path";
final Path resource = findModelEntryObject(resourceName);
final Path fromStatic = read(readFromResource(resourceName), Path.class);
@@ -528,45 +571,46 @@ public abstract class AbstractTypedCompatibilityTest extends AbstractCompatibili
}
@Test
- public void shouldReadWritePeriod() throws Exception {
- final String resourceName = "period";
+ public void shouldReadWriteEmptyPath() throws Exception {
+ final String resourceName = "empty-path";
- final Period resource = findModelEntryObject(resourceName);
- final Period fromStatic = read(readFromResource(resourceName), Period.class);
- final Period recycled = read(write(fromStatic, Period.class, resourceName), Period.class);
+ final Path resource = findModelEntryObject(resourceName);
+ final Path fromStatic = read(readFromResource(resourceName), Path.class);
+ final Path recycled = read(write(fromStatic, Path.class, resourceName), Path.class);
assertNotSame(fromStatic, recycled);
assertEquals(fromStatic, recycled);
- assertEquals(resource, fromStatic);
- assertEquals(resource, recycled);
+ assertEquals(fromStatic, resource);
+ assertEquals(recycled, resource);
}
@Test
- public void shouldReadWritePop() throws Exception {
- final String resourceName = "pop";
+ public void shouldReadWritePathWithProperties() throws Exception {
+ final String resourceName = "prop-path";
- final Pop resource = findModelEntryObject(resourceName);
- final Pop fromStatic = read(readFromResource(resourceName), Pop.class);
- final Pop recycled = read(write(fromStatic, Pop.class, resourceName), Pop.class);
+ final Path resource = findModelEntryObject(resourceName);
+ final Path fromStatic = read(readFromResource(resourceName), Path.class);
+ final Path recycled = read(write(fromStatic, Path.class, resourceName), Path.class);
+ assertNotSame(fromStatic, recycled);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
assertEquals(resource, recycled);
}
@Test
- public void shouldReadWritePOr() throws Exception {
- final String resourceName = "por";
+ public void shouldReadWriteEdgeProperty() throws Exception {
+ final String resourceName = "edge-property";
- final P resource = findModelEntryObject(resourceName);
- final P fromStatic = read(readFromResource(resourceName), P.class);
- final P recycled = read(write(fromStatic, P.class, resourceName), P.class);
- assertEquals(fromStatic, recycled);
- assertEquals(resource, fromStatic);
- assertEquals(resource, recycled);
+ final Property resource = findModelEntryObject(resourceName);
+ final Property fromStatic = read(readFromResource(resourceName), Property.class);
+ final Property recycled = read(write(fromStatic, Property.class, resourceName), Property.class);
+ assertNotSame(fromStatic, recycled);
+ assertProperty(resource, fromStatic);
+ assertProperty(resource, recycled);
}
@Test
- public void shouldReadWriteProperty() throws Exception {
- final String resourceName = "property";
+ public void shouldReadWriteNullProperty() throws Exception {
+ final String resourceName = "null-property";
final Property resource = findModelEntryObject(resourceName);
final Property fromStatic = read(readFromResource(resourceName), Property.class);
@@ -577,23 +621,20 @@ public abstract class AbstractTypedCompatibilityTest extends AbstractCompatibili
}
@Test
- public void shouldReadWriteScope() throws Exception {
- final String resourceName = "scope";
+ public void shouldReadWriteMultiTypeSet() throws Exception {
+ final String resourceName = "var-type-set";
- final Scope resource = findModelEntryObject(resourceName);
- final Scope fromStatic = read(readFromResource(resourceName), Scope.class);
- final Scope recycled = read(write(fromStatic, Scope.class, resourceName), Scope.class);
+ final Set resource = findModelEntryObject(resourceName);
+ final Set fromStatic = read(readFromResource(resourceName), Set.class);
+ final Set recycled = read(write(fromStatic, Set.class, resourceName), Set.class);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
assertEquals(resource, recycled);
}
@Test
- public void shouldReadWriteSet() throws Exception {
- final String resourceName = "set";
-
- assumeThat("GraphSON v2 didn't explicitly have Set as a type",
- is(this.getClass().equals(GraphSONTypedCompatibilityTest.class) && getCompatibility().equals("v2")));
+ public void shouldReadWriteEmptySet() throws Exception {
+ final String resourceName = "empty-set";
final Set resource = findModelEntryObject(resourceName);
final Set fromStatic = read(readFromResource(resourceName), Set.class);
@@ -604,8 +645,8 @@ public abstract class AbstractTypedCompatibilityTest extends AbstractCompatibili
}
@Test
- public void shouldReadWriteShort() throws Exception {
- final String resourceName = "short";
+ public void shouldReadWriteMaxShort() throws Exception {
+ final String resourceName = "max-short";
final Short resource = findModelEntryObject(resourceName);
final Short fromStatic = read(readFromResource(resourceName), Short.class);
@@ -616,96 +657,12 @@ public abstract class AbstractTypedCompatibilityTest extends AbstractCompatibili
}
@Test
- public void shouldReadWriteStandardRequestMessage() throws Exception {
- final String resourceName = "standardrequest";
-
- assumeThat("GraphBinary does not test this because Request/ResponseMessage are not actual GraphBinary types",
- this.getClass().equals(GraphBinaryCompatibilityTest.class),
- is(false));
- assumeThat("RequestMessageV4 was supported starting in GraphSONv4",
- getCompatibility(),
- is("v4"));
-
- final RequestMessageV4 resource = findModelEntryObject(resourceName);
- final RequestMessageV4 fromStatic = read(readFromResource(resourceName), RequestMessageV4.class);
- final RequestMessageV4 recycled = read(write(fromStatic, RequestMessageV4.class, resourceName), RequestMessageV4.class);
- assertNotSame(fromStatic, recycled);
- assertRequestMessage(resource, fromStatic, recycled);
- }
-
- @Test
- public void shouldReadWriteStandardExceptionResult() throws Exception {
- final String resourceName = "standardexceptionresult";
-
- assumeThat("GraphBinary does not test this because Request/ResponseMessage are not actual GraphBinary types",
- this.getClass().equals(GraphBinaryCompatibilityTest.class),
- is(false));
- assumeThat("ResponseMessageV4 was supported starting in GraphSONv4",
- getCompatibility(),
- is("v4"));
-
- final GraphSONMessageSerializerV4 gsSerializer = new GraphSONMessageSerializerV4();
- final ByteBuf resourceInBytes = gsSerializer.writeHeader(findModelEntryObject(resourceName), new UnpooledByteBufAllocator(false));
- final ResponseMessageV4 resource = read(resourceInBytes.array(), ResponseMessageV4.class);
- final ResponseMessageV4 fromStatic = read(readFromResource(resourceName), ResponseMessageV4.class);
- final ResponseMessageV4 recycled = read(write(fromStatic, HashMap.class, resourceName), ResponseMessageV4.class);
- assertNotSame(fromStatic, recycled);
- assertResponseMessage(resource, fromStatic, recycled);
- resourceInBytes.release();
- }
-
- @Test
- public void shouldReadWriteStandardResult() throws Exception {
- final String resourceName = "standardresult";
-
- assumeThat("GraphBinary does not test this because Request/ResponseMessage are not actual GraphBinary types",
- this.getClass().equals(GraphBinaryCompatibilityTest.class),
- is(false));
- assumeThat("ResponseMessageV4 was supported starting in GraphSONv4",
- getCompatibility(),
- is("v4"));
-
- final GraphSONMessageSerializerV4 gsSerializer = new GraphSONMessageSerializerV4();
- final ByteBuf resourceInBytes = gsSerializer.writeHeader(findModelEntryObject(resourceName), new UnpooledByteBufAllocator(false));
- final ResponseMessageV4 resource = read(resourceInBytes.array(), ResponseMessageV4.class);
- final ResponseMessageV4 fromStatic = read(readFromResource(resourceName), ResponseMessageV4.class);
- final ResponseMessageV4 recycled = read(write(fromStatic, HashMap.class, resourceName), ResponseMessageV4.class);
- assertNotSame(fromStatic, recycled);
- assertResponseMessage(resource, fromStatic, recycled);
- }
-
- @Test
- public void shouldReadWriteT() throws Exception {
- final String resourceName = "t";
-
- final T resource = findModelEntryObject(resourceName);
- final T fromStatic = read(readFromResource(resourceName), T.class);
- final T recycled = read(write(fromStatic, T.class, resourceName), T.class);
- assertEquals(fromStatic, recycled);
- assertEquals(resource, fromStatic);
- assertEquals(resource, recycled);
- }
-
- @Test
- public void shouldReadWriteTextP() throws Exception {
- final String resourceName = "textp";
-
- final TextP resource = findModelEntryObject(resourceName);
- final TextP fromStatic = read(readFromResource(resourceName), TextP.class);
- final TextP recycled = read(write(fromStatic, TextP.class, resourceName), TextP.class);
- assertEquals(fromStatic, recycled);
- assertEquals(resource, fromStatic);
- assertEquals(resource, recycled);
- }
-
- @Test
- public void shouldReadWriteTimestamp() throws Exception {
- final String resourceName = "timestamp";
+ public void shouldReadWriteMinShort() throws Exception {
+ final String resourceName = "min-short";
- final Timestamp resource = findModelEntryObject(resourceName);
- final Timestamp fromStatic = read(readFromResource(resourceName), Timestamp.class);
- final Timestamp recycled = read(write(fromStatic, Timestamp.class, resourceName), Timestamp.class);
- assertNotSame(fromStatic, recycled);
+ final Short resource = findModelEntryObject(resourceName);
+ final Short fromStatic = read(readFromResource(resourceName), Short.class);
+ final Short recycled = read(write(fromStatic, Short.class, resourceName), Short.class);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
assertEquals(resource, recycled);
@@ -713,7 +670,7 @@ public abstract class AbstractTypedCompatibilityTest extends AbstractCompatibili
@Test
public void shouldReadWriteTinkerGraph() throws Exception {
- final String resourceName = "tinkergraph";
+ final String resourceName = "tinker-graph";
final TinkerGraph fromStatic = read(readFromResource(resourceName), TinkerGraph.class);
final TinkerGraph recycled = read(write(fromStatic, TinkerGraph.class, resourceName), TinkerGraph.class);
@@ -724,28 +681,24 @@ public abstract class AbstractTypedCompatibilityTest extends AbstractCompatibili
}
@Test
- public void shouldReadWriteTraversalMetrics() throws Exception {
- final String resourceName = "traversalmetrics";
+ public void shouldReadWriteVertexTraverser() throws Exception {
+ final String resourceName = "vertex-traverser";
- final TraversalMetrics resource = findModelEntryObject(resourceName);
- final TraversalMetrics fromStatic = read(readFromResource(resourceName), TraversalMetrics.class);
- final TraversalMetrics recycled = read(write(fromStatic, TraversalMetrics.class, resourceName), TraversalMetrics.class);
+ final Traverser resource = findModelEntryObject(resourceName);
+ final Traverser fromStatic = read(readFromResource(resourceName), Traverser.class);
+ final Traverser recycled = read(write(fromStatic, Traverser.class, resourceName), Traverser.class);
assertNotSame(fromStatic, recycled);
-
- // need to assert against each other since the model version can change between test runs as it is dynamically
- // generated
- assertEquals(recycled.getDuration(TimeUnit.MILLISECONDS), fromStatic.getDuration(TimeUnit.MILLISECONDS));
- final Collection<? extends Metrics> resourceMetrics = resource.getMetrics();
- resourceMetrics.forEach(m -> {
- assertEquals(recycled.getMetrics(m.getId()).getAnnotations(), fromStatic.getMetrics(m.getId()).getAnnotations());
- assertEquals(recycled.getMetrics(m.getId()).getName(), fromStatic.getMetrics(m.getId()).getName());
- assertEquals(recycled.getMetrics(m.getId()).getCounts(), fromStatic.getMetrics(m.getId()).getCounts());
- });
+ assertEquals(resource.bulk(), recycled.bulk());
+ assertEquals(resource.bulk(), fromStatic.bulk());
+ assertEquals(resource.get(), recycled.get());
+ assertEquals(resource.get(), fromStatic.get());
+ assertVertex((Vertex) resource.get(), (Vertex) recycled.get());
+ assertVertex((Vertex) resource.get(), (Vertex) fromStatic.get());
}
@Test
- public void shouldReadWriteTraverser() throws Exception {
- final String resourceName = "traverser";
+ public void shouldReadWriteBulkedTraverser() throws Exception {
+ final String resourceName = "bulked-traverser";
final Traverser resource = findModelEntryObject(resourceName);
final Traverser fromStatic = read(readFromResource(resourceName), Traverser.class);
@@ -759,9 +712,25 @@ public abstract class AbstractTypedCompatibilityTest extends AbstractCompatibili
assertVertex((Vertex) resource.get(), (Vertex) fromStatic.get());
}
+ @Test
+ public void shouldReadWriteEmptyTraverser() throws Exception {
+ final String resourceName = "empty-traverser";
+
+ final Traverser resource = findModelEntryObject(resourceName);
+ final Traverser fromStatic = read(readFromResource(resourceName), Traverser.class);
+ final Traverser recycled = read(write(fromStatic, Traverser.class, resourceName), Traverser.class);
+ assertNotSame(fromStatic, recycled);
+ assertEquals(resource.bulk(), recycled.bulk());
+ assertEquals(resource.bulk(), fromStatic.bulk());
+ assertEquals(resource.get(), recycled.get());
+ assertEquals(resource.get(), fromStatic.get());
+ assertEquals(recycled.bulk(), fromStatic.bulk());
+ assertEquals(recycled.get(), fromStatic.get());
+ }
+
@Test
public void shouldReadWriteUUID() throws Exception {
- final String resourceName = "uuid";
+ final String resourceName = "specified-uuid";
final UUID resource = findModelEntryObject(resourceName);
final UUID fromStatic = read(readFromResource(resourceName), UUID.class);
@@ -773,89 +742,90 @@ public abstract class AbstractTypedCompatibilityTest extends AbstractCompatibili
}
@Test
- public void shouldReadWriteVertex() throws Exception {
- final String resourceName = "vertex";
+ public void shouldReadWriteNilUUID() throws Exception {
+ final String resourceName = "nil-uuid";
- final Vertex resource = findModelEntryObject(resourceName);
- final Vertex fromStatic = read(readFromResource(resourceName), Vertex.class);
- final Vertex recycled = read(write(fromStatic, Vertex.class, resourceName), Vertex.class);
+ final UUID resource = findModelEntryObject(resourceName);
+ final UUID fromStatic = read(readFromResource(resourceName), UUID.class);
+ final UUID recycled = read(write(fromStatic, UUID.class, resourceName), UUID.class);
assertNotSame(fromStatic, recycled);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
assertEquals(resource, recycled);
- assertVertex(resource, fromStatic);
- assertVertex(resource, recycled);
}
@Test
- public void shouldReadWriteVertexProperty() throws Exception {
- final String resourceName = "vertexproperty";
+ public void shouldReadWriteVertex() throws Exception {
+ final String resourceName = "traversal-vertex";
- final VertexProperty resource = findModelEntryObject(resourceName);
- final VertexProperty fromStatic = read(readFromResource(resourceName), VertexProperty.class);
- final VertexProperty recycled = read(write(fromStatic, VertexProperty.class, resourceName), VertexProperty.class);
+ final Vertex resource = findModelEntryObject(resourceName);
+ final Vertex fromStatic = read(readFromResource(resourceName), Vertex.class);
+ final Vertex recycled = read(write(fromStatic, Vertex.class, resourceName), Vertex.class);
assertNotSame(fromStatic, recycled);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
assertEquals(resource, recycled);
- assertVertexProperty(resource, recycled);
- assertVertexProperty(resource, fromStatic);
+ assertVertex(resource, fromStatic);
+ assertVertex(resource, recycled);
}
@Test
- public void shouldReadWriteYear() throws Exception {
- final String resourceName = "year";
+ public void shouldReadWriteNoPropertyVertex() throws Exception {
+ final String resourceName = "no-prop-vertex";
- final Year resource = findModelEntryObject(resourceName);
- final Year fromStatic = read(readFromResource(resourceName), Year.class);
- final Year recycled = read(write(fromStatic, Year.class, resourceName), Year.class);
+ final Vertex resource = findModelEntryObject(resourceName);
+ final Vertex fromStatic = read(readFromResource(resourceName), Vertex.class);
+ final Vertex recycled = read(write(fromStatic, Vertex.class, resourceName), Vertex.class);
assertNotSame(fromStatic, recycled);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
assertEquals(resource, recycled);
+ assertVertex(resource, fromStatic);
+ assertVertex(resource, recycled);
}
@Test
- public void shouldReadWriteYearMonth() throws Exception {
- final String resourceName = "yearmonth";
+ public void shouldReadWriteVertexProperty() throws Exception {
+ final String resourceName = "traversal-vertexproperty";
- final YearMonth resource = findModelEntryObject(resourceName);
- final YearMonth fromStatic = read(readFromResource(resourceName), YearMonth.class);
- final YearMonth recycled = read(write(fromStatic, YearMonth.class, resourceName), YearMonth.class);
+ final VertexProperty resource = findModelEntryObject(resourceName);
+ final VertexProperty fromStatic = read(readFromResource(resourceName), VertexProperty.class);
+ final VertexProperty recycled = read(write(fromStatic, VertexProperty.class, resourceName), VertexProperty.class);
assertNotSame(fromStatic, recycled);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
assertEquals(resource, recycled);
+ assertVertexProperty(resource, recycled);
+ assertVertexProperty(resource, fromStatic);
}
@Test
- public void shouldReadWriteZoneDateTime() throws Exception {
- final String resourceName = "zoneddatetime";
-
- // seem to recall this was a known issue for GraphBinary. not going to fuss with it though since the
- // longer term plan is to likely drop these jvm only types.
- assumeThat("GraphBinary doesn't quite serialize ZoneDateTime for a perfect round trip",
- is(getClass().equals(GraphBinaryCompatibilityTest.class)));
+ public void shouldReadWriteMetapropertyVertexProperty() throws Exception {
+ final String resourceName = "meta-vertexproperty";
- final ZonedDateTime resource = findModelEntryObject(resourceName);
- final ZonedDateTime fromStatic = read(readFromResource(resourceName), ZonedDateTime.class);
- final ZonedDateTime recycled = read(write(fromStatic, ZonedDateTime.class, resourceName), ZonedDateTime.class);
+ final VertexProperty resource = findModelEntryObject(resourceName);
+ final VertexProperty fromStatic = read(readFromResource(resourceName), VertexProperty.class);
+ final VertexProperty recycled = read(write(fromStatic, VertexProperty.class, resourceName), VertexProperty.class);
assertNotSame(fromStatic, recycled);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
assertEquals(resource, recycled);
+ assertVertexProperty(resource, recycled);
+ assertVertexProperty(resource, fromStatic);
}
@Test
- public void shouldReadWriteZoneOffset() throws Exception {
- final String resourceName = "zoneoffset";
+ public void shouldReadWriteSetVertexProperty() throws Exception {
+ final String resourceName = "set-cardinality-vertexproperty";
- final ZoneOffset resource = findModelEntryObject(resourceName);
- final ZoneOffset fromStatic = read(readFromResource(resourceName), ZoneOffset.class);
- final ZoneOffset recycled = read(write(fromStatic, ZoneOffset.class, resourceName), ZoneOffset.class);
+ final VertexProperty resource = findModelEntryObject(resourceName);
+ final VertexProperty fromStatic = read(readFromResource(resourceName), VertexProperty.class);
+ final VertexProperty recycled = read(write(fromStatic, VertexProperty.class, resourceName), VertexProperty.class);
assertNotSame(fromStatic, recycled);
assertEquals(fromStatic, recycled);
assertEquals(resource, fromStatic);
assertEquals(resource, recycled);
+ assertVertexProperty(resource, recycled);
+ assertVertexProperty(resource, fromStatic);
}
}
diff --git a/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/structure/io/Model.java b/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/structure/io/Model.java
index 32d74966d6..e2e1ee646d 100644
--- a/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/structure/io/Model.java
+++ b/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/structure/io/Model.java
@@ -31,6 +31,8 @@ import org.apache.tinkerpop.gremlin.process.traversal.Scope;
import org.apache.tinkerpop.gremlin.process.traversal.TextP;
import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
import org.apache.tinkerpop.gremlin.process.traversal.step.util.BulkSet;
+import org.apache.tinkerpop.gremlin.process.traversal.step.util.EmptyPath;
+import org.apache.tinkerpop.gremlin.process.traversal.traverser.util.EmptyTraverser;
import org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversalMetrics;
import org.apache.tinkerpop.gremlin.process.traversal.util.MutableMetrics;
import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalMetrics;
@@ -38,6 +40,10 @@ import org.apache.tinkerpop.gremlin.structure.Column;
import org.apache.tinkerpop.gremlin.structure.Direction;
import org.apache.tinkerpop.gremlin.structure.T;
import org.apache.tinkerpop.gremlin.structure.VertexProperty;
+import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedFactory;
+import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedPath;
+import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedProperty;
+import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertexProperty;
import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerFactory;
import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph;
import org.apache.tinkerpop.gremlin.util.TokensV4;
@@ -48,6 +54,7 @@ import java.io.File;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.net.InetAddress;
+import java.nio.ByteBuffer;
import java.time.Duration;
import java.time.Instant;
import java.time.LocalDate;
@@ -62,6 +69,7 @@ import java.time.YearMonth;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.time.ZonedDateTime;
+import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -78,6 +86,8 @@ import java.util.concurrent.TimeUnit;
import java.util.function.Supplier;
import java.util.stream.Collectors;
+import static org.apache.tinkerpop.gremlin.structure.util.detached.DetachedFactory.detach;
+
/**
* Defines the supported types for IO and the versions (and configurations) to which they apply and are tested.
*
@@ -98,144 +108,103 @@ public class Model {
// IMPORTANT - the "title" or name of the Entry needs to be unique
- addCoreEntry(File.class, "Class", "");
- addCoreEntry(new Date(1481750076295L), "Date");
- addCoreEntry(100.00d, "Double");
- addCoreEntry(100.00f, "Float", "");
- addCoreEntry(100, "Integer");
- addCoreEntry(Arrays.asList(1,"person", true), "List", "List is used to distinguish between different collection types as JSON is not explicit enough for all of Gremlin's requirements.");
- addCoreEntry(100L, "Long", "");
+ addCoreEntry(new Date(0L), "zero-date");
+ addCoreEntry(new Date(Long.MAX_VALUE), "max-date");
+ addCoreEntry(new Date(Long.MIN_VALUE), "min-date");
+
+ addCoreEntry(Double.MAX_VALUE, "max-double");
+ addCoreEntry(Double.MIN_VALUE, "min-double");
+ addCoreEntry(-Double.MAX_VALUE, "neg-max-double");
+ addCoreEntry(-Double.MIN_VALUE, "neg-min-double");
+ addCoreEntry(Double.NaN, "nan-double");
+ addCoreEntry(Double.POSITIVE_INFINITY, "pos-inf-double");
+ addCoreEntry(Double.NEGATIVE_INFINITY, "neg-inf-double");
+
+ addCoreEntry(Float.MAX_VALUE, "max-float");
+ addCoreEntry(Float.MIN_VALUE, "min-float");
+ addCoreEntry(-Float.MAX_VALUE, "neg-max-float");
+ addCoreEntry(-Float.MIN_VALUE, "neg-min-float");
+ addCoreEntry(Float.NaN, "nan-float");
+ addCoreEntry(Float.POSITIVE_INFINITY, "pos-inf-float");
+ addCoreEntry(Float.NEGATIVE_INFINITY, "neg-inf-float");
+
+ addCoreEntry(Integer.MAX_VALUE, "max-int");
+ addCoreEntry(Integer.MIN_VALUE, "min-int");
+
+ addCoreEntry(Long.MAX_VALUE, "max-long");
+ addCoreEntry(Long.MIN_VALUE, "min-long");
+
+ addCoreEntry(Arrays.asList(1, "person", true, null), "var-type-list", "List is used to distinguish between different collection types as JSON is not explicit enough for all of Gremlin's requirements.");
+ addCoreEntry(Collections.EMPTY_LIST, "empty-list");
final Map<Object,Object> map = new HashMap<>();
map.put("test", 123);
map.put(new Date(1481750076295L), "red");
map.put(Arrays.asList(1,2,3), new Date(1481750076295L));
- addCoreEntry(map, "Map", "Map is redefined so that to provide the ability to allow for non-String keys, which is not possible in JSON.");
+ map.put(null, null);
+ addCoreEntry(map, "var-type-map", "Map is redefined so that to provide the ability to allow for non-String keys, which is not possible in JSON.");
+ addCoreEntry(Collections.EMPTY_MAP, "empty-map");
+
+ addCoreEntry(new HashSet<>(Arrays.asList(1,"person", true, null)), "var-type-set", "Allows a JSON collection to behave as a Set.");
+ addCoreEntry(Collections.EMPTY_SET, "empty-set");
+
+ addCoreEntry(UUID.fromString("41d2e28a-20a4-4ab0-b379-d810dede3786"), "specified-uuid");
+ addCoreEntry(new UUID(0, 0), "nil-uuid");
+
+ addGraphStructureEntry(graph.edges().next(), "traversal-edge", "");
+ addGraphStructureEntry(DetachedFactory.detach(graph.edges().next(), false), "no-prop-edge", "");
+
+ addGraphStructureEntry(g.V().out().out().path().next(), "traversal-path", "");
+ addGraphStructureEntry(EmptyPath.instance(), "empty-path", "");
+ addGraphStructureEntry(detach(g.V().out().out().path().next(), true), "prop-path", "");
- addCoreEntry(new HashSet<>(Arrays.asList(1,"person", true)), "Set", "Allows a JSON collection to behave as a Set.");
- addCoreEntry(new java.sql.Timestamp(1481750076295L), "Timestamp", "");
- addCoreEntry(UUID.fromString("41d2e28a-20a4-4ab0-b379-d810dede3786"), "UUID");
+ addGraphStructureEntry(graph.edges().next().properties().next(), "edge-property", "");
+ addGraphStructureEntry(new DetachedProperty<>("", null), "null-property", "");
- addGraphStructureEntry(graph.edges().next(), "Edge", "");
- addGraphStructureEntry(g.V().out().out().path().next(), "Path", "");
- addGraphStructureEntry(graph.edges().next().properties().next(), "Property", "");
- addGraphStructureEntry(graph, "TinkerGraph", "`TinkerGraph` has a custom serializer that is registered as part of the `TinkerIoRegistry`.");
- addGraphStructureEntry(graph.vertices().next(), "Vertex", "");
- addGraphStructureEntry(graph.vertices().next().properties().next(), "VertexProperty", "");
+ addGraphStructureEntry(graph, "tinker-graph", "`TinkerGraph` has a custom serializer that is registered as part of the `TinkerIoRegistry`.");
- addGraphProcessEntry(SackFunctions.Barrier.normSack, "Barrier", "");
+ addGraphStructureEntry(graph.vertices().next(), "traversal-vertex", "");
+ addGraphStructureEntry(DetachedFactory.detach(graph.vertices().next(), false), "no-prop-vertex", "");
+
+ addGraphStructureEntry(graph.vertices().next().properties().next(), "traversal-vertexproperty", "");
+ final Map<String,Object> metaProperties = new HashMap<>();
+ metaProperties.put("a", "b");
+ addGraphStructureEntry(new DetachedVertexProperty<>(1, "person", "stephen", metaProperties), "meta-vertexproperty", "");
+ final Set<Object> setProperty = new HashSet<>();
+ setProperty.add("stephen");
+ setProperty.add("marko");
+ addGraphStructureEntry(new DetachedVertexProperty<>(1, "person", setProperty, metaProperties), "set-cardinality-vertexproperty", "");
final BulkSet<String> bulkSet = new BulkSet<>();
bulkSet.add("marko", 1);
bulkSet.add("josh", 2);
- addGraphProcessEntry(bulkSet, "BulkSet", "");
-
- addGraphProcessEntry(g.V().hasLabel("person").out().in().tree().asAdmin().getGremlinLang(), "Bytecode", "The following `Bytecode` example represents the traversal of `g.V().hasLabel('person').out().in().tree()`. Obviously the serialized `Bytecode` woudl be quite different for the endless variations of commands that could be used together in the Gremlin language.");
- addGraphProcessEntry(VertexProperty.Cardinality.list, "Cardinality", "");
- addGraphProcessEntry(Column.keys, "Column", "");
- addGraphProcessEntry(Direction.OUT, "Direction", "");
- addGraphProcessEntry(Operator.sum, "Operator", "");
- addGraphProcessEntry(Order.shuffle, "Order", "");
- addGraphProcessEntry(Pick.any, "Pick", "");
- addGraphProcessEntry(Pop.all, "Pop", "");
- addGraphProcessEntry(org.apache.tinkerpop.gremlin.util.function.Lambda.function("{ it.get() }"), "Lambda", "");
- final TraversalMetrics tm = createStaticTraversalMetrics();
- final MutableMetrics metrics = new MutableMetrics(tm.getMetrics("7.0.0()"));
- metrics.addNested(new MutableMetrics(tm.getMetrics("3.0.0()")));
- addGraphProcessEntry(metrics, "Metrics", "");
- addGraphProcessEntry(P.gt(0), "P", "");
- addGraphProcessEntry(P.within(1), "P within", "");
- addGraphProcessEntry(P.without(1,2), "P without", "");
- addGraphProcessEntry(P.gt(0).and(P.lt(10)), "P and", "");
- addGraphProcessEntry(P.gt(0).or(P.within(-1, -10, -100)), "P or", "");
- addGraphProcessEntry(Scope.local, "Scope", "");
- addGraphProcessEntry(T.label, "T", "");
- // TextP was only added at 3.4.0 and is not supported with untyped GraphSON of any sort
- addGraphProcessEntry(TextP.containing("ark"), "TextP", "");
- addGraphProcessEntry(createStaticTraversalMetrics(), "TraversalMetrics", "");
- addGraphProcessEntry(g.V().hasLabel("person").asAdmin().nextTraverser(), "Traverser", "");
-
- final Map<String,Object> requestBindings = new HashMap<>();
- requestBindings.put("x", 1);
-
- RequestMessageV4 requestMessage = RequestMessageV4.build("social.V(x)").
- addBindings(requestBindings).
- addLanguage("gremlin-groovy").
- addG("social").
- addTimeoutMillis(100).
- addMaterializeProperties(TokensV4.MATERIALIZE_PROPERTIES_ALL).create();
- addRequestMessageEntry(requestMessage, "Standard Request", "The following `RequestMessageV4` is an example of a request for a script evaluation with an alias that binds the `TraversalSource` of \"g\" to \"social\".");
-
- ResponseMessageV4 responseMessage;
- responseMessage = ResponseMessageV4.build().
- code(HttpResponseStatus.OK).
- result(Collections.singletonList(graph.vertices().next())).create();
- addResponseMessageEntry(responseMessage, "Standard Result", "The following `ResponseMessage` is a typical example of the typical successful response Gremlin Server will return when returning results from a script.");
- responseMessage = ResponseMessageV4.build().
- code(HttpResponseStatus.INTERNAL_SERVER_ERROR).
- statusMessage("some error").
- exception("ServerFailStepException").
- result(Collections.emptyList()).create();
- addResponseMessageEntry(responseMessage, "Standard Exception Result", "The following `ResponseMessage` is a typical example of the typical unsuccessful response Gremlin Server will return when returning results from a script.");
-
- addExtendedEntry(new BigDecimal(new BigInteger("123456789987654321123456789987654321")), "BigDecimal", "");
- addExtendedEntry(new BigInteger("123456789987654321123456789987654321"), "BigInteger", "");
- addExtendedEntry(new Byte("1"), "Byte", "");
- addEntry("Extended", () -> java.nio.ByteBuffer.wrap("some bytes for you".getBytes()), "ByteBuffer", "");
- addExtendedEntry("x".charAt(0), "Char", "");
- addExtendedEntry(Duration.ofDays(5), "Duration","The following example is a `Duration` of five days.");
- try {
- addEntry("Extended", InetAddress.getByName("localhost"), "InetAddress", "");
- } catch (Exception ex) {
- throw new RuntimeException(ex);
- }
- addExtendedEntry(Instant.parse("2016-12-14T16:39:19.349Z"), "Instant", "");
- addExtendedEntry(LocalDate.of(2016, 1, 1), "LocalDate", "");
- addExtendedEntry(LocalDateTime.of(2016, 1, 1, 12, 30), "LocalDateTime", "");
- addExtendedEntry(LocalTime.of(12, 30, 45), "LocalTime", "");
- addExtendedEntry(MonthDay.of(1, 1), "MonthDay", "");
- addExtendedEntry(OffsetDateTime.parse("2007-12-03T10:15:30+01:00"), "OffsetDateTime", "");
- addExtendedEntry(OffsetTime.parse("10:15:30+01:00"), "OffsetTime", "");
- addExtendedEntry(Period.of(1, 6, 15), "Period", "The following example is a `Period` of one year, six months and fifteen days.");
- addExtendedEntry(new Short("100"), "Short", "");
- addExtendedEntry(Year.of(2016), "Year", "The following example is of the `Year` \"2016\".");
- addExtendedEntry(YearMonth.of(2016, 6), "YearMonth", "The following example is a `YearMonth` of \"June 2016\"");
- addExtendedEntry(ZonedDateTime.of(2016, 12, 23, 12, 12, 24, 36, ZoneId.of("GMT+2")), "ZonedDateTime", "");
- addExtendedEntry(ZoneOffset.ofHoursMinutesSeconds(3, 6, 9), "ZoneOffset", "The following example is a `ZoneOffset` of three hours, six minutes, and nine seconds.");
- }
+ addGraphProcessEntry(bulkSet, "var-bulkset", "");
+ addGraphProcessEntry(new BulkSet(), "empty-bulkset", "");
+
+ addGraphProcessEntry(g.V().hasLabel("person").asAdmin().nextTraverser(), "vertex-traverser", "");
+ addGraphProcessEntry(g.V().both().barrier().asAdmin().nextTraverser(), "bulked-traverser", "");
+ addGraphProcessEntry(EmptyTraverser.instance(), "empty-traverser", "");
+
+ addExtendedEntry(new BigDecimal("123.456789987654321123456789987654321"), "pos-bigdecimal", "");
+ addExtendedEntry(new BigDecimal("-123.456789987654321123456789987654321"), "neg-bigdecimal", "");
+
+ addExtendedEntry(new BigInteger("123456789987654321123456789987654321"), "pos-biginteger", "");
+ addExtendedEntry(new BigInteger("-123456789987654321123456789987654321"), "neg-biginteger", "");
+
+ addExtendedEntry(Byte.MAX_VALUE, "max-byte", "");
+ addExtendedEntry(Byte.MIN_VALUE, "min-byte", "");
+
+ addExtendedEntry(ByteBuffer.wrap(new byte[0]), "empty-binary", "");
+ addEntry("Extended", () -> java.nio.ByteBuffer.wrap("some bytes for you".getBytes()), "str-binary", "");
+
+ addExtendedEntry(Duration.ZERO, "zero-duration","The following example is a zero `Duration`");
+ addExtendedEntry(ChronoUnit.FOREVER.getDuration(), "forever-duration","");
+
+ addExtendedEntry(OffsetDateTime.MAX, "max-offsetdatetime", "");
+ addExtendedEntry(OffsetDateTime.MIN, "min-offsetdatetime", "");
- private static DefaultTraversalMetrics createStaticTraversalMetrics() {
- // based on g.V().hasLabel("person").out().out().tree().profile().next()
- final List<MutableMetrics> traversalMutableMetrics = new ArrayList<>();
- final MutableMetrics m7 = new MutableMetrics("7.0.0()", "TinkerGraphStep(vertex,[~label.eq(person)])");
- m7.setDuration(100, TimeUnit.MILLISECONDS);
- m7.setCount("traverserCount", 4);
- m7.setCount("elementCount", 4);
- m7.setAnnotation("percentDur", 25.0d);
- traversalMutableMetrics.add(m7);
-
- final MutableMetrics m2 = new MutableMetrics("2.0.0()", "VertexStep(OUT,vertex)");
- m2.setDuration(100, TimeUnit.MILLISECONDS);
- m2.setCount("traverserCount", 13);
- m2.setCount("elementCount", 13);
- m2.setAnnotation("percentDur", 25.0d);
- traversalMutableMetrics.add(m2);
-
- final MutableMetrics m3 = new MutableMetrics("3.0.0()", "VertexStep(OUT,vertex)");
- m3.setDuration(100, TimeUnit.MILLISECONDS);
- m3.setCount("traverserCount", 7);
- m3.setCount("elementCount", 7);
- m3.setAnnotation("percentDur", 25.0d);
- traversalMutableMetrics.add(m3);
-
- final MutableMetrics m4 = new MutableMetrics("4.0.0()", "TreeStep");
- m4.setDuration(100, TimeUnit.MILLISECONDS);
- m4.setCount("traverserCount", 1);
- m4.setCount("elementCount", 1);
- m4.setAnnotation("percentDur", 25.0d);
- traversalMutableMetrics.add(m4);
-
- return new DefaultTraversalMetrics(4000, traversalMutableMetrics);
+ addExtendedEntry(Short.MIN_VALUE, "min-short", "");
+ addExtendedEntry(Short.MAX_VALUE, "max-short", "");
}
public static Model instance() {
diff --git a/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphbinary/GraphBinaryCompatibilityTest.java b/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphbinary/GraphBinaryCompatibilityTest.java
index bc1fc271ab..c65568efab 100644
--- a/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphbinary/GraphBinaryCompatibilityTest.java
+++ b/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphbinary/GraphBinaryCompatibilityTest.java
@@ -22,6 +22,8 @@ import io.netty.buffer.ByteBufAllocator;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.io.output.ByteArrayOutputStream;
+import org.apache.tinkerpop.gremlin.structure.graphbinary.GraphBinaryAccess;
+import org.apache.tinkerpop.gremlin.structure.graphson.GraphSONAccess;
import org.apache.tinkerpop.gremlin.structure.io.AbstractTypedCompatibilityTest;
import org.apache.tinkerpop.gremlin.structure.io.Buffer;
import org.apache.tinkerpop.gremlin.structure.io.binary.GraphBinaryReader;
@@ -42,8 +44,8 @@ import java.util.Arrays;
public class GraphBinaryCompatibilityTest extends AbstractTypedCompatibilityTest {
private static final ByteBufAllocator allocator = ByteBufAllocator.DEFAULT;
- private static final GraphBinaryWriter writerV1 = new GraphBinaryWriter();
- private static final GraphBinaryReader readerV1 = new GraphBinaryReader();
+ private static final GraphBinaryWriter writerV4 = new GraphBinaryWriter();
+ private static final GraphBinaryReader readerV4 = new GraphBinaryReader();
private static final NettyBufferFactory bufferFactory = new NettyBufferFactory();
private static final String testCaseDataPath = root.getPath() + File.separator + "test-case-data" + File.separator
@@ -56,7 +58,7 @@ public class GraphBinaryCompatibilityTest extends AbstractTypedCompatibilityTest
@Parameterized.Parameters(name = "expect({0})")
public static Iterable<Object[]> data() {
return Arrays.asList(new Object[][]{
- {"v1", readerV1, writerV1 },
+ {"v4", readerV4, writerV4 },
});
}
@@ -77,7 +79,7 @@ public class GraphBinaryCompatibilityTest extends AbstractTypedCompatibilityTest
@Override
protected byte[] readFromResource(final String resource) throws IOException {
final String testResource = resource + "-" + compatibility + ".gbin";
- return IOUtils.toByteArray(getClass().getResourceAsStream(testResource));
+ return IOUtils.toByteArray(GraphBinaryAccess.class.getResourceAsStream(testResource));
}
@Override
diff --git a/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypedCompatibilityTest.java b/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypedCompatibilityTest.java
index 643e118bcd..6189afb104 100644
--- a/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypedCompatibilityTest.java
+++ b/gremlin-util/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypedCompatibilityTest.java
@@ -19,7 +19,10 @@
package org.apache.tinkerpop.gremlin.structure.io.graphson;
import org.apache.commons.io.IOUtils;
+import org.apache.tinkerpop.gremlin.TestHelper;
+import org.apache.tinkerpop.gremlin.structure.graphson.GraphSONAccess;
import org.apache.tinkerpop.gremlin.structure.io.AbstractTypedCompatibilityTest;
+import org.apache.tinkerpop.gremlin.structure.io.IoTest;
import org.apache.tinkerpop.gremlin.structure.io.Model;
import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV2;
import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV3;
@@ -40,17 +43,6 @@ import java.util.Arrays;
@RunWith(Parameterized.class)
public class GraphSONTypedCompatibilityTest extends AbstractTypedCompatibilityTest {
- private static ObjectMapper mapperV2 = GraphSONMapper.build().
- addRegistry(TinkerIoRegistryV2.instance()).
- typeInfo(TypeInfo.PARTIAL_TYPES).
- addCustomModule(GraphSONXModuleV2.build()).
- version(GraphSONVersion.V2_0).create().createMapper();
-
- private static ObjectMapper mapperV3 = GraphSONMapper.build().
- addRegistry(TinkerIoRegistryV3.instance()).
- addCustomModule(GraphSONXModuleV3.build()).
- version(GraphSONVersion.V3_0).create().createMapper();
-
private static ObjectMapper mapperV4 = GraphSONMapper.build().
addRegistry(TinkerIoRegistryV3.instance()).
addCustomModule(GraphSONXModuleV3.build()).
@@ -67,8 +59,6 @@ public class GraphSONTypedCompatibilityTest extends AbstractTypedCompatibilityTe
@Parameterized.Parameters(name = "expect({0})")
public static Iterable<Object[]> data() {
return Arrays.asList(new Object[][]{
- {"v2", mapperV2 },
- {"v3", mapperV3 },
{"v4", mapperV4 },
});
}
@@ -87,7 +77,7 @@ public class GraphSONTypedCompatibilityTest extends AbstractTypedCompatibilityTe
@Override
protected byte[] readFromResource(final String resource) throws IOException {
final String testResource = resource + "-" + compatibility + ".json";
- return IOUtils.toByteArray(getClass().getResourceAsStream(testResource));
+ return IOUtils.toByteArray(GraphSONAccess.class.getResourceAsStream(testResource));
}
@Override