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:01 UTC
(tinkerpop) branch v4-io-test created (now 14bc366f81)
This is an automated email from the ASF dual-hosted git repository.
kenhuuu pushed a change to branch v4-io-test
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
at 14bc366f81 Update tests to reflect v4 serialization types
This branch includes the following new commits:
new 14bc366f81 Update tests to reflect v4 serialization types
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(tinkerpop) 01/01: Update tests to reflect v4 serialization types
Posted by ke...@apache.org.
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