318 lines
18 KiB
JSON
318 lines
18 KiB
JSON
{
|
|
"description": "Decimal128",
|
|
"bson_type": "0x13",
|
|
"test_key": "d",
|
|
"valid": [
|
|
{
|
|
"description": "Special - Canonical 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",
|
|
"canonical_bson": "18000000136400000000000000000000000000000000FC00",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"NaN\"}}",
|
|
"degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-NaN\"}}",
|
|
"lossy": true
|
|
},
|
|
{
|
|
"description": "Special - Canonical SNaN",
|
|
"canonical_bson": "180000001364000000000000000000000000000000007E00",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"NaN\"}}",
|
|
"lossy": true
|
|
},
|
|
{
|
|
"description": "Special - Negative SNaN",
|
|
"canonical_bson": "18000000136400000000000000000000000000000000FE00",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"NaN\"}}",
|
|
"lossy": true
|
|
},
|
|
{
|
|
"description": "Special - NaN with a payload",
|
|
"canonical_bson": "180000001364001200000000000000000000000000007E00",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"NaN\"}}",
|
|
"lossy": true
|
|
},
|
|
{
|
|
"description": "Special - Canonical Positive Infinity",
|
|
"canonical_bson": "180000001364000000000000000000000000000000007800",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"Infinity\"}}"
|
|
},
|
|
{
|
|
"description": "Special - Canonical Negative Infinity",
|
|
"canonical_bson": "18000000136400000000000000000000000000000000F800",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-Infinity\"}}"
|
|
},
|
|
{
|
|
"description": "Special - Invalid representation treated as 0",
|
|
"canonical_bson": "180000001364000000000000000000000000000000106C00",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0\"}}",
|
|
"lossy": true
|
|
},
|
|
{
|
|
"description": "Special - Invalid representation treated as -0",
|
|
"canonical_bson": "18000000136400DCBA9876543210DEADBEEF00000010EC00",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0\"}}",
|
|
"lossy": true
|
|
},
|
|
{
|
|
"description": "Special - Invalid representation treated as 0E3",
|
|
"canonical_bson": "18000000136400FFFFFFFFFFFFFFFFFFFFFFFFFFFF116C00",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+3\"}}",
|
|
"lossy": true
|
|
},
|
|
{
|
|
"description": "Regular - Adjusted Exponent Limit",
|
|
"canonical_bson": "18000000136400F2AF967ED05C82DE3297FF6FDE3CF22F00",
|
|
"canonical_extjson": "{\"d\": { \"$numberDecimal\": \"0.000001234567890123456789012345678901234\" }}"
|
|
},
|
|
{
|
|
"description": "Regular - Smallest",
|
|
"canonical_bson": "18000000136400D204000000000000000000000000343000",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.001234\"}}"
|
|
},
|
|
{
|
|
"description": "Regular - Smallest with Trailing Zeros",
|
|
"canonical_bson": "1800000013640040EF5A07000000000000000000002A3000",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00123400000\"}}"
|
|
},
|
|
{
|
|
"description": "Regular - 0.1",
|
|
"canonical_bson": "1800000013640001000000000000000000000000003E3000",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1\"}}"
|
|
},
|
|
{
|
|
"description": "Regular - 0.1234567890123456789012345678901234",
|
|
"canonical_bson": "18000000136400F2AF967ED05C82DE3297FF6FDE3CFC2F00",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1234567890123456789012345678901234\"}}"
|
|
},
|
|
{
|
|
"description": "Regular - 0",
|
|
"canonical_bson": "180000001364000000000000000000000000000000403000",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0\"}}"
|
|
},
|
|
{
|
|
"description": "Regular - -0",
|
|
"canonical_bson": "18000000136400000000000000000000000000000040B000",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0\"}}"
|
|
},
|
|
{
|
|
"description": "Regular - -0.0",
|
|
"canonical_bson": "1800000013640000000000000000000000000000003EB000",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.0\"}}"
|
|
},
|
|
{
|
|
"description": "Regular - 2",
|
|
"canonical_bson": "180000001364000200000000000000000000000000403000",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"2\"}}"
|
|
},
|
|
{
|
|
"description": "Regular - 2.000",
|
|
"canonical_bson": "18000000136400D0070000000000000000000000003A3000",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"2.000\"}}"
|
|
},
|
|
{
|
|
"description": "Regular - Largest",
|
|
"canonical_bson": "18000000136400F2AF967ED05C82DE3297FF6FDE3C403000",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1234567890123456789012345678901234\"}}"
|
|
},
|
|
{
|
|
"description": "Scientific - Tiniest",
|
|
"canonical_bson": "18000000136400FFFFFFFF638E8D37C087ADBE09ED010000",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"9.999999999999999999999999999999999E-6143\"}}"
|
|
},
|
|
{
|
|
"description": "Scientific - Tiny",
|
|
"canonical_bson": "180000001364000100000000000000000000000000000000",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E-6176\"}}"
|
|
},
|
|
{
|
|
"description": "Scientific - Negative Tiny",
|
|
"canonical_bson": "180000001364000100000000000000000000000000008000",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1E-6176\"}}"
|
|
},
|
|
{
|
|
"description": "Scientific - Adjusted Exponent Limit",
|
|
"canonical_bson": "18000000136400F2AF967ED05C82DE3297FF6FDE3CF02F00",
|
|
"canonical_extjson": "{\"d\": { \"$numberDecimal\": \"1.234567890123456789012345678901234E-7\" }}"
|
|
},
|
|
{
|
|
"description": "Scientific - Fractional",
|
|
"canonical_bson": "1800000013640064000000000000000000000000002CB000",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.00E-8\"}}"
|
|
},
|
|
{
|
|
"description": "Scientific - 0 with Exponent",
|
|
"canonical_bson": "180000001364000000000000000000000000000000205F00",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+6000\"}}"
|
|
},
|
|
{
|
|
"description": "Scientific - 0 with Negative Exponent",
|
|
"canonical_bson": "1800000013640000000000000000000000000000007A2B00",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-611\"}}"
|
|
},
|
|
{
|
|
"description": "Scientific - No Decimal with Signed Exponent",
|
|
"canonical_bson": "180000001364000100000000000000000000000000463000",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+3\"}}"
|
|
},
|
|
{
|
|
"description": "Scientific - Trailing Zero",
|
|
"canonical_bson": "180000001364001A04000000000000000000000000423000",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.050E+4\"}}"
|
|
},
|
|
{
|
|
"description": "Scientific - With Decimal",
|
|
"canonical_bson": "180000001364006900000000000000000000000000423000",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.05E+3\"}}"
|
|
},
|
|
{
|
|
"description": "Scientific - Full",
|
|
"canonical_bson": "18000000136400FFFFFFFFFFFFFFFFFFFFFFFFFFFF403000",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"5192296858534827628530496329220095\"}}"
|
|
},
|
|
{
|
|
"description": "Scientific - Large",
|
|
"canonical_bson": "18000000136400000000000A5BC138938D44C64D31FE5F00",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000000000000000000E+6144\"}}"
|
|
},
|
|
{
|
|
"description": "Scientific - Largest",
|
|
"canonical_bson": "18000000136400FFFFFFFF638E8D37C087ADBE09EDFF5F00",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"9.999999999999999999999999999999999E+6144\"}}"
|
|
},
|
|
{
|
|
"description": "Non-Canonical Parsing - Exponent Normalization",
|
|
"canonical_bson": "1800000013640064000000000000000000000000002CB000",
|
|
"degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-100E-10\"}}",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.00E-8\"}}"
|
|
},
|
|
{
|
|
"description": "Non-Canonical Parsing - Unsigned Positive Exponent",
|
|
"canonical_bson": "180000001364000100000000000000000000000000463000",
|
|
"degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E3\"}}",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+3\"}}"
|
|
},
|
|
{
|
|
"description": "Non-Canonical Parsing - Lowercase Exponent Identifier",
|
|
"canonical_bson": "180000001364000100000000000000000000000000463000",
|
|
"degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1e+3\"}}",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+3\"}}"
|
|
},
|
|
{
|
|
"description": "Non-Canonical Parsing - Long Significand with Exponent",
|
|
"canonical_bson": "1800000013640079D9E0F9763ADA429D0200000000583000",
|
|
"degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"12345689012345789012345E+12\"}}",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.2345689012345789012345E+34\"}}"
|
|
},
|
|
{
|
|
"description": "Non-Canonical Parsing - Positive Sign",
|
|
"canonical_bson": "18000000136400F2AF967ED05C82DE3297FF6FDE3C403000",
|
|
"degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"+1234567890123456789012345678901234\"}}",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1234567890123456789012345678901234\"}}"
|
|
},
|
|
{
|
|
"description": "Non-Canonical Parsing - Long Decimal String",
|
|
"canonical_bson": "180000001364000100000000000000000000000000722800",
|
|
"degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \".000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\"}}",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E-999\"}}"
|
|
},
|
|
{
|
|
"description": "Non-Canonical Parsing - nan",
|
|
"canonical_bson": "180000001364000000000000000000000000000000007C00",
|
|
"degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"nan\"}}",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"NaN\"}}"
|
|
},
|
|
{
|
|
"description": "Non-Canonical Parsing - nAn",
|
|
"canonical_bson": "180000001364000000000000000000000000000000007C00",
|
|
"degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"nAn\"}}",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"NaN\"}}"
|
|
},
|
|
{
|
|
"description": "Non-Canonical Parsing - +infinity",
|
|
"canonical_bson": "180000001364000000000000000000000000000000007800",
|
|
"degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"+infinity\"}}",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"Infinity\"}}"
|
|
},
|
|
{
|
|
"description": "Non-Canonical Parsing - infinity",
|
|
"canonical_bson": "180000001364000000000000000000000000000000007800",
|
|
"degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"infinity\"}}",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"Infinity\"}}"
|
|
},
|
|
{
|
|
"description": "Non-Canonical Parsing - infiniTY",
|
|
"canonical_bson": "180000001364000000000000000000000000000000007800",
|
|
"degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"infiniTY\"}}",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"Infinity\"}}"
|
|
},
|
|
{
|
|
"description": "Non-Canonical Parsing - inf",
|
|
"canonical_bson": "180000001364000000000000000000000000000000007800",
|
|
"degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"inf\"}}",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"Infinity\"}}"
|
|
},
|
|
{
|
|
"description": "Non-Canonical Parsing - inF",
|
|
"canonical_bson": "180000001364000000000000000000000000000000007800",
|
|
"degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"inF\"}}",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"Infinity\"}}"
|
|
},
|
|
{
|
|
"description": "Non-Canonical Parsing - -infinity",
|
|
"canonical_bson": "18000000136400000000000000000000000000000000F800",
|
|
"degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-infinity\"}}",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-Infinity\"}}"
|
|
},
|
|
{
|
|
"description": "Non-Canonical Parsing - -infiniTy",
|
|
"canonical_bson": "18000000136400000000000000000000000000000000F800",
|
|
"degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-infiniTy\"}}",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-Infinity\"}}"
|
|
},
|
|
{
|
|
"description": "Non-Canonical Parsing - -Inf",
|
|
"canonical_bson": "18000000136400000000000000000000000000000000F800",
|
|
"degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-Infinity\"}}",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-Infinity\"}}"
|
|
},
|
|
{
|
|
"description": "Non-Canonical Parsing - -inf",
|
|
"canonical_bson": "18000000136400000000000000000000000000000000F800",
|
|
"degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-inf\"}}",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-Infinity\"}}"
|
|
},
|
|
{
|
|
"description": "Non-Canonical Parsing - -inF",
|
|
"canonical_bson": "18000000136400000000000000000000000000000000F800",
|
|
"degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-inF\"}}",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-Infinity\"}}"
|
|
},
|
|
{
|
|
"description": "Rounded Subnormal number",
|
|
"canonical_bson": "180000001364000100000000000000000000000000000000",
|
|
"degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10E-6177\"}}",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E-6176\"}}"
|
|
},
|
|
{
|
|
"description": "Clamped",
|
|
"canonical_bson": "180000001364000a00000000000000000000000000fe5f00",
|
|
"degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E6112\"}}",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0E+6112\"}}"
|
|
},
|
|
{
|
|
"description": "Exact rounding",
|
|
"canonical_bson": "18000000136400000000000a5bc138938d44c64d31cc3700",
|
|
"degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"}}",
|
|
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000000000000000000E+999\"}}"
|
|
}
|
|
]
|
|
}
|