def test_float_currency_prec0_prefix(): codec = currency_codec(float, prefix="$", precision=0) _test_codec(codec, 123.0, "$123") assert codec.encode(123.45) == "$123" assert codec.encode(678.90) == "$679"
def test_decimal_currency_prec0_prefix(): codec = currency_codec(Decimal, prefix="$", precision=0) _test_codec(codec, Decimal("123.0"), "$123") assert codec.encode(Decimal("678.90")) == "$679"
def test_decimal_currency_prec2_suffix(): codec = currency_codec(Decimal, suffix=" лв", precision=2) _test_codec(codec, Decimal("678.9"), "678.90 лв") assert codec.encode(Decimal("678.9012345")) == "678.90 лв"
def test_int_currency_prec0_prefix(): codec = currency_codec(int, prefix="$", precision=0) _test_codec(codec, 123, "$123")
def test_decimal_currency_prec2_prefix(): codec = currency_codec(Decimal, prefix="$", precision=2) _test_codec(codec, Decimal("678.9"), "$678.90") assert codec.encode(Decimal("678.9012345")) == "$678.90"
def test_float_currency_prec2_suffix(): codec = currency_codec(float, suffix=" лв", precision=2) _test_codec(codec, 123.45, "123.45 лв") assert codec.encode(678.9012345) == "678.90 лв"
def test_decimal_currency_floating_suffix(): codec = currency_codec(Decimal, suffix=" лв") _test_codec(codec, Decimal("678.90"), "678.9 лв")
def test_int_currency_floating_prefix(): codec = currency_codec(int, prefix="$") _test_codec(codec, 123, "$123")
def test_int_currency_suffix(): codec = currency_codec(int, suffix=" лв") _test_codec(codec, 123, "123 лв")
def test_float_currency_floating_suffix(): codec = currency_codec(float, suffix=" лв") _test_codec(codec, 123.45, "123.45 лв") _test_codec(codec, 678.9, "678.9 лв")
def test_decimal_currency_floating_prefix(): codec = currency_codec(Decimal, prefix="$") _test_codec(codec, Decimal("678.90"), "$678.9")
def test_float_currency_floating_prefix(): codec = currency_codec(float, prefix="$") _test_codec(codec, 123.45, "$123.45") _test_codec(codec, 678.9, "$678.9")
def test_dc_decode_codec(): DC = make_dataclass("DC", (("x", str), ("y", float))) codecs = {"y": currency_codec(float, "$")} dcc = dataclass_codec(dataclass=DC, codecs=codecs) assert dcc.decode(["foo", "$123.45"]) == DC(x="foo", y=123.45)
def test_int_currency_prec0_suffix(): codec = currency_codec(int, suffix=" лв", precision=0) _test_codec(codec, 123, "123 лв")
def test_float_currency_fixed2_prefix(): codec = currency_codec(float, prefix="$", precision=2) _test_codec(codec, 123.45, "$123.45") _test_codec(codec, 678.9, "$678.90") assert codec.encode(678.9012345) == "$678.90"
def test_float_currency_prec0_suffix(): codec = currency_codec(float, suffix=" лв", precision=0) _test_codec(codec, 123.0, "123 лв") assert codec.encode(123.45) == "123 лв" assert codec.encode(678.90) == "679 лв"
def test_decimal_currency_prec0_suffix(): codec = currency_codec(Decimal, suffix=" лв", precision=0) _test_codec(codec, Decimal("123.0"), "123 лв") assert codec.encode(Decimal("678.90")) == "679 лв"