PYTHON-1068 - Update tests to latest

And update the test runner to support them.
This commit is contained in:
Bernie Hackett 2016-06-01 16:49:20 -07:00 committed by Bernie Hackett
parent b320f82457
commit 1355c5af1d
8 changed files with 1880 additions and 1901 deletions

View File

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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -5,161 +5,161 @@
"valid": [
{
"description": "[basx023] conform to rules and exponent will be in permitted range).",
"subject": "1800000013640001000000000000000000000000003EB000",
"string": "-0.1"
"bson": "1800000013640001000000000000000000000000003EB000",
"extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.1\"}}"
},
{
"description": "[basx045] strings without E cannot generate E in result",
"subject": "1800000013640003000000000000000000000000003A3000",
"string": "+0.003",
"match_string": "0.003"
"bson": "1800000013640003000000000000000000000000003A3000",
"extjson": "{\"d\" : {\"$numberDecimal\" : \"+0.003\"}}",
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.003\"}}"
},
{
"description": "[basx610] Zeros",
"subject": "1800000013640000000000000000000000000000003E3000",
"string": ".0",
"match_string": "0.0"
"bson": "1800000013640000000000000000000000000000003E3000",
"extjson": "{\"d\" : {\"$numberDecimal\" : \".0\"}}",
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0\"}}"
},
{
"description": "[basx612] Zeros",
"subject": "1800000013640000000000000000000000000000003EB000",
"string": "-.0",
"match_string": "-0.0"
"bson": "1800000013640000000000000000000000000000003EB000",
"extjson": "{\"d\" : {\"$numberDecimal\" : \"-.0\"}}",
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.0\"}}"
},
{
"description": "[basx043] strings without E cannot generate E in result",
"subject": "18000000136400FC040000000000000000000000003C3000",
"string": "+12.76",
"match_string": "12.76"
"bson": "18000000136400FC040000000000000000000000003C3000",
"extjson": "{\"d\" : {\"$numberDecimal\" : \"+12.76\"}}",
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"12.76\"}}"
},
{
"description": "[basx055] strings without E cannot generate E in result",
"subject": "180000001364000500000000000000000000000000303000",
"string": "0.00000005",
"match_string": "5E-8"
"bson": "180000001364000500000000000000000000000000303000",
"extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00000005\"}}",
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"5E-8\"}}"
},
{
"description": "[basx054] strings without E cannot generate E in result",
"subject": "180000001364000500000000000000000000000000323000",
"string": "0.0000005",
"match_string": "5E-7"
"bson": "180000001364000500000000000000000000000000323000",
"extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0000005\"}}",
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"5E-7\"}}"
},
{
"description": "[basx052] strings without E cannot generate E in result",
"subject": "180000001364000500000000000000000000000000343000",
"string": "0.000005"
"bson": "180000001364000500000000000000000000000000343000",
"extjson": "{\"d\" : {\"$numberDecimal\" : \"0.000005\"}}"
},
{
"description": "[basx051] strings without E cannot generate E in result",
"subject": "180000001364000500000000000000000000000000363000",
"string": "00.00005",
"match_string": "0.00005"
"bson": "180000001364000500000000000000000000000000363000",
"extjson": "{\"d\" : {\"$numberDecimal\" : \"00.00005\"}}",
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00005\"}}"
},
{
"description": "[basx050] strings without E cannot generate E in result",
"subject": "180000001364000500000000000000000000000000383000",
"string": "0.0005"
"bson": "180000001364000500000000000000000000000000383000",
"extjson": "{\"d\" : {\"$numberDecimal\" : \"0.0005\"}}"
},
{
"description": "[basx047] strings without E cannot generate E in result",
"subject": "1800000013640005000000000000000000000000003E3000",
"string": ".5",
"match_string": "0.5"
"bson": "1800000013640005000000000000000000000000003E3000",
"extjson": "{\"d\" : {\"$numberDecimal\" : \".5\"}}",
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.5\"}}"
},
{
"description": "[dqbsr431] check rounding modes heeded (Rounded)",
"subject": "1800000013640099761CC7B548F377DC80A131C836FE2F00",
"string": "1.1111111111111111111111111111123450",
"match_string": "1.111111111111111111111111111112345"
"bson": "1800000013640099761CC7B548F377DC80A131C836FE2F00",
"extjson": "{\"d\" : {\"$numberDecimal\" : \"1.1111111111111111111111111111123450\"}}",
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.111111111111111111111111111112345\"}}"
},
{
"description": "OK2",
"subject": "18000000136400000000000A5BC138938D44C64D31FC2F00",
"string": ".100000000000000000000000000000000000000000000000000000000000",
"match_string": "0.1000000000000000000000000000000000"
"bson": "18000000136400000000000A5BC138938D44C64D31FC2F00",
"extjson": "{\"d\" : {\"$numberDecimal\" : \".100000000000000000000000000000000000000000000000000000000000\"}}",
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1000000000000000000000000000000000\"}}"
}
],
"parseErrors": [
{
"description": "[basx564] Near-specials (Conversion_syntax)",
"subject": "Infi"
"string": "Infi"
},
{
"description": "[basx565] Near-specials (Conversion_syntax)",
"subject": "Infin"
"string": "Infin"
},
{
"description": "[basx566] Near-specials (Conversion_syntax)",
"subject": "Infini"
"string": "Infini"
},
{
"description": "[basx567] Near-specials (Conversion_syntax)",
"subject": "Infinit"
"string": "Infinit"
},
{
"description": "[basx568] Near-specials (Conversion_syntax)",
"subject": "-Infinit"
"string": "-Infinit"
},
{
"description": "[basx590] some baddies with dots and Es and dots and specials (Conversion_syntax)",
"subject": ".Infinity"
"string": ".Infinity"
},
{
"description": "[basx562] Near-specials (Conversion_syntax)",
"subject": "NaNq"
"string": "NaNq"
},
{
"description": "[basx563] Near-specials (Conversion_syntax)",
"subject": "NaNs"
"string": "NaNs"
},
{
"description": "[dqbas939] overflow results at different rounding modes (Overflow & Inexact & Rounded)",
"subject": "-7e10000"
"string": "-7e10000"
},
{
"description": "[dqbsr534] negatives (Rounded & Inexact)",
"subject": "-1.11111111111111111111111111111234650"
"string": "-1.11111111111111111111111111111234650"
},
{
"description": "[dqbsr535] negatives (Rounded & Inexact)",
"subject": "-1.11111111111111111111111111111234551"
"string": "-1.11111111111111111111111111111234551"
},
{
"description": "[dqbsr533] negatives (Rounded & Inexact)",
"subject": "-1.11111111111111111111111111111234550"
"string": "-1.11111111111111111111111111111234550"
},
{
"description": "[dqbsr532] negatives (Rounded & Inexact)",
"subject": "-1.11111111111111111111111111111234549"
"string": "-1.11111111111111111111111111111234549"
},
{
"description": "[dqbsr432] check rounding modes heeded (Rounded & Inexact)",
"subject": "1.11111111111111111111111111111234549"
"string": "1.11111111111111111111111111111234549"
},
{
"description": "[dqbsr433] check rounding modes heeded (Rounded & Inexact)",
"subject": "1.11111111111111111111111111111234550"
"string": "1.11111111111111111111111111111234550"
},
{
"description": "[dqbsr435] check rounding modes heeded (Rounded & Inexact)",
"subject": "1.11111111111111111111111111111234551"
"string": "1.11111111111111111111111111111234551"
},
{
"description": "[dqbsr434] check rounding modes heeded (Rounded & Inexact)",
"subject": "1.11111111111111111111111111111234650"
"string": "1.11111111111111111111111111111234650"
},
{
"description": "[dqbas938] overflow results at different rounding modes (Overflow & Inexact & Rounded)",
"subject": "7e10000"
"string": "7e10000"
},
{
"description": "Inexact rounding#1",
"subject": "100000000000000000000000000000000000000000000000000000000001"
"string": "100000000000000000000000000000000000000000000000000000000001"
},
{
"description": "Inexact rounding#2",
"subject": "1E-6177"
"string": "1E-6177"
}
]
}

