| 363 | |
| 364 | @pytest.mark.parametrize("xlang", [False, True]) |
| 365 | def test_decimal_round_trip(xlang): |
| 366 | fory = Fory(xlang=xlang, ref=False, compatible=xlang) |
| 367 | values = [ |
| 368 | decimal.Decimal("0"), |
| 369 | decimal.Decimal("0.000"), |
| 370 | decimal.Decimal("1"), |
| 371 | decimal.Decimal("-1"), |
| 372 | decimal.Decimal("123.45"), |
| 373 | decimal.Decimal("-123.45"), |
| 374 | decimal.Decimal("9223372036854775807"), |
| 375 | decimal.Decimal("-9223372036854775808"), |
| 376 | decimal.Decimal("4611686018427387903"), |
| 377 | decimal.Decimal("-4611686018427387904"), |
| 378 | decimal.Decimal("9223372036854775808"), |
| 379 | decimal.Decimal("-9223372036854775809"), |
| 380 | decimal.Decimal("123456789012345678901234567890123456789e-37"), |
| 381 | decimal.Decimal("-123456789012345678901234567890123456789e17"), |
| 382 | ] |
| 383 | for value in values: |
| 384 | assert ser_de(fory, value) == value |
| 385 | |
| 386 | |
| 387 | def test_decimal_codec_canonical_round_trip(): |