def test_decimal_largeexp_dec(): buf = SBytes("2f f9 be b7 b0 88 89 1c") assert decode_decimal(buf,0,len(buf)) == Decimal('.123456789012345') buf = SBytes("30 13 95 82 a6 ef c7 9e 84 91 11") assert decode_decimal(buf,0,len(buf)) == Decimal('.1234567890123456789') buf = SBytes("70 13 95 82 a6 ef c7 9e 84 91 11") assert decode_decimal(buf,0,len(buf)) == Decimal('-.1234567890123456789')
def test_decimal_roundtrip_1(): buf = encode_decimal(Decimal('13.37')) # print(hexdump(buf)) assert decode_decimal(buf,0,len(buf)) == Decimal('13.37')
def test_decimal_sci_dec(): assert decode_decimal(SBytes("10 31 45"),0,3) == Decimal('69e49')
def test_decimal_smallexp_dec(): assert decode_decimal(SBytes("00 01"),0,2) == Decimal('1') assert decode_decimal(SBytes("22 c9 01"),0,3) == Decimal('2.01')
def test_decimal_zeros_withvalue_dec(): assert decode_decimal(SBytes("00 00"),0,2) == Decimal('0') assert decode_decimal(SBytes("40 00"),0,2) == Decimal('-0')
def test_decimal_zeros_novalue_dec(): assert decode_decimal(SBytes("00"),0,1) == Decimal('0') assert decode_decimal(SBytes("40"),0,1) == Decimal('-0')
def test_decimal_sign_inf_dec(): assert decode_decimal( SBytes("a0"),0,1 ) == Decimal('+inf') assert decode_decimal( SBytes("e0"),0,1 ) == Decimal('-inf')
def test_decimal_snan_dec(): with pytest.raises(InvalidOperation): assert decode_decimal( SBytes("90"), 0, 1) == Decimal('snan') # sNans raise exceptions
def test_decimal_nans_dec(): assert str(decode_decimal(SBytes("80"),0,1)) == 'NaN' assert str(decode_decimal(SBytes("90"),0,1)) == 'sNaN' assert str(decode_decimal(SBytes("c0"),0,1)) == '-NaN' assert str(decode_decimal(SBytes("d0"),0,1)) == '-sNaN'
def test_decimal_zeroval_dec(): assert(decode_decimal(SBytes(""),0,0)) == Decimal(0) assert(decode_decimal(SBytes(""),0,0)) == Decimal("-0") # oddly this passes, suspect because of python Decimal equality rules- assert(Decimal("-0") == Decimal("0")) # yeah this passes too
def test_decimal_roundtrip_2(): buf = encode_decimal(Decimal('-0.0000000006789')) # print(hexdump(buf)) assert decode_decimal(buf,0,len(buf)) == Decimal('-0.0000000006789')