View File

@ -1,402 +1,402 @@
{
"description": "Decimal128",
"bson_type": "0x13",
"test_key": "d",
"valid": [
{
"description": "[decq035] fold-downs (more below) (Clamped)",
"subject": "18000000136400000000807F1BCF85B27059C8A43CFE5F00",
"string": "1.23E+6144",
"match_string": "1.230000000000000000000000000000000E+6144"
},
{
"description": "[decq037] fold-downs (more below) (Clamped)",
"subject": "18000000136400000000000A5BC138938D44C64D31FE5F00",
"string": "1E+6144",
"match_string": "1.000000000000000000000000000000000E+6144"
},
{
"description": "[decq077] Nmin and below (Subnormal)",
"subject": "180000001364000000000081EFAC855B416D2DEE04000000",
"string": "0.100000000000000000000000000000000E-6143",
"match_string": "1.00000000000000000000000000000000E-6144"
},
{
"description": "[decq078] Nmin and below (Subnormal)",
"subject": "180000001364000000000081EFAC855B416D2DEE04000000",
"string": "1.00000000000000000000000000000000E-6144"
},
{
"description": "[decq079] Nmin and below (Subnormal)",
"subject": "180000001364000A00000000000000000000000000000000",
"string": "0.000000000000000000000000000000010E-6143",
"match_string": "1.0E-6175"
},
{
"description": "[decq080] Nmin and below (Subnormal)",
"subject": "180000001364000A00000000000000000000000000000000",
"string": "1.0E-6175"
},
{
"description": "[decq081] Nmin and below (Subnormal)",
"subject": "180000001364000100000000000000000000000000020000",
"string": "0.00000000000000000000000000000001E-6143",
"match_string": "1E-6175"
},
{
"description": "[decq082] Nmin and below (Subnormal)",
"subject": "180000001364000100000000000000000000000000020000",
"string": "1E-6175"
},
{
"description": "[decq083] Nmin and below (Subnormal)",
"subject": "180000001364000100000000000000000000000000000000",
"string": "0.000000000000000000000000000000001E-6143",
"match_string": "1E-6176"
},
{
"description": "[decq084] Nmin and below (Subnormal)",
"subject": "180000001364000100000000000000000000000000000000",
"string": "1E-6176"
},
{
"description": "[decq090] underflows cannot be tested for simple copies, check edge cases (Subnormal)",
"subject": "180000001364000100000000000000000000000000000000",
"string": "1e-6176",
"match_string": "1E-6176"
},
{
"description": "[decq100] underflows cannot be tested for simple copies, check edge cases (Subnormal)",
"subject": "18000000136400FFFFFFFF095BC138938D44C64D31000000",
"string": "999999999999999999999999999999999e-6176",
"match_string": "9.99999999999999999999999999999999E-6144"
},
{
"description": "[decq130] fold-downs (more below) (Clamped)",
"subject": "18000000136400000000807F1BCF85B27059C8A43CFEDF00",
"string": "-1.23E+6144",
"match_string": "-1.230000000000000000000000000000000E+6144"
},
{
"description": "[decq132] fold-downs (more below) (Clamped)",
"subject": "18000000136400000000000A5BC138938D44C64D31FEDF00",
"string": "-1E+6144",
"match_string": "-1.000000000000000000000000000000000E+6144"
},
{
"description": "[decq177] Nmin and below (Subnormal)",
"subject": "180000001364000000000081EFAC855B416D2DEE04008000",
"string": "-0.100000000000000000000000000000000E-6143",
"match_string": "-1.00000000000000000000000000000000E-6144"
},
{
"description": "[decq178] Nmin and below (Subnormal)",
"subject": "180000001364000000000081EFAC855B416D2DEE04008000",
"string": "-1.00000000000000000000000000000000E-6144"
},
{
"description": "[decq179] Nmin and below (Subnormal)",
"subject": "180000001364000A00000000000000000000000000008000",
"string": "-0.000000000000000000000000000000010E-6143",
"match_string": "-1.0E-6175"
},
{
"description": "[decq180] Nmin and below (Subnormal)",
"subject": "180000001364000A00000000000000000000000000008000",
"string": "-1.0E-6175"
},
{
"description": "[decq181] Nmin and below (Subnormal)",
"subject": "180000001364000100000000000000000000000000028000",
"string": "-0.00000000000000000000000000000001E-6143",
"match_string": "-1E-6175"
},
{
"description": "[decq182] Nmin and below (Subnormal)",
"subject": "180000001364000100000000000000000000000000028000",
"string": "-1E-6175"
},
{
"description": "[decq183] Nmin and below (Subnormal)",
"subject": "180000001364000100000000000000000000000000008000",
"string": "-0.000000000000000000000000000000001E-6143",
"match_string": "-1E-6176"
},
{
"description": "[decq184] Nmin and below (Subnormal)",
"subject": "180000001364000100000000000000000000000000008000",
"string": "-1E-6176"
},
{
"description": "[decq190] underflow edge cases (Subnormal)",
"subject": "180000001364000100000000000000000000000000008000",
"string": "-1e-6176",
"match_string": "-1E-6176"
},
{
"description": "[decq200] underflow edge cases (Subnormal)",
"subject": "18000000136400FFFFFFFF095BC138938D44C64D31008000",
"string": "-999999999999999999999999999999999e-6176",
"match_string": "-9.99999999999999999999999999999999E-6144"
},
{
"description": "[decq400] zeros (Clamped)",
"subject": "180000001364000000000000000000000000000000000000",
"string": "0E-8000",
"match_string": "0E-6176"
},
{
"description": "[decq401] zeros (Clamped)",
"subject": "180000001364000000000000000000000000000000000000",
"string": "0E-6177",
"match_string": "0E-6176"
},
{
"description": "[decq414] clamped zeros... (Clamped)",
"subject": "180000001364000000000000000000000000000000FE5F00",
"string": "0E+6112",
"match_string": "0E+6111"
},
{
"description": "[decq416] clamped zeros... (Clamped)",
"subject": "180000001364000000000000000000000000000000FE5F00",
"string": "0E+6144",
"match_string": "0E+6111"
},
{
"description": "[decq418] clamped zeros... (Clamped)",
"subject": "180000001364000000000000000000000000000000FE5F00",
"string": "0E+8000",
"match_string": "0E+6111"
},
{
"description": "[decq420] negative zeros (Clamped)",
"subject": "180000001364000000000000000000000000000000008000",
"string": "-0E-8000",
"match_string": "-0E-6176"
},
{
"description": "[decq421] negative zeros (Clamped)",
"subject": "180000001364000000000000000000000000000000008000",
"string": "-0E-6177",
"match_string": "-0E-6176"
},
{
"description": "[decq434] clamped zeros... (Clamped)",
"subject": "180000001364000000000000000000000000000000FEDF00",
"string": "-0E+6112",
"match_string": "-0E+6111"
},
{
"description": "[decq436] clamped zeros... (Clamped)",
"subject": "180000001364000000000000000000000000000000FEDF00",
"string": "-0E+6144",
"match_string": "-0E+6111"
},
{
"description": "[decq438] clamped zeros... (Clamped)",
"subject": "180000001364000000000000000000000000000000FEDF00",
"string": "-0E+8000",
"match_string": "-0E+6111"
},
{
"description": "[decq601] fold-down full sequence (Clamped)",
"subject": "18000000136400000000000A5BC138938D44C64D31FE5F00",
"string": "1E+6144",
"match_string": "1.000000000000000000000000000000000E+6144"
},
{
"description": "[decq603] fold-down full sequence (Clamped)",
"subject": "180000001364000000000081EFAC855B416D2DEE04FE5F00",
"string": "1E+6143",
"match_string": "1.00000000000000000000000000000000E+6143"
},
{
"description": "[decq605] fold-down full sequence (Clamped)",
"subject": "1800000013640000000080264B91C02220BE377E00FE5F00",
"string": "1E+6142",
"match_string": "1.0000000000000000000000000000000E+6142"
},
{
"description": "[decq607] fold-down full sequence (Clamped)",
"subject": "1800000013640000000040EAED7446D09C2C9F0C00FE5F00",
"string": "1E+6141",
"match_string": "1.000000000000000000000000000000E+6141"
},
{
"description": "[decq609] fold-down full sequence (Clamped)",
"subject": "18000000136400000000A0CA17726DAE0F1E430100FE5F00",
"string": "1E+6140",
"match_string": "1.00000000000000000000000000000E+6140"
},
{
"description": "[decq611] fold-down full sequence (Clamped)",
"subject": "18000000136400000000106102253E5ECE4F200000FE5F00",
"string": "1E+6139",
"match_string": "1.0000000000000000000000000000E+6139"
},
{
"description": "[decq613] fold-down full sequence (Clamped)",
"subject": "18000000136400000000E83C80D09F3C2E3B030000FE5F00",
"string": "1E+6138",
"match_string": "1.000000000000000000000000000E+6138"
},
{
"description": "[decq615] fold-down full sequence (Clamped)",
"subject": "18000000136400000000E4D20CC8DCD2B752000000FE5F00",
"string": "1E+6137",
"match_string": "1.00000000000000000000000000E+6137"
},
{
"description": "[decq617] fold-down full sequence (Clamped)",
"subject": "180000001364000000004A48011416954508000000FE5F00",
"string": "1E+6136",
"match_string": "1.0000000000000000000000000E+6136"
},
{
"description": "[decq619] fold-down full sequence (Clamped)",
"subject": "18000000136400000000A1EDCCCE1BC2D300000000FE5F00",
"string": "1E+6135",
"match_string": "1.000000000000000000000000E+6135"
},
{
"description": "[decq621] fold-down full sequence (Clamped)",
"subject": "18000000136400000080F64AE1C7022D1500000000FE5F00",
"string": "1E+6134",
"match_string": "1.00000000000000000000000E+6134"
},
{
"description": "[decq623] fold-down full sequence (Clamped)",
"subject": "18000000136400000040B2BAC9E0191E0200000000FE5F00",
"string": "1E+6133",
"match_string": "1.0000000000000000000000E+6133"
},
{
"description": "[decq625] fold-down full sequence (Clamped)",
"subject": "180000001364000000A0DEC5ADC935360000000000FE5F00",
"string": "1E+6132",
"match_string": "1.000000000000000000000E+6132"
},
{
"description": "[decq627] fold-down full sequence (Clamped)",
"subject": "18000000136400000010632D5EC76B050000000000FE5F00",
"string": "1E+6131",
"match_string": "1.00000000000000000000E+6131"
},
{
"description": "[decq629] fold-down full sequence (Clamped)",
"subject": "180000001364000000E8890423C78A000000000000FE5F00",
"string": "1E+6130",
"match_string": "1.0000000000000000000E+6130"
},
{
"description": "[decq631] fold-down full sequence (Clamped)",
"subject": "18000000136400000064A7B3B6E00D000000000000FE5F00",
"string": "1E+6129",
"match_string": "1.000000000000000000E+6129"
},
{
"description": "[decq633] fold-down full sequence (Clamped)",
"subject": "1800000013640000008A5D78456301000000000000FE5F00",
"string": "1E+6128",
"match_string": "1.00000000000000000E+6128"
},
{
"description": "[decq635] fold-down full sequence (Clamped)",
"subject": "180000001364000000C16FF2862300000000000000FE5F00",
"string": "1E+6127",
"match_string": "1.0000000000000000E+6127"
},
{
"description": "[decq637] fold-down full sequence (Clamped)",
"subject": "180000001364000080C6A47E8D0300000000000000FE5F00",
"string": "1E+6126",
"match_string": "1.000000000000000E+6126"
},
{
"description": "[decq639] fold-down full sequence (Clamped)",
"subject": "1800000013640000407A10F35A0000000000000000FE5F00",
"string": "1E+6125",
"match_string": "1.00000000000000E+6125"
},
{
"description": "[decq641] fold-down full sequence (Clamped)",
"subject": "1800000013640000A0724E18090000000000000000FE5F00",
"string": "1E+6124",
"match_string": "1.0000000000000E+6124"
},
{
"description": "[decq643] fold-down full sequence (Clamped)",
"subject": "180000001364000010A5D4E8000000000000000000FE5F00",
"string": "1E+6123",
"match_string": "1.000000000000E+6123"
},
{
"description": "[decq645] fold-down full sequence (Clamped)",
"subject": "1800000013640000E8764817000000000000000000FE5F00",
"string": "1E+6122",
"match_string": "1.00000000000E+6122"
},
{
"description": "[decq647] fold-down full sequence (Clamped)",
"subject": "1800000013640000E40B5402000000000000000000FE5F00",
"string": "1E+6121",
"match_string": "1.0000000000E+6121"
},
{
"description": "[decq649] fold-down full sequence (Clamped)",
"subject": "1800000013640000CA9A3B00000000000000000000FE5F00",
"string": "1E+6120",
"match_string": "1.000000000E+6120"
},
{
"description": "[decq651] fold-down full sequence (Clamped)",
"subject": "1800000013640000E1F50500000000000000000000FE5F00",
"string": "1E+6119",
"match_string": "1.00000000E+6119"
},
{
"description": "[decq653] fold-down full sequence (Clamped)",
"subject": "180000001364008096980000000000000000000000FE5F00",
"string": "1E+6118",
"match_string": "1.0000000E+6118"
},
{
"description": "[decq655] fold-down full sequence (Clamped)",
"subject": "1800000013640040420F0000000000000000000000FE5F00",
"string": "1E+6117",
"match_string": "1.000000E+6117"
},
{
"description": "[decq657] fold-down full sequence (Clamped)",
"subject": "18000000136400A086010000000000000000000000FE5F00",
"string": "1E+6116",
"match_string": "1.00000E+6116"
},
{
"description": "[decq659] fold-down full sequence (Clamped)",
"subject": "180000001364001027000000000000000000000000FE5F00",
"string": "1E+6115",
"match_string": "1.0000E+6115"
},
{
"description": "[decq661] fold-down full sequence (Clamped)",
"subject": "18000000136400E803000000000000000000000000FE5F00",
"string": "1E+6114",
"match_string": "1.000E+6114"
},
{
"description": "[decq663] fold-down full sequence (Clamped)",
"subject": "180000001364006400000000000000000000000000FE5F00",
"string": "1E+6113",
"match_string": "1.00E+6113"
},
{
"description": "[decq665] fold-down full sequence (Clamped)",
"subject": "180000001364000A00000000000000000000000000FE5F00",
"string": "1E+6112",
"match_string": "1.0E+6112"
}
]
"description": "Decimal128",
"bson_type": "0x13",
"test_key": "d",
"valid": [
{
"description": "[decq035] fold-downs (more below) (Clamped)",
"bson": "18000000136400000000807F1BCF85B27059C8A43CFE5F00",
"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_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000000000000000000E+6144\"}}"
},
{
"description": "[decq077] Nmin and below (Subnormal)",
"bson": "180000001364000000000081EFAC855B416D2DEE04000000",
"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\"}}"
},
{
"description": "[decq079] Nmin and below (Subnormal)",
"bson": "180000001364000A00000000000000000000000000000000",
"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\"}}"
},
{
"description": "[decq081] Nmin and below (Subnormal)",
"bson": "180000001364000100000000000000000000000000020000",
"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\"}}"
},
{
"description": "[decq083] Nmin and below (Subnormal)",
"bson": "180000001364000100000000000000000000000000000000",
"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\"}}"
},
{
"description": "[decq090] underflows cannot be tested for simple copies, check edge cases (Subnormal)",
"bson": "180000001364000100000000000000000000000000000000",
"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_extjson": "{\"d\" : {\"$numberDecimal\" : \"9.99999999999999999999999999999999E-6144\"}}"
},
{
"description": "[decq130] fold-downs (more below) (Clamped)",
"bson": "18000000136400000000807F1BCF85B27059C8A43CFEDF00",
"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_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.000000000000000000000000000000000E+6144\"}}"
},
{
"description": "[decq177] Nmin and below (Subnormal)",
"bson": "180000001364000000000081EFAC855B416D2DEE04008000",
"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\"}}"
},
{
"description": "[decq179] Nmin and below (Subnormal)",
"bson": "180000001364000A00000000000000000000000000008000",
"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\"}}"
},
{
"description": "[decq181] Nmin and below (Subnormal)",
"bson": "180000001364000100000000000000000000000000028000",
"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\"}}"
},
{
"description": "[decq183] Nmin and below (Subnormal)",
"bson": "180000001364000100000000000000000000000000008000",
"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\"}}"
},
{
"description": "[decq190] underflow edge cases (Subnormal)",
"bson": "180000001364000100000000000000000000000000008000",
"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_extjson": "{\"d\" : {\"$numberDecimal\" : \"-9.99999999999999999999999999999999E-6144\"}}"
},
{
"description": "[decq400] zeros (Clamped)",
"bson": "180000001364000000000000000000000000000000000000",
"extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-8000\"}}",
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-6176\"}}"
},
{
"description": "[decq401] zeros (Clamped)",
"bson": "180000001364000000000000000000000000000000000000",
"extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-6177\"}}",
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-6176\"}}"
},
{
"description": "[decq414] clamped zeros... (Clamped)",
"bson": "180000001364000000000000000000000000000000FE5F00",
"extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+6112\"}}",
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+6111\"}}"
},
{
"description": "[decq416] clamped zeros... (Clamped)",
"bson": "180000001364000000000000000000000000000000FE5F00",
"extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+6144\"}}",
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+6111\"}}"
},
{
"description": "[decq418] clamped zeros... (Clamped)",
"bson": "180000001364000000000000000000000000000000FE5F00",
"extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+8000\"}}",
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+6111\"}}"
},
{
"description": "[decq420] negative zeros (Clamped)",
"bson": "180000001364000000000000000000000000000000008000",
"extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E-8000\"}}",
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E-6176\"}}"
},
{
"description": "[decq421] negative zeros (Clamped)",
"bson": "180000001364000000000000000000000000000000008000",
"extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E-6177\"}}",
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E-6176\"}}"
},
{
"description": "[decq434] clamped zeros... (Clamped)",
"bson": "180000001364000000000000000000000000000000FEDF00",
"extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E+6112\"}}",
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E+6111\"}}"
},
{
"description": "[decq436] clamped zeros... (Clamped)",
"bson": "180000001364000000000000000000000000000000FEDF00",
"extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E+6144\"}}",
"canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0E+6111\"}}"
},
{
"description": "[decq438] clamped zeros... (Clamped)",
"bson": "180000001364000000000000000000000000000000FEDF00",
"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_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000000000000000000E+6144\"}}"
},
{
"description": "[decq603] fold-down full sequence (Clamped)",
"bson": "180000001364000000000081EFAC855B416D2DEE04FE5F00",
"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_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000000000000000000000000000000E+6142\"}}"
},
{
"description": "[decq607] fold-down full sequence (Clamped)",
"bson": "1800000013640000000040EAED7446D09C2C9F0C00FE5F00",
"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_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000000000000000000000000E+6140\"}}"
},
{
"description": "[decq611] fold-down full sequence (Clamped)",
"bson": "18000000136400000000106102253E5ECE4F200000FE5F00",
"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_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000000000000E+6138\"}}"
},
{
"description": "[decq615] fold-down full sequence (Clamped)",
"bson": "18000000136400000000E4D20CC8DCD2B752000000FE5F00",
"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_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000000000000000000000000E+6136\"}}"
},
{
"description": "[decq619] fold-down full sequence (Clamped)",
"bson": "18000000136400000000A1EDCCCE1BC2D300000000FE5F00",
"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_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000000000000000000E+6134\"}}"
},
{
"description": "[decq623] fold-down full sequence (Clamped)",
"bson": "18000000136400000040B2BAC9E0191E0200000000FE5F00",
"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_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000000E+6132\"}}"
},
{
"description": "[decq627] fold-down full sequence (Clamped)",
"bson": "18000000136400000010632D5EC76B050000000000FE5F00",
"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_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000000000000000000E+6130\"}}"
},
{
"description": "[decq631] fold-down full sequence (Clamped)",
"bson": "18000000136400000064A7B3B6E00D000000000000FE5F00",
"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_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000000000000E+6128\"}}"
},
{
"description": "[decq635] fold-down full sequence (Clamped)",
"bson": "180000001364000000C16FF2862300000000000000FE5F00",
"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_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000E+6126\"}}"
},
{
"description": "[decq639] fold-down full sequence (Clamped)",
"bson": "1800000013640000407A10F35A0000000000000000FE5F00",
"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_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000000000000E+6124\"}}"
},
{
"description": "[decq643] fold-down full sequence (Clamped)",
"bson": "180000001364000010A5D4E8000000000000000000FE5F00",
"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_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000000000E+6122\"}}"
},
{
"description": "[decq647] fold-down full sequence (Clamped)",
"bson": "1800000013640000E40B5402000000000000000000FE5F00",
"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_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000E+6120\"}}"
},
{
"description": "[decq651] fold-down full sequence (Clamped)",
"bson": "1800000013640000E1F50500000000000000000000FE5F00",
"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_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0000000E+6118\"}}"
},
{
"description": "[decq655] fold-down full sequence (Clamped)",
"bson": "1800000013640040420F0000000000000000000000FE5F00",
"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_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.00000E+6116\"}}"
},
{
"description": "[decq659] fold-down full sequence (Clamped)",
"bson": "180000001364001027000000000000000000000000FE5F00",
"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_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000E+6114\"}}"
},
{
"description": "[decq663] fold-down full sequence (Clamped)",
"bson": "180000001364006400000000000000000000000000FE5F00",
"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_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0E+6112\"}}"
}
]
}

