@@ -43,6 +43,49 @@ def test_encodeDecimal(self):
43
43
decoded = ujson .decode (encoded )
44
44
self .assertEqual (decoded , 1337.1337 )
45
45
46
+ sut = decimal .Decimal ("0.95" )
47
+ encoded = ujson .encode (sut , double_precision = 1 )
48
+ self .assertEqual (encoded , "1.0" )
49
+ decoded = ujson .decode (encoded )
50
+ self .assertEqual (decoded , 1.0 )
51
+
52
+ sut = decimal .Decimal ("0.94" )
53
+ encoded = ujson .encode (sut , double_precision = 1 )
54
+ self .assertEqual (encoded , "0.9" )
55
+ decoded = ujson .decode (encoded )
56
+ self .assertEqual (decoded , 0.9 )
57
+
58
+ sut = decimal .Decimal ("1.95" )
59
+ encoded = ujson .encode (sut , double_precision = 1 )
60
+ self .assertEqual (encoded , "2.0" )
61
+ decoded = ujson .decode (encoded )
62
+ self .assertEqual (decoded , 2.0 )
63
+
64
+
65
+ sut = decimal .Decimal ("-1.95" )
66
+ encoded = ujson .encode (sut , double_precision = 1 )
67
+ self .assertEqual (encoded , "-2.0" )
68
+ decoded = ujson .decode (encoded )
69
+ self .assertEqual (decoded , - 2.0 )
70
+
71
+ sut = decimal .Decimal ("0.995" )
72
+ encoded = ujson .encode (sut , double_precision = 2 )
73
+ self .assertEqual (encoded , "1.0" )
74
+ decoded = ujson .decode (encoded )
75
+ self .assertEqual (decoded , 1.0 )
76
+
77
+ sut = decimal .Decimal ("0.9995" )
78
+ encoded = ujson .encode (sut , double_precision = 3 )
79
+ self .assertEqual (encoded , "1.0" )
80
+ decoded = ujson .decode (encoded )
81
+ self .assertEqual (decoded , 1.0 )
82
+
83
+ sut = decimal .Decimal ("0.99999999999999944" )
84
+ encoded = ujson .encode (sut , double_precision = 15 )
85
+ self .assertEqual (encoded , "1.0" )
86
+ decoded = ujson .decode (encoded )
87
+ self .assertEqual (decoded , 1.0 )
88
+
46
89
def test_encodeStringConversion (self ):
47
90
input = "A string \\ / \b \f \n \r \t </script> &"
48
91
not_html_encoded = ('"A string \\ \\ \\ / \\ b \\ f \\ n '
0 commit comments