From 7f2610a12b5cf3b26ae389dfec0897347ca76d84 Mon Sep 17 00:00:00 2001 From: Jeremy Mikola Date: Thu, 13 Jul 2023 15:55:59 -0400 Subject: [PATCH] PHPC-2259: Sync BSON corpus tests for Decimal128 values with large exponents Synced with mongodb/specifications@c09f979ad296400552a98c9b784197ec648c2096 --- tests/bson-corpus/decimal128-1-valid-057.phpt | 52 +++++++++++++++++++ tests/bson-corpus/decimal128-1-valid-058.phpt | 52 +++++++++++++++++++ tests/bson-corpus/decimal128-1-valid-059.phpt | 52 +++++++++++++++++++ tests/bson-corpus/decimal128-1-valid-060.phpt | 52 +++++++++++++++++++ 4 files changed, 208 insertions(+) create mode 100644 tests/bson-corpus/decimal128-1-valid-057.phpt create mode 100644 tests/bson-corpus/decimal128-1-valid-058.phpt create mode 100644 tests/bson-corpus/decimal128-1-valid-059.phpt create mode 100644 tests/bson-corpus/decimal128-1-valid-060.phpt diff --git a/tests/bson-corpus/decimal128-1-valid-057.phpt b/tests/bson-corpus/decimal128-1-valid-057.phpt new file mode 100644 index 000000000..0a59ab729 --- /dev/null +++ b/tests/bson-corpus/decimal128-1-valid-057.phpt @@ -0,0 +1,52 @@ +--TEST-- +Decimal128: Clamped zeros with a large positive exponent +--DESCRIPTION-- +Generated by scripts/convert-bson-corpus-tests.php + +DO NOT EDIT THIS FILE +--FILE-- + Native -> Canonical BSON +echo bin2hex(fromPHP(toPHP($canonicalBson))), "\n"; + +// Canonical BSON -> BSON object -> Canonical BSON +echo bin2hex((string) MongoDB\BSON\Document::fromBSON($canonicalBson)), "\n"; + +// Canonical BSON -> Canonical extJSON +echo json_canonicalize(toCanonicalExtendedJSON($canonicalBson)), "\n"; + +// Canonical BSON -> BSON object -> Canonical extJSON +echo json_canonicalize(MongoDB\BSON\Document::fromBSON($canonicalBson)->toCanonicalExtendedJSON()), "\n"; + +// Canonical extJSON -> Canonical BSON +echo bin2hex(fromJSON($canonicalExtJson)), "\n"; + +// Canonical extJSON -> BSON object -> Canonical BSON +echo bin2hex((string) MongoDB\BSON\Document::fromJSON($canonicalExtJson)), "\n"; + +// Degenerate extJSON -> Canonical BSON +echo bin2hex(fromJSON($degenerateExtJson)), "\n"; + +// Degenerate extJSON -> BSON object -> Canonical BSON +echo bin2hex((string) MongoDB\BSON\Document::fromJSON($degenerateExtJson)), "\n"; + +?> +===DONE=== + +--EXPECT-- +180000001364000000000000000000000000000000fe5f00 +180000001364000000000000000000000000000000fe5f00 +{"d":{"$numberDecimal":"0E+6111"}} +{"d":{"$numberDecimal":"0E+6111"}} +180000001364000000000000000000000000000000fe5f00 +180000001364000000000000000000000000000000fe5f00 +180000001364000000000000000000000000000000fe5f00 +180000001364000000000000000000000000000000fe5f00 +===DONE=== \ No newline at end of file diff --git a/tests/bson-corpus/decimal128-1-valid-058.phpt b/tests/bson-corpus/decimal128-1-valid-058.phpt new file mode 100644 index 000000000..2ca34e65d --- /dev/null +++ b/tests/bson-corpus/decimal128-1-valid-058.phpt @@ -0,0 +1,52 @@ +--TEST-- +Decimal128: Clamped zeros with a large negative exponent +--DESCRIPTION-- +Generated by scripts/convert-bson-corpus-tests.php + +DO NOT EDIT THIS FILE +--FILE-- + Native -> Canonical BSON +echo bin2hex(fromPHP(toPHP($canonicalBson))), "\n"; + +// Canonical BSON -> BSON object -> Canonical BSON +echo bin2hex((string) MongoDB\BSON\Document::fromBSON($canonicalBson)), "\n"; + +// Canonical BSON -> Canonical extJSON +echo json_canonicalize(toCanonicalExtendedJSON($canonicalBson)), "\n"; + +// Canonical BSON -> BSON object -> Canonical extJSON +echo json_canonicalize(MongoDB\BSON\Document::fromBSON($canonicalBson)->toCanonicalExtendedJSON()), "\n"; + +// Canonical extJSON -> Canonical BSON +echo bin2hex(fromJSON($canonicalExtJson)), "\n"; + +// Canonical extJSON -> BSON object -> Canonical BSON +echo bin2hex((string) MongoDB\BSON\Document::fromJSON($canonicalExtJson)), "\n"; + +// Degenerate extJSON -> Canonical BSON +echo bin2hex(fromJSON($degenerateExtJson)), "\n"; + +// Degenerate extJSON -> BSON object -> Canonical BSON +echo bin2hex((string) MongoDB\BSON\Document::fromJSON($degenerateExtJson)), "\n"; + +?> +===DONE=== + +--EXPECT-- +180000001364000000000000000000000000000000000000 +180000001364000000000000000000000000000000000000 +{"d":{"$numberDecimal":"0E-6176"}} +{"d":{"$numberDecimal":"0E-6176"}} +180000001364000000000000000000000000000000000000 +180000001364000000000000000000000000000000000000 +180000001364000000000000000000000000000000000000 +180000001364000000000000000000000000000000000000 +===DONE=== \ No newline at end of file diff --git a/tests/bson-corpus/decimal128-1-valid-059.phpt b/tests/bson-corpus/decimal128-1-valid-059.phpt new file mode 100644 index 000000000..778a99c71 --- /dev/null +++ b/tests/bson-corpus/decimal128-1-valid-059.phpt @@ -0,0 +1,52 @@ +--TEST-- +Decimal128: Clamped negative zeros with a large positive exponent +--DESCRIPTION-- +Generated by scripts/convert-bson-corpus-tests.php + +DO NOT EDIT THIS FILE +--FILE-- + Native -> Canonical BSON +echo bin2hex(fromPHP(toPHP($canonicalBson))), "\n"; + +// Canonical BSON -> BSON object -> Canonical BSON +echo bin2hex((string) MongoDB\BSON\Document::fromBSON($canonicalBson)), "\n"; + +// Canonical BSON -> Canonical extJSON +echo json_canonicalize(toCanonicalExtendedJSON($canonicalBson)), "\n"; + +// Canonical BSON -> BSON object -> Canonical extJSON +echo json_canonicalize(MongoDB\BSON\Document::fromBSON($canonicalBson)->toCanonicalExtendedJSON()), "\n"; + +// Canonical extJSON -> Canonical BSON +echo bin2hex(fromJSON($canonicalExtJson)), "\n"; + +// Canonical extJSON -> BSON object -> Canonical BSON +echo bin2hex((string) MongoDB\BSON\Document::fromJSON($canonicalExtJson)), "\n"; + +// Degenerate extJSON -> Canonical BSON +echo bin2hex(fromJSON($degenerateExtJson)), "\n"; + +// Degenerate extJSON -> BSON object -> Canonical BSON +echo bin2hex((string) MongoDB\BSON\Document::fromJSON($degenerateExtJson)), "\n"; + +?> +===DONE=== + +--EXPECT-- +180000001364000000000000000000000000000000fedf00 +180000001364000000000000000000000000000000fedf00 +{"d":{"$numberDecimal":"-0E+6111"}} +{"d":{"$numberDecimal":"-0E+6111"}} +180000001364000000000000000000000000000000fedf00 +180000001364000000000000000000000000000000fedf00 +180000001364000000000000000000000000000000fedf00 +180000001364000000000000000000000000000000fedf00 +===DONE=== \ No newline at end of file diff --git a/tests/bson-corpus/decimal128-1-valid-060.phpt b/tests/bson-corpus/decimal128-1-valid-060.phpt new file mode 100644 index 000000000..462fc0a81 --- /dev/null +++ b/tests/bson-corpus/decimal128-1-valid-060.phpt @@ -0,0 +1,52 @@ +--TEST-- +Decimal128: Clamped negative zeros with a large negative exponent +--DESCRIPTION-- +Generated by scripts/convert-bson-corpus-tests.php + +DO NOT EDIT THIS FILE +--FILE-- + Native -> Canonical BSON +echo bin2hex(fromPHP(toPHP($canonicalBson))), "\n"; + +// Canonical BSON -> BSON object -> Canonical BSON +echo bin2hex((string) MongoDB\BSON\Document::fromBSON($canonicalBson)), "\n"; + +// Canonical BSON -> Canonical extJSON +echo json_canonicalize(toCanonicalExtendedJSON($canonicalBson)), "\n"; + +// Canonical BSON -> BSON object -> Canonical extJSON +echo json_canonicalize(MongoDB\BSON\Document::fromBSON($canonicalBson)->toCanonicalExtendedJSON()), "\n"; + +// Canonical extJSON -> Canonical BSON +echo bin2hex(fromJSON($canonicalExtJson)), "\n"; + +// Canonical extJSON -> BSON object -> Canonical BSON +echo bin2hex((string) MongoDB\BSON\Document::fromJSON($canonicalExtJson)), "\n"; + +// Degenerate extJSON -> Canonical BSON +echo bin2hex(fromJSON($degenerateExtJson)), "\n"; + +// Degenerate extJSON -> BSON object -> Canonical BSON +echo bin2hex((string) MongoDB\BSON\Document::fromJSON($degenerateExtJson)), "\n"; + +?> +===DONE=== + +--EXPECT-- +180000001364000000000000000000000000000000008000 +180000001364000000000000000000000000000000008000 +{"d":{"$numberDecimal":"-0E-6176"}} +{"d":{"$numberDecimal":"-0E-6176"}} +180000001364000000000000000000000000000000008000 +180000001364000000000000000000000000000000008000 +180000001364000000000000000000000000000000008000 +180000001364000000000000000000000000000000008000 +===DONE=== \ No newline at end of file