Statistics
| Revision:

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)