bson/testdata/bson-corpus/decimal128-4.json
2025-03-17 20:58:26 +01:00

166 lines
7.0 KiB
JSON

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