gvsig-scripting / org.gvsig.scripting / trunk / org.gvsig.scripting / org.gvsig.scripting.app / org.gvsig.scripting.app.mainplugin / src / main / resources-plugin / scripting / lib / simplejson / tests / test_float.py @ 545
History | View | Annotate | Download (1.4 KB)
1 |
import math |
---|---|
2 |
from unittest import TestCase |
3 |
from simplejson.compat import long_type, text_type |
4 |
import simplejson as json |
5 |
from simplejson.decoder import NaN, PosInf, NegInf |
6 |
|
7 |
class TestFloat(TestCase): |
8 |
def test_degenerates_allow(self): |
9 |
for inf in (PosInf, NegInf): |
10 |
self.assertEqual(json.loads(json.dumps(inf)), inf)
|
11 |
# Python 2.5 doesn't have math.isnan
|
12 |
nan = json.loads(json.dumps(NaN)) |
13 |
self.assertTrue((0 + nan) != nan) |
14 |
|
15 |
def test_degenerates_ignore(self): |
16 |
for f in (PosInf, NegInf, NaN): |
17 |
self.assertEqual(json.loads(json.dumps(f, ignore_nan=True)), None) |
18 |
|
19 |
def test_degenerates_deny(self): |
20 |
for f in (PosInf, NegInf, NaN): |
21 |
self.assertRaises(ValueError, json.dumps, f, allow_nan=False) |
22 |
|
23 |
def test_floats(self): |
24 |
for num in [1617161771.7650001, math.pi, math.pi**100, |
25 |
math.pi**-100, 3.1]: |
26 |
self.assertEqual(float(json.dumps(num)), num) |
27 |
self.assertEqual(json.loads(json.dumps(num)), num)
|
28 |
self.assertEqual(json.loads(text_type(json.dumps(num))), num)
|
29 |
|
30 |
def test_ints(self): |
31 |
for num in [1, long_type(1), 1<<32, 1<<64]: |
32 |
self.assertEqual(json.dumps(num), str(num)) |
33 |
self.assertEqual(int(json.dumps(num)), num) |
34 |
self.assertEqual(json.loads(json.dumps(num)), num)
|
35 |
self.assertEqual(json.loads(text_type(json.dumps(num))), num)
|