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_bigint_as_string.py @ 545

History | View | Annotate | Download (2.19 KB)

1
from unittest import TestCase
2

    
3
import simplejson as json
4

    
5

    
6
class TestBigintAsString(TestCase):
7
    # Python 2.5, at least the one that ships on Mac OS X, calculates
8
    # 2 ** 53 as 0! It manages to calculate 1 << 53 correctly.
9
    values = [(200, 200),
10
              ((1 << 53) - 1, 9007199254740991),
11
              ((1 << 53), '9007199254740992'),
12
              ((1 << 53) + 1, '9007199254740993'),
13
              (-100, -100),
14
              ((-1 << 53), '-9007199254740992'),
15
              ((-1 << 53) - 1, '-9007199254740993'),
16
              ((-1 << 53) + 1, -9007199254740991)]
17

    
18
    options = (
19
        {"bigint_as_string": True},
20
        {"int_as_string_bitcount": 53}
21
    )
22

    
23
    def test_ints(self):
24
        for opts in self.options:
25
            for val, expect in self.values:
26
                self.assertEqual(
27
                    val,
28
                    json.loads(json.dumps(val)))
29
                self.assertEqual(
30
                    expect,
31
                    json.loads(json.dumps(val, **opts)))
32

    
33
    def test_lists(self):
34
        for opts in self.options:
35
            for val, expect in self.values:
36
                val = [val, val]
37
                expect = [expect, expect]
38
                self.assertEqual(
39
                    val,
40
                    json.loads(json.dumps(val)))
41
                self.assertEqual(
42
                    expect,
43
                    json.loads(json.dumps(val, **opts)))
44

    
45
    def test_dicts(self):
46
        for opts in self.options:
47
            for val, expect in self.values:
48
                val = {'k': val}
49
                expect = {'k': expect}
50
                self.assertEqual(
51
                    val,
52
                    json.loads(json.dumps(val)))
53
                self.assertEqual(
54
                    expect,
55
                    json.loads(json.dumps(val, **opts)))
56

    
57
    def test_dict_keys(self):
58
        for opts in self.options:
59
            for val, _ in self.values:
60
                expect = {str(val): 'value'}
61
                val = {val: 'value'}
62
                self.assertEqual(
63
                    expect,
64
                    json.loads(json.dumps(val)))
65
                self.assertEqual(
66
                    expect,
67
                    json.loads(json.dumps(val, **opts)))