...

Text file src/go.mongodb.org/mongo-driver/testdata/bson-corpus/decimal128-1.json

Documentation: go.mongodb.org/mongo-driver/testdata/bson-corpus

     1{
     2    "description": "Decimal128",
     3    "bson_type": "0x13",
     4    "test_key": "d",
     5    "valid": [
     6        {
     7            "description": "Special - Canonical NaN",
     8            "canonical_bson": "180000001364000000000000000000000000000000007C00",
     9            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"NaN\"}}"
    10        },
    11        {
    12            "description": "Special - Negative NaN",
    13            "canonical_bson": "18000000136400000000000000000000000000000000FC00",
    14            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"NaN\"}}",
    15            "lossy": true
    16        },
    17        {
    18            "description": "Special - Negative NaN",
    19            "canonical_bson": "18000000136400000000000000000000000000000000FC00",
    20            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"NaN\"}}",
    21            "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-NaN\"}}",
    22            "lossy": true
    23        },
    24        {
    25            "description": "Special - Canonical SNaN",
    26            "canonical_bson": "180000001364000000000000000000000000000000007E00",
    27            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"NaN\"}}",
    28            "lossy": true
    29        },
    30        {
    31            "description": "Special - Negative SNaN",
    32            "canonical_bson": "18000000136400000000000000000000000000000000FE00",
    33            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"NaN\"}}",
    34            "lossy": true
    35        },
    36        {
    37            "description": "Special - NaN with a payload",
    38            "canonical_bson": "180000001364001200000000000000000000000000007E00",
    39            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"NaN\"}}",
    40            "lossy": true
    41        },
    42        {
    43            "description": "Special - Canonical Positive Infinity",
    44            "canonical_bson": "180000001364000000000000000000000000000000007800",
    45            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"Infinity\"}}"
    46        },
    47        {
    48            "description": "Special - Canonical Negative Infinity",
    49            "canonical_bson": "18000000136400000000000000000000000000000000F800",
    50            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-Infinity\"}}"
    51        },
    52        {
    53            "description": "Special - Invalid representation treated as 0",
    54            "canonical_bson": "180000001364000000000000000000000000000000106C00",
    55            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0\"}}",
    56            "lossy": true
    57        },
    58        {
    59            "description": "Special - Invalid representation treated as -0",
    60            "canonical_bson": "18000000136400DCBA9876543210DEADBEEF00000010EC00",
    61            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0\"}}",
    62            "lossy": true
    63        },
    64        {
    65            "description": "Special - Invalid representation treated as 0E3",
    66            "canonical_bson": "18000000136400FFFFFFFFFFFFFFFFFFFFFFFFFFFF116C00",
    67            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+3\"}}",
    68            "lossy": true
    69        },
    70        {
    71            "description": "Regular - Adjusted Exponent Limit",
    72            "canonical_bson": "18000000136400F2AF967ED05C82DE3297FF6FDE3CF22F00",
    73            "canonical_extjson": "{\"d\": { \"$numberDecimal\": \"0.000001234567890123456789012345678901234\" }}"
    74        },
    75        {
    76            "description": "Regular - Smallest",
    77            "canonical_bson": "18000000136400D204000000000000000000000000343000",
    78            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.001234\"}}"
    79        },
    80        {
    81            "description": "Regular - Smallest with Trailing Zeros",
    82            "canonical_bson": "1800000013640040EF5A07000000000000000000002A3000",
    83            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.00123400000\"}}"
    84        },
    85        {
    86            "description": "Regular - 0.1",
    87            "canonical_bson": "1800000013640001000000000000000000000000003E3000",
    88            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1\"}}"
    89        },
    90        {
    91            "description": "Regular - 0.1234567890123456789012345678901234",
    92            "canonical_bson": "18000000136400F2AF967ED05C82DE3297FF6FDE3CFC2F00",
    93            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0.1234567890123456789012345678901234\"}}"
    94        },
    95        {
    96            "description": "Regular - 0",
    97            "canonical_bson": "180000001364000000000000000000000000000000403000",
    98            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0\"}}"
    99        },
   100        {
   101            "description": "Regular - -0",
   102            "canonical_bson": "18000000136400000000000000000000000000000040B000",
   103            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0\"}}"
   104        },
   105        {
   106            "description": "Regular - -0.0",
   107            "canonical_bson": "1800000013640000000000000000000000000000003EB000",
   108            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-0.0\"}}"
   109        },
   110        {
   111            "description": "Regular - 2",
   112            "canonical_bson": "180000001364000200000000000000000000000000403000",
   113            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"2\"}}"
   114        },
   115        {
   116            "description": "Regular - 2.000",
   117            "canonical_bson": "18000000136400D0070000000000000000000000003A3000",
   118            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"2.000\"}}"
   119        },
   120        {
   121            "description": "Regular - Largest",
   122            "canonical_bson": "18000000136400F2AF967ED05C82DE3297FF6FDE3C403000",
   123            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1234567890123456789012345678901234\"}}"
   124        },
   125        {
   126            "description": "Scientific - Tiniest",
   127            "canonical_bson": "18000000136400FFFFFFFF638E8D37C087ADBE09ED010000",
   128            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"9.999999999999999999999999999999999E-6143\"}}"
   129        },
   130        {
   131            "description": "Scientific - Tiny",
   132            "canonical_bson": "180000001364000100000000000000000000000000000000",
   133            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E-6176\"}}"
   134        },
   135        {
   136            "description": "Scientific - Negative Tiny",
   137            "canonical_bson": "180000001364000100000000000000000000000000008000",
   138            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1E-6176\"}}"
   139        },
   140        {
   141            "description": "Scientific - Adjusted Exponent Limit",
   142            "canonical_bson": "18000000136400F2AF967ED05C82DE3297FF6FDE3CF02F00",
   143            "canonical_extjson": "{\"d\": { \"$numberDecimal\": \"1.234567890123456789012345678901234E-7\" }}"
   144        },
   145        {
   146            "description": "Scientific - Fractional",
   147            "canonical_bson": "1800000013640064000000000000000000000000002CB000",
   148            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.00E-8\"}}"
   149        },
   150        {
   151            "description": "Scientific - 0 with Exponent",
   152            "canonical_bson": "180000001364000000000000000000000000000000205F00",
   153            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E+6000\"}}"
   154        },
   155        {
   156            "description": "Scientific - 0 with Negative Exponent",
   157            "canonical_bson": "1800000013640000000000000000000000000000007A2B00",
   158            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"0E-611\"}}"
   159        },
   160        {
   161            "description": "Scientific - No Decimal with Signed Exponent",
   162            "canonical_bson": "180000001364000100000000000000000000000000463000",
   163            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+3\"}}"
   164        },
   165        {
   166            "description": "Scientific - Trailing Zero",
   167            "canonical_bson": "180000001364001A04000000000000000000000000423000",
   168            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.050E+4\"}}"
   169        },
   170        {
   171            "description": "Scientific - With Decimal",
   172            "canonical_bson": "180000001364006900000000000000000000000000423000",
   173            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.05E+3\"}}"
   174        },
   175        {
   176            "description": "Scientific - Full",
   177            "canonical_bson": "18000000136400FFFFFFFFFFFFFFFFFFFFFFFFFFFF403000",
   178            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"5192296858534827628530496329220095\"}}"
   179        },
   180        {
   181            "description": "Scientific - Large",
   182            "canonical_bson": "18000000136400000000000A5BC138938D44C64D31FE5F00",
   183            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000000000000000000E+6144\"}}"
   184        },
   185        {
   186            "description": "Scientific - Largest",
   187            "canonical_bson": "18000000136400FFFFFFFF638E8D37C087ADBE09EDFF5F00",
   188            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"9.999999999999999999999999999999999E+6144\"}}"
   189        },
   190        {
   191            "description": "Non-Canonical Parsing - Exponent Normalization",
   192            "canonical_bson": "1800000013640064000000000000000000000000002CB000",
   193            "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-100E-10\"}}",
   194            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-1.00E-8\"}}"
   195        },
   196        {
   197            "description": "Non-Canonical Parsing - Unsigned Positive Exponent",
   198            "canonical_bson": "180000001364000100000000000000000000000000463000",
   199            "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E3\"}}",
   200            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+3\"}}"
   201        },
   202        {
   203            "description": "Non-Canonical Parsing - Lowercase Exponent Identifier",
   204            "canonical_bson": "180000001364000100000000000000000000000000463000",
   205            "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1e+3\"}}",
   206            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E+3\"}}"
   207        },
   208        {
   209            "description": "Non-Canonical Parsing - Long Significand with Exponent",
   210            "canonical_bson": "1800000013640079D9E0F9763ADA429D0200000000583000",
   211            "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"12345689012345789012345E+12\"}}",
   212            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.2345689012345789012345E+34\"}}"
   213        },
   214        {
   215            "description": "Non-Canonical Parsing - Positive Sign",
   216            "canonical_bson": "18000000136400F2AF967ED05C82DE3297FF6FDE3C403000",
   217            "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"+1234567890123456789012345678901234\"}}",
   218            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1234567890123456789012345678901234\"}}"
   219        },
   220        {
   221            "description": "Non-Canonical Parsing - Long Decimal String",
   222            "canonical_bson": "180000001364000100000000000000000000000000722800",
   223            "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \".000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\"}}",
   224            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E-999\"}}"
   225        },
   226        {
   227            "description": "Non-Canonical Parsing - nan",
   228            "canonical_bson": "180000001364000000000000000000000000000000007C00",
   229            "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"nan\"}}",
   230            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"NaN\"}}"
   231        },
   232        {
   233            "description": "Non-Canonical Parsing - nAn",
   234            "canonical_bson": "180000001364000000000000000000000000000000007C00",
   235            "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"nAn\"}}",
   236            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"NaN\"}}"
   237        },
   238        {
   239            "description": "Non-Canonical Parsing - +infinity",
   240            "canonical_bson": "180000001364000000000000000000000000000000007800",
   241            "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"+infinity\"}}",
   242            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"Infinity\"}}"
   243        },
   244        {
   245            "description": "Non-Canonical Parsing - infinity",
   246            "canonical_bson": "180000001364000000000000000000000000000000007800",
   247            "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"infinity\"}}",
   248            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"Infinity\"}}"
   249        },
   250        {
   251            "description": "Non-Canonical Parsing - infiniTY",
   252            "canonical_bson": "180000001364000000000000000000000000000000007800",
   253            "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"infiniTY\"}}",
   254            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"Infinity\"}}"
   255        },
   256        {
   257            "description": "Non-Canonical Parsing - inf",
   258            "canonical_bson": "180000001364000000000000000000000000000000007800",
   259            "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"inf\"}}",
   260            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"Infinity\"}}"
   261        },
   262        {
   263            "description": "Non-Canonical Parsing - inF",
   264            "canonical_bson": "180000001364000000000000000000000000000000007800",
   265            "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"inF\"}}",
   266            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"Infinity\"}}"
   267        },
   268        {
   269            "description": "Non-Canonical Parsing - -infinity",
   270            "canonical_bson": "18000000136400000000000000000000000000000000F800",
   271            "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-infinity\"}}",
   272            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-Infinity\"}}"
   273        },
   274        {
   275            "description": "Non-Canonical Parsing - -infiniTy",
   276            "canonical_bson": "18000000136400000000000000000000000000000000F800",
   277            "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-infiniTy\"}}",
   278            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-Infinity\"}}"
   279        },
   280        {
   281            "description": "Non-Canonical Parsing - -Inf",
   282            "canonical_bson": "18000000136400000000000000000000000000000000F800",
   283            "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-Infinity\"}}",
   284            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-Infinity\"}}"
   285        },
   286        {
   287            "description": "Non-Canonical Parsing - -inf",
   288            "canonical_bson": "18000000136400000000000000000000000000000000F800",
   289            "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-inf\"}}",
   290            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-Infinity\"}}"
   291        },
   292        {
   293            "description": "Non-Canonical Parsing - -inF",
   294            "canonical_bson": "18000000136400000000000000000000000000000000F800",
   295            "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"-inF\"}}",
   296            "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"-Infinity\"}}"
   297        },
   298        {
   299           "description": "Rounded Subnormal number",
   300           "canonical_bson": "180000001364000100000000000000000000000000000000",
   301           "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"10E-6177\"}}",
   302           "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E-6176\"}}"
   303        },
   304        {
   305           "description": "Clamped",
   306           "canonical_bson": "180000001364000a00000000000000000000000000fe5f00",
   307           "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1E6112\"}}",
   308           "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.0E+6112\"}}"
   309        },
   310        {
   311           "description": "Exact rounding",
   312           "canonical_bson": "18000000136400000000000a5bc138938d44c64d31cc3700",
   313           "degenerate_extjson": "{\"d\" : {\"$numberDecimal\" : \"1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"}}",
   314           "canonical_extjson": "{\"d\" : {\"$numberDecimal\" : \"1.000000000000000000000000000000000E+999\"}}"
   315        }
   316    ]
   317}

View as plain text