View File

@ -5,127 +5,127 @@
"parseErrors": [
{
"description": "Incomplete Exponent",
"subject": "1e"
"string": "1e"
},
{
"description": "Exponent at the beginning",
"subject": "E01"
"string": "E01"
},
{
"description": "Just a decimal place",
"subject": "."
"string": "."
},
{
"description": "2 decimal places",
"subject": "..3"
"string": "..3"
},
{
"description": "2 decimal places",
"subject": ".13.3"
"string": ".13.3"
},
{
"description": "2 decimal places",
"subject": "1..3"
"string": "1..3"
},
{
"description": "2 decimal places",
"subject": "1.3.4"
"string": "1.3.4"
},
{
"description": "2 decimal places",
"subject": "1.34."
"string": "1.34."
},
{
"description": "Decimal with no digits",
"subject": ".e"
"string": ".e"
},
{
"description": "2 signs",
"subject": "+-32.4"
"string": "+-32.4"
},
{
"description": "2 signs",
"subject": "-+32.4"
"string": "-+32.4"
},
{
"description": "2 negative signs",
"subject": "--32.4"
"string": "--32.4"
},
{
"description": "2 negative signs",
"subject": "-32.-4"
"string": "-32.-4"
},
{
"description": "End in negative sign",
"subject": "32.0-"
"string": "32.0-"
},
{
"description": "2 negative signs",
"subject": "32.4E--21"
"string": "32.4E--21"
},
{
"description": "2 negative signs",
"subject": "32.4E-2-1"
"string": "32.4E-2-1"
},
{
"description": "2 signs",
"subject": "32.4E+-21"
"string": "32.4E+-21"
},
{
"description": "Empty string",
"subject": ""
"string": ""
},
{
"description": "leading white space positive number",
"subject": " 1"
"string": " 1"
},
{
"description": "leading white space negative number",
"subject": " -1"
"string": " -1"
},
{
"description": "trailing white space",
"subject": "1 "
"string": "1 "
},
{
"description": "Invalid",
"subject": "E"
"string": "E"
},
{
"description": "Invalid",
"subject": "invalid"
"string": "invalid"
},
{
"description": "Invalid",
"subject": "i"
"string": "i"
},
{
"description": "Invalid",
"subject": "in"
"string": "in"
},
{
"description": "Invalid",
"subject": "-in"
"string": "-in"
},
{
"description": "Invalid",
"subject": "Na"
"string": "Na"
},
{
"description": "Invalid",
"subject": "-Na"
"string": "-Na"
},
{
"description": "Invalid",
"subject": "1.23abc"
"string": "1.23abc"
},
{
"description": "Invalid",
"subject": "1.23abcE+02"
"string": "1.23abcE+02"
},
{
"description": "Invalid",
"subject": "1.23E+0aabs2"
"string": "1.23E+0aabs2"
}
]
}

