diff -Nru libbson-xs-perl-0.4.3/Changes libbson-xs-perl-0.4.6/Changes --- libbson-xs-perl-0.4.3/Changes 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/Changes 2018-10-12 15:50:18.000000000 +0000 @@ -1,5 +1,41 @@ Revision history for BSON-XS +v0.4.6 2018-10-12 11:50:05-04:00 America/New_York + + [Bug fixes] + + - PERL-1016 Fix BSON timestamp decoding on 32-bit perls. + +v0.4.5 2018-10-11 21:38:03-04:00 America/New_York + + [Bug fixes] + + - PERL-1013 Fix binary subtype 2 and Decimal128 encoding + on big-endian platforms. + + [Testing] + + - Synchronize tests with BSON.pm + + [Prereqs] + + - Requires BSON.pm v1.8.1 + +v0.4.4 2018-09-12 23:14:04-04:00 America/New_York + + [Bug fixes] + + - PERL-998 Don't wrap top-level documents in a BSON::DBRef, even + if they have keys that resemble it + + [Testing] + + - Synchronize tests with BSON.pm + + [Prereqs] + + - Requires BSON.pm v1.8.0 + v0.4.3 2018-07-10 09:51:48-04:00 America/New_York [Testing] diff -Nru libbson-xs-perl-0.4.3/corpus/array.json libbson-xs-perl-0.4.6/corpus/array.json --- libbson-xs-perl-0.4.3/corpus/array.json 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/corpus/array.json 2018-10-12 15:50:18.000000000 +0000 @@ -5,25 +5,25 @@ "valid": [ { "description": "Empty", - "bson": "0D000000046100050000000000", - "extjson": "{\"a\" : []}" + "canonical_bson": "0D000000046100050000000000", + "canonical_extjson": "{\"a\" : []}" }, { "description": "Single Element Array", - "bson": "140000000461000C0000001030000A0000000000", - "extjson": "{\"a\" : [10]}" + "canonical_bson": "140000000461000C0000001030000A0000000000", + "canonical_extjson": "{\"a\" : [{\"$numberInt\": \"10\"}]}" }, { "description": "Single Element Array with index set incorrectly", - "bson": "130000000461000B00000010000A0000000000", + "degenerate_bson": "130000000461000B00000010000A0000000000", "canonical_bson": "140000000461000C0000001030000A0000000000", - "extjson": "{\"a\" : [10]}" + "canonical_extjson": "{\"a\" : [{\"$numberInt\": \"10\"}]}" }, { "description": "Single Element Array with index set incorrectly", - "bson": "150000000461000D000000106162000A0000000000", + "degenerate_bson": "150000000461000D000000106162000A0000000000", "canonical_bson": "140000000461000C0000001030000A0000000000", - "extjson": "{\"a\" : [10]}" + "canonical_extjson": "{\"a\" : [{\"$numberInt\": \"10\"}]}" } ], "decodeErrors": [ diff -Nru libbson-xs-perl-0.4.3/corpus/binary.json libbson-xs-perl-0.4.6/corpus/binary.json --- libbson-xs-perl-0.4.3/corpus/binary.json 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/corpus/binary.json 2018-10-12 15:50:18.000000000 +0000 @@ -5,43 +5,59 @@ "valid": [ { "description": "subtype 0x00 (Zero-length)", - "bson": "0D000000057800000000000000", - "extjson": "{\"x\" : {\"$binary\" : \"\", \"$type\" : \"00\"}}" + "canonical_bson": "0D000000057800000000000000", + "canonical_extjson": "{\"x\" : { \"$binary\" : {\"base64\" : \"\", \"subType\" : \"00\"}}}" + }, + { + "description": "subtype 0x00 (Zero-length, keys reversed)", + "canonical_bson": "0D000000057800000000000000", + "canonical_extjson": "{\"x\" : { \"$binary\" : {\"base64\" : \"\", \"subType\" : \"00\"}}}", + "degenerate_extjson": "{\"x\" : { \"$binary\" : {\"subType\" : \"00\", \"base64\" : \"\"}}}" }, { "description": "subtype 0x00", - "bson": "0F0000000578000200000000FFFF00", - "extjson": "{\"x\" : {\"$binary\" : \"//8=\", \"$type\" : \"00\"}}" + "canonical_bson": "0F0000000578000200000000FFFF00", + "canonical_extjson": "{\"x\" : { \"$binary\" : {\"base64\" : \"//8=\", \"subType\" : \"00\"}}}" }, { "description": "subtype 0x01", - "bson": "0F0000000578000200000001FFFF00", - "extjson": "{\"x\" : {\"$binary\" : \"//8=\", \"$type\" : \"01\"}}" + "canonical_bson": "0F0000000578000200000001FFFF00", + "canonical_extjson": "{\"x\" : { \"$binary\" : {\"base64\" : \"//8=\", \"subType\" : \"01\"}}}" }, { "description": "subtype 0x02", - "bson": "13000000057800060000000202000000ffff00", - "extjson": "{\"x\" : {\"$binary\" : \"//8=\", \"$type\" : \"02\"}}" + "canonical_bson": "13000000057800060000000202000000FFFF00", + "canonical_extjson": "{\"x\" : { \"$binary\" : {\"base64\" : \"//8=\", \"subType\" : \"02\"}}}" }, { "description": "subtype 0x03", - "bson": "1D000000057800100000000373FFD26444B34C6990E8E7D1DFC035D400", - "extjson": "{\"x\" : {\"$binary\" : \"c//SZESzTGmQ6OfR38A11A==\", \"$type\" : \"03\"}}" + "canonical_bson": "1D000000057800100000000373FFD26444B34C6990E8E7D1DFC035D400", + "canonical_extjson": "{\"x\" : { \"$binary\" : {\"base64\" : \"c//SZESzTGmQ6OfR38A11A==\", \"subType\" : \"03\"}}}" }, { "description": "subtype 0x04", - "bson": "1D000000057800100000000473FFD26444B34C6990E8E7D1DFC035D400", - "extjson": "{\"x\" : {\"$binary\" : \"c//SZESzTGmQ6OfR38A11A==\", \"$type\" : \"04\"}}" + "canonical_bson": "1D000000057800100000000473FFD26444B34C6990E8E7D1DFC035D400", + "canonical_extjson": "{\"x\" : { \"$binary\" : {\"base64\" : \"c//SZESzTGmQ6OfR38A11A==\", \"subType\" : \"04\"}}}" }, { "description": "subtype 0x05", - "bson": "1D000000057800100000000573FFD26444B34C6990E8E7D1DFC035D400", - "extjson": "{\"x\" : {\"$binary\" : \"c//SZESzTGmQ6OfR38A11A==\", \"$type\" : \"05\"}}" + "canonical_bson": "1D000000057800100000000573FFD26444B34C6990E8E7D1DFC035D400", + "canonical_extjson": "{\"x\" : { \"$binary\" : {\"base64\" : \"c//SZESzTGmQ6OfR38A11A==\", \"subType\" : \"05\"}}}" }, { "description": "subtype 0x80", - "bson": "0F0000000578000200000080FFFF00", - "extjson": "{\"x\" : {\"$binary\" : \"//8=\", \"$type\" : \"80\"}}" + "canonical_bson": "0F0000000578000200000080FFFF00", + "canonical_extjson": "{\"x\" : { \"$binary\" : {\"base64\" : \"//8=\", \"subType\" : \"80\"}}}" + }, + { + "description": "$type query operator (conflicts with legacy $binary form with $type field)", + "canonical_bson": "1F000000037800170000000224747970650007000000737472696E67000000", + "canonical_extjson": "{\"x\" : { \"$type\" : \"string\"}}" + }, + { + "description": "$type query operator (conflicts with legacy $binary form with $type field)", + "canonical_bson": "180000000378001000000010247479706500020000000000", + "canonical_extjson": "{\"x\" : { \"$type\" : {\"$numberInt\": \"2\"}}}" } ], "decodeErrors": [ diff -Nru libbson-xs-perl-0.4.3/corpus/boolean.json libbson-xs-perl-0.4.6/corpus/boolean.json --- libbson-xs-perl-0.4.3/corpus/boolean.json 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/corpus/boolean.json 2018-10-12 15:50:18.000000000 +0000 @@ -5,13 +5,13 @@ "valid": [ { "description": "True", - "bson": "090000000862000100", - "extjson": "{\"b\" : true}" + "canonical_bson": "090000000862000100", + "canonical_extjson": "{\"b\" : true}" }, { "description": "False", - "bson": "090000000862000000", - "extjson": "{\"b\" : false}" + "canonical_bson": "090000000862000000", + "canonical_extjson": "{\"b\" : false}" } ], "decodeErrors": [ diff -Nru libbson-xs-perl-0.4.3/corpus/code.json libbson-xs-perl-0.4.6/corpus/code.json --- libbson-xs-perl-0.4.3/corpus/code.json 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/corpus/code.json 2018-10-12 15:50:18.000000000 +0000 @@ -5,33 +5,33 @@ "valid": [ { "description": "Empty string", - "bson": "0D0000000D6100010000000000", - "extjson": "{\"a\" : {\"$code\" : \"\"}}" + "canonical_bson": "0D0000000D6100010000000000", + "canonical_extjson": "{\"a\" : {\"$code\" : \"\"}}" }, { "description": "Single character", - "bson": "0E0000000D610002000000620000", - "extjson": "{\"a\" : {\"$code\" : \"b\"}}" + "canonical_bson": "0E0000000D610002000000620000", + "canonical_extjson": "{\"a\" : {\"$code\" : \"b\"}}" }, { "description": "Multi-character", - "bson": "190000000D61000D0000006162616261626162616261620000", - "extjson": "{\"a\" : {\"$code\" : \"abababababab\"}}" + "canonical_bson": "190000000D61000D0000006162616261626162616261620000", + "canonical_extjson": "{\"a\" : {\"$code\" : \"abababababab\"}}" }, { "description": "two-byte UTF-8 (\u00e9)", - "bson": "190000000261000D000000C3A9C3A9C3A9C3A9C3A9C3A90000", - "extjson": "{\"a\" : \"\\u00e9\\u00e9\\u00e9\\u00e9\\u00e9\\u00e9\"}" + "canonical_bson": "190000000261000D000000C3A9C3A9C3A9C3A9C3A9C3A90000", + "canonical_extjson": "{\"a\" : \"\\u00e9\\u00e9\\u00e9\\u00e9\\u00e9\\u00e9\"}" }, { "description": "three-byte UTF-8 (\u2606)", - "bson": "190000000261000D000000E29886E29886E29886E298860000", - "extjson": "{\"a\" : \"\\u2606\\u2606\\u2606\\u2606\"}" + "canonical_bson": "190000000261000D000000E29886E29886E29886E298860000", + "canonical_extjson": "{\"a\" : \"\\u2606\\u2606\\u2606\\u2606\"}" }, { "description": "Embedded nulls", - "bson": "190000000261000D0000006162006261620062616261620000", - "extjson": "{\"a\" : \"ab\\u0000bab\\u0000babab\"}" + "canonical_bson": "190000000261000D0000006162006261620062616261620000", + "canonical_extjson": "{\"a\" : \"ab\\u0000bab\\u0000babab\"}" } ], "decodeErrors": [ diff -Nru libbson-xs-perl-0.4.3/corpus/code_w_scope.json libbson-xs-perl-0.4.6/corpus/code_w_scope.json --- libbson-xs-perl-0.4.3/corpus/code_w_scope.json 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/corpus/code_w_scope.json 2018-10-12 15:50:18.000000000 +0000 @@ -5,28 +5,28 @@ "valid": [ { "description": "Empty code string, empty scope", - "bson": "160000000F61000E0000000100000000050000000000", - "extjson": "{\"a\" : {\"$code\" : \"\", \"$scope\" : {}}}" + "canonical_bson": "160000000F61000E0000000100000000050000000000", + "canonical_extjson": "{\"a\" : {\"$code\" : \"\", \"$scope\" : {}}}" }, { "description": "Non-empty code string, empty scope", - "bson": "1A0000000F610012000000050000006162636400050000000000", - "extjson": "{\"a\" : {\"$code\" : \"abcd\", \"$scope\" : {}}}" + "canonical_bson": "1A0000000F610012000000050000006162636400050000000000", + "canonical_extjson": "{\"a\" : {\"$code\" : \"abcd\", \"$scope\" : {}}}" }, { "description": "Empty code string, non-empty scope", - "bson": "1D0000000F61001500000001000000000C000000107800010000000000", - "extjson": "{\"a\" : {\"$code\" : \"\", \"$scope\" : {\"x\" : 1}}}" + "canonical_bson": "1D0000000F61001500000001000000000C000000107800010000000000", + "canonical_extjson": "{\"a\" : {\"$code\" : \"\", \"$scope\" : {\"x\" : {\"$numberInt\": \"1\"}}}}" }, { "description": "Non-empty code string and non-empty scope", - "bson": "210000000f6100190000000500000061626364000c000000107800010000000000", - "extjson": "{\"a\" : {\"$code\" : \"abcd\", \"$scope\" : {\"x\" : 1}}}" + "canonical_bson": "210000000F6100190000000500000061626364000C000000107800010000000000", + "canonical_extjson": "{\"a\" : {\"$code\" : \"abcd\", \"$scope\" : {\"x\" : {\"$numberInt\": \"1\"}}}}" }, { "description": "Unicode and embedded null in code string, empty scope", - "bson": "1A0000000F61001200000005000000C3A9006400050000000000", - "extjson": "{\"a\" : {\"$code\" : \"\\u00e9\\u0000d\", \"$scope\" : {}}}" + "canonical_bson": "1A0000000F61001200000005000000C3A9006400050000000000", + "canonical_extjson": "{\"a\" : {\"$code\" : \"\\u00e9\\u0000d\", \"$scope\" : {}}}" } ], "decodeErrors": [ diff -Nru libbson-xs-perl-0.4.3/corpus/datetime.json libbson-xs-perl-0.4.6/corpus/datetime.json --- libbson-xs-perl-0.4.3/corpus/datetime.json 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/corpus/datetime.json 2018-10-12 15:50:18.000000000 +0000 @@ -5,21 +5,26 @@ "valid": [ { "description": "epoch", - "bson": "10000000096100000000000000000000", - "extjson": "{\"a\" : {\"$date\" : \"1970-01-01T00:00:00.000Z\"}}", + "canonical_bson": "10000000096100000000000000000000", + "relaxed_extjson": "{\"a\" : {\"$date\" : \"1970-01-01T00:00:00Z\"}}", "canonical_extjson": "{\"a\" : {\"$date\" : {\"$numberLong\" : \"0\"}}}" }, { "description": "positive ms", - "bson": "10000000096100C4D8D6CC3B01000000", - "extjson": "{\"a\" : {\"$date\" : \"2012-12-24T12:15:30.500Z\"}}", - "canonical_extjson": "{\"a\" : {\"$date\" : {\"$numberLong\" : \"1356351330500\"}}}" + "canonical_bson": "10000000096100C5D8D6CC3B01000000", + "relaxed_extjson": "{\"a\" : {\"$date\" : \"2012-12-24T12:15:30.501Z\"}}", + "canonical_extjson": "{\"a\" : {\"$date\" : {\"$numberLong\" : \"1356351330501\"}}}" }, { "description": "negative", - "bson": "10000000096100C43CE7B9BDFFFFFF00", - "extjson": "{\"a\" : {\"$date\" : \"1960-12-24T12:15:30.500Z\"}}", - "canonical_extjson": "{\"a\" : {\"$date\" : {\"$numberLong\" : \"-284643869500\"}}}" + "canonical_bson": "10000000096100C33CE7B9BDFFFFFF00", + "relaxed_extjson": "{\"a\" : {\"$date\" : {\"$numberLong\" : \"-284643869501\"}}}", + "canonical_extjson": "{\"a\" : {\"$date\" : {\"$numberLong\" : \"-284643869501\"}}}" + }, + { + "description" : "Y10K", + "canonical_bson" : "1000000009610000DC1FD277E6000000", + "canonical_extjson" : "{\"a\":{\"$date\":{\"$numberLong\":\"253402300800000\"}}}" } ], "decodeErrors": [ diff -Nru libbson-xs-perl-0.4.3/corpus/dbpointer.json libbson-xs-perl-0.4.6/corpus/dbpointer.json --- libbson-xs-perl-0.4.3/corpus/dbpointer.json 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/corpus/dbpointer.json 2018-10-12 15:50:18.000000000 +0000 @@ -6,11 +6,25 @@ "valid": [ { "description": "DBpointer", - "bson": "1A0000000C610002000000620056E1FC72E0C917E9C471416100" + "canonical_bson": "1A0000000C610002000000620056E1FC72E0C917E9C471416100", + "canonical_extjson": "{\"a\": {\"$dbPointer\": {\"$ref\": \"b\", \"$id\": {\"$oid\": \"56e1fc72e0c917e9c4714161\"}}}}", + "converted_bson": "2a00000003610022000000022472656600020000006200072469640056e1fc72e0c917e9c47141610000", + "converted_extjson": "{\"a\": {\"$ref\": \"b\", \"$id\": {\"$oid\": \"56e1fc72e0c917e9c4714161\"}}}" + }, + { + "description": "DBpointer with opposite key order", + "canonical_bson": "1A0000000C610002000000620056E1FC72E0C917E9C471416100", + "canonical_extjson": "{\"a\": {\"$dbPointer\": {\"$ref\": \"b\", \"$id\": {\"$oid\": \"56e1fc72e0c917e9c4714161\"}}}}", + "degenerate_extjson": "{\"a\": {\"$dbPointer\": {\"$id\": {\"$oid\": \"56e1fc72e0c917e9c4714161\"}, \"$ref\": \"b\"}}}", + "converted_bson": "2a00000003610022000000022472656600020000006200072469640056e1fc72e0c917e9c47141610000", + "converted_extjson": "{\"a\": {\"$ref\": \"b\", \"$id\": {\"$oid\": \"56e1fc72e0c917e9c4714161\"}}}" }, { "description": "With two-byte UTF-8", - "bson": "1B0000000C610003000000C3A90056E1FC72E0C917E9C471416100" + "canonical_bson": "1B0000000C610003000000C3A90056E1FC72E0C917E9C471416100", + "canonical_extjson": "{\"a\": {\"$dbPointer\": {\"$ref\": \"é\", \"$id\": {\"$oid\": \"56e1fc72e0c917e9c4714161\"}}}}", + "converted_bson": "2B0000000361002300000002247265660003000000C3A900072469640056E1FC72E0C917E9C47141610000", + "converted_extjson": "{\"a\": {\"$ref\": \"é\", \"$id\": {\"$oid\": \"56e1fc72e0c917e9c4714161\"}}}" } ], "decodeErrors": [ diff -Nru libbson-xs-perl-0.4.3/corpus/dbref.json libbson-xs-perl-0.4.6/corpus/dbref.json --- libbson-xs-perl-0.4.3/corpus/dbref.json 1970-01-01 00:00:00.000000000 +0000 +++ libbson-xs-perl-0.4.6/corpus/dbref.json 2018-10-12 15:50:18.000000000 +0000 @@ -0,0 +1,31 @@ +{ + "description": "DBRef", + "bson_type": "0x03", + "valid": [ + { + "description": "DBRef", + "canonical_bson": "37000000036462726566002b0000000224726566000b000000636f6c6c656374696f6e00072469640058921b3e6e32ab156a22b59e0000", + "canonical_extjson": "{\"dbref\": {\"$ref\": \"collection\", \"$id\": {\"$oid\": \"58921b3e6e32ab156a22b59e\"}}}" + }, + { + "description": "DBRef with database", + "canonical_bson": "4300000003646272656600370000000224726566000b000000636f6c6c656374696f6e00072469640058921b3e6e32ab156a22b59e0224646200030000006462000000", + "canonical_extjson": "{\"dbref\": {\"$ref\": \"collection\", \"$id\": {\"$oid\": \"58921b3e6e32ab156a22b59e\"}, \"$db\": \"db\"}}" + }, + { + "description": "DBRef with database and additional fields", + "canonical_bson": "48000000036462726566003c0000000224726566000b000000636f6c6c656374696f6e0010246964002a00000002246462000300000064620002666f6f0004000000626172000000", + "canonical_extjson": "{\"dbref\": {\"$ref\": \"collection\", \"$id\": {\"$numberInt\": \"42\"}, \"$db\": \"db\", \"foo\": \"bar\"}}" + }, + { + "description": "DBRef with additional fields", + "canonical_bson": "4400000003646272656600380000000224726566000b000000636f6c6c656374696f6e00072469640058921b3e6e32ab156a22b59e02666f6f0004000000626172000000", + "canonical_extjson": "{\"dbref\": {\"$ref\": \"collection\", \"$id\": {\"$oid\": \"58921b3e6e32ab156a22b59e\"}, \"foo\": \"bar\"}}" + }, + { + "description": "Document with key names similar to those of a DBRef", + "canonical_bson": "3e0000000224726566000c0000006e6f742d612d646272656600072469640058921b3e6e32ab156a22b59e022462616e616e6100050000007065656c0000", + "canonical_extjson": "{\"$ref\": \"not-a-dbref\", \"$id\": {\"$oid\": \"58921b3e6e32ab156a22b59e\"}, \"$banana\": \"peel\"}" + } + ] +} diff -Nru libbson-xs-perl-0.4.3/corpus/decimal128-1.json libbson-xs-perl-0.4.6/corpus/decimal128-1.json --- libbson-xs-perl-0.4.3/corpus/decimal128-1.json 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/corpus/decimal128-1.json 2018-10-12 15:50:18.000000000 +0000 @@ -5,305 +5,312 @@ "valid": [ { "description": "Special - Canonical NaN", - "bson": "180000001364000000000000000000000000000000007C00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"NaN\"}}" + "canonical_bson": "180000001364000000000000000000000000000000007C00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"NaN\"}}" + }, + { + "description": "Special - Negative NaN", + "canonical_bson": "18000000136400000000000000000000000000000000FC00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"NaN\"}}", + "lossy": true }, { "description": "Special - Negative NaN", - "bson": "18000000136400000000000000000000000000000000FC00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"NaN\"}}", + "canonical_bson": "18000000136400000000000000000000000000000000FC00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"NaN\"}}", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-NaN\"}}", "lossy": true }, { "description": "Special - Canonical SNaN", - "bson": "180000001364000000000000000000000000000000007E00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"NaN\"}}", + "canonical_bson": "180000001364000000000000000000000000000000007E00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"NaN\"}}", "lossy": true }, { "description": "Special - Negative SNaN", - "bson": "18000000136400000000000000000000000000000000FE00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"NaN\"}}", + "canonical_bson": "18000000136400000000000000000000000000000000FE00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"NaN\"}}", "lossy": true }, { "description": "Special - NaN with a payload", - "bson": "180000001364001200000000000000000000000000007E00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"NaN\"}}", + "canonical_bson": "180000001364001200000000000000000000000000007E00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"NaN\"}}", "lossy": true }, { "description": "Special - Canonical Positive Infinity", - "bson": "180000001364000000000000000000000000000000007800", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"Infinity\"}}" + "canonical_bson": "180000001364000000000000000000000000000000007800", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"Infinity\"}}" }, { "description": "Special - Canonical Negative Infinity", - "bson": "18000000136400000000000000000000000000000000F800", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-Infinity\"}}" + "canonical_bson": "18000000136400000000000000000000000000000000F800", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-Infinity\"}}" }, { "description": "Special - Invalid representation treated as 0", - "bson": "180000001364000000000000000000000000000000106C00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0\"}}", + "canonical_bson": "180000001364000000000000000000000000000000106C00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0\"}}", "lossy": true }, { "description": "Special - Invalid representation treated as -0", - "bson": "18000000136400DCBA9876543210DEADBEEF00000010EC00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0\"}}", + "canonical_bson": "18000000136400DCBA9876543210DEADBEEF00000010EC00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0\"}}", "lossy": true }, { "description": "Special - Invalid representation treated as 0E3", - "bson": "18000000136400FFFFFFFFFFFFFFFFFFFFFFFFFFFF116C00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+3\"}}", + "canonical_bson": "18000000136400FFFFFFFFFFFFFFFFFFFFFFFFFFFF116C00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+3\"}}", "lossy": true }, { "description": "Regular - Adjusted Exponent Limit", - "bson": "18000000136400F2AF967ED05C82DE3297FF6FDE3CF22F00", - "extjson": "{\"d\": { \"$numberDecimal\": \"0.000001234567890123456789012345678901234\" }}" + "canonical_bson": "18000000136400F2AF967ED05C82DE3297FF6FDE3CF22F00", + "canonical_extjson": "{\"d\": { \"$numberDecimal\": \"0.000001234567890123456789012345678901234\" }}" }, { "description": "Regular - Smallest", - "bson": "18000000136400D204000000000000000000000000343000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.001234\"}}" + "canonical_bson": "18000000136400D204000000000000000000000000343000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.001234\"}}" }, { "description": "Regular - Smallest with Trailing Zeros", - "bson": "1800000013640040EF5A07000000000000000000002A3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00123400000\"}}" + "canonical_bson": "1800000013640040EF5A07000000000000000000002A3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00123400000\"}}" }, { "description": "Regular - 0.1", - "bson": "1800000013640001000000000000000000000000003E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1\"}}" + "canonical_bson": "1800000013640001000000000000000000000000003E3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1\"}}" }, { "description": "Regular - 0.1234567890123456789012345678901234", - "bson": "18000000136400F2AF967ED05C82DE3297FF6FDE3CFC2F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1234567890123456789012345678901234\"}}" + "canonical_bson": "18000000136400F2AF967ED05C82DE3297FF6FDE3CFC2F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1234567890123456789012345678901234\"}}" }, { "description": "Regular - 0", - "bson": "180000001364000000000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0\"}}" + "canonical_bson": "180000001364000000000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0\"}}" }, { "description": "Regular - -0", - "bson": "18000000136400000000000000000000000000000040B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0\"}}" + "canonical_bson": "18000000136400000000000000000000000000000040B000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0\"}}" }, { "description": "Regular - -0.0", - "bson": "1800000013640000000000000000000000000000003EB000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.0\"}}" + "canonical_bson": "1800000013640000000000000000000000000000003EB000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.0\"}}" }, { "description": "Regular - 2", - "bson": "180000001364000200000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"2\"}}" + "canonical_bson": "180000001364000200000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"2\"}}" }, { "description": "Regular - 2.000", - "bson": "18000000136400D0070000000000000000000000003A3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"2.000\"}}" + "canonical_bson": "18000000136400D0070000000000000000000000003A3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"2.000\"}}" }, { "description": "Regular - Largest", - "bson": "18000000136400F2AF967ED05C82DE3297FF6FDE3C403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1234567890123456789012345678901234\"}}" + "canonical_bson": "18000000136400F2AF967ED05C82DE3297FF6FDE3C403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1234567890123456789012345678901234\"}}" }, { "description": "Scientific - Tiniest", - "bson": "18000000136400FFFFFFFF638E8D37C087ADBE09ED010000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"9.999999999999999999999999999999999E-6143\"}}" + "canonical_bson": "18000000136400FFFFFFFF638E8D37C087ADBE09ED010000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"9.999999999999999999999999999999999E-6143\"}}" }, { "description": "Scientific - Tiny", - "bson": "180000001364000100000000000000000000000000000000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E-6176\"}}" + "canonical_bson": "180000001364000100000000000000000000000000000000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E-6176\"}}" }, { "description": "Scientific - Negative Tiny", - "bson": "180000001364000100000000000000000000000000008000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-1E-6176\"}}" + "canonical_bson": "180000001364000100000000000000000000000000008000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1E-6176\"}}" }, { "description": "Scientific - Adjusted Exponent Limit", - "bson": "18000000136400F2AF967ED05C82DE3297FF6FDE3CF02F00", - "extjson": "{\"d\": { \"$numberDecimal\": \"1.234567890123456789012345678901234E-7\" }}" + "canonical_bson": "18000000136400F2AF967ED05C82DE3297FF6FDE3CF02F00", + "canonical_extjson": "{\"d\": { \"$numberDecimal\": \"1.234567890123456789012345678901234E-7\" }}" }, { "description": "Scientific - Fractional", - "bson": "1800000013640064000000000000000000000000002CB000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.00E-8\"}}" + "canonical_bson": "1800000013640064000000000000000000000000002CB000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.00E-8\"}}" }, { "description": "Scientific - 0 with Exponent", - "bson": "180000001364000000000000000000000000000000205F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+6000\"}}" + "canonical_bson": "180000001364000000000000000000000000000000205F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+6000\"}}" }, { "description": "Scientific - 0 with Negative Exponent", - "bson": "1800000013640000000000000000000000000000007A2B00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-611\"}}" + "canonical_bson": "1800000013640000000000000000000000000000007A2B00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-611\"}}" }, { "description": "Scientific - No Decimal with Signed Exponent", - "bson": "180000001364000100000000000000000000000000463000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+3\"}}" + "canonical_bson": "180000001364000100000000000000000000000000463000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+3\"}}" }, { "description": "Scientific - Trailing Zero", - "bson": "180000001364001A04000000000000000000000000423000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.050E+4\"}}" + "canonical_bson": "180000001364001A04000000000000000000000000423000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.050E+4\"}}" }, { "description": "Scientific - With Decimal", - "bson": "180000001364006900000000000000000000000000423000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.05E+3\"}}" + "canonical_bson": "180000001364006900000000000000000000000000423000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.05E+3\"}}" }, { "description": "Scientific - Full", - "bson": "18000000136400FFFFFFFFFFFFFFFFFFFFFFFFFFFF403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"5192296858534827628530496329220095\"}}" + "canonical_bson": "18000000136400FFFFFFFFFFFFFFFFFFFFFFFFFFFF403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"5192296858534827628530496329220095\"}}" }, { "description": "Scientific - Large", - "bson": "18000000136400000000000A5BC138938D44C64D31FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000000000000000000E+6144\"}}" + "canonical_bson": "18000000136400000000000A5BC138938D44C64D31FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000000000000000000E+6144\"}}" }, { "description": "Scientific - Largest", - "bson": "18000000136400FFFFFFFF638E8D37C087ADBE09EDFF5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"9.999999999999999999999999999999999E+6144\"}}" + "canonical_bson": "18000000136400FFFFFFFF638E8D37C087ADBE09EDFF5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"9.999999999999999999999999999999999E+6144\"}}" }, { "description": "Non-Canonical Parsing - Exponent Normalization", - "bson": "1800000013640064000000000000000000000000002CB000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-100E-10\"}}", + "canonical_bson": "1800000013640064000000000000000000000000002CB000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-100E-10\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.00E-8\"}}" }, { "description": "Non-Canonical Parsing - Unsigned Positive Exponent", - "bson": "180000001364000100000000000000000000000000463000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E3\"}}", + "canonical_bson": "180000001364000100000000000000000000000000463000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E3\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+3\"}}" }, { "description": "Non-Canonical Parsing - Lowercase Exponent Identifier", - "bson": "180000001364000100000000000000000000000000463000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1e+3\"}}", + "canonical_bson": "180000001364000100000000000000000000000000463000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1e+3\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+3\"}}" }, { "description": "Non-Canonical Parsing - Long Significand with Exponent", - "bson": "1800000013640079D9E0F9763ADA429D0200000000583000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"12345689012345789012345E+12\"}}", + "canonical_bson": "1800000013640079D9E0F9763ADA429D0200000000583000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"12345689012345789012345E+12\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.2345689012345789012345E+34\"}}" }, { "description": "Non-Canonical Parsing - Positive Sign", - "bson": "18000000136400F2AF967ED05C82DE3297FF6FDE3C403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"+1234567890123456789012345678901234\"}}", + "canonical_bson": "18000000136400F2AF967ED05C82DE3297FF6FDE3C403000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"+1234567890123456789012345678901234\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1234567890123456789012345678901234\"}}" }, { "description": "Non-Canonical Parsing - Long Decimal String", - "bson": "180000001364000100000000000000000000000000722800", - "extjson": "{\"d\" : {\"$numberDecimal\" : \".000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\"}}", + "canonical_bson": "180000001364000100000000000000000000000000722800", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \".000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E-999\"}}" }, { "description": "Non-Canonical Parsing - nan", - "bson": "180000001364000000000000000000000000000000007C00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"nan\"}}", + "canonical_bson": "180000001364000000000000000000000000000000007C00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"nan\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"NaN\"}}" }, { "description": "Non-Canonical Parsing - nAn", - "bson": "180000001364000000000000000000000000000000007C00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"nAn\"}}", + "canonical_bson": "180000001364000000000000000000000000000000007C00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"nAn\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"NaN\"}}" }, { "description": "Non-Canonical Parsing - +infinity", - "bson": "180000001364000000000000000000000000000000007800", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"+infinity\"}}", + "canonical_bson": "180000001364000000000000000000000000000000007800", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"+infinity\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"Infinity\"}}" }, { "description": "Non-Canonical Parsing - infinity", - "bson": "180000001364000000000000000000000000000000007800", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"infinity\"}}", + "canonical_bson": "180000001364000000000000000000000000000000007800", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"infinity\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"Infinity\"}}" }, { "description": "Non-Canonical Parsing - infiniTY", - "bson": "180000001364000000000000000000000000000000007800", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"infiniTY\"}}", + "canonical_bson": "180000001364000000000000000000000000000000007800", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"infiniTY\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"Infinity\"}}" }, { "description": "Non-Canonical Parsing - inf", - "bson": "180000001364000000000000000000000000000000007800", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"inf\"}}", + "canonical_bson": "180000001364000000000000000000000000000000007800", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"inf\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"Infinity\"}}" }, { "description": "Non-Canonical Parsing - inF", - "bson": "180000001364000000000000000000000000000000007800", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"inF\"}}", + "canonical_bson": "180000001364000000000000000000000000000000007800", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"inF\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"Infinity\"}}" }, { "description": "Non-Canonical Parsing - -infinity", - "bson": "18000000136400000000000000000000000000000000F800", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-infinity\"}}", + "canonical_bson": "18000000136400000000000000000000000000000000F800", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-infinity\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-Infinity\"}}" }, { "description": "Non-Canonical Parsing - -infiniTy", - "bson": "18000000136400000000000000000000000000000000F800", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-infiniTy\"}}", + "canonical_bson": "18000000136400000000000000000000000000000000F800", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-infiniTy\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-Infinity\"}}" }, { "description": "Non-Canonical Parsing - -Inf", - "bson": "18000000136400000000000000000000000000000000F800", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-Infinity\"}}", + "canonical_bson": "18000000136400000000000000000000000000000000F800", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-Infinity\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-Infinity\"}}" }, { "description": "Non-Canonical Parsing - -inf", - "bson": "18000000136400000000000000000000000000000000F800", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-inf\"}}", + "canonical_bson": "18000000136400000000000000000000000000000000F800", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-inf\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-Infinity\"}}" }, { "description": "Non-Canonical Parsing - -inF", - "bson": "18000000136400000000000000000000000000000000F800", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-inF\"}}", + "canonical_bson": "18000000136400000000000000000000000000000000F800", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-inF\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-Infinity\"}}" }, { "description": "Rounded Subnormal number", - "bson": "180000001364000100000000000000000000000000000000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10E-6177\"}}", + "canonical_bson": "180000001364000100000000000000000000000000000000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10E-6177\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E-6176\"}}" }, { "description": "Clamped", - "bson": "180000001364000a00000000000000000000000000fe5f00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E6112\"}}", + "canonical_bson": "180000001364000a00000000000000000000000000fe5f00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E6112\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0E+6112\"}}" }, { "description": "Exact rounding", - "bson": "18000000136400000000000a5bc138938d44c64d31cc3700", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"}}", + "canonical_bson": "18000000136400000000000a5bc138938d44c64d31cc3700", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000000000000000000E+999\"}}" } ] diff -Nru libbson-xs-perl-0.4.3/corpus/decimal128-2.json libbson-xs-perl-0.4.6/corpus/decimal128-2.json --- libbson-xs-perl-0.4.3/corpus/decimal128-2.json 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/corpus/decimal128-2.json 2018-10-12 15:50:18.000000000 +0000 @@ -5,788 +5,788 @@ "valid": [ { "description": "[decq021] Normality", - "bson": "18000000136400F2AF967ED05C82DE3297FF6FDE3C40B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-1234567890123456789012345678901234\"}}" + "canonical_bson": "18000000136400F2AF967ED05C82DE3297FF6FDE3C40B000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1234567890123456789012345678901234\"}}" }, { "description": "[decq823] values around [u]int32 edges (zeros done earlier)", - "bson": "18000000136400010000800000000000000000000040B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-2147483649\"}}" + "canonical_bson": "18000000136400010000800000000000000000000040B000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-2147483649\"}}" }, { "description": "[decq822] values around [u]int32 edges (zeros done earlier)", - "bson": "18000000136400000000800000000000000000000040B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-2147483648\"}}" + "canonical_bson": "18000000136400000000800000000000000000000040B000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-2147483648\"}}" }, { "description": "[decq821] values around [u]int32 edges (zeros done earlier)", - "bson": "18000000136400FFFFFF7F0000000000000000000040B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-2147483647\"}}" + "canonical_bson": "18000000136400FFFFFF7F0000000000000000000040B000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-2147483647\"}}" }, { "description": "[decq820] values around [u]int32 edges (zeros done earlier)", - "bson": "18000000136400FEFFFF7F0000000000000000000040B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-2147483646\"}}" + "canonical_bson": "18000000136400FEFFFF7F0000000000000000000040B000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-2147483646\"}}" }, { "description": "[decq152] fold-downs (more below)", - "bson": "18000000136400393000000000000000000000000040B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-12345\"}}" + "canonical_bson": "18000000136400393000000000000000000000000040B000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-12345\"}}" }, { "description": "[decq154] fold-downs (more below)", - "bson": "18000000136400D20400000000000000000000000040B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-1234\"}}" + "canonical_bson": "18000000136400D20400000000000000000000000040B000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1234\"}}" }, { "description": "[decq006] derivative canonical plain strings", - "bson": "18000000136400EE0200000000000000000000000040B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-750\"}}" + "canonical_bson": "18000000136400EE0200000000000000000000000040B000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-750\"}}" }, { "description": "[decq164] fold-downs (more below)", - "bson": "1800000013640039300000000000000000000000003CB000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-123.45\"}}" + "canonical_bson": "1800000013640039300000000000000000000000003CB000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-123.45\"}}" }, { "description": "[decq156] fold-downs (more below)", - "bson": "180000001364007B0000000000000000000000000040B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-123\"}}" + "canonical_bson": "180000001364007B0000000000000000000000000040B000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-123\"}}" }, { "description": "[decq008] derivative canonical plain strings", - "bson": "18000000136400EE020000000000000000000000003EB000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-75.0\"}}" + "canonical_bson": "18000000136400EE020000000000000000000000003EB000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-75.0\"}}" }, { "description": "[decq158] fold-downs (more below)", - "bson": "180000001364000C0000000000000000000000000040B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-12\"}}" + "canonical_bson": "180000001364000C0000000000000000000000000040B000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-12\"}}" }, { "description": "[decq122] Nmax and similar", - "bson": "18000000136400FFFFFFFF638E8D37C087ADBE09EDFFDF00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-9.999999999999999999999999999999999E+6144\"}}" + "canonical_bson": "18000000136400FFFFFFFF638E8D37C087ADBE09EDFFDF00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-9.999999999999999999999999999999999E+6144\"}}" }, { "description": "[decq002] (mostly derived from the Strawman 4 document and examples)", - "bson": "18000000136400EE020000000000000000000000003CB000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-7.50\"}}" + "canonical_bson": "18000000136400EE020000000000000000000000003CB000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-7.50\"}}" }, { "description": "[decq004] derivative canonical plain strings", - "bson": "18000000136400EE0200000000000000000000000042B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-7.50E+3\"}}" + "canonical_bson": "18000000136400EE0200000000000000000000000042B000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-7.50E+3\"}}" }, { "description": "[decq018] derivative canonical plain strings", - "bson": "18000000136400EE020000000000000000000000002EB000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-7.50E-7\"}}" + "canonical_bson": "18000000136400EE020000000000000000000000002EB000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-7.50E-7\"}}" }, { "description": "[decq125] Nmax and similar", - "bson": "18000000136400F2AF967ED05C82DE3297FF6FDE3CFEDF00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.234567890123456789012345678901234E+6144\"}}" + "canonical_bson": "18000000136400F2AF967ED05C82DE3297FF6FDE3CFEDF00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.234567890123456789012345678901234E+6144\"}}" }, { "description": "[decq131] fold-downs (more below)", - "bson": "18000000136400000000807F1BCF85B27059C8A43CFEDF00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.230000000000000000000000000000000E+6144\"}}" + "canonical_bson": "18000000136400000000807F1BCF85B27059C8A43CFEDF00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.230000000000000000000000000000000E+6144\"}}" }, { "description": "[decq162] fold-downs (more below)", - "bson": "180000001364007B000000000000000000000000003CB000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.23\"}}" + "canonical_bson": "180000001364007B000000000000000000000000003CB000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.23\"}}" }, { "description": "[decq176] Nmin and below", - "bson": "18000000136400010000000A5BC138938D44C64D31008000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.000000000000000000000000000000001E-6143\"}}" + "canonical_bson": "18000000136400010000000A5BC138938D44C64D31008000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.000000000000000000000000000000001E-6143\"}}" }, { "description": "[decq174] Nmin and below", - "bson": "18000000136400000000000A5BC138938D44C64D31008000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.000000000000000000000000000000000E-6143\"}}" + "canonical_bson": "18000000136400000000000A5BC138938D44C64D31008000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.000000000000000000000000000000000E-6143\"}}" }, { "description": "[decq133] fold-downs (more below)", - "bson": "18000000136400000000000A5BC138938D44C64D31FEDF00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.000000000000000000000000000000000E+6144\"}}" + "canonical_bson": "18000000136400000000000A5BC138938D44C64D31FEDF00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.000000000000000000000000000000000E+6144\"}}" }, { "description": "[decq160] fold-downs (more below)", - "bson": "18000000136400010000000000000000000000000040B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-1\"}}" + "canonical_bson": "18000000136400010000000000000000000000000040B000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1\"}}" }, { "description": "[decq172] Nmin and below", - "bson": "180000001364000100000000000000000000000000428000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-1E-6143\"}}" + "canonical_bson": "180000001364000100000000000000000000000000428000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1E-6143\"}}" }, { "description": "[decq010] derivative canonical plain strings", - "bson": "18000000136400EE020000000000000000000000003AB000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.750\"}}" + "canonical_bson": "18000000136400EE020000000000000000000000003AB000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.750\"}}" }, { "description": "[decq012] derivative canonical plain strings", - "bson": "18000000136400EE0200000000000000000000000038B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.0750\"}}" + "canonical_bson": "18000000136400EE0200000000000000000000000038B000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.0750\"}}" }, { "description": "[decq014] derivative canonical plain strings", - "bson": "18000000136400EE0200000000000000000000000034B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.000750\"}}" + "canonical_bson": "18000000136400EE0200000000000000000000000034B000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.000750\"}}" }, { "description": "[decq016] derivative canonical plain strings", - "bson": "18000000136400EE0200000000000000000000000030B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.00000750\"}}" + "canonical_bson": "18000000136400EE0200000000000000000000000030B000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.00000750\"}}" }, { "description": "[decq404] zeros", - "bson": "180000001364000000000000000000000000000000000000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-6176\"}}" + "canonical_bson": "180000001364000000000000000000000000000000000000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-6176\"}}" }, { "description": "[decq424] negative zeros", - "bson": "180000001364000000000000000000000000000000008000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E-6176\"}}" + "canonical_bson": "180000001364000000000000000000000000000000008000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E-6176\"}}" }, { "description": "[decq407] zeros", - "bson": "1800000013640000000000000000000000000000003C3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00\"}}" + "canonical_bson": "1800000013640000000000000000000000000000003C3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00\"}}" }, { "description": "[decq427] negative zeros", - "bson": "1800000013640000000000000000000000000000003CB000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.00\"}}" + "canonical_bson": "1800000013640000000000000000000000000000003CB000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.00\"}}" }, { "description": "[decq409] zeros", - "bson": "180000001364000000000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0\"}}" + "canonical_bson": "180000001364000000000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0\"}}" }, { "description": "[decq428] negative zeros", - "bson": "18000000136400000000000000000000000000000040B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0\"}}" + "canonical_bson": "18000000136400000000000000000000000000000040B000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0\"}}" }, { "description": "[decq700] Selected DPD codes", - "bson": "180000001364000000000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0\"}}" + "canonical_bson": "180000001364000000000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0\"}}" }, { "description": "[decq406] zeros", - "bson": "1800000013640000000000000000000000000000003C3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00\"}}" + "canonical_bson": "1800000013640000000000000000000000000000003C3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00\"}}" }, { "description": "[decq426] negative zeros", - "bson": "1800000013640000000000000000000000000000003CB000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.00\"}}" + "canonical_bson": "1800000013640000000000000000000000000000003CB000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.00\"}}" }, { "description": "[decq410] zeros", - "bson": "180000001364000000000000000000000000000000463000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+3\"}}" + "canonical_bson": "180000001364000000000000000000000000000000463000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+3\"}}" }, { "description": "[decq431] negative zeros", - "bson": "18000000136400000000000000000000000000000046B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E+3\"}}" + "canonical_bson": "18000000136400000000000000000000000000000046B000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E+3\"}}" }, { "description": "[decq419] clamped zeros...", - "bson": "180000001364000000000000000000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+6111\"}}" + "canonical_bson": "180000001364000000000000000000000000000000FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+6111\"}}" }, { "description": "[decq432] negative zeros", - "bson": "180000001364000000000000000000000000000000FEDF00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E+6111\"}}" + "canonical_bson": "180000001364000000000000000000000000000000FEDF00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E+6111\"}}" }, { "description": "[decq405] zeros", - "bson": "180000001364000000000000000000000000000000000000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-6176\"}}" + "canonical_bson": "180000001364000000000000000000000000000000000000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-6176\"}}" }, { "description": "[decq425] negative zeros", - "bson": "180000001364000000000000000000000000000000008000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E-6176\"}}" + "canonical_bson": "180000001364000000000000000000000000000000008000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E-6176\"}}" }, { "description": "[decq508] Specials", - "bson": "180000001364000000000000000000000000000000007800", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"Infinity\"}}" + "canonical_bson": "180000001364000000000000000000000000000000007800", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"Infinity\"}}" }, { "description": "[decq528] Specials", - "bson": "18000000136400000000000000000000000000000000F800", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-Infinity\"}}" + "canonical_bson": "18000000136400000000000000000000000000000000F800", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-Infinity\"}}" }, { "description": "[decq541] Specials", - "bson": "180000001364000000000000000000000000000000007C00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"NaN\"}}" + "canonical_bson": "180000001364000000000000000000000000000000007C00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"NaN\"}}" }, { "description": "[decq074] Nmin and below", - "bson": "18000000136400000000000A5BC138938D44C64D31000000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000000000000000000E-6143\"}}" + "canonical_bson": "18000000136400000000000A5BC138938D44C64D31000000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000000000000000000E-6143\"}}" }, { "description": "[decq602] fold-down full sequence", - "bson": "18000000136400000000000A5BC138938D44C64D31FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000000000000000000E+6144\"}}" + "canonical_bson": "18000000136400000000000A5BC138938D44C64D31FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000000000000000000E+6144\"}}" }, { "description": "[decq604] fold-down full sequence", - "bson": "180000001364000000000081EFAC855B416D2DEE04FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000000000000000000000000000E+6143\"}}" + "canonical_bson": "180000001364000000000081EFAC855B416D2DEE04FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000000000000000000000000000E+6143\"}}" }, { "description": "[decq606] fold-down full sequence", - "bson": "1800000013640000000080264B91C02220BE377E00FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000000000000000000000000000000E+6142\"}}" + "canonical_bson": "1800000013640000000080264B91C02220BE377E00FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000000000000000000000000000000E+6142\"}}" }, { "description": "[decq608] fold-down full sequence", - "bson": "1800000013640000000040EAED7446D09C2C9F0C00FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000000000000000E+6141\"}}" + "canonical_bson": "1800000013640000000040EAED7446D09C2C9F0C00FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000000000000000E+6141\"}}" }, { "description": "[decq610] fold-down full sequence", - "bson": "18000000136400000000A0CA17726DAE0F1E430100FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000000000000000000000000E+6140\"}}" + "canonical_bson": "18000000136400000000A0CA17726DAE0F1E430100FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000000000000000000000000E+6140\"}}" }, { "description": "[decq612] fold-down full sequence", - "bson": "18000000136400000000106102253E5ECE4F200000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000000000000000000000000000E+6139\"}}" + "canonical_bson": "18000000136400000000106102253E5ECE4F200000FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000000000000000000000000000E+6139\"}}" }, { "description": "[decq614] fold-down full sequence", - "bson": "18000000136400000000E83C80D09F3C2E3B030000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000000000000E+6138\"}}" + "canonical_bson": "18000000136400000000E83C80D09F3C2E3B030000FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000000000000E+6138\"}}" }, { "description": "[decq616] fold-down full sequence", - "bson": "18000000136400000000E4D20CC8DCD2B752000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000000000000000000000E+6137\"}}" + "canonical_bson": "18000000136400000000E4D20CC8DCD2B752000000FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000000000000000000000E+6137\"}}" }, { "description": "[decq618] fold-down full sequence", - "bson": "180000001364000000004A48011416954508000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000000000000000000000000E+6136\"}}" + "canonical_bson": "180000001364000000004A48011416954508000000FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000000000000000000000000E+6136\"}}" }, { "description": "[decq620] fold-down full sequence", - "bson": "18000000136400000000A1EDCCCE1BC2D300000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000000000E+6135\"}}" + "canonical_bson": "18000000136400000000A1EDCCCE1BC2D300000000FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000000000E+6135\"}}" }, { "description": "[decq622] fold-down full sequence", - "bson": "18000000136400000080F64AE1C7022D1500000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000000000000000000E+6134\"}}" + "canonical_bson": "18000000136400000080F64AE1C7022D1500000000FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000000000000000000E+6134\"}}" }, { "description": "[decq624] fold-down full sequence", - "bson": "18000000136400000040B2BAC9E0191E0200000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000000000000000000000E+6133\"}}" + "canonical_bson": "18000000136400000040B2BAC9E0191E0200000000FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000000000000000000000E+6133\"}}" }, { "description": "[decq626] fold-down full sequence", - "bson": "180000001364000000A0DEC5ADC935360000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000000E+6132\"}}" + "canonical_bson": "180000001364000000A0DEC5ADC935360000000000FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000000E+6132\"}}" }, { "description": "[decq628] fold-down full sequence", - "bson": "18000000136400000010632D5EC76B050000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000000000000000E+6131\"}}" + "canonical_bson": "18000000136400000010632D5EC76B050000000000FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000000000000000E+6131\"}}" }, { "description": "[decq630] fold-down full sequence", - "bson": "180000001364000000E8890423C78A000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000000000000000000E+6130\"}}" + "canonical_bson": "180000001364000000E8890423C78A000000000000FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000000000000000000E+6130\"}}" }, { "description": "[decq632] fold-down full sequence", - "bson": "18000000136400000064A7B3B6E00D000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000E+6129\"}}" + "canonical_bson": "18000000136400000064A7B3B6E00D000000000000FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000E+6129\"}}" }, { "description": "[decq634] fold-down full sequence", - "bson": "1800000013640000008A5D78456301000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000000000000E+6128\"}}" + "canonical_bson": "1800000013640000008A5D78456301000000000000FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000000000000E+6128\"}}" }, { "description": "[decq636] fold-down full sequence", - "bson": "180000001364000000C16FF2862300000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000000000000000E+6127\"}}" + "canonical_bson": "180000001364000000C16FF2862300000000000000FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000000000000000E+6127\"}}" }, { "description": "[decq638] fold-down full sequence", - "bson": "180000001364000080C6A47E8D0300000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000E+6126\"}}" + "canonical_bson": "180000001364000080C6A47E8D0300000000000000FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000E+6126\"}}" }, { "description": "[decq640] fold-down full sequence", - "bson": "1800000013640000407A10F35A0000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000000000E+6125\"}}" + "canonical_bson": "1800000013640000407A10F35A0000000000000000FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000000000E+6125\"}}" }, { "description": "[decq642] fold-down full sequence", - "bson": "1800000013640000A0724E18090000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000000000000E+6124\"}}" + "canonical_bson": "1800000013640000A0724E18090000000000000000FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000000000000E+6124\"}}" }, { "description": "[decq644] fold-down full sequence", - "bson": "180000001364000010A5D4E8000000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000E+6123\"}}" + "canonical_bson": "180000001364000010A5D4E8000000000000000000FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000E+6123\"}}" }, { "description": "[decq646] fold-down full sequence", - "bson": "1800000013640000E8764817000000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000000E+6122\"}}" + "canonical_bson": "1800000013640000E8764817000000000000000000FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000000E+6122\"}}" }, { "description": "[decq648] fold-down full sequence", - "bson": "1800000013640000E40B5402000000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000000000E+6121\"}}" + "canonical_bson": "1800000013640000E40B5402000000000000000000FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000000000E+6121\"}}" }, { "description": "[decq650] fold-down full sequence", - "bson": "1800000013640000CA9A3B00000000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000E+6120\"}}" + "canonical_bson": "1800000013640000CA9A3B00000000000000000000FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000E+6120\"}}" }, { "description": "[decq652] fold-down full sequence", - "bson": "1800000013640000E1F50500000000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000E+6119\"}}" + "canonical_bson": "1800000013640000E1F50500000000000000000000FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000E+6119\"}}" }, { "description": "[decq654] fold-down full sequence", - "bson": "180000001364008096980000000000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000000E+6118\"}}" + "canonical_bson": "180000001364008096980000000000000000000000FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000000E+6118\"}}" }, { "description": "[decq656] fold-down full sequence", - "bson": "1800000013640040420F0000000000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000E+6117\"}}" + "canonical_bson": "1800000013640040420F0000000000000000000000FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000E+6117\"}}" }, { "description": "[decq658] fold-down full sequence", - "bson": "18000000136400A086010000000000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000E+6116\"}}" + "canonical_bson": "18000000136400A086010000000000000000000000FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000E+6116\"}}" }, { "description": "[decq660] fold-down full sequence", - "bson": "180000001364001027000000000000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000E+6115\"}}" + "canonical_bson": "180000001364001027000000000000000000000000FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000E+6115\"}}" }, { "description": "[decq662] fold-down full sequence", - "bson": "18000000136400E803000000000000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000E+6114\"}}" + "canonical_bson": "18000000136400E803000000000000000000000000FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000E+6114\"}}" }, { "description": "[decq664] fold-down full sequence", - "bson": "180000001364006400000000000000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00E+6113\"}}" + "canonical_bson": "180000001364006400000000000000000000000000FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00E+6113\"}}" }, { "description": "[decq666] fold-down full sequence", - "bson": "180000001364000A00000000000000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0E+6112\"}}" + "canonical_bson": "180000001364000A00000000000000000000000000FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0E+6112\"}}" }, { "description": "[decq060] fold-downs (more below)", - "bson": "180000001364000100000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1\"}}" + "canonical_bson": "180000001364000100000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1\"}}" }, { "description": "[decq670] fold-down full sequence", - "bson": "180000001364000100000000000000000000000000FC5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6110\"}}" + "canonical_bson": "180000001364000100000000000000000000000000FC5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6110\"}}" }, { "description": "[decq668] fold-down full sequence", - "bson": "180000001364000100000000000000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6111\"}}" + "canonical_bson": "180000001364000100000000000000000000000000FE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6111\"}}" }, { "description": "[decq072] Nmin and below", - "bson": "180000001364000100000000000000000000000000420000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E-6143\"}}" + "canonical_bson": "180000001364000100000000000000000000000000420000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E-6143\"}}" }, { "description": "[decq076] Nmin and below", - "bson": "18000000136400010000000A5BC138938D44C64D31000000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000000000000000001E-6143\"}}" + "canonical_bson": "18000000136400010000000A5BC138938D44C64D31000000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000000000000000001E-6143\"}}" }, { "description": "[decq036] fold-downs (more below)", - "bson": "18000000136400000000807F1BCF85B27059C8A43CFE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.230000000000000000000000000000000E+6144\"}}" + "canonical_bson": "18000000136400000000807F1BCF85B27059C8A43CFE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.230000000000000000000000000000000E+6144\"}}" }, { "description": "[decq062] fold-downs (more below)", - "bson": "180000001364007B000000000000000000000000003C3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.23\"}}" + "canonical_bson": "180000001364007B000000000000000000000000003C3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.23\"}}" }, { "description": "[decq034] Nmax and similar", - "bson": "18000000136400F2AF967ED05C82DE3297FF6FDE3CFE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.234567890123456789012345678901234E+6144\"}}" + "canonical_bson": "18000000136400F2AF967ED05C82DE3297FF6FDE3CFE5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.234567890123456789012345678901234E+6144\"}}" }, { "description": "[decq441] exponent lengths", - "bson": "180000001364000700000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"7\"}}" + "canonical_bson": "180000001364000700000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"7\"}}" }, { "description": "[decq449] exponent lengths", - "bson": "1800000013640007000000000000000000000000001E5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"7E+5999\"}}" + "canonical_bson": "1800000013640007000000000000000000000000001E5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E+5999\"}}" }, { "description": "[decq447] exponent lengths", - "bson": "1800000013640007000000000000000000000000000E3800", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"7E+999\"}}" + "canonical_bson": "1800000013640007000000000000000000000000000E3800", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E+999\"}}" }, { "description": "[decq445] exponent lengths", - "bson": "180000001364000700000000000000000000000000063100", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"7E+99\"}}" + "canonical_bson": "180000001364000700000000000000000000000000063100", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E+99\"}}" }, { "description": "[decq443] exponent lengths", - "bson": "180000001364000700000000000000000000000000523000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"7E+9\"}}" + "canonical_bson": "180000001364000700000000000000000000000000523000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E+9\"}}" }, { "description": "[decq842] VG testcase", - "bson": "180000001364000000FED83F4E7C9FE4E269E38A5BCD1700", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"7.049000000000010795488000000000000E-3097\"}}" + "canonical_bson": "180000001364000000FED83F4E7C9FE4E269E38A5BCD1700", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"7.049000000000010795488000000000000E-3097\"}}" }, { "description": "[decq841] VG testcase", - "bson": "180000001364000000203B9DB5056F000000000000002400", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"8.000000000000000000E-1550\"}}" + "canonical_bson": "180000001364000000203B9DB5056F000000000000002400", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"8.000000000000000000E-1550\"}}" }, { "description": "[decq840] VG testcase", - "bson": "180000001364003C17258419D710C42F0000000000002400", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"8.81125000000001349436E-1548\"}}" + "canonical_bson": "180000001364003C17258419D710C42F0000000000002400", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"8.81125000000001349436E-1548\"}}" }, { "description": "[decq701] Selected DPD codes", - "bson": "180000001364000900000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"9\"}}" + "canonical_bson": "180000001364000900000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"9\"}}" }, { "description": "[decq032] Nmax and similar", - "bson": "18000000136400FFFFFFFF638E8D37C087ADBE09EDFF5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"9.999999999999999999999999999999999E+6144\"}}" + "canonical_bson": "18000000136400FFFFFFFF638E8D37C087ADBE09EDFF5F00", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"9.999999999999999999999999999999999E+6144\"}}" }, { "description": "[decq702] Selected DPD codes", - "bson": "180000001364000A00000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10\"}}" + "canonical_bson": "180000001364000A00000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"10\"}}" }, { "description": "[decq057] fold-downs (more below)", - "bson": "180000001364000C00000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"12\"}}" + "canonical_bson": "180000001364000C00000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"12\"}}" }, { "description": "[decq703] Selected DPD codes", - "bson": "180000001364001300000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"19\"}}" + "canonical_bson": "180000001364001300000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"19\"}}" }, { "description": "[decq704] Selected DPD codes", - "bson": "180000001364001400000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"20\"}}" + "canonical_bson": "180000001364001400000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"20\"}}" }, { "description": "[decq705] Selected DPD codes", - "bson": "180000001364001D00000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"29\"}}" + "canonical_bson": "180000001364001D00000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"29\"}}" }, { "description": "[decq706] Selected DPD codes", - "bson": "180000001364001E00000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"30\"}}" + "canonical_bson": "180000001364001E00000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"30\"}}" }, { "description": "[decq707] Selected DPD codes", - "bson": "180000001364002700000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"39\"}}" + "canonical_bson": "180000001364002700000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"39\"}}" }, { "description": "[decq708] Selected DPD codes", - "bson": "180000001364002800000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"40\"}}" + "canonical_bson": "180000001364002800000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"40\"}}" }, { "description": "[decq709] Selected DPD codes", - "bson": "180000001364003100000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"49\"}}" + "canonical_bson": "180000001364003100000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"49\"}}" }, { "description": "[decq710] Selected DPD codes", - "bson": "180000001364003200000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"50\"}}" + "canonical_bson": "180000001364003200000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"50\"}}" }, { "description": "[decq711] Selected DPD codes", - "bson": "180000001364003B00000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"59\"}}" + "canonical_bson": "180000001364003B00000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"59\"}}" }, { "description": "[decq712] Selected DPD codes", - "bson": "180000001364003C00000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"60\"}}" + "canonical_bson": "180000001364003C00000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"60\"}}" }, { "description": "[decq713] Selected DPD codes", - "bson": "180000001364004500000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"69\"}}" + "canonical_bson": "180000001364004500000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"69\"}}" }, { "description": "[decq714] Selected DPD codes", - "bson": "180000001364004600000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"70\"}}" + "canonical_bson": "180000001364004600000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"70\"}}" }, { "description": "[decq715] Selected DPD codes", - "bson": "180000001364004700000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"71\"}}" + "canonical_bson": "180000001364004700000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"71\"}}" }, { "description": "[decq716] Selected DPD codes", - "bson": "180000001364004800000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"72\"}}" + "canonical_bson": "180000001364004800000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"72\"}}" }, { "description": "[decq717] Selected DPD codes", - "bson": "180000001364004900000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"73\"}}" + "canonical_bson": "180000001364004900000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"73\"}}" }, { "description": "[decq718] Selected DPD codes", - "bson": "180000001364004A00000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"74\"}}" + "canonical_bson": "180000001364004A00000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"74\"}}" }, { "description": "[decq719] Selected DPD codes", - "bson": "180000001364004B00000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"75\"}}" + "canonical_bson": "180000001364004B00000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"75\"}}" }, { "description": "[decq720] Selected DPD codes", - "bson": "180000001364004C00000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"76\"}}" + "canonical_bson": "180000001364004C00000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"76\"}}" }, { "description": "[decq721] Selected DPD codes", - "bson": "180000001364004D00000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"77\"}}" + "canonical_bson": "180000001364004D00000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"77\"}}" }, { "description": "[decq722] Selected DPD codes", - "bson": "180000001364004E00000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"78\"}}" + "canonical_bson": "180000001364004E00000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"78\"}}" }, { "description": "[decq723] Selected DPD codes", - "bson": "180000001364004F00000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"79\"}}" + "canonical_bson": "180000001364004F00000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"79\"}}" }, { "description": "[decq056] fold-downs (more below)", - "bson": "180000001364007B00000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"123\"}}" + "canonical_bson": "180000001364007B00000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"123\"}}" }, { "description": "[decq064] fold-downs (more below)", - "bson": "1800000013640039300000000000000000000000003C3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"123.45\"}}" + "canonical_bson": "1800000013640039300000000000000000000000003C3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"123.45\"}}" }, { "description": "[decq732] Selected DPD codes", - "bson": "180000001364000802000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"520\"}}" + "canonical_bson": "180000001364000802000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"520\"}}" }, { "description": "[decq733] Selected DPD codes", - "bson": "180000001364000902000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"521\"}}" + "canonical_bson": "180000001364000902000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"521\"}}" }, { "description": "[decq740] DPD: one of each of the huffman groups", - "bson": "180000001364000903000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"777\"}}" + "canonical_bson": "180000001364000903000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"777\"}}" }, { "description": "[decq741] DPD: one of each of the huffman groups", - "bson": "180000001364000A03000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"778\"}}" + "canonical_bson": "180000001364000A03000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"778\"}}" }, { "description": "[decq742] DPD: one of each of the huffman groups", - "bson": "180000001364001303000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"787\"}}" + "canonical_bson": "180000001364001303000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"787\"}}" }, { "description": "[decq746] DPD: one of each of the huffman groups", - "bson": "180000001364001F03000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"799\"}}" + "canonical_bson": "180000001364001F03000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"799\"}}" }, { "description": "[decq743] DPD: one of each of the huffman groups", - "bson": "180000001364006D03000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"877\"}}" + "canonical_bson": "180000001364006D03000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"877\"}}" }, { "description": "[decq753] DPD all-highs cases (includes the 24 redundant codes)", - "bson": "180000001364007803000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"888\"}}" + "canonical_bson": "180000001364007803000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"888\"}}" }, { "description": "[decq754] DPD all-highs cases (includes the 24 redundant codes)", - "bson": "180000001364007903000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"889\"}}" + "canonical_bson": "180000001364007903000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"889\"}}" }, { "description": "[decq760] DPD all-highs cases (includes the 24 redundant codes)", - "bson": "180000001364008203000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"898\"}}" + "canonical_bson": "180000001364008203000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"898\"}}" }, { "description": "[decq764] DPD all-highs cases (includes the 24 redundant codes)", - "bson": "180000001364008303000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"899\"}}" + "canonical_bson": "180000001364008303000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"899\"}}" }, { "description": "[decq745] DPD: one of each of the huffman groups", - "bson": "18000000136400D303000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"979\"}}" + "canonical_bson": "18000000136400D303000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"979\"}}" }, { "description": "[decq770] DPD all-highs cases (includes the 24 redundant codes)", - "bson": "18000000136400DC03000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"988\"}}" + "canonical_bson": "18000000136400DC03000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"988\"}}" }, { "description": "[decq774] DPD all-highs cases (includes the 24 redundant codes)", - "bson": "18000000136400DD03000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"989\"}}" + "canonical_bson": "18000000136400DD03000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"989\"}}" }, { "description": "[decq730] Selected DPD codes", - "bson": "18000000136400E203000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"994\"}}" + "canonical_bson": "18000000136400E203000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"994\"}}" }, { "description": "[decq731] Selected DPD codes", - "bson": "18000000136400E303000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"995\"}}" + "canonical_bson": "18000000136400E303000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"995\"}}" }, { "description": "[decq744] DPD: one of each of the huffman groups", - "bson": "18000000136400E503000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"997\"}}" + "canonical_bson": "18000000136400E503000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"997\"}}" }, { "description": "[decq780] DPD all-highs cases (includes the 24 redundant codes)", - "bson": "18000000136400E603000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"998\"}}" + "canonical_bson": "18000000136400E603000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"998\"}}" }, { "description": "[decq787] DPD all-highs cases (includes the 24 redundant codes)", - "bson": "18000000136400E703000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"999\"}}" + "canonical_bson": "18000000136400E703000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"999\"}}" }, { "description": "[decq053] fold-downs (more below)", - "bson": "18000000136400D204000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1234\"}}" + "canonical_bson": "18000000136400D204000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1234\"}}" }, { "description": "[decq052] fold-downs (more below)", - "bson": "180000001364003930000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"12345\"}}" + "canonical_bson": "180000001364003930000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"12345\"}}" }, { "description": "[decq792] Miscellaneous (testers' queries, etc.)", - "bson": "180000001364003075000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"30000\"}}" + "canonical_bson": "180000001364003075000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"30000\"}}" }, { "description": "[decq793] Miscellaneous (testers' queries, etc.)", - "bson": "1800000013640090940D0000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"890000\"}}" + "canonical_bson": "1800000013640090940D0000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"890000\"}}" }, { "description": "[decq824] values around [u]int32 edges (zeros done earlier)", - "bson": "18000000136400FEFFFF7F00000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"2147483646\"}}" + "canonical_bson": "18000000136400FEFFFF7F00000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"2147483646\"}}" }, { "description": "[decq825] values around [u]int32 edges (zeros done earlier)", - "bson": "18000000136400FFFFFF7F00000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"2147483647\"}}" + "canonical_bson": "18000000136400FFFFFF7F00000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"2147483647\"}}" }, { "description": "[decq826] values around [u]int32 edges (zeros done earlier)", - "bson": "180000001364000000008000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"2147483648\"}}" + "canonical_bson": "180000001364000000008000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"2147483648\"}}" }, { "description": "[decq827] values around [u]int32 edges (zeros done earlier)", - "bson": "180000001364000100008000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"2147483649\"}}" + "canonical_bson": "180000001364000100008000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"2147483649\"}}" }, { "description": "[decq828] values around [u]int32 edges (zeros done earlier)", - "bson": "18000000136400FEFFFFFF00000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"4294967294\"}}" + "canonical_bson": "18000000136400FEFFFFFF00000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"4294967294\"}}" }, { "description": "[decq829] values around [u]int32 edges (zeros done earlier)", - "bson": "18000000136400FFFFFFFF00000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"4294967295\"}}" + "canonical_bson": "18000000136400FFFFFFFF00000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"4294967295\"}}" }, { "description": "[decq830] values around [u]int32 edges (zeros done earlier)", - "bson": "180000001364000000000001000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"4294967296\"}}" + "canonical_bson": "180000001364000000000001000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"4294967296\"}}" }, { "description": "[decq831] values around [u]int32 edges (zeros done earlier)", - "bson": "180000001364000100000001000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"4294967297\"}}" + "canonical_bson": "180000001364000100000001000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"4294967297\"}}" }, { "description": "[decq022] Normality", - "bson": "18000000136400C7711CC7B548F377DC80A131C836403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1111111111111111111111111111111111\"}}" + "canonical_bson": "18000000136400C7711CC7B548F377DC80A131C836403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1111111111111111111111111111111111\"}}" }, { "description": "[decq020] Normality", - "bson": "18000000136400F2AF967ED05C82DE3297FF6FDE3C403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1234567890123456789012345678901234\"}}" + "canonical_bson": "18000000136400F2AF967ED05C82DE3297FF6FDE3C403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1234567890123456789012345678901234\"}}" }, { "description": "[decq550] Specials", - "bson": "18000000136400FFFFFFFF638E8D37C087ADBE09ED413000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"9999999999999999999999999999999999\"}}" + "canonical_bson": "18000000136400FFFFFFFF638E8D37C087ADBE09ED413000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"9999999999999999999999999999999999\"}}" } ] } diff -Nru libbson-xs-perl-0.4.3/corpus/decimal128-3.json libbson-xs-perl-0.4.6/corpus/decimal128-3.json --- libbson-xs-perl-0.4.3/corpus/decimal128-3.json 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/corpus/decimal128-3.json 2018-10-12 15:50:18.000000000 +0000 @@ -5,1767 +5,1767 @@ "valid": [ { "description": "[basx066] strings without E cannot generate E in result", - "bson": "18000000136400185C0ACE0000000000000000000038B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-00345678.5432\"}}", + "canonical_bson": "18000000136400185C0ACE0000000000000000000038B000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-00345678.5432\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-345678.5432\"}}" }, { "description": "[basx065] strings without E cannot generate E in result", - "bson": "18000000136400185C0ACE0000000000000000000038B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0345678.5432\"}}", + "canonical_bson": "18000000136400185C0ACE0000000000000000000038B000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0345678.5432\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-345678.5432\"}}" }, { "description": "[basx064] strings without E cannot generate E in result", - "bson": "18000000136400185C0ACE0000000000000000000038B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-345678.5432\"}}" + "canonical_bson": "18000000136400185C0ACE0000000000000000000038B000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-345678.5432\"}}" }, { "description": "[basx041] strings without E cannot generate E in result", - "bson": "180000001364004C0000000000000000000000000040B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-76\"}}" + "canonical_bson": "180000001364004C0000000000000000000000000040B000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-76\"}}" }, { "description": "[basx027] conform to rules and exponent will be in permitted range).", - "bson": "180000001364000F270000000000000000000000003AB000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-9.999\"}}" + "canonical_bson": "180000001364000F270000000000000000000000003AB000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-9.999\"}}" }, { "description": "[basx026] conform to rules and exponent will be in permitted range).", - "bson": "180000001364009F230000000000000000000000003AB000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-9.119\"}}" + "canonical_bson": "180000001364009F230000000000000000000000003AB000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-9.119\"}}" }, { "description": "[basx025] conform to rules and exponent will be in permitted range).", - "bson": "180000001364008F030000000000000000000000003CB000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-9.11\"}}" + "canonical_bson": "180000001364008F030000000000000000000000003CB000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-9.11\"}}" }, { "description": "[basx024] conform to rules and exponent will be in permitted range).", - "bson": "180000001364005B000000000000000000000000003EB000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-9.1\"}}" + "canonical_bson": "180000001364005B000000000000000000000000003EB000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-9.1\"}}" }, { "description": "[dqbsr531] negatives (Rounded)", - "bson": "1800000013640099761CC7B548F377DC80A131C836FEAF00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.1111111111111111111111111111123450\"}}", + "canonical_bson": "1800000013640099761CC7B548F377DC80A131C836FEAF00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.1111111111111111111111111111123450\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.111111111111111111111111111112345\"}}" }, { "description": "[basx022] conform to rules and exponent will be in permitted range).", - "bson": "180000001364000A000000000000000000000000003EB000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.0\"}}" + "canonical_bson": "180000001364000A000000000000000000000000003EB000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.0\"}}" }, { "description": "[basx021] conform to rules and exponent will be in permitted range).", - "bson": "18000000136400010000000000000000000000000040B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-1\"}}" + "canonical_bson": "18000000136400010000000000000000000000000040B000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1\"}}" }, { "description": "[basx601] Zeros", - "bson": "1800000013640000000000000000000000000000002E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000000000\"}}", + "canonical_bson": "1800000013640000000000000000000000000000002E3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000000000\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-9\"}}" }, { "description": "[basx622] Zeros", - "bson": "1800000013640000000000000000000000000000002EB000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.000000000\"}}", + "canonical_bson": "1800000013640000000000000000000000000000002EB000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.000000000\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E-9\"}}" }, { "description": "[basx602] Zeros", - "bson": "180000001364000000000000000000000000000000303000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00000000\"}}", + "canonical_bson": "180000001364000000000000000000000000000000303000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00000000\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-8\"}}" }, { "description": "[basx621] Zeros", - "bson": "18000000136400000000000000000000000000000030B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.00000000\"}}", + "canonical_bson": "18000000136400000000000000000000000000000030B000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.00000000\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E-8\"}}" }, { "description": "[basx603] Zeros", - "bson": "180000001364000000000000000000000000000000323000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0000000\"}}", + "canonical_bson": "180000001364000000000000000000000000000000323000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0000000\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-7\"}}" }, { "description": "[basx620] Zeros", - "bson": "18000000136400000000000000000000000000000032B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.0000000\"}}", + "canonical_bson": "18000000136400000000000000000000000000000032B000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.0000000\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E-7\"}}" }, { "description": "[basx604] Zeros", - "bson": "180000001364000000000000000000000000000000343000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000000\"}}" + "canonical_bson": "180000001364000000000000000000000000000000343000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000000\"}}" }, { "description": "[basx619] Zeros", - "bson": "18000000136400000000000000000000000000000034B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.000000\"}}" + "canonical_bson": "18000000136400000000000000000000000000000034B000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.000000\"}}" }, { "description": "[basx605] Zeros", - "bson": "180000001364000000000000000000000000000000363000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00000\"}}" + "canonical_bson": "180000001364000000000000000000000000000000363000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00000\"}}" }, { "description": "[basx618] Zeros", - "bson": "18000000136400000000000000000000000000000036B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.00000\"}}" + "canonical_bson": "18000000136400000000000000000000000000000036B000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.00000\"}}" }, { "description": "[basx680] Zeros", - "bson": "180000001364000000000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"000000.\"}}", + "canonical_bson": "180000001364000000000000000000000000000000403000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"000000.\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0\"}}" }, { "description": "[basx606] Zeros", - "bson": "180000001364000000000000000000000000000000383000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0000\"}}" + "canonical_bson": "180000001364000000000000000000000000000000383000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0000\"}}" }, { "description": "[basx617] Zeros", - "bson": "18000000136400000000000000000000000000000038B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.0000\"}}" + "canonical_bson": "18000000136400000000000000000000000000000038B000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.0000\"}}" }, { "description": "[basx681] Zeros", - "bson": "180000001364000000000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"00000.\"}}", + "canonical_bson": "180000001364000000000000000000000000000000403000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"00000.\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0\"}}" }, { "description": "[basx686] Zeros", - "bson": "180000001364000000000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"+00000.\"}}", + "canonical_bson": "180000001364000000000000000000000000000000403000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"+00000.\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0\"}}" }, { "description": "[basx687] Zeros", - "bson": "18000000136400000000000000000000000000000040B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-00000.\"}}", + "canonical_bson": "18000000136400000000000000000000000000000040B000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-00000.\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0\"}}" }, { "description": "[basx019] conform to rules and exponent will be in permitted range).", - "bson": "1800000013640000000000000000000000000000003CB000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-00.00\"}}", + "canonical_bson": "1800000013640000000000000000000000000000003CB000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-00.00\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.00\"}}" }, { "description": "[basx607] Zeros", - "bson": "1800000013640000000000000000000000000000003A3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000\"}}" + "canonical_bson": "1800000013640000000000000000000000000000003A3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000\"}}" }, { "description": "[basx616] Zeros", - "bson": "1800000013640000000000000000000000000000003AB000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.000\"}}" + "canonical_bson": "1800000013640000000000000000000000000000003AB000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.000\"}}" }, { "description": "[basx682] Zeros", - "bson": "180000001364000000000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0000.\"}}", + "canonical_bson": "180000001364000000000000000000000000000000403000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0000.\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0\"}}" }, { "description": "[basx155] Numbers with E", - "bson": "1800000013640000000000000000000000000000003A3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000e+0\"}}", + "canonical_bson": "1800000013640000000000000000000000000000003A3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000e+0\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000\"}}" }, { "description": "[basx130] Numbers with E", - "bson": "180000001364000000000000000000000000000000383000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000E-1\"}}", + "canonical_bson": "180000001364000000000000000000000000000000383000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000E-1\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0000\"}}" }, { "description": "[basx290] some more negative zeros [systematic tests below]", - "bson": "18000000136400000000000000000000000000000038B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.000E-1\"}}", + "canonical_bson": "18000000136400000000000000000000000000000038B000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.000E-1\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.0000\"}}" }, { "description": "[basx131] Numbers with E", - "bson": "180000001364000000000000000000000000000000363000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000E-2\"}}", + "canonical_bson": "180000001364000000000000000000000000000000363000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000E-2\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00000\"}}" }, { "description": "[basx291] some more negative zeros [systematic tests below]", - "bson": "18000000136400000000000000000000000000000036B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.000E-2\"}}", + "canonical_bson": "18000000136400000000000000000000000000000036B000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.000E-2\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.00000\"}}" }, { "description": "[basx132] Numbers with E", - "bson": "180000001364000000000000000000000000000000343000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000E-3\"}}", + "canonical_bson": "180000001364000000000000000000000000000000343000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000E-3\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000000\"}}" }, { "description": "[basx292] some more negative zeros [systematic tests below]", - "bson": "18000000136400000000000000000000000000000034B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.000E-3\"}}", + "canonical_bson": "18000000136400000000000000000000000000000034B000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.000E-3\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.000000\"}}" }, { "description": "[basx133] Numbers with E", - "bson": "180000001364000000000000000000000000000000323000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000E-4\"}}", + "canonical_bson": "180000001364000000000000000000000000000000323000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000E-4\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-7\"}}" }, { "description": "[basx293] some more negative zeros [systematic tests below]", - "bson": "18000000136400000000000000000000000000000032B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.000E-4\"}}", + "canonical_bson": "18000000136400000000000000000000000000000032B000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.000E-4\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E-7\"}}" }, { "description": "[basx608] Zeros", - "bson": "1800000013640000000000000000000000000000003C3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00\"}}" + "canonical_bson": "1800000013640000000000000000000000000000003C3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00\"}}" }, { "description": "[basx615] Zeros", - "bson": "1800000013640000000000000000000000000000003CB000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.00\"}}" + "canonical_bson": "1800000013640000000000000000000000000000003CB000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.00\"}}" }, { "description": "[basx683] Zeros", - "bson": "180000001364000000000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"000.\"}}", + "canonical_bson": "180000001364000000000000000000000000000000403000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"000.\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0\"}}" }, { "description": "[basx630] Zeros", - "bson": "1800000013640000000000000000000000000000003C3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E+0\"}}", + "canonical_bson": "1800000013640000000000000000000000000000003C3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E+0\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00\"}}" }, { "description": "[basx670] Zeros", - "bson": "1800000013640000000000000000000000000000003C3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E-0\"}}", + "canonical_bson": "1800000013640000000000000000000000000000003C3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E-0\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00\"}}" }, { "description": "[basx631] Zeros", - "bson": "1800000013640000000000000000000000000000003E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E+1\"}}", + "canonical_bson": "1800000013640000000000000000000000000000003E3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E+1\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0\"}}" }, { "description": "[basx671] Zeros", - "bson": "1800000013640000000000000000000000000000003A3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E-1\"}}", + "canonical_bson": "1800000013640000000000000000000000000000003A3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E-1\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000\"}}" }, { "description": "[basx134] Numbers with E", - "bson": "180000001364000000000000000000000000000000383000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E-2\"}}", + "canonical_bson": "180000001364000000000000000000000000000000383000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E-2\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0000\"}}" }, { "description": "[basx294] some more negative zeros [systematic tests below]", - "bson": "18000000136400000000000000000000000000000038B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.00E-2\"}}", + "canonical_bson": "18000000136400000000000000000000000000000038B000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.00E-2\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.0000\"}}" }, { "description": "[basx632] Zeros", - "bson": "180000001364000000000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E+2\"}}", + "canonical_bson": "180000001364000000000000000000000000000000403000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E+2\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0\"}}" }, { "description": "[basx672] Zeros", - "bson": "180000001364000000000000000000000000000000383000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E-2\"}}", + "canonical_bson": "180000001364000000000000000000000000000000383000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E-2\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0000\"}}" }, { "description": "[basx135] Numbers with E", - "bson": "180000001364000000000000000000000000000000363000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E-3\"}}", + "canonical_bson": "180000001364000000000000000000000000000000363000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E-3\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00000\"}}" }, { "description": "[basx295] some more negative zeros [systematic tests below]", - "bson": "18000000136400000000000000000000000000000036B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.00E-3\"}}", + "canonical_bson": "18000000136400000000000000000000000000000036B000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.00E-3\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.00000\"}}" }, { "description": "[basx633] Zeros", - "bson": "180000001364000000000000000000000000000000423000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E+3\"}}", + "canonical_bson": "180000001364000000000000000000000000000000423000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E+3\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+1\"}}" }, { "description": "[basx673] Zeros", - "bson": "180000001364000000000000000000000000000000363000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E-3\"}}", + "canonical_bson": "180000001364000000000000000000000000000000363000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E-3\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00000\"}}" }, { "description": "[basx136] Numbers with E", - "bson": "180000001364000000000000000000000000000000343000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E-4\"}}", + "canonical_bson": "180000001364000000000000000000000000000000343000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E-4\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000000\"}}" }, { "description": "[basx674] Zeros", - "bson": "180000001364000000000000000000000000000000343000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E-4\"}}", + "canonical_bson": "180000001364000000000000000000000000000000343000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E-4\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000000\"}}" }, { "description": "[basx634] Zeros", - "bson": "180000001364000000000000000000000000000000443000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E+4\"}}", + "canonical_bson": "180000001364000000000000000000000000000000443000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E+4\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+2\"}}" }, { "description": "[basx137] Numbers with E", - "bson": "180000001364000000000000000000000000000000323000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E-5\"}}", + "canonical_bson": "180000001364000000000000000000000000000000323000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E-5\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-7\"}}" }, { "description": "[basx635] Zeros", - "bson": "180000001364000000000000000000000000000000463000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E+5\"}}", + "canonical_bson": "180000001364000000000000000000000000000000463000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E+5\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+3\"}}" }, { "description": "[basx675] Zeros", - "bson": "180000001364000000000000000000000000000000323000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E-5\"}}", + "canonical_bson": "180000001364000000000000000000000000000000323000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E-5\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-7\"}}" }, { "description": "[basx636] Zeros", - "bson": "180000001364000000000000000000000000000000483000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E+6\"}}", + "canonical_bson": "180000001364000000000000000000000000000000483000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E+6\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+4\"}}" }, { "description": "[basx676] Zeros", - "bson": "180000001364000000000000000000000000000000303000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E-6\"}}", + "canonical_bson": "180000001364000000000000000000000000000000303000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E-6\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-8\"}}" }, { "description": "[basx637] Zeros", - "bson": "1800000013640000000000000000000000000000004A3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E+7\"}}", + "canonical_bson": "1800000013640000000000000000000000000000004A3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E+7\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+5\"}}" }, { "description": "[basx677] Zeros", - "bson": "1800000013640000000000000000000000000000002E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E-7\"}}", + "canonical_bson": "1800000013640000000000000000000000000000002E3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E-7\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-9\"}}" }, { "description": "[basx638] Zeros", - "bson": "1800000013640000000000000000000000000000004C3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E+8\"}}", + "canonical_bson": "1800000013640000000000000000000000000000004C3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E+8\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+6\"}}" }, { "description": "[basx678] Zeros", - "bson": "1800000013640000000000000000000000000000002C3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E-8\"}}", + "canonical_bson": "1800000013640000000000000000000000000000002C3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E-8\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-10\"}}" }, { "description": "[basx149] Numbers with E", - "bson": "180000001364000000000000000000000000000000523000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"000E+9\"}}", + "canonical_bson": "180000001364000000000000000000000000000000523000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"000E+9\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+9\"}}" }, { "description": "[basx639] Zeros", - "bson": "1800000013640000000000000000000000000000004E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E+9\"}}", + "canonical_bson": "1800000013640000000000000000000000000000004E3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E+9\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+7\"}}" }, { "description": "[basx679] Zeros", - "bson": "1800000013640000000000000000000000000000002A3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E-9\"}}", + "canonical_bson": "1800000013640000000000000000000000000000002A3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00E-9\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-11\"}}" }, { "description": "[basx063] strings without E cannot generate E in result", - "bson": "18000000136400185C0ACE00000000000000000000383000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"+00345678.5432\"}}", + "canonical_bson": "18000000136400185C0ACE00000000000000000000383000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"+00345678.5432\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"345678.5432\"}}" }, { "description": "[basx018] conform to rules and exponent will be in permitted range).", - "bson": "1800000013640000000000000000000000000000003EB000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.0\"}}" + "canonical_bson": "1800000013640000000000000000000000000000003EB000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.0\"}}" }, { "description": "[basx609] Zeros", - "bson": "1800000013640000000000000000000000000000003E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0\"}}" + "canonical_bson": "1800000013640000000000000000000000000000003E3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0\"}}" }, { "description": "[basx614] Zeros", - "bson": "1800000013640000000000000000000000000000003EB000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.0\"}}" + "canonical_bson": "1800000013640000000000000000000000000000003EB000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.0\"}}" }, { "description": "[basx684] Zeros", - "bson": "180000001364000000000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"00.\"}}", + "canonical_bson": "180000001364000000000000000000000000000000403000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"00.\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0\"}}" }, { "description": "[basx640] Zeros", - "bson": "1800000013640000000000000000000000000000003E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E+0\"}}", + "canonical_bson": "1800000013640000000000000000000000000000003E3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E+0\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0\"}}" }, { "description": "[basx660] Zeros", - "bson": "1800000013640000000000000000000000000000003E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E-0\"}}", + "canonical_bson": "1800000013640000000000000000000000000000003E3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E-0\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0\"}}" }, { "description": "[basx641] Zeros", - "bson": "180000001364000000000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E+1\"}}", + "canonical_bson": "180000001364000000000000000000000000000000403000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E+1\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0\"}}" }, { "description": "[basx661] Zeros", - "bson": "1800000013640000000000000000000000000000003C3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E-1\"}}", + "canonical_bson": "1800000013640000000000000000000000000000003C3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E-1\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00\"}}" }, { "description": "[basx296] some more negative zeros [systematic tests below]", - "bson": "1800000013640000000000000000000000000000003AB000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.0E-2\"}}", + "canonical_bson": "1800000013640000000000000000000000000000003AB000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.0E-2\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.000\"}}" }, { "description": "[basx642] Zeros", - "bson": "180000001364000000000000000000000000000000423000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E+2\"}}", + "canonical_bson": "180000001364000000000000000000000000000000423000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E+2\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+1\"}}" }, { "description": "[basx662] Zeros", - "bson": "1800000013640000000000000000000000000000003A3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E-2\"}}", + "canonical_bson": "1800000013640000000000000000000000000000003A3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E-2\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000\"}}" }, { "description": "[basx297] some more negative zeros [systematic tests below]", - "bson": "18000000136400000000000000000000000000000038B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.0E-3\"}}", + "canonical_bson": "18000000136400000000000000000000000000000038B000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.0E-3\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.0000\"}}" }, { "description": "[basx643] Zeros", - "bson": "180000001364000000000000000000000000000000443000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E+3\"}}", + "canonical_bson": "180000001364000000000000000000000000000000443000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E+3\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+2\"}}" }, { "description": "[basx663] Zeros", - "bson": "180000001364000000000000000000000000000000383000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E-3\"}}", + "canonical_bson": "180000001364000000000000000000000000000000383000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E-3\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0000\"}}" }, { "description": "[basx644] Zeros", - "bson": "180000001364000000000000000000000000000000463000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E+4\"}}", + "canonical_bson": "180000001364000000000000000000000000000000463000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E+4\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+3\"}}" }, { "description": "[basx664] Zeros", - "bson": "180000001364000000000000000000000000000000363000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E-4\"}}", + "canonical_bson": "180000001364000000000000000000000000000000363000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E-4\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00000\"}}" }, { "description": "[basx645] Zeros", - "bson": "180000001364000000000000000000000000000000483000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E+5\"}}", + "canonical_bson": "180000001364000000000000000000000000000000483000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E+5\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+4\"}}" }, { "description": "[basx665] Zeros", - "bson": "180000001364000000000000000000000000000000343000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E-5\"}}", + "canonical_bson": "180000001364000000000000000000000000000000343000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E-5\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000000\"}}" }, { "description": "[basx646] Zeros", - "bson": "1800000013640000000000000000000000000000004A3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E+6\"}}", + "canonical_bson": "1800000013640000000000000000000000000000004A3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E+6\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+5\"}}" }, { "description": "[basx666] Zeros", - "bson": "180000001364000000000000000000000000000000323000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E-6\"}}", + "canonical_bson": "180000001364000000000000000000000000000000323000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E-6\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-7\"}}" }, { "description": "[basx647] Zeros", - "bson": "1800000013640000000000000000000000000000004C3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E+7\"}}", + "canonical_bson": "1800000013640000000000000000000000000000004C3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E+7\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+6\"}}" }, { "description": "[basx667] Zeros", - "bson": "180000001364000000000000000000000000000000303000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E-7\"}}", + "canonical_bson": "180000001364000000000000000000000000000000303000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E-7\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-8\"}}" }, { "description": "[basx648] Zeros", - "bson": "1800000013640000000000000000000000000000004E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E+8\"}}", + "canonical_bson": "1800000013640000000000000000000000000000004E3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E+8\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+7\"}}" }, { "description": "[basx668] Zeros", - "bson": "1800000013640000000000000000000000000000002E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E-8\"}}", + "canonical_bson": "1800000013640000000000000000000000000000002E3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E-8\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-9\"}}" }, { "description": "[basx160] Numbers with E", - "bson": "180000001364000000000000000000000000000000523000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"00E+9\"}}", + "canonical_bson": "180000001364000000000000000000000000000000523000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"00E+9\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+9\"}}" }, { "description": "[basx161] Numbers with E", - "bson": "1800000013640000000000000000000000000000002E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"00E-9\"}}", + "canonical_bson": "1800000013640000000000000000000000000000002E3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"00E-9\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-9\"}}" }, { "description": "[basx649] Zeros", - "bson": "180000001364000000000000000000000000000000503000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E+9\"}}", + "canonical_bson": "180000001364000000000000000000000000000000503000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E+9\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+8\"}}" }, { "description": "[basx669] Zeros", - "bson": "1800000013640000000000000000000000000000002C3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E-9\"}}", + "canonical_bson": "1800000013640000000000000000000000000000002C3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0E-9\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-10\"}}" }, { "description": "[basx062] strings without E cannot generate E in result", - "bson": "18000000136400185C0ACE00000000000000000000383000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"+0345678.5432\"}}", + "canonical_bson": "18000000136400185C0ACE00000000000000000000383000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"+0345678.5432\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"345678.5432\"}}" }, { "description": "[basx001] conform to rules and exponent will be in permitted range).", - "bson": "180000001364000000000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0\"}}" + "canonical_bson": "180000001364000000000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0\"}}" }, { "description": "[basx017] conform to rules and exponent will be in permitted range).", - "bson": "18000000136400000000000000000000000000000040B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0\"}}" + "canonical_bson": "18000000136400000000000000000000000000000040B000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0\"}}" }, { "description": "[basx611] Zeros", - "bson": "180000001364000000000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.\"}}", + "canonical_bson": "180000001364000000000000000000000000000000403000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0\"}}" }, { "description": "[basx613] Zeros", - "bson": "18000000136400000000000000000000000000000040B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.\"}}", + "canonical_bson": "18000000136400000000000000000000000000000040B000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0\"}}" }, { "description": "[basx685] Zeros", - "bson": "180000001364000000000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.\"}}", + "canonical_bson": "180000001364000000000000000000000000000000403000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0\"}}" }, { "description": "[basx688] Zeros", - "bson": "180000001364000000000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"+0.\"}}", + "canonical_bson": "180000001364000000000000000000000000000000403000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"+0.\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0\"}}" }, { "description": "[basx689] Zeros", - "bson": "18000000136400000000000000000000000000000040B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.\"}}", + "canonical_bson": "18000000136400000000000000000000000000000040B000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0\"}}" }, { "description": "[basx650] Zeros", - "bson": "180000001364000000000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+0\"}}", + "canonical_bson": "180000001364000000000000000000000000000000403000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+0\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0\"}}" }, { "description": "[basx651] Zeros", - "bson": "180000001364000000000000000000000000000000423000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+1\"}}" + "canonical_bson": "180000001364000000000000000000000000000000423000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+1\"}}" }, { "description": "[basx298] some more negative zeros [systematic tests below]", - "bson": "1800000013640000000000000000000000000000003CB000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E-2\"}}", + "canonical_bson": "1800000013640000000000000000000000000000003CB000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E-2\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.00\"}}" }, { "description": "[basx652] Zeros", - "bson": "180000001364000000000000000000000000000000443000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+2\"}}" + "canonical_bson": "180000001364000000000000000000000000000000443000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+2\"}}" }, { "description": "[basx299] some more negative zeros [systematic tests below]", - "bson": "1800000013640000000000000000000000000000003AB000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E-3\"}}", + "canonical_bson": "1800000013640000000000000000000000000000003AB000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E-3\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.000\"}}" }, { "description": "[basx653] Zeros", - "bson": "180000001364000000000000000000000000000000463000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+3\"}}" + "canonical_bson": "180000001364000000000000000000000000000000463000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+3\"}}" }, { "description": "[basx654] Zeros", - "bson": "180000001364000000000000000000000000000000483000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+4\"}}" + "canonical_bson": "180000001364000000000000000000000000000000483000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+4\"}}" }, { "description": "[basx655] Zeros", - "bson": "1800000013640000000000000000000000000000004A3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+5\"}}" + "canonical_bson": "1800000013640000000000000000000000000000004A3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+5\"}}" }, { "description": "[basx656] Zeros", - "bson": "1800000013640000000000000000000000000000004C3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+6\"}}" + "canonical_bson": "1800000013640000000000000000000000000000004C3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+6\"}}" }, { "description": "[basx657] Zeros", - "bson": "1800000013640000000000000000000000000000004E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+7\"}}" + "canonical_bson": "1800000013640000000000000000000000000000004E3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+7\"}}" }, { "description": "[basx658] Zeros", - "bson": "180000001364000000000000000000000000000000503000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+8\"}}" + "canonical_bson": "180000001364000000000000000000000000000000503000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+8\"}}" }, { "description": "[basx138] Numbers with E", - "bson": "180000001364000000000000000000000000000000523000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"+0E+9\"}}", + "canonical_bson": "180000001364000000000000000000000000000000523000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"+0E+9\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+9\"}}" }, { "description": "[basx139] Numbers with E", - "bson": "18000000136400000000000000000000000000000052B000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E+9\"}}" + "canonical_bson": "18000000136400000000000000000000000000000052B000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E+9\"}}" }, { "description": "[basx144] Numbers with E", - "bson": "180000001364000000000000000000000000000000523000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+9\"}}" + "canonical_bson": "180000001364000000000000000000000000000000523000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+9\"}}" }, { "description": "[basx154] Numbers with E", - "bson": "180000001364000000000000000000000000000000523000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0E9\"}}", + "canonical_bson": "180000001364000000000000000000000000000000523000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E9\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+9\"}}" }, { "description": "[basx659] Zeros", - "bson": "180000001364000000000000000000000000000000523000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+9\"}}" + "canonical_bson": "180000001364000000000000000000000000000000523000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+9\"}}" }, { "description": "[basx042] strings without E cannot generate E in result", - "bson": "18000000136400FC040000000000000000000000003C3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"+12.76\"}}", + "canonical_bson": "18000000136400FC040000000000000000000000003C3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"+12.76\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"12.76\"}}" }, { "description": "[basx143] Numbers with E", - "bson": "180000001364000100000000000000000000000000523000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"+1E+009\"}}", + "canonical_bson": "180000001364000100000000000000000000000000523000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"+1E+009\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+9\"}}" }, { "description": "[basx061] strings without E cannot generate E in result", - "bson": "18000000136400185C0ACE00000000000000000000383000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"+345678.5432\"}}", + "canonical_bson": "18000000136400185C0ACE00000000000000000000383000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"+345678.5432\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"345678.5432\"}}" }, { "description": "[basx036] conform to rules and exponent will be in permitted range).", - "bson": "1800000013640015CD5B0700000000000000000000203000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0000000123456789\"}}", + "canonical_bson": "1800000013640015CD5B0700000000000000000000203000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0000000123456789\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.23456789E-8\"}}" }, { "description": "[basx035] conform to rules and exponent will be in permitted range).", - "bson": "1800000013640015CD5B0700000000000000000000223000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000000123456789\"}}", + "canonical_bson": "1800000013640015CD5B0700000000000000000000223000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000000123456789\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.23456789E-7\"}}" }, { "description": "[basx034] conform to rules and exponent will be in permitted range).", - "bson": "1800000013640015CD5B0700000000000000000000243000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00000123456789\"}}" + "canonical_bson": "1800000013640015CD5B0700000000000000000000243000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00000123456789\"}}" }, { "description": "[basx053] strings without E cannot generate E in result", - "bson": "180000001364003200000000000000000000000000323000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0000050\"}}" + "canonical_bson": "180000001364003200000000000000000000000000323000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0000050\"}}" }, { "description": "[basx033] conform to rules and exponent will be in permitted range).", - "bson": "1800000013640015CD5B0700000000000000000000263000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0000123456789\"}}" + "canonical_bson": "1800000013640015CD5B0700000000000000000000263000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0000123456789\"}}" }, { "description": "[basx016] conform to rules and exponent will be in permitted range).", - "bson": "180000001364000C000000000000000000000000003A3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.012\"}}" + "canonical_bson": "180000001364000C000000000000000000000000003A3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.012\"}}" }, { "description": "[basx015] conform to rules and exponent will be in permitted range).", - "bson": "180000001364007B000000000000000000000000003A3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.123\"}}" + "canonical_bson": "180000001364007B000000000000000000000000003A3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.123\"}}" }, { "description": "[basx037] conform to rules and exponent will be in permitted range).", - "bson": "1800000013640078DF0D8648700000000000000000223000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.123456789012344\"}}" + "canonical_bson": "1800000013640078DF0D8648700000000000000000223000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.123456789012344\"}}" }, { "description": "[basx038] conform to rules and exponent will be in permitted range).", - "bson": "1800000013640079DF0D8648700000000000000000223000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.123456789012345\"}}" + "canonical_bson": "1800000013640079DF0D8648700000000000000000223000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.123456789012345\"}}" }, { "description": "[basx250] Numbers with E", - "bson": "18000000136400F104000000000000000000000000383000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265\"}}" + "canonical_bson": "18000000136400F104000000000000000000000000383000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265\"}}" }, { "description": "[basx257] Numbers with E", - "bson": "18000000136400F104000000000000000000000000383000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265E-0\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000383000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265E-0\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265\"}}" }, { "description": "[basx256] Numbers with E", - "bson": "18000000136400F104000000000000000000000000363000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265E-1\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000363000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265E-1\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.01265\"}}" }, { "description": "[basx258] Numbers with E", - "bson": "18000000136400F1040000000000000000000000003A3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265E+1\"}}", + "canonical_bson": "18000000136400F1040000000000000000000000003A3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265E+1\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265\"}}" }, { "description": "[basx251] Numbers with E", - "bson": "18000000136400F104000000000000000000000000103000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265E-20\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000103000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265E-20\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E-21\"}}" }, { "description": "[basx263] Numbers with E", - "bson": "18000000136400F104000000000000000000000000603000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265E+20\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000603000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265E+20\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E+19\"}}" }, { "description": "[basx255] Numbers with E", - "bson": "18000000136400F104000000000000000000000000343000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265E-2\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000343000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265E-2\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.001265\"}}" }, { "description": "[basx259] Numbers with E", - "bson": "18000000136400F1040000000000000000000000003C3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265E+2\"}}", + "canonical_bson": "18000000136400F1040000000000000000000000003C3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265E+2\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65\"}}" }, { "description": "[basx254] Numbers with E", - "bson": "18000000136400F104000000000000000000000000323000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265E-3\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000323000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265E-3\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0001265\"}}" }, { "description": "[basx260] Numbers with E", - "bson": "18000000136400F1040000000000000000000000003E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265E+3\"}}", + "canonical_bson": "18000000136400F1040000000000000000000000003E3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265E+3\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5\"}}" }, { "description": "[basx253] Numbers with E", - "bson": "18000000136400F104000000000000000000000000303000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265E-4\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000303000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265E-4\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00001265\"}}" }, { "description": "[basx261] Numbers with E", - "bson": "18000000136400F104000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265E+4\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000403000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265E+4\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1265\"}}" }, { "description": "[basx252] Numbers with E", - "bson": "18000000136400F104000000000000000000000000283000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265E-8\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000283000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265E-8\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E-9\"}}" }, { "description": "[basx262] Numbers with E", - "bson": "18000000136400F104000000000000000000000000483000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265E+8\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000483000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265E+8\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E+7\"}}" }, { "description": "[basx159] Numbers with E", - "bson": "1800000013640049000000000000000000000000002E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.73e-7\"}}", + "canonical_bson": "1800000013640049000000000000000000000000002E3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.73e-7\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"7.3E-8\"}}" }, { "description": "[basx004] conform to rules and exponent will be in permitted range).", - "bson": "1800000013640064000000000000000000000000003C3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00\"}}" + "canonical_bson": "1800000013640064000000000000000000000000003C3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00\"}}" }, { "description": "[basx003] conform to rules and exponent will be in permitted range).", - "bson": "180000001364000A000000000000000000000000003E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0\"}}" + "canonical_bson": "180000001364000A000000000000000000000000003E3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0\"}}" }, { "description": "[basx002] conform to rules and exponent will be in permitted range).", - "bson": "180000001364000100000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1\"}}" + "canonical_bson": "180000001364000100000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1\"}}" }, { "description": "[basx148] Numbers with E", - "bson": "180000001364000100000000000000000000000000523000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+009\"}}", + "canonical_bson": "180000001364000100000000000000000000000000523000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+009\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+9\"}}" }, { "description": "[basx153] Numbers with E", - "bson": "180000001364000100000000000000000000000000523000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E009\"}}", + "canonical_bson": "180000001364000100000000000000000000000000523000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E009\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+9\"}}" }, { "description": "[basx141] Numbers with E", - "bson": "180000001364000100000000000000000000000000523000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1e+09\"}}", + "canonical_bson": "180000001364000100000000000000000000000000523000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1e+09\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+9\"}}" }, { "description": "[basx146] Numbers with E", - "bson": "180000001364000100000000000000000000000000523000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+09\"}}", + "canonical_bson": "180000001364000100000000000000000000000000523000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+09\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+9\"}}" }, { "description": "[basx151] Numbers with E", - "bson": "180000001364000100000000000000000000000000523000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1e09\"}}", + "canonical_bson": "180000001364000100000000000000000000000000523000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1e09\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+9\"}}" }, { "description": "[basx142] Numbers with E", - "bson": "180000001364000100000000000000000000000000F43000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+90\"}}" + "canonical_bson": "180000001364000100000000000000000000000000F43000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+90\"}}" }, { "description": "[basx147] Numbers with E", - "bson": "180000001364000100000000000000000000000000F43000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1e+90\"}}", + "canonical_bson": "180000001364000100000000000000000000000000F43000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1e+90\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+90\"}}" }, { "description": "[basx152] Numbers with E", - "bson": "180000001364000100000000000000000000000000F43000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E90\"}}", + "canonical_bson": "180000001364000100000000000000000000000000F43000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E90\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+90\"}}" }, { "description": "[basx140] Numbers with E", - "bson": "180000001364000100000000000000000000000000523000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+9\"}}" + "canonical_bson": "180000001364000100000000000000000000000000523000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+9\"}}" }, { "description": "[basx150] Numbers with E", - "bson": "180000001364000100000000000000000000000000523000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E9\"}}", + "canonical_bson": "180000001364000100000000000000000000000000523000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E9\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+9\"}}" }, { "description": "[basx014] conform to rules and exponent will be in permitted range).", - "bson": "18000000136400D2040000000000000000000000003A3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.234\"}}" + "canonical_bson": "18000000136400D2040000000000000000000000003A3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.234\"}}" }, { "description": "[basx170] Numbers with E", - "bson": "18000000136400F1040000000000000000000000003A3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265\"}}" + "canonical_bson": "18000000136400F1040000000000000000000000003A3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265\"}}" }, { "description": "[basx177] Numbers with E", - "bson": "18000000136400F1040000000000000000000000003A3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E-0\"}}", + "canonical_bson": "18000000136400F1040000000000000000000000003A3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E-0\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265\"}}" }, { "description": "[basx176] Numbers with E", - "bson": "18000000136400F104000000000000000000000000383000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E-1\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000383000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E-1\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265\"}}" }, { "description": "[basx178] Numbers with E", - "bson": "18000000136400F1040000000000000000000000003C3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E+1\"}}", + "canonical_bson": "18000000136400F1040000000000000000000000003C3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E+1\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65\"}}" }, { "description": "[basx171] Numbers with E", - "bson": "18000000136400F104000000000000000000000000123000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E-20\"}}" + "canonical_bson": "18000000136400F104000000000000000000000000123000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E-20\"}}" }, { "description": "[basx183] Numbers with E", - "bson": "18000000136400F104000000000000000000000000623000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E+20\"}}" + "canonical_bson": "18000000136400F104000000000000000000000000623000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E+20\"}}" }, { "description": "[basx175] Numbers with E", - "bson": "18000000136400F104000000000000000000000000363000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E-2\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000363000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E-2\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.01265\"}}" }, { "description": "[basx179] Numbers with E", - "bson": "18000000136400F1040000000000000000000000003E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E+2\"}}", + "canonical_bson": "18000000136400F1040000000000000000000000003E3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E+2\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5\"}}" }, { "description": "[basx174] Numbers with E", - "bson": "18000000136400F104000000000000000000000000343000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E-3\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000343000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E-3\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.001265\"}}" }, { "description": "[basx180] Numbers with E", - "bson": "18000000136400F104000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E+3\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000403000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E+3\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1265\"}}" }, { "description": "[basx173] Numbers with E", - "bson": "18000000136400F104000000000000000000000000323000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E-4\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000323000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E-4\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0001265\"}}" }, { "description": "[basx181] Numbers with E", - "bson": "18000000136400F104000000000000000000000000423000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E+4\"}}" + "canonical_bson": "18000000136400F104000000000000000000000000423000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E+4\"}}" }, { "description": "[basx172] Numbers with E", - "bson": "18000000136400F1040000000000000000000000002A3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E-8\"}}" + "canonical_bson": "18000000136400F1040000000000000000000000002A3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E-8\"}}" }, { "description": "[basx182] Numbers with E", - "bson": "18000000136400F1040000000000000000000000004A3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E+8\"}}" + "canonical_bson": "18000000136400F1040000000000000000000000004A3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E+8\"}}" }, { "description": "[basx157] Numbers with E", - "bson": "180000001364000400000000000000000000000000523000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"4E+9\"}}" + "canonical_bson": "180000001364000400000000000000000000000000523000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"4E+9\"}}" }, { "description": "[basx067] examples", - "bson": "180000001364000500000000000000000000000000343000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"5E-6\"}}", + "canonical_bson": "180000001364000500000000000000000000000000343000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"5E-6\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000005\"}}" }, { "description": "[basx069] examples", - "bson": "180000001364000500000000000000000000000000323000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"5E-7\"}}" + "canonical_bson": "180000001364000500000000000000000000000000323000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"5E-7\"}}" }, { "description": "[basx385] Engineering notation tests", - "bson": "180000001364000700000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"7E0\"}}", + "canonical_bson": "180000001364000700000000000000000000000000403000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E0\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"7\"}}" }, { "description": "[basx365] Engineering notation tests", - "bson": "180000001364000700000000000000000000000000543000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"7E10\"}}", + "canonical_bson": "180000001364000700000000000000000000000000543000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E10\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E+10\"}}" }, { "description": "[basx405] Engineering notation tests", - "bson": "1800000013640007000000000000000000000000002C3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"7E-10\"}}" + "canonical_bson": "1800000013640007000000000000000000000000002C3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E-10\"}}" }, { "description": "[basx363] Engineering notation tests", - "bson": "180000001364000700000000000000000000000000563000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"7E11\"}}", + "canonical_bson": "180000001364000700000000000000000000000000563000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E11\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E+11\"}}" }, { "description": "[basx407] Engineering notation tests", - "bson": "1800000013640007000000000000000000000000002A3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"7E-11\"}}" + "canonical_bson": "1800000013640007000000000000000000000000002A3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E-11\"}}" }, { "description": "[basx361] Engineering notation tests", - "bson": "180000001364000700000000000000000000000000583000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"7E12\"}}", + "canonical_bson": "180000001364000700000000000000000000000000583000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E12\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E+12\"}}" }, { "description": "[basx409] Engineering notation tests", - "bson": "180000001364000700000000000000000000000000283000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"7E-12\"}}" + "canonical_bson": "180000001364000700000000000000000000000000283000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E-12\"}}" }, { "description": "[basx411] Engineering notation tests", - "bson": "180000001364000700000000000000000000000000263000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"7E-13\"}}" + "canonical_bson": "180000001364000700000000000000000000000000263000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E-13\"}}" }, { "description": "[basx383] Engineering notation tests", - "bson": "180000001364000700000000000000000000000000423000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"7E1\"}}", + "canonical_bson": "180000001364000700000000000000000000000000423000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E1\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E+1\"}}" }, { "description": "[basx387] Engineering notation tests", - "bson": "1800000013640007000000000000000000000000003E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"7E-1\"}}", + "canonical_bson": "1800000013640007000000000000000000000000003E3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E-1\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.7\"}}" }, { "description": "[basx381] Engineering notation tests", - "bson": "180000001364000700000000000000000000000000443000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"7E2\"}}", + "canonical_bson": "180000001364000700000000000000000000000000443000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E2\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E+2\"}}" }, { "description": "[basx389] Engineering notation tests", - "bson": "1800000013640007000000000000000000000000003C3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"7E-2\"}}", + "canonical_bson": "1800000013640007000000000000000000000000003C3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E-2\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.07\"}}" }, { "description": "[basx379] Engineering notation tests", - "bson": "180000001364000700000000000000000000000000463000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"7E3\"}}", + "canonical_bson": "180000001364000700000000000000000000000000463000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E3\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E+3\"}}" }, { "description": "[basx391] Engineering notation tests", - "bson": "1800000013640007000000000000000000000000003A3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"7E-3\"}}", + "canonical_bson": "1800000013640007000000000000000000000000003A3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E-3\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.007\"}}" }, { "description": "[basx377] Engineering notation tests", - "bson": "180000001364000700000000000000000000000000483000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"7E4\"}}", + "canonical_bson": "180000001364000700000000000000000000000000483000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E4\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E+4\"}}" }, { "description": "[basx393] Engineering notation tests", - "bson": "180000001364000700000000000000000000000000383000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"7E-4\"}}", + "canonical_bson": "180000001364000700000000000000000000000000383000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E-4\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0007\"}}" }, { "description": "[basx375] Engineering notation tests", - "bson": "1800000013640007000000000000000000000000004A3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"7E5\"}}", + "canonical_bson": "1800000013640007000000000000000000000000004A3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E5\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E+5\"}}" }, { "description": "[basx395] Engineering notation tests", - "bson": "180000001364000700000000000000000000000000363000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"7E-5\"}}", + "canonical_bson": "180000001364000700000000000000000000000000363000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E-5\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00007\"}}" }, { "description": "[basx373] Engineering notation tests", - "bson": "1800000013640007000000000000000000000000004C3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"7E6\"}}", + "canonical_bson": "1800000013640007000000000000000000000000004C3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E6\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E+6\"}}" }, { "description": "[basx397] Engineering notation tests", - "bson": "180000001364000700000000000000000000000000343000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"7E-6\"}}", + "canonical_bson": "180000001364000700000000000000000000000000343000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E-6\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000007\"}}" }, { "description": "[basx371] Engineering notation tests", - "bson": "1800000013640007000000000000000000000000004E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"7E7\"}}", + "canonical_bson": "1800000013640007000000000000000000000000004E3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E7\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E+7\"}}" }, { "description": "[basx399] Engineering notation tests", - "bson": "180000001364000700000000000000000000000000323000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"7E-7\"}}" + "canonical_bson": "180000001364000700000000000000000000000000323000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E-7\"}}" }, { "description": "[basx369] Engineering notation tests", - "bson": "180000001364000700000000000000000000000000503000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"7E8\"}}", + "canonical_bson": "180000001364000700000000000000000000000000503000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E8\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E+8\"}}" }, { "description": "[basx401] Engineering notation tests", - "bson": "180000001364000700000000000000000000000000303000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"7E-8\"}}" + "canonical_bson": "180000001364000700000000000000000000000000303000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E-8\"}}" }, { "description": "[basx367] Engineering notation tests", - "bson": "180000001364000700000000000000000000000000523000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"7E9\"}}", + "canonical_bson": "180000001364000700000000000000000000000000523000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E9\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E+9\"}}" }, { "description": "[basx403] Engineering notation tests", - "bson": "1800000013640007000000000000000000000000002E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"7E-9\"}}" + "canonical_bson": "1800000013640007000000000000000000000000002E3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"7E-9\"}}" }, { "description": "[basx007] conform to rules and exponent will be in permitted range).", - "bson": "1800000013640064000000000000000000000000003E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10.0\"}}" + "canonical_bson": "1800000013640064000000000000000000000000003E3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"10.0\"}}" }, { "description": "[basx005] conform to rules and exponent will be in permitted range).", - "bson": "180000001364000A00000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10\"}}" + "canonical_bson": "180000001364000A00000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"10\"}}" }, { "description": "[basx165] Numbers with E", - "bson": "180000001364000A00000000000000000000000000523000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10E+009\"}}", + "canonical_bson": "180000001364000A00000000000000000000000000523000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10E+009\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0E+10\"}}" }, { "description": "[basx163] Numbers with E", - "bson": "180000001364000A00000000000000000000000000523000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10E+09\"}}", + "canonical_bson": "180000001364000A00000000000000000000000000523000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10E+09\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0E+10\"}}" }, { "description": "[basx325] Engineering notation tests", - "bson": "180000001364000A00000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10e0\"}}", + "canonical_bson": "180000001364000A00000000000000000000000000403000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10e0\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"10\"}}" }, { "description": "[basx305] Engineering notation tests", - "bson": "180000001364000A00000000000000000000000000543000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10e10\"}}", + "canonical_bson": "180000001364000A00000000000000000000000000543000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10e10\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0E+11\"}}" }, { "description": "[basx345] Engineering notation tests", - "bson": "180000001364000A000000000000000000000000002C3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10e-10\"}}", + "canonical_bson": "180000001364000A000000000000000000000000002C3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10e-10\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0E-9\"}}" }, { "description": "[basx303] Engineering notation tests", - "bson": "180000001364000A00000000000000000000000000563000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10e11\"}}", + "canonical_bson": "180000001364000A00000000000000000000000000563000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10e11\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0E+12\"}}" }, { "description": "[basx347] Engineering notation tests", - "bson": "180000001364000A000000000000000000000000002A3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10e-11\"}}", + "canonical_bson": "180000001364000A000000000000000000000000002A3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10e-11\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0E-10\"}}" }, { "description": "[basx301] Engineering notation tests", - "bson": "180000001364000A00000000000000000000000000583000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10e12\"}}", + "canonical_bson": "180000001364000A00000000000000000000000000583000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10e12\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0E+13\"}}" }, { "description": "[basx349] Engineering notation tests", - "bson": "180000001364000A00000000000000000000000000283000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10e-12\"}}", + "canonical_bson": "180000001364000A00000000000000000000000000283000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10e-12\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0E-11\"}}" }, { "description": "[basx351] Engineering notation tests", - "bson": "180000001364000A00000000000000000000000000263000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10e-13\"}}", + "canonical_bson": "180000001364000A00000000000000000000000000263000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10e-13\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0E-12\"}}" }, { "description": "[basx323] Engineering notation tests", - "bson": "180000001364000A00000000000000000000000000423000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10e1\"}}", + "canonical_bson": "180000001364000A00000000000000000000000000423000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10e1\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0E+2\"}}" }, { "description": "[basx327] Engineering notation tests", - "bson": "180000001364000A000000000000000000000000003E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10e-1\"}}", + "canonical_bson": "180000001364000A000000000000000000000000003E3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10e-1\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0\"}}" }, { "description": "[basx321] Engineering notation tests", - "bson": "180000001364000A00000000000000000000000000443000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10e2\"}}", + "canonical_bson": "180000001364000A00000000000000000000000000443000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10e2\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0E+3\"}}" }, { "description": "[basx329] Engineering notation tests", - "bson": "180000001364000A000000000000000000000000003C3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10e-2\"}}", + "canonical_bson": "180000001364000A000000000000000000000000003C3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10e-2\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.10\"}}" }, { "description": "[basx319] Engineering notation tests", - "bson": "180000001364000A00000000000000000000000000463000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10e3\"}}", + "canonical_bson": "180000001364000A00000000000000000000000000463000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10e3\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0E+4\"}}" }, { "description": "[basx331] Engineering notation tests", - "bson": "180000001364000A000000000000000000000000003A3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10e-3\"}}", + "canonical_bson": "180000001364000A000000000000000000000000003A3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10e-3\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.010\"}}" }, { "description": "[basx317] Engineering notation tests", - "bson": "180000001364000A00000000000000000000000000483000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10e4\"}}", + "canonical_bson": "180000001364000A00000000000000000000000000483000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10e4\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0E+5\"}}" }, { "description": "[basx333] Engineering notation tests", - "bson": "180000001364000A00000000000000000000000000383000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10e-4\"}}", + "canonical_bson": "180000001364000A00000000000000000000000000383000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10e-4\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0010\"}}" }, { "description": "[basx315] Engineering notation tests", - "bson": "180000001364000A000000000000000000000000004A3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10e5\"}}", + "canonical_bson": "180000001364000A000000000000000000000000004A3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10e5\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0E+6\"}}" }, { "description": "[basx335] Engineering notation tests", - "bson": "180000001364000A00000000000000000000000000363000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10e-5\"}}", + "canonical_bson": "180000001364000A00000000000000000000000000363000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10e-5\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00010\"}}" }, { "description": "[basx313] Engineering notation tests", - "bson": "180000001364000A000000000000000000000000004C3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10e6\"}}", + "canonical_bson": "180000001364000A000000000000000000000000004C3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10e6\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0E+7\"}}" }, { "description": "[basx337] Engineering notation tests", - "bson": "180000001364000A00000000000000000000000000343000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10e-6\"}}", + "canonical_bson": "180000001364000A00000000000000000000000000343000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10e-6\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000010\"}}" }, { "description": "[basx311] Engineering notation tests", - "bson": "180000001364000A000000000000000000000000004E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10e7\"}}", + "canonical_bson": "180000001364000A000000000000000000000000004E3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10e7\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0E+8\"}}" }, { "description": "[basx339] Engineering notation tests", - "bson": "180000001364000A00000000000000000000000000323000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10e-7\"}}", + "canonical_bson": "180000001364000A00000000000000000000000000323000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10e-7\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0000010\"}}" }, { "description": "[basx309] Engineering notation tests", - "bson": "180000001364000A00000000000000000000000000503000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10e8\"}}", + "canonical_bson": "180000001364000A00000000000000000000000000503000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10e8\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0E+9\"}}" }, { "description": "[basx341] Engineering notation tests", - "bson": "180000001364000A00000000000000000000000000303000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10e-8\"}}", + "canonical_bson": "180000001364000A00000000000000000000000000303000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10e-8\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0E-7\"}}" }, { "description": "[basx164] Numbers with E", - "bson": "180000001364000A00000000000000000000000000F43000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10e+90\"}}", + "canonical_bson": "180000001364000A00000000000000000000000000F43000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10e+90\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0E+91\"}}" }, { "description": "[basx162] Numbers with E", - "bson": "180000001364000A00000000000000000000000000523000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10E+9\"}}", + "canonical_bson": "180000001364000A00000000000000000000000000523000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10E+9\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0E+10\"}}" }, { "description": "[basx307] Engineering notation tests", - "bson": "180000001364000A00000000000000000000000000523000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10e9\"}}", + "canonical_bson": "180000001364000A00000000000000000000000000523000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10e9\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0E+10\"}}" }, { "description": "[basx343] Engineering notation tests", - "bson": "180000001364000A000000000000000000000000002E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10e-9\"}}", + "canonical_bson": "180000001364000A000000000000000000000000002E3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10e-9\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0E-8\"}}" }, { "description": "[basx008] conform to rules and exponent will be in permitted range).", - "bson": "1800000013640065000000000000000000000000003E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10.1\"}}" + "canonical_bson": "1800000013640065000000000000000000000000003E3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"10.1\"}}" }, { "description": "[basx009] conform to rules and exponent will be in permitted range).", - "bson": "1800000013640068000000000000000000000000003E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10.4\"}}" + "canonical_bson": "1800000013640068000000000000000000000000003E3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"10.4\"}}" }, { "description": "[basx010] conform to rules and exponent will be in permitted range).", - "bson": "1800000013640069000000000000000000000000003E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10.5\"}}" + "canonical_bson": "1800000013640069000000000000000000000000003E3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"10.5\"}}" }, { "description": "[basx011] conform to rules and exponent will be in permitted range).", - "bson": "180000001364006A000000000000000000000000003E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10.6\"}}" + "canonical_bson": "180000001364006A000000000000000000000000003E3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"10.6\"}}" }, { "description": "[basx012] conform to rules and exponent will be in permitted range).", - "bson": "180000001364006D000000000000000000000000003E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"10.9\"}}" + "canonical_bson": "180000001364006D000000000000000000000000003E3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"10.9\"}}" }, { "description": "[basx013] conform to rules and exponent will be in permitted range).", - "bson": "180000001364006E000000000000000000000000003E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"11.0\"}}" + "canonical_bson": "180000001364006E000000000000000000000000003E3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"11.0\"}}" }, { "description": "[basx040] strings without E cannot generate E in result", - "bson": "180000001364000C00000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"12\"}}" + "canonical_bson": "180000001364000C00000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"12\"}}" }, { "description": "[basx190] Numbers with E", - "bson": "18000000136400F1040000000000000000000000003C3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65\"}}" + "canonical_bson": "18000000136400F1040000000000000000000000003C3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65\"}}" }, { "description": "[basx197] Numbers with E", - "bson": "18000000136400F1040000000000000000000000003C3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65E-0\"}}", + "canonical_bson": "18000000136400F1040000000000000000000000003C3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65E-0\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65\"}}" }, { "description": "[basx196] Numbers with E", - "bson": "18000000136400F1040000000000000000000000003A3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65E-1\"}}", + "canonical_bson": "18000000136400F1040000000000000000000000003A3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65E-1\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265\"}}" }, { "description": "[basx198] Numbers with E", - "bson": "18000000136400F1040000000000000000000000003E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65E+1\"}}", + "canonical_bson": "18000000136400F1040000000000000000000000003E3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65E+1\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5\"}}" }, { "description": "[basx191] Numbers with E", - "bson": "18000000136400F104000000000000000000000000143000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65E-20\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000143000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65E-20\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E-19\"}}" }, { "description": "[basx203] Numbers with E", - "bson": "18000000136400F104000000000000000000000000643000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65E+20\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000643000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65E+20\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E+21\"}}" }, { "description": "[basx195] Numbers with E", - "bson": "18000000136400F104000000000000000000000000383000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65E-2\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000383000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65E-2\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265\"}}" }, { "description": "[basx199] Numbers with E", - "bson": "18000000136400F104000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65E+2\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000403000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65E+2\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1265\"}}" }, { "description": "[basx194] Numbers with E", - "bson": "18000000136400F104000000000000000000000000363000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65E-3\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000363000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65E-3\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.01265\"}}" }, { "description": "[basx200] Numbers with E", - "bson": "18000000136400F104000000000000000000000000423000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65E+3\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000423000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65E+3\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E+4\"}}" }, { "description": "[basx193] Numbers with E", - "bson": "18000000136400F104000000000000000000000000343000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65E-4\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000343000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65E-4\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.001265\"}}" }, { "description": "[basx201] Numbers with E", - "bson": "18000000136400F104000000000000000000000000443000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65E+4\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000443000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65E+4\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E+5\"}}" }, { "description": "[basx192] Numbers with E", - "bson": "18000000136400F1040000000000000000000000002C3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65E-8\"}}", + "canonical_bson": "18000000136400F1040000000000000000000000002C3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65E-8\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E-7\"}}" }, { "description": "[basx202] Numbers with E", - "bson": "18000000136400F1040000000000000000000000004C3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65E+8\"}}", + "canonical_bson": "18000000136400F1040000000000000000000000004C3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65E+8\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E+9\"}}" }, { "description": "[basx044] strings without E cannot generate E in result", - "bson": "18000000136400FC040000000000000000000000003C3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"012.76\"}}", + "canonical_bson": "18000000136400FC040000000000000000000000003C3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"012.76\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"12.76\"}}" }, { "description": "[basx042] strings without E cannot generate E in result", - "bson": "18000000136400FC040000000000000000000000003C3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"12.76\"}}" + "canonical_bson": "18000000136400FC040000000000000000000000003C3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"12.76\"}}" }, { "description": "[basx046] strings without E cannot generate E in result", - "bson": "180000001364001100000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"17.\"}}", + "canonical_bson": "180000001364001100000000000000000000000000403000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"17.\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"17\"}}" }, { "description": "[basx049] strings without E cannot generate E in result", - "bson": "180000001364002C00000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0044\"}}", + "canonical_bson": "180000001364002C00000000000000000000000000403000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0044\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"44\"}}" }, { "description": "[basx048] strings without E cannot generate E in result", - "bson": "180000001364002C00000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"044\"}}", + "canonical_bson": "180000001364002C00000000000000000000000000403000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"044\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"44\"}}" }, { "description": "[basx158] Numbers with E", - "bson": "180000001364002C00000000000000000000000000523000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"44E+9\"}}", + "canonical_bson": "180000001364002C00000000000000000000000000523000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"44E+9\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"4.4E+10\"}}" }, { "description": "[basx068] examples", - "bson": "180000001364003200000000000000000000000000323000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"50E-7\"}}", + "canonical_bson": "180000001364003200000000000000000000000000323000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"50E-7\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0000050\"}}" }, { "description": "[basx169] Numbers with E", - "bson": "180000001364006400000000000000000000000000523000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"100e+009\"}}", + "canonical_bson": "180000001364006400000000000000000000000000523000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"100e+009\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00E+11\"}}" }, { "description": "[basx167] Numbers with E", - "bson": "180000001364006400000000000000000000000000523000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"100e+09\"}}", + "canonical_bson": "180000001364006400000000000000000000000000523000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"100e+09\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00E+11\"}}" }, { "description": "[basx168] Numbers with E", - "bson": "180000001364006400000000000000000000000000F43000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"100E+90\"}}", + "canonical_bson": "180000001364006400000000000000000000000000F43000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"100E+90\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00E+92\"}}" }, { "description": "[basx166] Numbers with E", - "bson": "180000001364006400000000000000000000000000523000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"100e+9\"}}", + "canonical_bson": "180000001364006400000000000000000000000000523000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"100e+9\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00E+11\"}}" }, { "description": "[basx210] Numbers with E", - "bson": "18000000136400F1040000000000000000000000003E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5\"}}" + "canonical_bson": "18000000136400F1040000000000000000000000003E3000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5\"}}" }, { "description": "[basx217] Numbers with E", - "bson": "18000000136400F1040000000000000000000000003E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5E-0\"}}", + "canonical_bson": "18000000136400F1040000000000000000000000003E3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5E-0\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5\"}}" }, { "description": "[basx216] Numbers with E", - "bson": "18000000136400F1040000000000000000000000003C3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5E-1\"}}", + "canonical_bson": "18000000136400F1040000000000000000000000003C3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5E-1\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65\"}}" }, { "description": "[basx218] Numbers with E", - "bson": "18000000136400F104000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5E+1\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000403000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5E+1\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1265\"}}" }, { "description": "[basx211] Numbers with E", - "bson": "18000000136400F104000000000000000000000000163000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5E-20\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000163000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5E-20\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E-18\"}}" }, { "description": "[basx223] Numbers with E", - "bson": "18000000136400F104000000000000000000000000663000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5E+20\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000663000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5E+20\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E+22\"}}" }, { "description": "[basx215] Numbers with E", - "bson": "18000000136400F1040000000000000000000000003A3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5E-2\"}}", + "canonical_bson": "18000000136400F1040000000000000000000000003A3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5E-2\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265\"}}" }, { "description": "[basx219] Numbers with E", - "bson": "18000000136400F104000000000000000000000000423000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5E+2\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000423000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5E+2\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E+4\"}}" }, { "description": "[basx214] Numbers with E", - "bson": "18000000136400F104000000000000000000000000383000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5E-3\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000383000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5E-3\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265\"}}" }, { "description": "[basx220] Numbers with E", - "bson": "18000000136400F104000000000000000000000000443000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5E+3\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000443000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5E+3\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E+5\"}}" }, { "description": "[basx213] Numbers with E", - "bson": "18000000136400F104000000000000000000000000363000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5E-4\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000363000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5E-4\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.01265\"}}" }, { "description": "[basx221] Numbers with E", - "bson": "18000000136400F104000000000000000000000000463000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5E+4\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000463000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5E+4\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E+6\"}}" }, { "description": "[basx212] Numbers with E", - "bson": "18000000136400F1040000000000000000000000002E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5E-8\"}}", + "canonical_bson": "18000000136400F1040000000000000000000000002E3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5E-8\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000001265\"}}" }, { "description": "[basx222] Numbers with E", - "bson": "18000000136400F1040000000000000000000000004E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5E+8\"}}", + "canonical_bson": "18000000136400F1040000000000000000000000004E3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5E+8\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E+10\"}}" }, { "description": "[basx006] conform to rules and exponent will be in permitted range).", - "bson": "18000000136400E803000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1000\"}}" + "canonical_bson": "18000000136400E803000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1000\"}}" }, { "description": "[basx230] Numbers with E", - "bson": "18000000136400F104000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1265\"}}" + "canonical_bson": "18000000136400F104000000000000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1265\"}}" }, { "description": "[basx237] Numbers with E", - "bson": "18000000136400F104000000000000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1265E-0\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000403000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1265E-0\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1265\"}}" }, { "description": "[basx236] Numbers with E", - "bson": "18000000136400F1040000000000000000000000003E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1265E-1\"}}", + "canonical_bson": "18000000136400F1040000000000000000000000003E3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1265E-1\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"126.5\"}}" }, { "description": "[basx238] Numbers with E", - "bson": "18000000136400F104000000000000000000000000423000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1265E+1\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000423000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1265E+1\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E+4\"}}" }, { "description": "[basx231] Numbers with E", - "bson": "18000000136400F104000000000000000000000000183000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1265E-20\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000183000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1265E-20\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E-17\"}}" }, { "description": "[basx243] Numbers with E", - "bson": "18000000136400F104000000000000000000000000683000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1265E+20\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000683000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1265E+20\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E+23\"}}" }, { "description": "[basx235] Numbers with E", - "bson": "18000000136400F1040000000000000000000000003C3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1265E-2\"}}", + "canonical_bson": "18000000136400F1040000000000000000000000003C3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1265E-2\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"12.65\"}}" }, { "description": "[basx239] Numbers with E", - "bson": "18000000136400F104000000000000000000000000443000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1265E+2\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000443000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1265E+2\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E+5\"}}" }, { "description": "[basx234] Numbers with E", - "bson": "18000000136400F1040000000000000000000000003A3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1265E-3\"}}", + "canonical_bson": "18000000136400F1040000000000000000000000003A3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1265E-3\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265\"}}" }, { "description": "[basx240] Numbers with E", - "bson": "18000000136400F104000000000000000000000000463000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1265E+3\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000463000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1265E+3\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E+6\"}}" }, { "description": "[basx233] Numbers with E", - "bson": "18000000136400F104000000000000000000000000383000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1265E-4\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000383000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1265E-4\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1265\"}}" }, { "description": "[basx241] Numbers with E", - "bson": "18000000136400F104000000000000000000000000483000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1265E+4\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000483000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1265E+4\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E+7\"}}" }, { "description": "[basx232] Numbers with E", - "bson": "18000000136400F104000000000000000000000000303000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1265E-8\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000303000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1265E-8\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00001265\"}}" }, { "description": "[basx242] Numbers with E", - "bson": "18000000136400F104000000000000000000000000503000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1265E+8\"}}", + "canonical_bson": "18000000136400F104000000000000000000000000503000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1265E+8\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.265E+11\"}}" }, { "description": "[basx060] strings without E cannot generate E in result", - "bson": "18000000136400185C0ACE00000000000000000000383000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"345678.5432\"}}" + "canonical_bson": "18000000136400185C0ACE00000000000000000000383000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"345678.5432\"}}" }, { "description": "[basx059] strings without E cannot generate E in result", - "bson": "18000000136400F198670C08000000000000000000363000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0345678.54321\"}}", + "canonical_bson": "18000000136400F198670C08000000000000000000363000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0345678.54321\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"345678.54321\"}}" }, { "description": "[basx058] strings without E cannot generate E in result", - "bson": "180000001364006AF90B7C50000000000000000000343000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"345678.543210\"}}" + "canonical_bson": "180000001364006AF90B7C50000000000000000000343000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"345678.543210\"}}" }, { "description": "[basx057] strings without E cannot generate E in result", - "bson": "180000001364006A19562522020000000000000000343000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"2345678.543210\"}}" + "canonical_bson": "180000001364006A19562522020000000000000000343000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"2345678.543210\"}}" }, { "description": "[basx056] strings without E cannot generate E in result", - "bson": "180000001364006AB9C8733A0B0000000000000000343000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"12345678.543210\"}}" + "canonical_bson": "180000001364006AB9C8733A0B0000000000000000343000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"12345678.543210\"}}" }, { "description": "[basx031] conform to rules and exponent will be in permitted range).", - "bson": "1800000013640040AF0D8648700000000000000000343000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"123456789.000000\"}}" + "canonical_bson": "1800000013640040AF0D8648700000000000000000343000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"123456789.000000\"}}" }, { "description": "[basx030] conform to rules and exponent will be in permitted range).", - "bson": "1800000013640080910F8648700000000000000000343000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"123456789.123456\"}}" + "canonical_bson": "1800000013640080910F8648700000000000000000343000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"123456789.123456\"}}" }, { "description": "[basx032] conform to rules and exponent will be in permitted range).", - "bson": "1800000013640080910F8648700000000000000000403000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"123456789123456\"}}" + "canonical_bson": "1800000013640080910F8648700000000000000000403000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"123456789123456\"}}" } ] } diff -Nru libbson-xs-perl-0.4.3/corpus/decimal128-4.json libbson-xs-perl-0.4.6/corpus/decimal128-4.json --- libbson-xs-perl-0.4.3/corpus/decimal128-4.json 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/corpus/decimal128-4.json 2018-10-12 15:50:18.000000000 +0000 @@ -5,78 +5,78 @@ "valid": [ { "description": "[basx023] conform to rules and exponent will be in permitted range).", - "bson": "1800000013640001000000000000000000000000003EB000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.1\"}}" + "canonical_bson": "1800000013640001000000000000000000000000003EB000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.1\"}}" }, { "description": "[basx045] strings without E cannot generate E in result", - "bson": "1800000013640003000000000000000000000000003A3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"+0.003\"}}", + "canonical_bson": "1800000013640003000000000000000000000000003A3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"+0.003\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.003\"}}" }, { "description": "[basx610] Zeros", - "bson": "1800000013640000000000000000000000000000003E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \".0\"}}", + "canonical_bson": "1800000013640000000000000000000000000000003E3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \".0\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0\"}}" }, { "description": "[basx612] Zeros", - "bson": "1800000013640000000000000000000000000000003EB000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-.0\"}}", + "canonical_bson": "1800000013640000000000000000000000000000003EB000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-.0\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.0\"}}" }, { "description": "[basx043] strings without E cannot generate E in result", - "bson": "18000000136400FC040000000000000000000000003C3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"+12.76\"}}", + "canonical_bson": "18000000136400FC040000000000000000000000003C3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"+12.76\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"12.76\"}}" }, { "description": "[basx055] strings without E cannot generate E in result", - "bson": "180000001364000500000000000000000000000000303000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00000005\"}}", + "canonical_bson": "180000001364000500000000000000000000000000303000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00000005\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"5E-8\"}}" }, { "description": "[basx054] strings without E cannot generate E in result", - "bson": "180000001364000500000000000000000000000000323000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0000005\"}}", + "canonical_bson": "180000001364000500000000000000000000000000323000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0000005\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"5E-7\"}}" }, { "description": "[basx052] strings without E cannot generate E in result", - "bson": "180000001364000500000000000000000000000000343000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000005\"}}" + "canonical_bson": "180000001364000500000000000000000000000000343000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000005\"}}" }, { "description": "[basx051] strings without E cannot generate E in result", - "bson": "180000001364000500000000000000000000000000363000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"00.00005\"}}", + "canonical_bson": "180000001364000500000000000000000000000000363000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"00.00005\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00005\"}}" }, { "description": "[basx050] strings without E cannot generate E in result", - "bson": "180000001364000500000000000000000000000000383000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0005\"}}" + "canonical_bson": "180000001364000500000000000000000000000000383000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0005\"}}" }, { "description": "[basx047] strings without E cannot generate E in result", - "bson": "1800000013640005000000000000000000000000003E3000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \".5\"}}", + "canonical_bson": "1800000013640005000000000000000000000000003E3000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \".5\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.5\"}}" }, { "description": "[dqbsr431] check rounding modes heeded (Rounded)", - "bson": "1800000013640099761CC7B548F377DC80A131C836FE2F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.1111111111111111111111111111123450\"}}", + "canonical_bson": "1800000013640099761CC7B548F377DC80A131C836FE2F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.1111111111111111111111111111123450\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.111111111111111111111111111112345\"}}" }, { "description": "OK2", - "bson": "18000000136400000000000A5BC138938D44C64D31FC2F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \".100000000000000000000000000000000000000000000000000000000000\"}}", + "canonical_bson": "18000000136400000000000A5BC138938D44C64D31FC2F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \".100000000000000000000000000000000000000000000000000000000000\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1000000000000000000000000000000000\"}}" } ], diff -Nru libbson-xs-perl-0.4.3/corpus/decimal128-5.json libbson-xs-perl-0.4.6/corpus/decimal128-5.json --- libbson-xs-perl-0.4.3/corpus/decimal128-5.json 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/corpus/decimal128-5.json 2018-10-12 15:50:18.000000000 +0000 @@ -5,396 +5,396 @@ "valid": [ { "description": "[decq035] fold-downs (more below) (Clamped)", - "bson": "18000000136400000000807F1BCF85B27059C8A43CFE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.23E+6144\"}}", + "canonical_bson": "18000000136400000000807F1BCF85B27059C8A43CFE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.23E+6144\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.230000000000000000000000000000000E+6144\"}}" }, { "description": "[decq037] fold-downs (more below) (Clamped)", - "bson": "18000000136400000000000A5BC138938D44C64D31FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6144\"}}", + "canonical_bson": "18000000136400000000000A5BC138938D44C64D31FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6144\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000000000000000000E+6144\"}}" }, { "description": "[decq077] Nmin and below (Subnormal)", - "bson": "180000001364000000000081EFAC855B416D2DEE04000000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.100000000000000000000000000000000E-6143\"}}", + "canonical_bson": "180000001364000000000081EFAC855B416D2DEE04000000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.100000000000000000000000000000000E-6143\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000000000000000000000000000E-6144\"}}" }, { "description": "[decq078] Nmin and below (Subnormal)", - "bson": "180000001364000000000081EFAC855B416D2DEE04000000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000000000000000000000000000E-6144\"}}" + "canonical_bson": "180000001364000000000081EFAC855B416D2DEE04000000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000000000000000000000000000E-6144\"}}" }, { "description": "[decq079] Nmin and below (Subnormal)", - "bson": "180000001364000A00000000000000000000000000000000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000000000000000000000000000000010E-6143\"}}", + "canonical_bson": "180000001364000A00000000000000000000000000000000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000000000000000000000000000000010E-6143\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0E-6175\"}}" }, { "description": "[decq080] Nmin and below (Subnormal)", - "bson": "180000001364000A00000000000000000000000000000000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0E-6175\"}}" + "canonical_bson": "180000001364000A00000000000000000000000000000000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0E-6175\"}}" }, { "description": "[decq081] Nmin and below (Subnormal)", - "bson": "180000001364000100000000000000000000000000020000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00000000000000000000000000000001E-6143\"}}", + "canonical_bson": "180000001364000100000000000000000000000000020000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00000000000000000000000000000001E-6143\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E-6175\"}}" }, { "description": "[decq082] Nmin and below (Subnormal)", - "bson": "180000001364000100000000000000000000000000020000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E-6175\"}}" + "canonical_bson": "180000001364000100000000000000000000000000020000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E-6175\"}}" }, { "description": "[decq083] Nmin and below (Subnormal)", - "bson": "180000001364000100000000000000000000000000000000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000000000000000000000000000000001E-6143\"}}", + "canonical_bson": "180000001364000100000000000000000000000000000000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000000000000000000000000000000001E-6143\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E-6176\"}}" }, { "description": "[decq084] Nmin and below (Subnormal)", - "bson": "180000001364000100000000000000000000000000000000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E-6176\"}}" + "canonical_bson": "180000001364000100000000000000000000000000000000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E-6176\"}}" }, { "description": "[decq090] underflows cannot be tested for simple copies, check edge cases (Subnormal)", - "bson": "180000001364000100000000000000000000000000000000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1e-6176\"}}", + "canonical_bson": "180000001364000100000000000000000000000000000000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1e-6176\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E-6176\"}}" }, { "description": "[decq100] underflows cannot be tested for simple copies, check edge cases (Subnormal)", - "bson": "18000000136400FFFFFFFF095BC138938D44C64D31000000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"999999999999999999999999999999999e-6176\"}}", + "canonical_bson": "18000000136400FFFFFFFF095BC138938D44C64D31000000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"999999999999999999999999999999999e-6176\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"9.99999999999999999999999999999999E-6144\"}}" }, { "description": "[decq130] fold-downs (more below) (Clamped)", - "bson": "18000000136400000000807F1BCF85B27059C8A43CFEDF00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.23E+6144\"}}", + "canonical_bson": "18000000136400000000807F1BCF85B27059C8A43CFEDF00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.23E+6144\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.230000000000000000000000000000000E+6144\"}}" }, { "description": "[decq132] fold-downs (more below) (Clamped)", - "bson": "18000000136400000000000A5BC138938D44C64D31FEDF00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-1E+6144\"}}", + "canonical_bson": "18000000136400000000000A5BC138938D44C64D31FEDF00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1E+6144\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.000000000000000000000000000000000E+6144\"}}" }, { "description": "[decq177] Nmin and below (Subnormal)", - "bson": "180000001364000000000081EFAC855B416D2DEE04008000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.100000000000000000000000000000000E-6143\"}}", + "canonical_bson": "180000001364000000000081EFAC855B416D2DEE04008000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.100000000000000000000000000000000E-6143\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.00000000000000000000000000000000E-6144\"}}" }, { "description": "[decq178] Nmin and below (Subnormal)", - "bson": "180000001364000000000081EFAC855B416D2DEE04008000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.00000000000000000000000000000000E-6144\"}}" + "canonical_bson": "180000001364000000000081EFAC855B416D2DEE04008000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.00000000000000000000000000000000E-6144\"}}" }, { "description": "[decq179] Nmin and below (Subnormal)", - "bson": "180000001364000A00000000000000000000000000008000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.000000000000000000000000000000010E-6143\"}}", + "canonical_bson": "180000001364000A00000000000000000000000000008000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.000000000000000000000000000000010E-6143\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.0E-6175\"}}" }, { "description": "[decq180] Nmin and below (Subnormal)", - "bson": "180000001364000A00000000000000000000000000008000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.0E-6175\"}}" + "canonical_bson": "180000001364000A00000000000000000000000000008000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.0E-6175\"}}" }, { "description": "[decq181] Nmin and below (Subnormal)", - "bson": "180000001364000100000000000000000000000000028000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.00000000000000000000000000000001E-6143\"}}", + "canonical_bson": "180000001364000100000000000000000000000000028000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.00000000000000000000000000000001E-6143\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1E-6175\"}}" }, { "description": "[decq182] Nmin and below (Subnormal)", - "bson": "180000001364000100000000000000000000000000028000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-1E-6175\"}}" + "canonical_bson": "180000001364000100000000000000000000000000028000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1E-6175\"}}" }, { "description": "[decq183] Nmin and below (Subnormal)", - "bson": "180000001364000100000000000000000000000000008000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.000000000000000000000000000000001E-6143\"}}", + "canonical_bson": "180000001364000100000000000000000000000000008000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.000000000000000000000000000000001E-6143\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1E-6176\"}}" }, { "description": "[decq184] Nmin and below (Subnormal)", - "bson": "180000001364000100000000000000000000000000008000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-1E-6176\"}}" + "canonical_bson": "180000001364000100000000000000000000000000008000", + "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1E-6176\"}}" }, { "description": "[decq190] underflow edge cases (Subnormal)", - "bson": "180000001364000100000000000000000000000000008000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-1e-6176\"}}", + "canonical_bson": "180000001364000100000000000000000000000000008000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1e-6176\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1E-6176\"}}" }, { "description": "[decq200] underflow edge cases (Subnormal)", - "bson": "18000000136400FFFFFFFF095BC138938D44C64D31008000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-999999999999999999999999999999999e-6176\"}}", + "canonical_bson": "18000000136400FFFFFFFF095BC138938D44C64D31008000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-999999999999999999999999999999999e-6176\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-9.99999999999999999999999999999999E-6144\"}}" }, { "description": "[decq400] zeros (Clamped)", - "bson": "180000001364000000000000000000000000000000000000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-8000\"}}", + "canonical_bson": "180000001364000000000000000000000000000000000000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-8000\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-6176\"}}" }, { "description": "[decq401] zeros (Clamped)", - "bson": "180000001364000000000000000000000000000000000000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-6177\"}}", + "canonical_bson": "180000001364000000000000000000000000000000000000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-6177\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-6176\"}}" }, { "description": "[decq414] clamped zeros... (Clamped)", - "bson": "180000001364000000000000000000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+6112\"}}", + "canonical_bson": "180000001364000000000000000000000000000000FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+6112\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+6111\"}}" }, { "description": "[decq416] clamped zeros... (Clamped)", - "bson": "180000001364000000000000000000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+6144\"}}", + "canonical_bson": "180000001364000000000000000000000000000000FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+6144\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+6111\"}}" }, { "description": "[decq418] clamped zeros... (Clamped)", - "bson": "180000001364000000000000000000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+8000\"}}", + "canonical_bson": "180000001364000000000000000000000000000000FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+8000\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+6111\"}}" }, { "description": "[decq420] negative zeros (Clamped)", - "bson": "180000001364000000000000000000000000000000008000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E-8000\"}}", + "canonical_bson": "180000001364000000000000000000000000000000008000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E-8000\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E-6176\"}}" }, { "description": "[decq421] negative zeros (Clamped)", - "bson": "180000001364000000000000000000000000000000008000", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E-6177\"}}", + "canonical_bson": "180000001364000000000000000000000000000000008000", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E-6177\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E-6176\"}}" }, { "description": "[decq434] clamped zeros... (Clamped)", - "bson": "180000001364000000000000000000000000000000FEDF00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E+6112\"}}", + "canonical_bson": "180000001364000000000000000000000000000000FEDF00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E+6112\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E+6111\"}}" }, { "description": "[decq436] clamped zeros... (Clamped)", - "bson": "180000001364000000000000000000000000000000FEDF00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E+6144\"}}", + "canonical_bson": "180000001364000000000000000000000000000000FEDF00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E+6144\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E+6111\"}}" }, { "description": "[decq438] clamped zeros... (Clamped)", - "bson": "180000001364000000000000000000000000000000FEDF00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E+8000\"}}", + "canonical_bson": "180000001364000000000000000000000000000000FEDF00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E+8000\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E+6111\"}}" }, { "description": "[decq601] fold-down full sequence (Clamped)", - "bson": "18000000136400000000000A5BC138938D44C64D31FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6144\"}}", + "canonical_bson": "18000000136400000000000A5BC138938D44C64D31FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6144\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000000000000000000E+6144\"}}" }, { "description": "[decq603] fold-down full sequence (Clamped)", - "bson": "180000001364000000000081EFAC855B416D2DEE04FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6143\"}}", + "canonical_bson": "180000001364000000000081EFAC855B416D2DEE04FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6143\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000000000000000000000000000E+6143\"}}" }, { "description": "[decq605] fold-down full sequence (Clamped)", - "bson": "1800000013640000000080264B91C02220BE377E00FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6142\"}}", + "canonical_bson": "1800000013640000000080264B91C02220BE377E00FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6142\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000000000000000000000000000000E+6142\"}}" }, { "description": "[decq607] fold-down full sequence (Clamped)", - "bson": "1800000013640000000040EAED7446D09C2C9F0C00FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6141\"}}", + "canonical_bson": "1800000013640000000040EAED7446D09C2C9F0C00FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6141\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000000000000000E+6141\"}}" }, { "description": "[decq609] fold-down full sequence (Clamped)", - "bson": "18000000136400000000A0CA17726DAE0F1E430100FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6140\"}}", + "canonical_bson": "18000000136400000000A0CA17726DAE0F1E430100FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6140\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000000000000000000000000E+6140\"}}" }, { "description": "[decq611] fold-down full sequence (Clamped)", - "bson": "18000000136400000000106102253E5ECE4F200000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6139\"}}", + "canonical_bson": "18000000136400000000106102253E5ECE4F200000FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6139\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000000000000000000000000000E+6139\"}}" }, { "description": "[decq613] fold-down full sequence (Clamped)", - "bson": "18000000136400000000E83C80D09F3C2E3B030000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6138\"}}", + "canonical_bson": "18000000136400000000E83C80D09F3C2E3B030000FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6138\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000000000000E+6138\"}}" }, { "description": "[decq615] fold-down full sequence (Clamped)", - "bson": "18000000136400000000E4D20CC8DCD2B752000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6137\"}}", + "canonical_bson": "18000000136400000000E4D20CC8DCD2B752000000FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6137\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000000000000000000000E+6137\"}}" }, { "description": "[decq617] fold-down full sequence (Clamped)", - "bson": "180000001364000000004A48011416954508000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6136\"}}", + "canonical_bson": "180000001364000000004A48011416954508000000FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6136\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000000000000000000000000E+6136\"}}" }, { "description": "[decq619] fold-down full sequence (Clamped)", - "bson": "18000000136400000000A1EDCCCE1BC2D300000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6135\"}}", + "canonical_bson": "18000000136400000000A1EDCCCE1BC2D300000000FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6135\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000000000E+6135\"}}" }, { "description": "[decq621] fold-down full sequence (Clamped)", - "bson": "18000000136400000080F64AE1C7022D1500000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6134\"}}", + "canonical_bson": "18000000136400000080F64AE1C7022D1500000000FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6134\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000000000000000000E+6134\"}}" }, { "description": "[decq623] fold-down full sequence (Clamped)", - "bson": "18000000136400000040B2BAC9E0191E0200000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6133\"}}", + "canonical_bson": "18000000136400000040B2BAC9E0191E0200000000FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6133\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000000000000000000000E+6133\"}}" }, { "description": "[decq625] fold-down full sequence (Clamped)", - "bson": "180000001364000000A0DEC5ADC935360000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6132\"}}", + "canonical_bson": "180000001364000000A0DEC5ADC935360000000000FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6132\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000000E+6132\"}}" }, { "description": "[decq627] fold-down full sequence (Clamped)", - "bson": "18000000136400000010632D5EC76B050000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6131\"}}", + "canonical_bson": "18000000136400000010632D5EC76B050000000000FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6131\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000000000000000E+6131\"}}" }, { "description": "[decq629] fold-down full sequence (Clamped)", - "bson": "180000001364000000E8890423C78A000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6130\"}}", + "canonical_bson": "180000001364000000E8890423C78A000000000000FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6130\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000000000000000000E+6130\"}}" }, { "description": "[decq631] fold-down full sequence (Clamped)", - "bson": "18000000136400000064A7B3B6E00D000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6129\"}}", + "canonical_bson": "18000000136400000064A7B3B6E00D000000000000FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6129\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000E+6129\"}}" }, { "description": "[decq633] fold-down full sequence (Clamped)", - "bson": "1800000013640000008A5D78456301000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6128\"}}", + "canonical_bson": "1800000013640000008A5D78456301000000000000FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6128\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000000000000E+6128\"}}" }, { "description": "[decq635] fold-down full sequence (Clamped)", - "bson": "180000001364000000C16FF2862300000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6127\"}}", + "canonical_bson": "180000001364000000C16FF2862300000000000000FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6127\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000000000000000E+6127\"}}" }, { "description": "[decq637] fold-down full sequence (Clamped)", - "bson": "180000001364000080C6A47E8D0300000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6126\"}}", + "canonical_bson": "180000001364000080C6A47E8D0300000000000000FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6126\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000E+6126\"}}" }, { "description": "[decq639] fold-down full sequence (Clamped)", - "bson": "1800000013640000407A10F35A0000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6125\"}}", + "canonical_bson": "1800000013640000407A10F35A0000000000000000FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6125\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000000000E+6125\"}}" }, { "description": "[decq641] fold-down full sequence (Clamped)", - "bson": "1800000013640000A0724E18090000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6124\"}}", + "canonical_bson": "1800000013640000A0724E18090000000000000000FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6124\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000000000000E+6124\"}}" }, { "description": "[decq643] fold-down full sequence (Clamped)", - "bson": "180000001364000010A5D4E8000000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6123\"}}", + "canonical_bson": "180000001364000010A5D4E8000000000000000000FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6123\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000E+6123\"}}" }, { "description": "[decq645] fold-down full sequence (Clamped)", - "bson": "1800000013640000E8764817000000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6122\"}}", + "canonical_bson": "1800000013640000E8764817000000000000000000FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6122\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000000E+6122\"}}" }, { "description": "[decq647] fold-down full sequence (Clamped)", - "bson": "1800000013640000E40B5402000000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6121\"}}", + "canonical_bson": "1800000013640000E40B5402000000000000000000FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6121\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000000000E+6121\"}}" }, { "description": "[decq649] fold-down full sequence (Clamped)", - "bson": "1800000013640000CA9A3B00000000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6120\"}}", + "canonical_bson": "1800000013640000CA9A3B00000000000000000000FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6120\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000E+6120\"}}" }, { "description": "[decq651] fold-down full sequence (Clamped)", - "bson": "1800000013640000E1F50500000000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6119\"}}", + "canonical_bson": "1800000013640000E1F50500000000000000000000FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6119\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000E+6119\"}}" }, { "description": "[decq653] fold-down full sequence (Clamped)", - "bson": "180000001364008096980000000000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6118\"}}", + "canonical_bson": "180000001364008096980000000000000000000000FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6118\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000000E+6118\"}}" }, { "description": "[decq655] fold-down full sequence (Clamped)", - "bson": "1800000013640040420F0000000000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6117\"}}", + "canonical_bson": "1800000013640040420F0000000000000000000000FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6117\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000E+6117\"}}" }, { "description": "[decq657] fold-down full sequence (Clamped)", - "bson": "18000000136400A086010000000000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6116\"}}", + "canonical_bson": "18000000136400A086010000000000000000000000FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6116\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000E+6116\"}}" }, { "description": "[decq659] fold-down full sequence (Clamped)", - "bson": "180000001364001027000000000000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6115\"}}", + "canonical_bson": "180000001364001027000000000000000000000000FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6115\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000E+6115\"}}" }, { "description": "[decq661] fold-down full sequence (Clamped)", - "bson": "18000000136400E803000000000000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6114\"}}", + "canonical_bson": "18000000136400E803000000000000000000000000FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6114\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000E+6114\"}}" }, { "description": "[decq663] fold-down full sequence (Clamped)", - "bson": "180000001364006400000000000000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6113\"}}", + "canonical_bson": "180000001364006400000000000000000000000000FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6113\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00E+6113\"}}" }, { "description": "[decq665] fold-down full sequence (Clamped)", - "bson": "180000001364000A00000000000000000000000000FE5F00", - "extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6112\"}}", + "canonical_bson": "180000001364000A00000000000000000000000000FE5F00", + "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+6112\"}}", "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0E+6112\"}}" } ] diff -Nru libbson-xs-perl-0.4.3/corpus/document.json libbson-xs-perl-0.4.6/corpus/document.json --- libbson-xs-perl-0.4.3/corpus/document.json 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/corpus/document.json 2018-10-12 15:50:18.000000000 +0000 @@ -5,18 +5,18 @@ "valid": [ { "description": "Empty subdoc", - "bson": "0D000000037800050000000000", - "extjson": "{\"x\" : {}}" + "canonical_bson": "0D000000037800050000000000", + "canonical_extjson": "{\"x\" : {}}" }, { "description": "Empty-string key subdoc", - "bson": "150000000378000D00000002000200000062000000", - "extjson": "{\"x\" : {\"\" : \"b\"}}" + "canonical_bson": "150000000378000D00000002000200000062000000", + "canonical_extjson": "{\"x\" : {\"\" : \"b\"}}" }, { "description": "Single-character key subdoc", - "bson": "160000000378000E0000000261000200000062000000", - "extjson": "{\"x\" : {\"a\" : \"b\"}}" + "canonical_bson": "160000000378000E0000000261000200000062000000", + "canonical_extjson": "{\"x\" : {\"a\" : \"b\"}}" } ], "decodeErrors": [ diff -Nru libbson-xs-perl-0.4.3/corpus/double.json libbson-xs-perl-0.4.6/corpus/double.json --- libbson-xs-perl-0.4.3/corpus/double.json 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/corpus/double.json 2018-10-12 15:50:18.000000000 +0000 @@ -5,59 +5,77 @@ "valid": [ { "description": "+1.0", - "bson": "10000000016400000000000000F03F00", - "extjson": "{\"d\" : 1.0}" + "canonical_bson": "10000000016400000000000000F03F00", + "canonical_extjson": "{\"d\" : {\"$numberDouble\": \"1.0\"}}", + "relaxed_extjson": "{\"d\" : 1.0}" }, { "description": "-1.0", - "bson": "10000000016400000000000000F0BF00", - "extjson": "{\"d\" : -1.0}" + "canonical_bson": "10000000016400000000000000F0BF00", + "canonical_extjson": "{\"d\" : {\"$numberDouble\": \"-1.0\"}}", + "relaxed_extjson": "{\"d\" : -1.0}" }, { "description": "+1.0001220703125", - "bson": "10000000016400000000008000F03F00", - "extjson": "{\"d\" : 1.0001220703125}" + "canonical_bson": "10000000016400000000008000F03F00", + "canonical_extjson": "{\"d\" : {\"$numberDouble\": \"1.0001220703125\"}}", + "relaxed_extjson": "{\"d\" : 1.0001220703125}" }, { "description": "-1.0001220703125", - "bson": "10000000016400000000008000F0BF00", - "extjson": "{\"d\" : -1.0001220703125}" + "canonical_bson": "10000000016400000000008000F0BF00", + "canonical_extjson": "{\"d\" : {\"$numberDouble\": \"-1.0001220703125\"}}", + "relaxed_extjson": "{\"d\" : -1.0001220703125}" }, { - "description": "+2.0001220703125e10", - "bson": "1000000001640000807ca1a9a0124200", - "extjson": "{\"d\" : 2.0001220703125e10}" + "description": "1.23456789012345677E+18", + "canonical_bson": "1000000001640081E97DF41022B14300", + "canonical_extjson": "{\"d\" : {\"$numberDouble\": \"1.23456789012345677E+18\"}}", + "relaxed_extjson": "{\"d\" : 1.23456789012345677E+18}" }, { - "description": "-2.0001220703125e10", - "bson": "1000000001640000807ca1a9a012c200", - "extjson": "{\"d\" : -2.0001220703125e10}" + "description": "-1.23456789012345677E+18", + "canonical_bson": "1000000001640081E97DF41022B1C300", + "canonical_extjson": "{\"d\" : {\"$numberDouble\": \"-1.23456789012345677E+18\"}}", + "relaxed_extjson": "{\"d\" : -1.23456789012345677E+18}" }, { "description": "0.0", - "bson": "10000000016400000000000000000000", - "extjson": "{\"d\" : 0.0}" + "canonical_bson": "10000000016400000000000000000000", + "canonical_extjson": "{\"d\" : {\"$numberDouble\": \"0.0\"}}", + "relaxed_extjson": "{\"d\" : 0.0}" }, { "description": "-0.0", - "bson": "10000000016400000000000000008000", - "extjson": "{\"d\" : -0.0}" + "canonical_bson": "10000000016400000000000000008000", + "canonical_extjson": "{\"d\" : {\"$numberDouble\": \"-0.0\"}}", + "relaxed_extjson": "{\"d\" : -0.0}" }, { "description": "NaN", - "bson": "10000000016400000000000000F87F00" + "canonical_bson": "10000000016400000000000000F87F00", + "canonical_extjson": "{\"d\": {\"$numberDouble\": \"NaN\"}}", + "relaxed_extjson": "{\"d\": {\"$numberDouble\": \"NaN\"}}", + "lossy": true }, { "description": "NaN with payload", - "bson": "10000000016400120000000000F87F00" + "canonical_bson": "10000000016400120000000000F87F00", + "canonical_extjson": "{\"d\": {\"$numberDouble\": \"NaN\"}}", + "relaxed_extjson": "{\"d\": {\"$numberDouble\": \"NaN\"}}", + "lossy": true }, { "description": "Inf", - "bson": "10000000016400000000000000F07F00" + "canonical_bson": "10000000016400000000000000F07F00", + "canonical_extjson": "{\"d\": {\"$numberDouble\": \"Infinity\"}}", + "relaxed_extjson": "{\"d\": {\"$numberDouble\": \"Infinity\"}}" }, { "description": "-Inf", - "bson": "10000000016400000000000000F0FF00" + "canonical_bson": "10000000016400000000000000F0FF00", + "canonical_extjson": "{\"d\": {\"$numberDouble\": \"-Infinity\"}}", + "relaxed_extjson": "{\"d\": {\"$numberDouble\": \"-Infinity\"}}" } ], "decodeErrors": [ diff -Nru libbson-xs-perl-0.4.3/corpus/int32.json libbson-xs-perl-0.4.6/corpus/int32.json --- libbson-xs-perl-0.4.3/corpus/int32.json 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/corpus/int32.json 2018-10-12 15:50:18.000000000 +0000 @@ -5,28 +5,33 @@ "valid": [ { "description": "MinValue", - "bson": "0C0000001069000000008000", - "extjson": "{\"i\" : -2147483648}" + "canonical_bson": "0C0000001069000000008000", + "canonical_extjson": "{\"i\" : {\"$numberInt\": \"-2147483648\"}}", + "relaxed_extjson": "{\"i\" : -2147483648}" }, { "description": "MaxValue", - "bson": "0C000000106900FFFFFF7F00", - "extjson": "{\"i\" : 2147483647}" + "canonical_bson": "0C000000106900FFFFFF7F00", + "canonical_extjson": "{\"i\" : {\"$numberInt\": \"2147483647\"}}", + "relaxed_extjson": "{\"i\" : 2147483647}" }, { "description": "-1", - "bson": "0C000000106900FFFFFFFF00", - "extjson": "{\"i\" : -1}" + "canonical_bson": "0C000000106900FFFFFFFF00", + "canonical_extjson": "{\"i\" : {\"$numberInt\": \"-1\"}}", + "relaxed_extjson": "{\"i\" : -1}" }, { "description": "0", - "bson": "0C0000001069000000000000", - "extjson": "{\"i\" : 0}" + "canonical_bson": "0C0000001069000000000000", + "canonical_extjson": "{\"i\" : {\"$numberInt\": \"0\"}}", + "relaxed_extjson": "{\"i\" : 0}" }, { "description": "1", - "bson": "0C0000001069000100000000", - "extjson": "{\"i\" : 1}" + "canonical_bson": "0C0000001069000100000000", + "canonical_extjson": "{\"i\" : {\"$numberInt\": \"1\"}}", + "relaxed_extjson": "{\"i\" : 1}" } ], "decodeErrors": [ diff -Nru libbson-xs-perl-0.4.3/corpus/int64.json libbson-xs-perl-0.4.6/corpus/int64.json --- libbson-xs-perl-0.4.3/corpus/int64.json 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/corpus/int64.json 2018-10-12 15:50:18.000000000 +0000 @@ -5,28 +5,33 @@ "valid": [ { "description": "MinValue", - "bson": "10000000126100000000000000008000", - "extjson": "{\"a\" : {\"$numberLong\" : \"-9223372036854775808\"}}" + "canonical_bson": "10000000126100000000000000008000", + "canonical_extjson": "{\"a\" : {\"$numberLong\" : \"-9223372036854775808\"}}", + "relaxed_extjson": "{\"a\" : -9223372036854775808}" }, { "description": "MaxValue", - "bson": "10000000126100FFFFFFFFFFFFFF7F00", - "extjson": "{\"a\" : {\"$numberLong\" : \"9223372036854775807\"}}" + "canonical_bson": "10000000126100FFFFFFFFFFFFFF7F00", + "canonical_extjson": "{\"a\" : {\"$numberLong\" : \"9223372036854775807\"}}", + "relaxed_extjson": "{\"a\" : 9223372036854775807}" }, { "description": "-1", - "bson": "10000000126100FFFFFFFFFFFFFFFF00", - "extjson": "{\"a\" : {\"$numberLong\" : \"-1\"}}" + "canonical_bson": "10000000126100FFFFFFFFFFFFFFFF00", + "canonical_extjson": "{\"a\" : {\"$numberLong\" : \"-1\"}}", + "relaxed_extjson": "{\"a\" : -1}" }, { "description": "0", - "bson": "10000000126100000000000000000000", - "extjson": "{\"a\" : {\"$numberLong\" : \"0\"}}" + "canonical_bson": "10000000126100000000000000000000", + "canonical_extjson": "{\"a\" : {\"$numberLong\" : \"0\"}}", + "relaxed_extjson": "{\"a\" : 0}" }, { "description": "1", - "bson": "10000000126100010000000000000000", - "extjson": "{\"a\" : {\"$numberLong\" : \"1\"}}" + "canonical_bson": "10000000126100010000000000000000", + "canonical_extjson": "{\"a\" : {\"$numberLong\" : \"1\"}}", + "relaxed_extjson": "{\"a\" : 1}" } ], "decodeErrors": [ diff -Nru libbson-xs-perl-0.4.3/corpus/maxkey.json libbson-xs-perl-0.4.6/corpus/maxkey.json --- libbson-xs-perl-0.4.3/corpus/maxkey.json 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/corpus/maxkey.json 2018-10-12 15:50:18.000000000 +0000 @@ -1,12 +1,12 @@ { "description": "Maxkey type", - "bson_type": "0xFF", + "bson_type": "0x7F", "test_key": "a", "valid": [ { "description": "Maxkey", - "bson": "080000007F610000", - "extjson": "{\"a\" : {\"$maxKey\" : 1}}" + "canonical_bson": "080000007F610000", + "canonical_extjson": "{\"a\" : {\"$maxKey\" : 1}}" } ] } diff -Nru libbson-xs-perl-0.4.3/corpus/minkey.json libbson-xs-perl-0.4.6/corpus/minkey.json --- libbson-xs-perl-0.4.3/corpus/minkey.json 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/corpus/minkey.json 2018-10-12 15:50:18.000000000 +0000 @@ -5,8 +5,8 @@ "valid": [ { "description": "Minkey", - "bson": "08000000FF610000", - "extjson": "{\"a\" : {\"$minKey\" : 1}}" + "canonical_bson": "08000000FF610000", + "canonical_extjson": "{\"a\" : {\"$minKey\" : 1}}" } ] } diff -Nru libbson-xs-perl-0.4.3/corpus/multi-type-deprecated.json libbson-xs-perl-0.4.6/corpus/multi-type-deprecated.json --- libbson-xs-perl-0.4.3/corpus/multi-type-deprecated.json 1970-01-01 00:00:00.000000000 +0000 +++ libbson-xs-perl-0.4.6/corpus/multi-type-deprecated.json 2018-10-12 15:50:18.000000000 +0000 @@ -0,0 +1,15 @@ +{ + "description": "Multiple types within the same document", + "bson_type": "0x00", + "deprecated": true, + "valid": [ + { + "description": "All BSON types", + "canonical_bson": "38020000075F69640057E193D7A9CC81B4027498B50E53796D626F6C000700000073796D626F6C0002537472696E670007000000737472696E670010496E743332002A00000012496E743634002A0000000000000001446F75626C6500000000000000F0BF0542696E617279001000000003A34C38F7C3ABEDC8A37814A992AB8DB60542696E61727955736572446566696E656400050000008001020304050D436F6465000E00000066756E6374696F6E2829207B7D000F436F64655769746853636F7065001B0000000E00000066756E6374696F6E2829207B7D00050000000003537562646F63756D656E74001200000002666F6F0004000000626172000004417272617900280000001030000100000010310002000000103200030000001033000400000010340005000000001154696D657374616D7000010000002A0000000B5265676578007061747465726E0000094461746574696D6545706F6368000000000000000000094461746574696D65506F73697469766500FFFFFF7F00000000094461746574696D654E656761746976650000000080FFFFFFFF085472756500010846616C736500000C4442506F696E746572000B000000636F6C6C656374696F6E0057E193D7A9CC81B4027498B1034442526566003D0000000224726566000B000000636F6C6C656374696F6E00072469640057FD71E96E32AB4225B723FB02246462000900000064617461626173650000FF4D696E6B6579007F4D61786B6579000A4E756C6C0006556E646566696E65640000", + "converted_bson": "48020000075f69640057e193d7a9cc81b4027498b50253796d626f6c000700000073796d626f6c0002537472696e670007000000737472696e670010496e743332002a00000012496e743634002a0000000000000001446f75626c6500000000000000f0bf0542696e617279001000000003a34c38f7c3abedc8a37814a992ab8db60542696e61727955736572446566696e656400050000008001020304050d436f6465000e00000066756e6374696f6e2829207b7d000f436f64655769746853636f7065001b0000000e00000066756e6374696f6e2829207b7d00050000000003537562646f63756d656e74001200000002666f6f0004000000626172000004417272617900280000001030000100000010310002000000103200030000001033000400000010340005000000001154696d657374616d7000010000002a0000000b5265676578007061747465726e0000094461746574696d6545706f6368000000000000000000094461746574696d65506f73697469766500ffffff7f00000000094461746574696d654e656761746976650000000080ffffffff085472756500010846616c73650000034442506f696e746572002b0000000224726566000b000000636f6c6c656374696f6e00072469640057e193d7a9cc81b4027498b100034442526566003d0000000224726566000b000000636f6c6c656374696f6e00072469640057fd71e96e32ab4225b723fb02246462000900000064617461626173650000ff4d696e6b6579007f4d61786b6579000a4e756c6c000a556e646566696e65640000", + "canonical_extjson": "{\"_id\": {\"$oid\": \"57e193d7a9cc81b4027498b5\"}, \"Symbol\": {\"$symbol\": \"symbol\"}, \"String\": \"string\", \"Int32\": {\"$numberInt\": \"42\"}, \"Int64\": {\"$numberLong\": \"42\"}, \"Double\": {\"$numberDouble\": \"-1.0\"}, \"Binary\": { \"$binary\" : {\"base64\": \"o0w498Or7cijeBSpkquNtg==\", \"subType\": \"03\"}}, \"BinaryUserDefined\": { \"$binary\" : {\"base64\": \"AQIDBAU=\", \"subType\": \"80\"}}, \"Code\": {\"$code\": \"function() {}\"}, \"CodeWithScope\": {\"$code\": \"function() {}\", \"$scope\": {}}, \"Subdocument\": {\"foo\": \"bar\"}, \"Array\": [{\"$numberInt\": \"1\"}, {\"$numberInt\": \"2\"}, {\"$numberInt\": \"3\"}, {\"$numberInt\": \"4\"}, {\"$numberInt\": \"5\"}], \"Timestamp\": {\"$timestamp\": {\"t\": 42, \"i\": 1}}, \"Regex\": {\"$regularExpression\": {\"pattern\": \"pattern\", \"options\": \"\"}}, \"DatetimeEpoch\": {\"$date\": {\"$numberLong\": \"0\"}}, \"DatetimePositive\": {\"$date\": {\"$numberLong\": \"2147483647\"}}, \"DatetimeNegative\": {\"$date\": {\"$numberLong\": \"-2147483648\"}}, \"True\": true, \"False\": false, \"DBPointer\": {\"$dbPointer\": {\"$ref\": \"collection\", \"$id\": {\"$oid\": \"57e193d7a9cc81b4027498b1\"}}}, \"DBRef\": {\"$ref\": \"collection\", \"$id\": {\"$oid\": \"57fd71e96e32ab4225b723fb\"}, \"$db\": \"database\"}, \"Minkey\": {\"$minKey\": 1}, \"Maxkey\": {\"$maxKey\": 1}, \"Null\": null, \"Undefined\": {\"$undefined\": true}}", + "converted_extjson": "{\"_id\": {\"$oid\": \"57e193d7a9cc81b4027498b5\"}, \"Symbol\": \"symbol\", \"String\": \"string\", \"Int32\": {\"$numberInt\": \"42\"}, \"Int64\": {\"$numberLong\": \"42\"}, \"Double\": {\"$numberDouble\": \"-1.0\"}, \"Binary\": { \"$binary\" : {\"base64\": \"o0w498Or7cijeBSpkquNtg==\", \"subType\": \"03\"}}, \"BinaryUserDefined\": { \"$binary\" : {\"base64\": \"AQIDBAU=\", \"subType\": \"80\"}}, \"Code\": {\"$code\": \"function() {}\"}, \"CodeWithScope\": {\"$code\": \"function() {}\", \"$scope\": {}}, \"Subdocument\": {\"foo\": \"bar\"}, \"Array\": [{\"$numberInt\": \"1\"}, {\"$numberInt\": \"2\"}, {\"$numberInt\": \"3\"}, {\"$numberInt\": \"4\"}, {\"$numberInt\": \"5\"}], \"Timestamp\": {\"$timestamp\": {\"t\": 42, \"i\": 1}}, \"Regex\": {\"$regularExpression\": {\"pattern\": \"pattern\", \"options\": \"\"}}, \"DatetimeEpoch\": {\"$date\": {\"$numberLong\": \"0\"}}, \"DatetimePositive\": {\"$date\": {\"$numberLong\": \"2147483647\"}}, \"DatetimeNegative\": {\"$date\": {\"$numberLong\": \"-2147483648\"}}, \"True\": true, \"False\": false, \"DBPointer\": {\"$ref\": \"collection\", \"$id\": {\"$oid\": \"57e193d7a9cc81b4027498b1\"}}, \"DBRef\": {\"$ref\": \"collection\", \"$id\": {\"$oid\": \"57fd71e96e32ab4225b723fb\"}, \"$db\": \"database\"}, \"Minkey\": {\"$minKey\": 1}, \"Maxkey\": {\"$maxKey\": 1}, \"Null\": null, \"Undefined\": null}" + } + ] +} + diff -Nru libbson-xs-perl-0.4.3/corpus/multi-type.json libbson-xs-perl-0.4.6/corpus/multi-type.json --- libbson-xs-perl-0.4.3/corpus/multi-type.json 1970-01-01 00:00:00.000000000 +0000 +++ libbson-xs-perl-0.4.6/corpus/multi-type.json 2018-10-12 15:50:18.000000000 +0000 @@ -0,0 +1,11 @@ +{ + "description": "Multiple types within the same document", + "bson_type": "0x00", + "valid": [ + { + "description": "All BSON types", + "canonical_bson": "F4010000075F69640057E193D7A9CC81B4027498B502537472696E670007000000737472696E670010496E743332002A00000012496E743634002A0000000000000001446F75626C6500000000000000F0BF0542696E617279001000000003A34C38F7C3ABEDC8A37814A992AB8DB60542696E61727955736572446566696E656400050000008001020304050D436F6465000E00000066756E6374696F6E2829207B7D000F436F64655769746853636F7065001B0000000E00000066756E6374696F6E2829207B7D00050000000003537562646F63756D656E74001200000002666F6F0004000000626172000004417272617900280000001030000100000010310002000000103200030000001033000400000010340005000000001154696D657374616D7000010000002A0000000B5265676578007061747465726E0000094461746574696D6545706F6368000000000000000000094461746574696D65506F73697469766500FFFFFF7F00000000094461746574696D654E656761746976650000000080FFFFFFFF085472756500010846616C73650000034442526566003D0000000224726566000B000000636F6C6C656374696F6E00072469640057FD71E96E32AB4225B723FB02246462000900000064617461626173650000FF4D696E6B6579007F4D61786B6579000A4E756C6C0000", + "canonical_extjson": "{\"_id\": {\"$oid\": \"57e193d7a9cc81b4027498b5\"}, \"String\": \"string\", \"Int32\": {\"$numberInt\": \"42\"}, \"Int64\": {\"$numberLong\": \"42\"}, \"Double\": {\"$numberDouble\": \"-1.0\"}, \"Binary\": { \"$binary\" : {\"base64\": \"o0w498Or7cijeBSpkquNtg==\", \"subType\": \"03\"}}, \"BinaryUserDefined\": { \"$binary\" : {\"base64\": \"AQIDBAU=\", \"subType\": \"80\"}}, \"Code\": {\"$code\": \"function() {}\"}, \"CodeWithScope\": {\"$code\": \"function() {}\", \"$scope\": {}}, \"Subdocument\": {\"foo\": \"bar\"}, \"Array\": [{\"$numberInt\": \"1\"}, {\"$numberInt\": \"2\"}, {\"$numberInt\": \"3\"}, {\"$numberInt\": \"4\"}, {\"$numberInt\": \"5\"}], \"Timestamp\": {\"$timestamp\": {\"t\": 42, \"i\": 1}}, \"Regex\": {\"$regularExpression\": {\"pattern\": \"pattern\", \"options\": \"\"}}, \"DatetimeEpoch\": {\"$date\": {\"$numberLong\": \"0\"}}, \"DatetimePositive\": {\"$date\": {\"$numberLong\": \"2147483647\"}}, \"DatetimeNegative\": {\"$date\": {\"$numberLong\": \"-2147483648\"}}, \"True\": true, \"False\": false, \"DBRef\": {\"$ref\": \"collection\", \"$id\": {\"$oid\": \"57fd71e96e32ab4225b723fb\"}, \"$db\": \"database\"}, \"Minkey\": {\"$minKey\": 1}, \"Maxkey\": {\"$maxKey\": 1}, \"Null\": null}" + } + ] +} diff -Nru libbson-xs-perl-0.4.3/corpus/null.json libbson-xs-perl-0.4.6/corpus/null.json --- libbson-xs-perl-0.4.3/corpus/null.json 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/corpus/null.json 2018-10-12 15:50:18.000000000 +0000 @@ -5,8 +5,8 @@ "valid": [ { "description": "Null", - "bson": "080000000A610000", - "extjson": "{\"a\" : null}" + "canonical_bson": "080000000A610000", + "canonical_extjson": "{\"a\" : null}" } ] } diff -Nru libbson-xs-perl-0.4.3/corpus/oid.json libbson-xs-perl-0.4.6/corpus/oid.json --- libbson-xs-perl-0.4.3/corpus/oid.json 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/corpus/oid.json 2018-10-12 15:50:18.000000000 +0000 @@ -5,18 +5,18 @@ "valid": [ { "description": "All zeroes", - "bson": "1400000007610000000000000000000000000000", - "extjson": "{\"a\" : {\"$oid\" : \"000000000000000000000000\"}}" + "canonical_bson": "1400000007610000000000000000000000000000", + "canonical_extjson": "{\"a\" : {\"$oid\" : \"000000000000000000000000\"}}" }, { "description": "All ones", - "bson": "14000000076100FFFFFFFFFFFFFFFFFFFFFFFF00", - "extjson": "{\"a\" : {\"$oid\" : \"ffffffffffffffffffffffff\"}}" + "canonical_bson": "14000000076100FFFFFFFFFFFFFFFFFFFFFFFF00", + "canonical_extjson": "{\"a\" : {\"$oid\" : \"ffffffffffffffffffffffff\"}}" }, { "description": "Random", - "bson": "1400000007610056E1FC72E0C917E9C471416100", - "extjson": "{\"a\" : {\"$oid\" : \"56e1fc72e0c917e9c4714161\"}}" + "canonical_bson": "1400000007610056E1FC72E0C917E9C471416100", + "canonical_extjson": "{\"a\" : {\"$oid\" : \"56e1fc72e0c917e9c4714161\"}}" } ], "decodeErrors": [ diff -Nru libbson-xs-perl-0.4.3/corpus/regex.json libbson-xs-perl-0.4.6/corpus/regex.json --- libbson-xs-perl-0.4.3/corpus/regex.json 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/corpus/regex.json 2018-10-12 15:50:18.000000000 +0000 @@ -5,29 +5,51 @@ "valid": [ { "description": "empty regex with no options", - "bson": "0A0000000B6100000000", - "extjson": "{\"a\" : {\"$regex\" : \"\", \"$options\" : \"\"}}" + "canonical_bson": "0A0000000B6100000000", + "canonical_extjson": "{\"a\" : {\"$regularExpression\" : { \"pattern\": \"\", \"options\" : \"\"}}}" }, { "description": "regex without options", - "bson": "0D0000000B6100616263000000", - "extjson": "{\"a\" : {\"$regex\" : \"abc\", \"$options\" : \"\"}}" + "canonical_bson": "0D0000000B6100616263000000", + "canonical_extjson": "{\"a\" : {\"$regularExpression\" : { \"pattern\": \"abc\", \"options\" : \"\"}}}" }, { "description": "regex with options", - "bson": "0F0000000B610061626300696D0000", - "extjson": "{\"a\" : {\"$regex\" : \"abc\", \"$options\" : \"im\"}}" + "canonical_bson": "0F0000000B610061626300696D0000", + "canonical_extjson": "{\"a\" : {\"$regularExpression\" : { \"pattern\": \"abc\", \"options\" : \"im\"}}}" + }, + { + "description": "regex with options (keys reversed)", + "canonical_bson": "0F0000000B610061626300696D0000", + "canonical_extjson": "{\"a\" : {\"$regularExpression\" : { \"pattern\": \"abc\", \"options\" : \"im\"}}}", + "degenerate_extjson": "{\"a\" : {\"$regularExpression\" : {\"options\" : \"im\", \"pattern\": \"abc\"}}}" }, { "description": "regex with slash", - "bson": "110000000B610061622F636400696D0000", - "extjson": "{\"a\" : {\"$regex\" : \"ab/cd\", \"$options\" : \"im\"}}" + "canonical_bson": "110000000B610061622F636400696D0000", + "canonical_extjson": "{\"a\" : {\"$regularExpression\" : { \"pattern\": \"ab/cd\", \"options\" : \"im\"}}}" }, { "description": "flags not alphabetized", - "bson": "100000000B6100616263006D69780000", + "degenerate_bson": "100000000B6100616263006D69780000", "canonical_bson": "100000000B610061626300696D780000", - "extjson": "{\"a\" : {\"$regex\" : \"abc\", \"$options\" : \"imx\"}}" + "canonical_extjson": "{\"a\" : {\"$regularExpression\" : { \"pattern\": \"abc\", \"options\" : \"imx\"}}}", + "degenerate_extjson": "{\"a\" : {\"$regularExpression\" : { \"pattern\": \"abc\", \"options\" : \"mix\"}}}" + }, + { + "description" : "Required escapes", + "canonical_bson" : "100000000B610061625C226162000000", + "canonical_extjson": "{\"a\" : {\"$regularExpression\" : { \"pattern\": \"ab\\\\\\\"ab\", \"options\" : \"\"}}}" + }, + { + "description" : "Regular expression as value of $regex query operator", + "canonical_bson" : "180000000B247265676578007061747465726E0069780000", + "canonical_extjson": "{\"$regex\" : {\"$regularExpression\" : { \"pattern\": \"pattern\", \"options\" : \"ix\"}}}" + }, + { + "description" : "Regular expression as value of $regex query operator with $options", + "canonical_bson" : "270000000B247265676578007061747465726E000002246F7074696F6E73000300000069780000", + "canonical_extjson": "{\"$regex\" : {\"$regularExpression\" : { \"pattern\": \"pattern\", \"options\" : \"\"}}, \"$options\" : \"ix\"}" } ], "decodeErrors": [ diff -Nru libbson-xs-perl-0.4.3/corpus/string.json libbson-xs-perl-0.4.6/corpus/string.json --- libbson-xs-perl-0.4.3/corpus/string.json 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/corpus/string.json 2018-10-12 15:50:18.000000000 +0000 @@ -5,33 +5,38 @@ "valid": [ { "description": "Empty string", - "bson": "0D000000026100010000000000", - "extjson": "{\"a\" : \"\"}" + "canonical_bson": "0D000000026100010000000000", + "canonical_extjson": "{\"a\" : \"\"}" }, { "description": "Single character", - "bson": "0E00000002610002000000620000", - "extjson": "{\"a\" : \"b\"}" + "canonical_bson": "0E00000002610002000000620000", + "canonical_extjson": "{\"a\" : \"b\"}" }, { "description": "Multi-character", - "bson": "190000000261000D0000006162616261626162616261620000", - "extjson": "{\"a\" : \"abababababab\"}" + "canonical_bson": "190000000261000D0000006162616261626162616261620000", + "canonical_extjson": "{\"a\" : \"abababababab\"}" }, { "description": "two-byte UTF-8 (\u00e9)", - "bson": "190000000261000D000000C3A9C3A9C3A9C3A9C3A9C3A90000", - "extjson": "{\"a\" : \"\\u00e9\\u00e9\\u00e9\\u00e9\\u00e9\\u00e9\"}" + "canonical_bson": "190000000261000D000000C3A9C3A9C3A9C3A9C3A9C3A90000", + "canonical_extjson": "{\"a\" : \"\\u00e9\\u00e9\\u00e9\\u00e9\\u00e9\\u00e9\"}" }, { "description": "three-byte UTF-8 (\u2606)", - "bson": "190000000261000D000000E29886E29886E29886E298860000", - "extjson": "{\"a\" : \"\\u2606\\u2606\\u2606\\u2606\"}" + "canonical_bson": "190000000261000D000000E29886E29886E29886E298860000", + "canonical_extjson": "{\"a\" : \"\\u2606\\u2606\\u2606\\u2606\"}" }, { "description": "Embedded nulls", - "bson": "190000000261000D0000006162006261620062616261620000", - "extjson": "{\"a\" : \"ab\\u0000bab\\u0000babab\"}" + "canonical_bson": "190000000261000D0000006162006261620062616261620000", + "canonical_extjson": "{\"a\" : \"ab\\u0000bab\\u0000babab\"}" + }, + { + "description": "Required escapes", + "canonical_bson" : "320000000261002600000061625C220102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F61620000", + "canonical_extjson" : "{\"a\":\"ab\\\\\\\"\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001fab\"}" } ], "decodeErrors": [ diff -Nru libbson-xs-perl-0.4.3/corpus/symbol.json libbson-xs-perl-0.4.6/corpus/symbol.json --- libbson-xs-perl-0.4.3/corpus/symbol.json 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/corpus/symbol.json 2018-10-12 15:50:18.000000000 +0000 @@ -6,27 +6,45 @@ "valid": [ { "description": "Empty string", - "bson": "0D0000000E6100010000000000" + "canonical_bson": "0D0000000E6100010000000000", + "canonical_extjson": "{\"a\": {\"$symbol\": \"\"}}", + "converted_bson": "0D000000026100010000000000", + "converted_extjson": "{\"a\": \"\"}" }, { "description": "Single character", - "bson": "0E0000000E610002000000620000" + "canonical_bson": "0E0000000E610002000000620000", + "canonical_extjson": "{\"a\": {\"$symbol\": \"b\"}}", + "converted_bson": "0E00000002610002000000620000", + "converted_extjson": "{\"a\": \"b\"}" }, { "description": "Multi-character", - "bson": "190000000E61000D0000006162616261626162616261620000" + "canonical_bson": "190000000E61000D0000006162616261626162616261620000", + "canonical_extjson": "{\"a\": {\"$symbol\": \"abababababab\"}}", + "converted_bson": "190000000261000D0000006162616261626162616261620000", + "converted_extjson": "{\"a\": \"abababababab\"}" }, { "description": "two-byte UTF-8 (\u00e9)", - "bson": "190000000E61000D000000C3A9C3A9C3A9C3A9C3A9C3A90000" + "canonical_bson": "190000000E61000D000000C3A9C3A9C3A9C3A9C3A9C3A90000", + "canonical_extjson": "{\"a\": {\"$symbol\": \"éééééé\"}}", + "converted_bson": "190000000261000D000000C3A9C3A9C3A9C3A9C3A9C3A90000", + "converted_extjson": "{\"a\": \"éééééé\"}" }, { "description": "three-byte UTF-8 (\u2606)", - "bson": "190000000E61000D000000E29886E29886E29886E298860000" + "canonical_bson": "190000000E61000D000000E29886E29886E29886E298860000", + "canonical_extjson": "{\"a\": {\"$symbol\": \"☆☆☆☆\"}}", + "converted_bson": "190000000261000D000000E29886E29886E29886E298860000", + "converted_extjson": "{\"a\": \"☆☆☆☆\"}" }, { "description": "Embedded nulls", - "bson": "190000000E61000D0000006162006261620062616261620000" + "canonical_bson": "190000000E61000D0000006162006261620062616261620000", + "canonical_extjson": "{\"a\": {\"$symbol\": \"ab\\u0000bab\\u0000babab\"}}", + "converted_bson": "190000000261000D0000006162006261620062616261620000", + "converted_extjson": "{\"a\": \"ab\\u0000bab\\u0000babab\"}" } ], "decodeErrors": [ diff -Nru libbson-xs-perl-0.4.3/corpus/timestamp.json libbson-xs-perl-0.4.6/corpus/timestamp.json --- libbson-xs-perl-0.4.3/corpus/timestamp.json 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/corpus/timestamp.json 2018-10-12 15:50:18.000000000 +0000 @@ -5,8 +5,19 @@ "valid": [ { "description": "Timestamp: (123456789, 42)", - "bson": "100000001161002A00000015CD5B0700", - "extjson": "{\"a\" : {\"$timestamp\" : {\"t\" : 123456789, \"i\" : 42}}}" + "canonical_bson": "100000001161002A00000015CD5B0700", + "canonical_extjson": "{\"a\" : {\"$timestamp\" : {\"t\" : 123456789, \"i\" : 42} } }" + }, + { + "description": "Timestamp: (123456789, 42) (keys reversed)", + "canonical_bson": "100000001161002A00000015CD5B0700", + "canonical_extjson": "{\"a\" : {\"$timestamp\" : {\"t\" : 123456789, \"i\" : 42} } }", + "degenerate_extjson": "{\"a\" : {\"$timestamp\" : {\"i\" : 42, \"t\" : 123456789} } }" + }, + { + "description": "Timestamp with high-order bit set on both seconds and increment", + "canonical_bson": "10000000116100FFFFFFFFFFFFFFFF00", + "canonical_extjson": "{\"a\" : {\"$timestamp\" : {\"t\" : 4294967295, \"i\" : 4294967295} } }" } ], "decodeErrors": [ diff -Nru libbson-xs-perl-0.4.3/corpus/top.json libbson-xs-perl-0.4.6/corpus/top.json --- libbson-xs-perl-0.4.3/corpus/top.json 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/corpus/top.json 2018-10-12 15:50:18.000000000 +0000 @@ -1,6 +1,13 @@ { "description": "Top-level document validity", "bson_type": "0x00", + "valid": [ + { + "description": "Document with keys that start with $", + "canonical_bson": "0F00000010246B6579002A00000000", + "canonical_extjson": "{\"$key\": {\"$numberInt\": \"42\"}}" + } + ], "decodeErrors": [ { "description": "An object size that's too small to even include the object size, but is a well-formed, empty object", @@ -58,5 +65,172 @@ "description": "Document truncated mid-key", "bson": "1200000002666F" } + ], + "parseErrors": [ + { + "description" : "Bad $regularExpression (extra field)", + "string" : "{\"a\" : \"$regularExpression\": {\"pattern\": \"abc\", \"options\": \"\", \"unrelated\": true}}}" + }, + { + "description" : "Bad $regularExpression (missing options field)", + "string" : "{\"a\" : \"$regularExpression\": {\"pattern\": \"abc\"}}}" + }, + { + "description": "Bad $regularExpression (pattern is number, not string)", + "string": "{\"x\" : {\"$regularExpression\" : { \"pattern\": 42, \"$options\" : \"\"}}}" + }, + { + "description": "Bad $regularExpression (options are number, not string)", + "string": "{\"x\" : {\"$regularExpression\" : { \"pattern\": \"a\", \"$options\" : 0}}}" + }, + { + "description" : "Bad $regularExpression (missing pattern field)", + "string" : "{\"a\" : \"$regularExpression\": {\"options\":\"ix\"}}}" + }, + { + "description": "Bad $oid (number, not string)", + "string": "{\"a\" : {\"$oid\" : 42}}" + }, + { + "description": "Bad $oid (extra field)", + "string": "{\"a\" : {\"$oid\" : \"56e1fc72e0c917e9c4714161\", \"unrelated\": true}}" + }, + { + "description": "Bad $numberInt (number, not string)", + "string": "{\"a\" : {\"$numberInt\" : 42}}" + }, + { + "description": "Bad $numberInt (extra field)", + "string": "{\"a\" : {\"$numberInt\" : \"42\", \"unrelated\": true}}" + }, + { + "description": "Bad $numberLong (number, not string)", + "string": "{\"a\" : {\"$numberLong\" : 42}}" + }, + { + "description": "Bad $numberLong (extra field)", + "string": "{\"a\" : {\"$numberLong\" : \"42\", \"unrelated\": true}}" + }, + { + "description": "Bad $numberDouble (number, not string)", + "string": "{\"a\" : {\"$numberDouble\" : 42}}" + }, + { + "description": "Bad $numberDouble (extra field)", + "string": "{\"a\" : {\"$numberDouble\" : \".1\", \"unrelated\": true}}" + }, + { + "description": "Bad $numberDecimal (number, not string)", + "string": "{\"a\" : {\"$numberDecimal\" : 42}}" + }, + { + "description": "Bad $numberDecimal (extra field)", + "string": "{\"a\" : {\"$numberDecimal\" : \".1\", \"unrelated\": true}}" + }, + { + "description": "Bad $binary (binary is number, not string)", + "string": "{\"x\" : {\"$binary\" : {\"base64\" : 0, \"subType\" : \"00\"}}}" + }, + { + "description": "Bad $binary (type is number, not string)", + "string": "{\"x\" : {\"$binary\" : {\"base64\" : \"\", \"subType\" : 0}}}" + }, + { + "description": "Bad $binary (missing $type)", + "string": "{\"x\" : {\"$binary\" : {\"base64\" : \"//8=\"}}}" + }, + { + "description": "Bad $binary (missing $binary)", + "string": "{\"x\" : {\"$binary\" : {\"subType\" : \"00\"}}}" + }, + { + "description": "Bad $binary (extra field)", + "string": "{\"x\" : {\"$binary\" : {\"base64\" : \"//8=\", \"subType\" : 0, \"unrelated\": true}}}" + }, + { + "description": "Bad $code (type is number, not string)", + "string": "{\"a\" : {\"$code\" : 42}}" + }, + { + "description": "Bad $code (extra field)", + "string": "{\"a\" : {\"$code\" : \"\", \"unrelated\": true}}" + }, + { + "description": "Bad $code with $scope (scope is number, not doc)", + "string": "{\"x\" : {\"$code\" : \"\", \"$scope\" : 42}}" + }, + { + "description": "Bad $timestamp (type is number, not doc)", + "string": "{\"a\" : {\"$timestamp\" : 42} }" + }, + { + "description": "Bad $timestamp ('t' type is string, not number)", + "string": "{\"a\" : {\"$timestamp\" : {\"t\" : \"123456789\", \"i\" : 42} } }" + }, + { + "description": "Bad $timestamp ('i' type is string, not number)", + "string": "{\"a\" : {\"$timestamp\" : {\"t\" : 123456789, \"i\" : \"42\"} } }" + }, + { + "description": "Bad $timestamp (extra field at same level as $timestamp)", + "string": "{\"a\" : {\"$timestamp\" : {\"t\" : \"123456789\", \"i\" : \"42\"}, \"unrelated\": true } }" + }, + { + "description": "Bad $timestamp (extra field at same level as t and i)", + "string": "{\"a\" : {\"$timestamp\" : {\"t\" : \"123456789\", \"i\" : \"42\", \"unrelated\": true} } }" + }, + { + "description": "Bad $timestamp (missing t)", + "string": "{\"a\" : {\"$timestamp\" : {\"i\" : \"42\"} } }" + }, + { + "description": "Bad $timestamp (missing i)", + "string": "{\"a\" : {\"$timestamp\" : {\"t\" : \"123456789\"} } }" + }, + { + "description": "Bad $date (number, not string or hash)", + "string": "{\"a\" : {\"$date\" : 42}}" + }, + { + "description": "Bad $date (extra field)", + "string": "{\"a\" : {\"$date\" : {\"$numberLong\" : \"1356351330501\"}, \"unrelated\": true}}" + }, + { + "description": "Bad DBRef (ref is number, not string)", + "string": "{\"x\" : {\"$ref\" : 42, \"$id\" : \"abc\"}}" + }, + { + "description": "Bad DBRef (db is number, not string)", + "string": "{\"x\" : {\"$ref\" : \"a\", \"$id\" : \"abc\", \"$db\" : 42}}" + }, + { + "description": "Bad $minKey (boolean, not integer)", + "string": "{\"a\" : {\"$minKey\" : true}}" + }, + { + "description": "Bad $minKey (wrong integer)", + "string": "{\"a\" : {\"$minKey\" : 0}}" + }, + { + "description": "Bad $minKey (extra field)", + "string": "{\"a\" : {\"$minKey\" : 1, \"unrelated\": true}}" + }, + { + "description": "Bad $maxKey (boolean, not integer)", + "string": "{\"a\" : {\"$maxKey\" : true}}" + }, + { + "description": "Bad $maxKey (wrong integer)", + "string": "{\"a\" : {\"$maxKey\" : 0}}" + }, + { + "description": "Bad $maxKey (extra field)", + "string": "{\"a\" : {\"$maxKey\" : 1, \"unrelated\": true}}" + }, + { + "description": "Bad DBpointer (extra field)", + "string": "{\"a\": {\"$dbPointer\": {\"a\": {\"$numberInt\": \"1\"}, \"$id\": {\"$oid\": \"56e1fc72e0c917e9c4714161\"}, \"c\": {\"$numberInt\": \"2\"}, \"$ref\": \"b\"}}}" + } + ] } diff -Nru libbson-xs-perl-0.4.3/corpus/undefined.json libbson-xs-perl-0.4.6/corpus/undefined.json --- libbson-xs-perl-0.4.3/corpus/undefined.json 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/corpus/undefined.json 2018-10-12 15:50:18.000000000 +0000 @@ -6,8 +6,10 @@ "valid": [ { "description": "Undefined", - "bson": "0800000006610000", - "extjson": "{\"a\" : {\"$undefined\" : true}}" + "canonical_bson": "0800000006610000", + "canonical_extjson": "{\"a\" : {\"$undefined\" : true}}", + "converted_bson": "080000000A610000", + "converted_extjson": "{\"a\" : null}" } ] } diff -Nru libbson-xs-perl-0.4.3/cpanfile libbson-xs-perl-0.4.6/cpanfile --- libbson-xs-perl-0.4.3/cpanfile 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/cpanfile 2018-10-12 15:50:18.000000000 +0000 @@ -1,4 +1,4 @@ -requires "BSON" => "1.006006"; +requires "BSON" => "1.008001"; requires "XSLoader" => "0"; requires "boolean" => "0"; requires "perl" => "5.010001"; @@ -8,7 +8,7 @@ on 'test' => sub { requires "B" => "0"; - requires "BSON" => "1.006006"; + requires "BSON" => "1.008001"; requires "BSON::Types" => "0"; requires "Carp" => "0"; requires "Data::Dumper" => "0"; @@ -17,11 +17,13 @@ requires "ExtUtils::MakeMaker" => "0"; requires "File::Spec" => "0"; requires "JSON::MaybeXS" => "0"; + requires "JSON::PP" => "2.97001"; requires "MIME::Base64" => "0"; requires "Math::BigInt" => "0"; requires "Path::Tiny" => "0.054"; requires "Scalar::Util" => "0"; requires "Test::Deep" => "0"; + requires "Test::Fatal" => "0"; requires "Test::More" => "0.96"; requires "Tie::IxHash" => "0"; requires "base" => "0"; diff -Nru libbson-xs-perl-0.4.3/debian/changelog libbson-xs-perl-0.4.6/debian/changelog --- libbson-xs-perl-0.4.3/debian/changelog 2018-11-03 00:09:34.000000000 +0000 +++ libbson-xs-perl-0.4.6/debian/changelog 2018-10-16 04:36:53.000000000 +0000 @@ -1,8 +1,20 @@ -libbson-xs-perl (0.4.3-1build1) disco; urgency=medium +libbson-xs-perl (0.4.6-1) unstable; urgency=medium - * No-change rebuild for the perl 5.28 transition. + * Import upstream version 0.4.6 + * Remove unnecessary version in libbson-perl dependency + * Add "Multi-Arch: same" - -- Adam Conrad Fri, 02 Nov 2018 18:09:34 -0600 + -- Xavier Guimard Tue, 16 Oct 2018 06:36:53 +0200 + +libbson-xs-perl (0.4.4-1) unstable; urgency=medium + + * Email change: Xavier Guimard -> yadd@debian.org + * Import upstream version 0.4.4 + * Declare compliance ith policy 4.2.1 + * Add libjson-pp-perl and libtest-fatal-perl in build dependencies + * Add required version for libbson-perl (>= 1.8.0) + + -- Xavier Guimard Tue, 18 Sep 2018 06:26:33 +0200 libbson-xs-perl (0.4.3-1) unstable; urgency=low diff -Nru libbson-xs-perl-0.4.3/debian/control libbson-xs-perl-0.4.6/debian/control --- libbson-xs-perl-0.4.3/debian/control 2018-07-31 13:39:46.000000000 +0000 +++ libbson-xs-perl-0.4.6/debian/control 2018-10-16 04:36:25.000000000 +0000 @@ -1,6 +1,6 @@ Source: libbson-xs-perl Maintainer: Debian Perl Group -Uploaders: Xavier Guimard +Uploaders: Xavier Guimard Section: perl Testsuite: autopkgtest-pkg-perl Priority: optional @@ -9,11 +9,13 @@ libbson-perl, libconfig-autoconf-perl (>= 0.22), libjson-maybexs-perl, + libjson-pp-perl (>= 2.97001) | perl (>= 5.27.8), libpath-tiny-perl, libtest-deep-perl, + libtest-fatal-perl, libtie-ixhash-perl, perl -Standards-Version: 4.1.5 +Standards-Version: 4.2.1 Vcs-Browser: https://salsa.debian.org/perl-team/modules/packages/libbson-xs-perl Vcs-Git: https://salsa.debian.org/perl-team/modules/packages/libbson-xs-perl.git Homepage: https://metacpan.org/release/BSON-XS @@ -25,6 +27,7 @@ ${shlibs:Depends}, libboolean-perl, libbson-perl +Multi-Arch: same Description: Perl XS implementation of MongoDB's BSON serialization The BSON class implements a BSON encoder/decoder ("codec"). It consumes "documents" (typically hash references) and emits BSON strings and vice versa diff -Nru libbson-xs-perl-0.4.3/debian/copyright libbson-xs-perl-0.4.6/debian/copyright --- libbson-xs-perl-0.4.3/debian/copyright 2018-07-31 13:39:46.000000000 +0000 +++ libbson-xs-perl-0.4.6/debian/copyright 2018-10-16 04:22:10.000000000 +0000 @@ -62,7 +62,7 @@ Infinity Interactive, under the terms of Perl 5 itself. Files: debian/* -Copyright: 2018, Xavier Guimard +Copyright: 2018, Xavier Guimard License: Apache-2.0 or Artistic or GPL-1+ License: Aladdin diff -Nru libbson-xs-perl-0.4.3/devel/sync-bson-tests.pl libbson-xs-perl-0.4.6/devel/sync-bson-tests.pl --- libbson-xs-perl-0.4.3/devel/sync-bson-tests.pl 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/devel/sync-bson-tests.pl 2018-10-12 15:50:18.000000000 +0000 @@ -25,11 +25,12 @@ sub rsync { my ($dir) = @_; - try_system( 'rsync', '-a', $bsonpm->child("corpus"), $root ); - try_system( 'rsync', '-a', $bsonpm->child(qw/t common/), $root->child("t") ); - try_system( 'rsync', '-a', $bsonpm->child(qw/t corpus/), $root->child("t") ); - try_system( 'rsync', '-a', $bsonpm->child(qw/t lib/), $root->child("t") ); - try_system( 'rsync', '-a', $bsonpm->child(qw/t mapping/), $root->child("t") ); + try_system( 'rsync', '-a', $bsonpm->child("corpus"), $root ); + try_system( 'rsync', '-a', $bsonpm->child(qw/t common/), $root->child("t") ); + try_system( 'rsync', '-a', $bsonpm->child(qw/t corpus/), $root->child("t") ); + try_system( 'rsync', '-a', $bsonpm->child(qw/t lib/), $root->child("t") ); + try_system( 'rsync', '-a', $bsonpm->child(qw/t mapping/), $root->child("t") ); + try_system( 'rsync', '-a', $bsonpm->child(qw/t regression/), $root->child("t") ); } rsync(); diff -Nru libbson-xs-perl-0.4.3/dist.ini libbson-xs-perl-0.4.6/dist.ini --- libbson-xs-perl-0.4.3/dist.ini 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/dist.ini 2018-10-12 15:50:18.000000000 +0000 @@ -17,7 +17,7 @@ Test::MinimumVersion.max_target_perl = 5.010001 [Prereqs] -BSON = 1.006006 +BSON = 1.008001 ; Add pre-configuration requirements to META so that Makefile.PL will run [Prereqs / ConfigureRequires] diff -Nru libbson-xs-perl-0.4.3/lib/BSON/XS.pm libbson-xs-perl-0.4.6/lib/BSON/XS.pm --- libbson-xs-perl-0.4.3/lib/BSON/XS.pm 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/lib/BSON/XS.pm 2018-10-12 15:50:18.000000000 +0000 @@ -21,7 +21,7 @@ # ABSTRACT: XS implementation of MongoDB's BSON serialization use version; -our $VERSION = 'v0.4.3'; +our $VERSION = 'v0.4.6'; # cached for efficiency during decoding # XXX eventually move this into XS @@ -51,7 +51,7 @@ =head1 VERSION -version v0.4.3 +version v0.4.6 =head1 DESCRIPTION diff -Nru libbson-xs-perl-0.4.3/Makefile.PL libbson-xs-perl-0.4.6/Makefile.PL --- libbson-xs-perl-0.4.3/Makefile.PL 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/Makefile.PL 2018-10-12 15:50:18.000000000 +0000 @@ -23,7 +23,7 @@ "NAME" => "BSON::XS", "OBJECT" => "xs/XS\$(OBJ_EXT) bson/bson-atomic\$(OBJ_EXT) bson/bson-clock\$(OBJ_EXT) bson/bson-context\$(OBJ_EXT) bson/bson-decimal128\$(OBJ_EXT) bson/bson-error\$(OBJ_EXT) bson/bson-iso8601\$(OBJ_EXT) bson/bson-iter\$(OBJ_EXT) bson/bson-keys\$(OBJ_EXT) bson/bson-md5\$(OBJ_EXT) bson/bson-memory\$(OBJ_EXT) bson/bson-oid\$(OBJ_EXT) bson/bson-reader\$(OBJ_EXT) bson/bson-string\$(OBJ_EXT) bson/bson-timegm\$(OBJ_EXT) bson/bson-utf8\$(OBJ_EXT) bson/bson-value\$(OBJ_EXT) bson/bson-version\$(OBJ_EXT) bson/bson-writer\$(OBJ_EXT) bson/bson\$(OBJ_EXT)", "PREREQ_PM" => { - "BSON" => "1.006006", + "BSON" => "1.008001", "XSLoader" => 0, "boolean" => 0, "strict" => 0, @@ -32,7 +32,7 @@ }, "TEST_REQUIRES" => { "B" => 0, - "BSON" => "1.006006", + "BSON" => "1.008001", "BSON::Types" => 0, "Carp" => 0, "Data::Dumper" => 0, @@ -41,11 +41,13 @@ "ExtUtils::MakeMaker" => 0, "File::Spec" => 0, "JSON::MaybeXS" => 0, + "JSON::PP" => "2.97001", "MIME::Base64" => 0, "Math::BigInt" => 0, "Path::Tiny" => "0.054", "Scalar::Util" => 0, "Test::Deep" => 0, + "Test::Fatal" => 0, "Test::More" => "0.96", "Tie::IxHash" => 0, "base" => 0, @@ -53,7 +55,7 @@ "lib" => 0, "utf8" => 0 }, - "VERSION" => "v0.4.3", + "VERSION" => "v0.4.6", "XS" => { "xs/XS.xs" => "xs/XS.c" }, @@ -61,13 +63,13 @@ "FILES" => "xs/XS\$(OBJ_EXT) bson/bson-atomic\$(OBJ_EXT) bson/bson-clock\$(OBJ_EXT) bson/bson-context\$(OBJ_EXT) bson/bson-decimal128\$(OBJ_EXT) bson/bson-error\$(OBJ_EXT) bson/bson-iso8601\$(OBJ_EXT) bson/bson-iter\$(OBJ_EXT) bson/bson-keys\$(OBJ_EXT) bson/bson-md5\$(OBJ_EXT) bson/bson-memory\$(OBJ_EXT) bson/bson-oid\$(OBJ_EXT) bson/bson-reader\$(OBJ_EXT) bson/bson-string\$(OBJ_EXT) bson/bson-timegm\$(OBJ_EXT) bson/bson-utf8\$(OBJ_EXT) bson/bson-value\$(OBJ_EXT) bson/bson-version\$(OBJ_EXT) bson/bson-writer\$(OBJ_EXT) bson/bson\$(OBJ_EXT)" }, "test" => { - "TESTS" => "t/*.t t/common/*.t t/corpus/*.t t/mapping/*.t" + "TESTS" => "t/*.t t/common/*.t t/corpus/*.t t/mapping/*.t t/regression/*.t" } ); my %FallbackPrereqs = ( "B" => 0, - "BSON" => "1.006006", + "BSON" => "1.008001", "BSON::Types" => 0, "Carp" => 0, "Data::Dumper" => 0, @@ -76,11 +78,13 @@ "ExtUtils::MakeMaker" => 0, "File::Spec" => 0, "JSON::MaybeXS" => 0, + "JSON::PP" => "2.97001", "MIME::Base64" => 0, "Math::BigInt" => 0, "Path::Tiny" => "0.054", "Scalar::Util" => 0, "Test::Deep" => 0, + "Test::Fatal" => 0, "Test::More" => "0.96", "Tie::IxHash" => 0, "XSLoader" => 0, diff -Nru libbson-xs-perl-0.4.3/MANIFEST libbson-xs-perl-0.4.6/MANIFEST --- libbson-xs-perl-0.4.3/MANIFEST 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/MANIFEST 2018-10-12 15:50:18.000000000 +0000 @@ -73,6 +73,7 @@ corpus/datetime.t corpus/dbpointer.json corpus/dbpointer.t +corpus/dbref.json corpus/decimal128-1.json corpus/decimal128-1.t corpus/decimal128-2.json @@ -104,6 +105,8 @@ corpus/maxkey.t corpus/minkey.json corpus/minkey.t +corpus/multi-type-deprecated.json +corpus/multi-type.json corpus/null.json corpus/null.t corpus/oid.json @@ -148,6 +151,7 @@ t/corpus/corpus.pl t/corpus/datetime.t t/corpus/dbpointer.t +t/corpus/dbref.t t/corpus/decimal128-1.t t/corpus/decimal128-2.t t/corpus/decimal128-3.t @@ -161,6 +165,7 @@ t/corpus/int64.t t/corpus/maxkey.t t/corpus/minkey.t +t/corpus/multi-type.t t/corpus/null.t t/corpus/oid.t t/corpus/regex.t @@ -188,6 +193,9 @@ t/mapping/time.t t/mapping/timestamp.t t/pvtlib/CleanEnv.pm +t/regression/boolean_copy.t +t/regression/scalar_ref_value.t +t/regression/undef_round_trip.t testing/build.pl testing/config.yml testing/test.pl diff -Nru libbson-xs-perl-0.4.3/META.json libbson-xs-perl-0.4.6/META.json --- libbson-xs-perl-0.4.3/META.json 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/META.json 2018-10-12 15:50:18.000000000 +0000 @@ -66,7 +66,7 @@ }, "runtime" : { "requires" : { - "BSON" : "1.006006", + "BSON" : "1.008001", "XSLoader" : "0", "boolean" : "0", "perl" : "5.010001", @@ -81,7 +81,7 @@ }, "requires" : { "B" : "0", - "BSON" : "1.006006", + "BSON" : "1.008001", "BSON::Types" : "0", "Carp" : "0", "Data::Dumper" : "0", @@ -90,11 +90,13 @@ "ExtUtils::MakeMaker" : "0", "File::Spec" : "0", "JSON::MaybeXS" : "0", + "JSON::PP" : "2.97001", "MIME::Base64" : "0", "Math::BigInt" : "0", "Path::Tiny" : "0.054", "Scalar::Util" : "0", "Test::Deep" : "0", + "Test::Fatal" : "0", "Test::More" : "0.96", "Tie::IxHash" : "0", "base" : "0", @@ -108,7 +110,7 @@ "provides" : { "BSON::XS" : { "file" : "lib/BSON/XS.pm", - "version" : "v0.4.3" + "version" : "v0.4.6" } }, "release_status" : "stable", @@ -123,7 +125,7 @@ "web" : "https://github.com/mongodb/mongo-perl-bson-xs" } }, - "version" : "v0.4.3", + "version" : "v0.4.6", "x_authority" : "cpan:MONGODB", "x_generated_by_perl" : "v5.28.0", "x_serialization_backend" : "Cpanel::JSON::XS version 4.04" diff -Nru libbson-xs-perl-0.4.3/META.yml libbson-xs-perl-0.4.6/META.yml --- libbson-xs-perl-0.4.3/META.yml 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/META.yml 2018-10-12 15:50:18.000000000 +0000 @@ -4,7 +4,7 @@ - 'David Golden ' build_requires: B: '0' - BSON: '1.006006' + BSON: '1.008001' BSON::Types: '0' Carp: '0' Data::Dumper: '0' @@ -13,11 +13,13 @@ ExtUtils::MakeMaker: '0' File::Spec: '0' JSON::MaybeXS: '0' + JSON::PP: '2.97001' MIME::Base64: '0' Math::BigInt: '0' Path::Tiny: '0.054' Scalar::Util: '0' Test::Deep: '0' + Test::Fatal: '0' Test::More: '0.96' Tie::IxHash: '0' base: '0' @@ -48,9 +50,9 @@ provides: BSON::XS: file: lib/BSON/XS.pm - version: v0.4.3 + version: v0.4.6 requires: - BSON: '1.006006' + BSON: '1.008001' XSLoader: '0' boolean: '0' perl: '5.010001' @@ -61,7 +63,7 @@ bugtracker: https://jira.mongodb.org/browse/PERL homepage: https://github.com/mongodb/mongo-perl-bson-xs repository: https://github.com/mongodb/mongo-perl-bson-xs.git -version: v0.4.3 +version: v0.4.6 x_authority: cpan:MONGODB x_generated_by_perl: v5.28.0 x_serialization_backend: 'YAML::Tiny version 1.73' diff -Nru libbson-xs-perl-0.4.3/README libbson-xs-perl-0.4.6/README --- libbson-xs-perl-0.4.3/README 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/README 2018-10-12 15:50:18.000000000 +0000 @@ -2,7 +2,7 @@ BSON::XS - XS implementation of MongoDB's BSON serialization VERSION - version v0.4.3 + version v0.4.6 DESCRIPTION This module contains an XS implementation for BSON encoding and diff -Nru libbson-xs-perl-0.4.3/t/00-report-prereqs.dd libbson-xs-perl-0.4.6/t/00-report-prereqs.dd --- libbson-xs-perl-0.4.3/t/00-report-prereqs.dd 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/t/00-report-prereqs.dd 2018-10-12 15:50:18.000000000 +0000 @@ -40,7 +40,7 @@ }, 'runtime' => { 'requires' => { - 'BSON' => '1.006006', + 'BSON' => '1.008001', 'XSLoader' => '0', 'boolean' => '0', 'perl' => '5.010001', @@ -55,7 +55,7 @@ }, 'requires' => { 'B' => '0', - 'BSON' => '1.006006', + 'BSON' => '1.008001', 'BSON::Types' => '0', 'Carp' => '0', 'Data::Dumper' => '0', @@ -64,11 +64,13 @@ 'ExtUtils::MakeMaker' => '0', 'File::Spec' => '0', 'JSON::MaybeXS' => '0', + 'JSON::PP' => '2.97001', 'MIME::Base64' => '0', 'Math::BigInt' => '0', 'Path::Tiny' => '0.054', 'Scalar::Util' => '0', 'Test::Deep' => '0', + 'Test::Fatal' => '0', 'Test::More' => '0.96', 'Tie::IxHash' => '0', 'base' => '0', diff -Nru libbson-xs-perl-0.4.3/t/corpus/dbref.t libbson-xs-perl-0.4.6/t/corpus/dbref.t --- libbson-xs-perl-0.4.3/t/corpus/dbref.t 1970-01-01 00:00:00.000000000 +0000 +++ libbson-xs-perl-0.4.6/t/corpus/dbref.t 2018-10-12 15:50:18.000000000 +0000 @@ -0,0 +1,28 @@ +use 5.008001; +use strict; +use warnings; + +use Test::More 0.96; +use Path::Tiny; + +use lib 't/lib'; +use lib 't/pvtlib'; +use CleanEnv; +use CorpusTest; + +test_corpus_file( path($0)->basename(".t") . ".json" ); + +done_testing; + +# +# This file is part of BSON-XS +# +# This software is Copyright (c) 2018 by MongoDB, Inc. +# +# This is free software, licensed under: +# +# The Apache License, Version 2.0, January 2004 +# +# +# vim: set ts=4 sts=4 sw=4 et tw=75: + diff -Nru libbson-xs-perl-0.4.3/t/corpus/multi-type.t libbson-xs-perl-0.4.6/t/corpus/multi-type.t --- libbson-xs-perl-0.4.3/t/corpus/multi-type.t 1970-01-01 00:00:00.000000000 +0000 +++ libbson-xs-perl-0.4.6/t/corpus/multi-type.t 2018-10-12 15:50:18.000000000 +0000 @@ -0,0 +1,28 @@ +use 5.008001; +use strict; +use warnings; + +use Test::More 0.96; +use Path::Tiny; + +use lib 't/lib'; +use lib 't/pvtlib'; +use CleanEnv; +use CorpusTest; + +test_corpus_file( path($0)->basename(".t") . ".json" ); + +done_testing; + +# +# This file is part of BSON-XS +# +# This software is Copyright (c) 2018 by MongoDB, Inc. +# +# This is free software, licensed under: +# +# The Apache License, Version 2.0, January 2004 +# +# +# vim: set ts=4 sts=4 sw=4 et tw=75: + diff -Nru libbson-xs-perl-0.4.3/t/lib/CorpusTest.pm libbson-xs-perl-0.4.6/t/lib/CorpusTest.pm --- libbson-xs-perl-0.4.3/t/lib/CorpusTest.pm 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/t/lib/CorpusTest.pm 2018-10-12 15:50:18.000000000 +0000 @@ -4,18 +4,38 @@ use Test::More 0.96; use Test::Deep qw/!blessed/; +# Hijack the JSON::PP::USE_B constant to enable svtype detection +BEGIN { + no warnings 'redefine'; + + require constant; + my $orig = constant->can('import'); + local *constant::import = sub { + if ($_[1] eq 'USE_B') { + pop(@_); + push(@_, 1) + } + goto &$orig; + }; + + require JSON::PP; + die "TOO LATE" + unless JSON::PP::USE_B(); +} + +use JSON::PP 2.97001; + use BSON; use BSON::Types ':all'; use Config; use Path::Tiny 0.054; # better basename -use JSON::MaybeXS; use Data::Dumper; # from t/lib use TestUtils; use constant { - IS_JSON_PP => ref( JSON::MaybeXS->new ) eq 'JSON::PP' + IS_JSON_PP => 1, }; use base 'Exporter'; @@ -24,6 +44,25 @@ binmode( Test::More->builder->$_, ":utf8" ) for qw/output failure_output todo_output/; +# overridden to allow Tie::IxHash hashes to be created by JSON::PP +my $orig = JSON::PP->can("object") + or die "Unable to find JSON::PP::object to override"; +do { + no warnings 'redefine'; + *JSON::PP::object = sub { + tie my %hash, 'Tie::IxHash'; + my $value = $orig->(\%hash); + return $value; + }; +}; + +my $JSON = JSON::PP + ->new + ->ascii + ->allow_bignum + ->allow_blessed + ->convert_blessed; + sub test_corpus_file { my ($file) = @_; local $Test::Builder::Level = $Test::Builder::Level + 1; @@ -38,15 +77,10 @@ return; } - if ( $json->{deprecated} ) { - $f = path( "corpus", "deprecated", $file ); - $json = eval { decode_json( $f->slurp ) }; - if ( my $err = $@ ) { - fail("deprecaed/$base failed to load"); - diag($err); - return; - } - } + subtest 'JSON::PP Tie::IxHash injection' => sub { + my $data = $JSON->decode('{"x":23}'); + ok defined(tied %$data), 'JSON::PP returns tied objects'; + }; _validity_tests($json); _decode_error_tests($json); @@ -60,91 +94,188 @@ # suppress caching that throws off Test::Deep local $BSON::Types::NoCache = 1; - # aggressively force ext-json representation, even for int32 and double - local $ENV{BSON_EXTJSON_FORCE} = 1; - my $bson_type = $json->{bson_type}; + my $deprecated = $json->{deprecated}; for my $case ( @{ $json->{valid} } ) { - local $Data::Dumper::Useqq = 1; - - my $desc = $case->{description}; - my $wrap = $bson_type =~ /\A(?:0x01|0x10|0x12)\z/; - my $codec = BSON->new( prefer_numeric => 1, wrap_numbers => $wrap, ordered => 1 ); - my $lossy = $case->{lossy}; - - my $B = $case->{bson}; - my $E = $case->{extjson}; # could be undef - - my $cB = exists($case->{canonical_bson}) ? $case->{canonical_bson} : $B; - my $cE = exists($case->{canonical_extjson}) ? $case->{canonical_extjson} : $E; + subtest 'case: '.$case->{description} => sub { + local $Data::Dumper::Useqq = 1; - my $skip_extjson = !(defined($E) && _extjson_ok($bson_type, $E)); - - $B = pack( "H*", $B ); - $cB = pack( "H*", $cB ); - - $E = _normalize( $E, "$desc: normalizing E" ); - $cE = _normalize( $cE, "$desc: normalizing cE" ); - - _bson_to_bson( $codec, $B, $cB, "$desc: B->cB" ); - - if ($B ne $cB) { - _bson_to_bson( $codec, $cB, $cB, "$desc: cB->cB" ); - } - - if ( ! $skip_extjson ) { - _bson_to_extjson( $codec, $B, $cE, "$desc: B->cE" ); - _extjson_to_extjson( $codec, $E, $cE, "$desc: E->cE" ); - - if ($B ne $cB) { - _bson_to_extjson( $codec, $cB, $cE, "$desc: cB->cE" ); + my $wrap = $bson_type =~ /\A(?:0x00|0x01|0x10|0x12)\z/; + my $codec = BSON->new( prefer_numeric => 1, wrap_numbers => $wrap, ordered => 1 ); + my $lossy = $case->{lossy}; + + my $canonical_bson = $case->{canonical_bson}; + my $converted_bson = $case->{converted_bson}; + my $degenerate_bson = $case->{degenerate_bson}; + + $canonical_bson = pack('H*', $canonical_bson); + $converted_bson = pack('H*', $converted_bson) + if defined $converted_bson; + $degenerate_bson = pack('H*', $degenerate_bson) + if defined $degenerate_bson; + + my $canonical_json = $case->{canonical_extjson}; + my $converted_json = $case->{converted_extjson}; + my $degenerate_json = $case->{degenerate_extjson}; + my $relaxed_json = $case->{relaxed_extjson}; + + $canonical_json = _normalize( + $canonical_json, + '$desc: normalizing canonical extjson', + ); + $converted_json = _normalize( + $converted_json, + '$desc: normalizing converted extjson', + ); + $degenerate_json = _normalize( + $degenerate_json, + '$desc: normalizing degenerate extjson', + ); + $relaxed_json = _normalize( + $relaxed_json, + '$desc: normalizing relaxed extjson', + ); + + ## + ## for cB input (canonical BSON) + ## + + bytes_are( + _native_to_bson($codec, + _bson_to_native($codec, $canonical_bson), + ), + $deprecated + ? $converted_bson + : $canonical_bson, + 'native_to_bson(bson_to_native(cB)) = cB', + ); + + is( + _normalize_numbers( + _native_to_canonical_extended_json($codec, + _bson_to_native($codec, $canonical_bson), + ) + ), + _normalize_numbers( + $deprecated + ? $converted_json + : $canonical_json, + ), + 'native_to_canonical_extended_json(bson_to_native(cB)) = cEJ', + ); + + is( + _normalize_numbers( + _native_to_relaxed_extended_json($codec, + _bson_to_native($codec, $canonical_bson), + ) + ), + _normalize_numbers($relaxed_json), + 'native_to_relaxed_extended_json(bson_to_native(cB)) = rEJ', + ) unless not defined $relaxed_json; + + ## + ## for cEJ input (canonical Extended JSON) + ## + + is( + _normalize_numbers( + _native_to_canonical_extended_json($codec, + _extjson_to_native($codec, $canonical_json), + ) + ), + _normalize_numbers( + $deprecated + ? $converted_json + : $canonical_json, + ), + 'native_to_canonical_extended_json(json_to_native(cEJ)) = cEJ', + ); + + bytes_are( + _native_to_bson($codec, + _extjson_to_native($codec, $canonical_json), + ), + $deprecated + ? $converted_bson + : $canonical_bson, + 'native_to_bson(json_to_native(cEJ)) = cB' + ) unless $lossy; + + ## + ## for dB input (degenerate BSON) + ## + + if (defined $degenerate_bson) { + bytes_are( + _native_to_bson($codec, + _bson_to_native($codec, $degenerate_bson), + ), + $canonical_bson, + 'native_to_bson(bson_to_native(dB)) = cB', + ) } - if ($E ne $cE) { - _extjson_to_extjson( $codec, $cE, $cE, "$desc: cE->cE" ); + ## + ## for dEJ input (degenerate Extended JSON) + ## + + if (defined $degenerate_json) { + + is( + _normalize_numbers( + _native_to_canonical_extended_json($codec, + _extjson_to_native($codec, $degenerate_json), + ) + ), + _normalize_numbers( + $deprecated + ? $converted_json + : $canonical_json, + ), + 'native_to_canonical_extended_json(json_to_native(dEJ)) = cEJ', + ); + + bytes_are( + _native_to_bson($codec, + _extjson_to_native($codec, $degenerate_json), + ), + $deprecated + ? $converted_bson + : $canonical_bson, + 'native_to_bson(json_to_native(dEJ)) = cB' + ) unless $lossy; } - if ( ! $lossy ) { - _extjson_to_bson( $codec, $E, $cB, "$desc: E->cB" ); - - if ($E ne $cE) { - _extjson_to_bson( $codec, $E, $cB, "$desc: cE->cB" ); - } - + ## + ## for rEJ input (relaxed Extended JSON) + ## + + if (defined $relaxed_json) { + is( + _normalize_numbers( + _native_to_relaxed_extended_json($codec, + _extjson_to_native($codec, $relaxed_json), + ) + ), + _normalize_numbers($relaxed_json), + 'native_to_relaxed_extended_json(json_to_native(rEJ)) = rEJ', + ); } - } + }; } return; } -# this handle special cases that just don't work will in perl -sub _extjson_ok { - my ($type, $E) = @_; - - if ( $type eq "0x01" ) { - return if $E =~ /\d\.0\D/; # trailing zeros wind up as integers - return if $E =~ '-0(\.0)?'; # negative zero not preserved in Perl - } - - # JSON::PP has trouble when TO_JSON returns a false value; in our case - # it could stringify 0 as "0" rather than treat it as a number; see - # https://github.com/makamaka/JSON-PP/pull/23 - if ( ( $type eq "0x10" || $type eq "0x12" ) && IS_JSON_PP ) { - return if $E =~ /:\s*0/; - } - - return 1; -} - sub _normalize { my ($json, $desc) = @_; return unless defined $json; try_or_fail( sub { - $json = to_myjson( decode_json( $json ) ); + $json = to_myjson( $JSON->decode( $json ) ); }, $desc ) or next; @@ -152,76 +283,107 @@ return $json; } -sub _bson_to_bson { - my ($codec, $input, $expected, $label) = @_; +sub _normalize_numbers { + my ($value) = @_; + return undef unless defined $value; + + $value =~ s{"0.0"}{"0"}g; + $value =~ s{"-0.0"}{"0"}g; + $value =~ s{"-0"}{"0"}g; + $value =~ s{"1.0"}{"1"}g; + $value =~ s{"-1.0"}{"-1"}g; + + $value =~ s[{"d":-0.0}][{"d":0}]g; + $value =~ s[{"d":-0}][{"d":0}]g; + $value =~ s[{"d":0.0}][{"d":0}]g; + + $value =~ s[(-?)1\.2345\d+(?:[eE]\+\d+)?][${1}1234567890...]g; + $value =~ s[-1234567890123456768][-1234567890...]g; + $value =~ s[1234567890123456768][1234567890...]g; + + # Power8 specific normalization + $value =~ s[-1234567890123456770][-1234567890...]g; + $value =~ s[1234567890123456770][1234567890...]g; - my ($decoded,$got); + return $value; +} - try_or_fail( - sub { $decoded = $codec->decode_one( $input ) }, - "$label: Couldn't decode BSON" - ) or return; +sub _native_to_bson { + my ($codec, $native) = @_; + my $bson; try_or_fail( - sub { $got = $codec->encode_one( $decoded ) }, - "$label: Couldn't encode BSON from BSON" - ) or return; + sub { $bson = $codec->encode_one($native) }, + q{Couldn't convert from native Perl to BSON}, + ) or return undef; - return bytes_are( $got, $expected, $label ); + return $bson; } -sub _bson_to_extjson { - my ($codec, $input, $expected, $label) = @_; +sub _bson_to_native { + my ($codec, $bson) = @_; - my ($decoded,$got); + my $native; + try_or_fail( + sub { $native = $codec->decode_one($bson) }, + q{Couldn't convert from BSON to native Perl}, + ) or return undef; + return $native; +} + +sub _extjson_to_native { + my ($codec, $extjson) = @_; + + my $native_extjson; try_or_fail( - sub { $decoded = $codec->decode_one( $input ) }, - "$label: Couldn't decode BSON" - ) or return; + sub { $native_extjson = $JSON->decode($extjson) }, + q{Couldn't decode JSON to native ExtJSON}, + ) or return undef; + my $native; try_or_fail( - sub { $got = to_extjson( $decoded ) }, - "$label: Couldn't encode ExtJSON from BSON" - ) or return; + sub { $native = $codec->extjson_to_perl($native_extjson) }, + q{Couldn't convert from native ExtJSON to native Perl}, + ) or return undef; - return is($got, $expected, $label); + return $native; } -sub _extjson_to_bson { - my ($codec, $input, $expected, $label) = @_; - - my ($decoded,$got); +sub _native_to_relaxed_extended_json { + my ($codec, $native) = @_; + my $native_extjson; try_or_fail( - sub { $decoded = $codec->inflate_extjson( decode_json( $input ) ) }, - "$label: Couldn't decode ExtJSON" - ) or return; + sub { $native_extjson = $codec->perl_to_extjson($native, {relaxed => 1}) }, + q{Couldn't convert from native Perl to native relaxed ExtJSON}, + ) or return undef; + my $extjson; try_or_fail( - sub { $got = $codec->encode_one( $decoded ) }, - "$label: Couldn't encode BSON from BSON" - ) or return; + sub { $extjson = $JSON->encode($native_extjson) }, + q{Couldn't encode native ExtJSON as JSON}, + ) or return undef; - return bytes_are( $got, $expected, $label ); + return $extjson; } -sub _extjson_to_extjson { - my ($codec, $input, $expected, $label) = @_; - - my ($decoded,$got); +sub _native_to_canonical_extended_json { + my ($codec, $native) = @_; + my $native_extjson; try_or_fail( - sub { $decoded = $codec->inflate_extjson( decode_json( $input ) ) }, - "$label: Couldn't decode ExtJSON" - ) or return; + sub { $native_extjson = $codec->perl_to_extjson($native, {relaxed => 0}) }, + q{Couldn't convert from native Perl to native canonical ExtJSON}, + ) or return undef; + my $extjson; try_or_fail( - sub { $got = to_extjson( $decoded ) }, - "$label: Couldn't encode ExtJSON from BSON" - ) or return; + sub { $extjson = $JSON->encode($native_extjson) }, + q{Couldn't encode native ExtJSON as JSON}, + ) or return undef; - return is($got, $expected, $label); + return $extjson; } sub _decode_error_tests { @@ -239,6 +401,7 @@ } my %PARSER = ( + '0x00' => sub { bson_doc(shift) }, '0x13' => sub { bson_decimal128(shift) }, ); diff -Nru libbson-xs-perl-0.4.3/t/lib/TestUtils.pm libbson-xs-perl-0.4.6/t/lib/TestUtils.pm --- libbson-xs-perl-0.4.3/t/lib/TestUtils.pm 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/t/lib/TestUtils.pm 2018-10-12 15:50:18.000000000 +0000 @@ -3,14 +3,36 @@ use warnings; use Test::More 0.96; +# Hijack the JSON::PP::USE_B constant to enable svtype detection +BEGIN { + no warnings 'redefine'; + + require constant; + my $orig = constant->can('import'); + local *constant::import = sub { + if ($_[1] eq 'USE_B') { + pop(@_); + push(@_, 1) + } + goto &$orig; + }; + + require JSON::PP; + die "TOO LATE" + unless JSON::PP::USE_B(); +} + use B; use Carp qw/croak/; use Config; -use JSON::MaybeXS; +use JSON::PP (); use base 'Exporter'; -our @EXPORT = - qw/sv_type packed_is bytes_are to_extjson to_myjson try_or_fail INT64 INT32 FLOAT/; +our @EXPORT = qw/ + sv_type packed_is bytes_are to_extjson to_myjson try_or_fail + normalize_json + INT64 INT32 FLOAT +/; use constant { INT64 => 'q<', @@ -18,20 +40,25 @@ FLOAT => 'd<', }; -my $json_codec = JSON::MaybeXS->new( - ascii => 1, - pretty => 0, - canonical => 1, - allow_blessed => 1, - convert_blessed => 1, -); +my $json_codec = JSON::PP + ->new + ->ascii + ->allow_bignum + ->allow_blessed + ->convert_blessed; + +sub normalize_json { + my $decoded = $json_codec->decode(shift); + return $json_codec->encode($decoded); +} sub to_extjson { - local $ENV{BSON_EXTJSON} = 1; - return $json_codec->encode( shift ); + my $data = BSON->perl_to_extjson($_[0], { relaxed => $_[1] }); + return $json_codec->encode($data); } sub to_myjson { + local $ENV{BSON_EXTJSON} = 0; return $json_codec->encode( shift ); } diff -Nru libbson-xs-perl-0.4.3/t/mapping/binary.t libbson-xs-perl-0.4.6/t/mapping/binary.t --- libbson-xs-perl-0.4.3/t/mapping/binary.t 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/t/mapping/binary.t 2018-10-12 15:50:18.000000000 +0000 @@ -68,8 +68,8 @@ is( to_myjson({a=>bson_bytes($test_data)}), qq[{"a":"$b64_data"}], 'json: bson_bytes()' ); # to extended JSON -is( to_extjson({a=>bson_bytes($test_data)}), qq[{"a":{"\$binary":"$b64_data","\$type":"00"}}], 'extjson: bson_bytes()' ); -is( to_extjson({a=>bson_bytes($test_data,128)}), qq[{"a":{"\$binary":"$b64_data","\$type":"80"}}], 'extjson: bson_bytes(,128)' ); +is( to_extjson({a=>bson_bytes($test_data)}), qq[{"a":{"\$binary":{"base64":"$b64_data","subType":"00"}}}], 'extjson: bson_bytes()' ); +is( to_extjson({a=>bson_bytes($test_data,128)}), qq[{"a":{"\$binary":{"base64":"$b64_data","subType":"80"}}}], 'extjson: bson_bytes(,128)' ); done_testing; diff -Nru libbson-xs-perl-0.4.3/t/mapping/code.t libbson-xs-perl-0.4.6/t/mapping/code.t --- libbson-xs-perl-0.4.3/t/mapping/code.t 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/t/mapping/code.t 2018-10-12 15:50:18.000000000 +0000 @@ -89,7 +89,7 @@ # to extended JSON (my $code_json = $code) =~ s{"}{\\"}g; -my $scope_json = to_myjson($scope); +my $scope_json = to_extjson({%$scope}); is( to_extjson({a=>bson_code($code)}), qq[{"a":{"\$code":"$code_json"}}], 'extjson: bson_code()' ); is( to_extjson( { a => bson_code( $code, $scope ) } ), diff -Nru libbson-xs-perl-0.4.3/t/mapping/int32.t libbson-xs-perl-0.4.6/t/mapping/int32.t --- libbson-xs-perl-0.4.3/t/mapping/int32.t 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/t/mapping/int32.t 2018-10-12 15:50:18.000000000 +0000 @@ -4,12 +4,12 @@ use Test::More 0.96; use Math::BigInt; -use JSON::MaybeXS; use lib 't/lib'; use lib 't/pvtlib'; use CleanEnv; use TestUtils; +use JSON::MaybeXS; use BSON qw/encode decode/; use BSON::Types ':all'; @@ -95,10 +95,10 @@ SKIP: { skip "JSON::PP has trouble with TO_JSON being false", 1 if ref JSON::MaybeXS->new eq 'JSON::PP'; - is( to_extjson({a=>bson_int32(0)}), q[{"a":0}], 'extjson: bson_int32(0)' ); + is( to_extjson({a=>bson_int32(0)}), q[{"a":{"$numberInt":"0"}}], 'extjson: bson_int32(0)' ); } -is( to_extjson({a=>bson_int32(42)}), q[{"a":42}], 'extjson: bson_int32(42)' ); +is( to_extjson({a=>bson_int32(42)}), q[{"a":{"$numberInt":"42"}}], 'extjson: bson_int32(42)' ); done_testing; diff -Nru libbson-xs-perl-0.4.3/t/mapping/int64.t libbson-xs-perl-0.4.6/t/mapping/int64.t --- libbson-xs-perl-0.4.3/t/mapping/int64.t 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/t/mapping/int64.t 2018-10-12 15:50:18.000000000 +0000 @@ -4,12 +4,12 @@ use Test::More 0.96; use Math::BigInt; -use JSON::MaybeXS; use lib 't/lib'; use lib 't/pvtlib'; use CleanEnv; use TestUtils; +use JSON::MaybeXS; use Config; use BSON qw/encode decode/; diff -Nru libbson-xs-perl-0.4.3/t/mapping/regex.t libbson-xs-perl-0.4.6/t/mapping/regex.t --- libbson-xs-perl-0.4.3/t/mapping/regex.t 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/t/mapping/regex.t 2018-10-12 15:50:18.000000000 +0000 @@ -75,7 +75,7 @@ (my $pattern_json = $pattern) =~ s{\\}{\\\\}g; is( to_extjson( { a => bson_regex( $pattern, $flags ) } ), - qq[{"a":{"\$options":"$sorted_flags","\$regex":"$pattern_json"}}], + qq[{"a":{"\$regularExpression":{"pattern":"$pattern_json","options":"$sorted_flags"}}}], 'extjson: bson_regex(,)' ); diff -Nru libbson-xs-perl-0.4.3/t/mapping/timestamp.t libbson-xs-perl-0.4.6/t/mapping/timestamp.t --- libbson-xs-perl-0.4.3/t/mapping/timestamp.t 2018-07-10 13:52:01.000000000 +0000 +++ libbson-xs-perl-0.4.6/t/mapping/timestamp.t 2018-10-12 15:50:18.000000000 +0000 @@ -37,13 +37,13 @@ is( BSON::Timestamp->new( seconds => $seconds, increment => $increment )->increment , $increment, "BSON::Timestamp->new(seconds, increment)->increment" ); # test constructor range errors -eval { bson_timestamp(2**31, $increment) }; -like( $@, qr/must be uint32/, "bson_timestamp(2**31, 42) fails" ); +eval { bson_timestamp(2**32, $increment) }; +like( $@, qr/must be uint32/, "bson_timestamp(2**32, 42) fails" ); eval { bson_timestamp(-1, $increment) }; like( $@, qr/must be uint32/, "bson_timestamp(-1, 42) fails" ); -eval { bson_timestamp($seconds, 2**31) }; -like( $@, qr/must be uint32/, "bson_timestamp(