View File

@ -5,323 +5,323 @@
"parseErrors": [
{
"description": "[basx572] Near-specials (Conversion_syntax)",
"subject": "-9Inf"
"string": "-9Inf"
},
{
"description": "[basx516] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "-1-"
"string": "-1-"
},
{
"description": "[basx533] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "0000.."
"string": "0000.."
},
{
"description": "[basx534] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": ".0000."
"string": ".0000."
},
{
"description": "[basx535] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "00..00"
"string": "00..00"
},
{
"description": "[basx569] Near-specials (Conversion_syntax)",
"subject": "0Inf"
"string": "0Inf"
},
{
"description": "[basx571] Near-specials (Conversion_syntax)",
"subject": "-0Inf"
"string": "-0Inf"
},
{
"description": "[basx575] Near-specials (Conversion_syntax)",
"subject": "0sNaN"
"string": "0sNaN"
},
{
"description": "[basx503] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "++1"
"string": "++1"
},
{
"description": "[basx504] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "--1"
"string": "--1"
},
{
"description": "[basx505] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "-+1"
"string": "-+1"
},
{
"description": "[basx506] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "+-1"
"string": "+-1"
},
{
"description": "[basx510] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": " +1"
"string": " +1"
},
{
"description": "[basx513] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": " + 1"
"string": " + 1"
},
{
"description": "[basx514] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": " - 1"
"string": " - 1"
},
{
"description": "[basx501] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "."
"string": "."
},
{
"description": "[basx502] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": ".."
"string": ".."
},
{
"description": "[basx519] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": ""
"string": ""
},
{
"description": "[basx525] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "e100"
"string": "e100"
},
{
"description": "[basx549] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "e+1"
"string": "e+1"
},
{
"description": "[basx577] some baddies with dots and Es and dots and specials (Conversion_syntax)",
"subject": ".e+1"
"string": ".e+1"
},
{
"description": "[basx578] some baddies with dots and Es and dots and specials (Conversion_syntax)",
"subject": "+.e+1"
"string": "+.e+1"
},
{
"description": "[basx581] some baddies with dots and Es and dots and specials (Conversion_syntax)",
"subject": "E+1"
"string": "E+1"
},
{
"description": "[basx582] some baddies with dots and Es and dots and specials (Conversion_syntax)",
"subject": ".E+1"
"string": ".E+1"
},
{
"description": "[basx583] some baddies with dots and Es and dots and specials (Conversion_syntax)",
"subject": "+.E+1"
"string": "+.E+1"
},
{
"description": "[basx579] some baddies with dots and Es and dots and specials (Conversion_syntax)",
"subject": "-.e+"
"string": "-.e+"
},
{
"description": "[basx580] some baddies with dots and Es and dots and specials (Conversion_syntax)",
"subject": "-.e"
"string": "-.e"
},
{
"description": "[basx584] some baddies with dots and Es and dots and specials (Conversion_syntax)",
"subject": "-.E+"
"string": "-.E+"
},
{
"description": "[basx585] some baddies with dots and Es and dots and specials (Conversion_syntax)",
"subject": "-.E"
"string": "-.E"
},
{
"description": "[basx589] some baddies with dots and Es and dots and specials (Conversion_syntax)",
"subject": "+.Inf"
"string": "+.Inf"
},
{
"description": "[basx586] some baddies with dots and Es and dots and specials (Conversion_syntax)",
"subject": ".NaN"
"string": ".NaN"
},
{
"description": "[basx587] some baddies with dots and Es and dots and specials (Conversion_syntax)",
"subject": "-.NaN"
"string": "-.NaN"
},
{
"description": "[basx545] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "ONE"
"string": "ONE"
},
{
"description": "[basx561] Near-specials (Conversion_syntax)",
"subject": "qNaN"
"string": "qNaN"
},
{
"description": "[basx573] Near-specials (Conversion_syntax)",
"subject": "-sNa"
"string": "-sNa"
},
{
"description": "[basx588] some baddies with dots and Es and dots and specials (Conversion_syntax)",
"subject": "+.sNaN"
"string": "+.sNaN"
},
{
"description": "[basx544] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "ten"
"string": "ten"
},
{
"description": "[basx527] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "u0b65"
"string": "u0b65"
},
{
"description": "[basx526] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "u0e5a"
"string": "u0e5a"
},
{
"description": "[basx515] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "x"
"string": "x"
},
{
"description": "[basx574] Near-specials (Conversion_syntax)",
"subject": "xNaN"
"string": "xNaN"
},
{
"description": "[basx530] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": ".123.5"
"string": ".123.5"
},
{
"description": "[basx500] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "1..2"
"string": "1..2"
},
{
"description": "[basx542] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "1e1.0"
"string": "1e1.0"
},
{
"description": "[basx553] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "1E+1.2.3"
"string": "1E+1.2.3"
},
{
"description": "[basx543] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "1e123e"
"string": "1e123e"
},
{
"description": "[basx552] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "1E+1.2"
"string": "1E+1.2"
},
{
"description": "[basx546] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "1e.1"
"string": "1e.1"
},
{
"description": "[basx547] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "1e1."
"string": "1e1."
},
{
"description": "[basx554] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "1E++1"
"string": "1E++1"
},
{
"description": "[basx555] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "1E--1"
"string": "1E--1"
},
{
"description": "[basx556] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "1E+-1"
"string": "1E+-1"
},
{
"description": "[basx557] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "1E-+1"
"string": "1E-+1"
},
{
"description": "[basx558] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "1E'1"
"string": "1E'1"
},
{
"description": "[basx559] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "1E\"1"
"string": "1E\"1"
},
{
"description": "[basx520] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "1e-"
"string": "1e-"
},
{
"description": "[basx560] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "1E"
"string": "1E"
},
{
"description": "[basx548] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "1ee"
"string": "1ee"
},
{
"description": "[basx551] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "1.2.1"
"string": "1.2.1"
},
{
"description": "[basx550] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "1.23.4"
"string": "1.23.4"
},
{
"description": "[basx529] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "1.34.5"
"string": "1.34.5"
},
{
"description": "[basx531] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "01.35."
"string": "01.35."
},
{
"description": "[basx532] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "01.35-"
"string": "01.35-"
},
{
"description": "[basx518] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "3+"
"string": "3+"
},
{
"description": "[basx521] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "7e99999a"
"string": "7e99999a"
},
{
"description": "[basx570] Near-specials (Conversion_syntax)",
"subject": "9Inf"
"string": "9Inf"
},
{
"description": "[basx512] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "12 "
"string": "12 "
},
{
"description": "[basx517] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "12-"
"string": "12-"
},
{
"description": "[basx507] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "12e"
"string": "12e"
},
{
"description": "[basx508] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "12e++"
"string": "12e++"
},
{
"description": "[basx509] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "12f4"
"string": "12f4"
},
{
"description": "[basx536] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "111e*123"
"string": "111e*123"
},
{
"description": "[basx537] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "111e123-"
"string": "111e123-"
},
{
"description": "[basx540] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "111e1*23"
"string": "111e1*23"
},
{
"description": "[basx538] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "111e+12+"
"string": "111e+12+"
},
{
"description": "[basx539] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "111e1-3-"
"string": "111e1-3-"
},
{
"description": "[basx541] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "111E1e+3"
"string": "111E1e+3"
},
{
"description": "[basx528] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "123,65"
"string": "123,65"
},
{
"description": "[basx523] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "7e12356789012x"
"string": "7e12356789012x"
},
{
"description": "[basx522] The 'baddies' tests from DiagBigDecimal, plus some new ones (Conversion_syntax)",
"subject": "7e123567890x"
"string": "7e123567890x"
}
]
}

View File

@ -82,31 +82,50 @@ class TestDecimal128(unittest.TestCase):
def test_spec(self):
for path in glob.glob(os.path.join(
os.path.dirname(os.path.realpath(__file__)),
'decimal',
'decimal128*')):
with codecs.open(path, 'r', 'utf-8-sig') as fp:
"decimal",
"decimal128*")):
with codecs.open(path, "r", "utf-8-sig") as fp:
suite = json.load(fp)
for test in suite.get('valid', []):
subject = unhexlify(b(test['subject']))
doc = BSON(subject).decode()
self.assertEqual(BSON.encode(doc), subject)
for case in suite.get("valid", []):
B = unhexlify(b(case["bson"]))
E = case["extjson"].replace(" ", "")
if 'match_string' in test:
self.assertEqual(
str(Decimal128(test['string'])), test['match_string'])
if "canonical_bson" in case:
cB = unhexlify(b(case["canonical_bson"]))
else:
self.assertEqual(str(doc['d']), test['string'])
cB = B
if 'extjson' in test:
if test.get('from_extjson', True):
self.assertEqual(doc, loads(test['extjson']))
if "canonical_extjson" in case:
cE = case["canonical_extjson"].replace(" ", "")
else:
cE = E
if test.get('to_extjson', True):
extjson = test['extjson'].replace(' ', '')
self.assertEqual(extjson, dumps(doc).replace(' ', ''))
self.assertEqual(BSON().encode(BSON(B).decode()), cB)
for test in suite.get('parseErrors', []):
if B != cB:
self.assertEqual(BSON().encode(BSON(cB).decode()), cB)
self.assertEqual(
dumps(BSON(B).decode()).replace(" ", ""), cE)
self.assertEqual(
dumps(loads(E)).replace(" ", ""), cE)
if B != cB:
self.assertEqual(
dumps(BSON(cB).decode()).replace(" ", ""), cE)
if E != cE:
self.assertEqual(
dumps(loads(cE)).replace(" ", ""), cE)
if "lossy" not in case:
self.assertEqual(BSON().encode(loads(E)), cB)
if E != cE:
self.assertEqual(BSON().encode(loads(cE)), cB)
for test in suite.get("parseErrors", []):
self.assertRaises(
DecimalException, Decimal128, test['subject'])
DecimalException, Decimal128, test["string"])