File: test_rational.py

package info (click to toggle)
pyx3 0.17-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,328 kB
  • sloc: python: 27,656; makefile: 225; ansic: 130; sh: 17
file content (104 lines) | stat: -rw-r--r-- 4,759 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
import sys
if sys.path[0] != "../..":
    sys.path.insert(0, "../..")

import unittest

from pyx import *
from pyx.graph.axis.tick import rational


class RationalTestCase(unittest.TestCase):

    def RationalEqual(self, num, denom, r):
        self.assertEqual(num*r.denom, r.num*denom)

    def testRationalInitSeq(self):
        self.RationalEqual(1, 1, rational((2, 2)))
        self.RationalEqual(1, 1, rational([2, 2]))

    def testRationalInitString(self):
        self.RationalEqual(1, 1, rational("1"))
        self.RationalEqual(11, 10, rational("1.1"))
        self.RationalEqual(12345, 1000, rational("12.345"))
        self.RationalEqual(1, 1, rational("1."))
        self.RationalEqual(1, 10, rational(".1"))
        self.RationalEqual(1, 1, rational("1e+0"))
        self.RationalEqual(11, 10, rational("1.1e-0"))
        self.RationalEqual(10, 1, rational("1.e+1"))
        self.RationalEqual(1, 100, rational(".1e-1"))
        self.RationalEqual(-1, 1, rational("-1"))
        self.RationalEqual(-11, 10, rational("-1.1"))
        self.RationalEqual(-1, 1, rational("-1."))
        self.RationalEqual(-1, 10, rational("-.1"))
        self.RationalEqual(-1, 1, rational("-1e0"))
        self.RationalEqual(-11, 10, rational("-1.1e-0"))
        self.RationalEqual(-10, 1, rational("-1.e+1"))
        self.RationalEqual(-1, 100, rational("-.1e-1"))
        self.RationalEqual(-100000000000000000000, 1, rational("-1e+20"))
        self.RationalEqual(-1, 100000000000000000000, rational("-1e-20"))

        self.RationalEqual(1234, 1, rational(" 1234"))
        self.assertRaises(ValueError, rational, "12 34")
        self.assertRaises(ValueError, rational, "1 2.34")
        self.assertRaises(ValueError, rational, "12 .34")
        self.assertRaises(ValueError, rational, "12. 34")
        self.assertRaises(ValueError, rational, "12.3 4")
        self.RationalEqual(1234, 100, rational("12.34 "))
        self.RationalEqual(1234, 1, rational(" +1234"))
        self.RationalEqual(-1234, 1, rational(" -1234"))
        self.assertRaises(ValueError, rational, " + 1234")
        self.assertRaises(ValueError, rational, " - 1234")
        self.assertRaises(ValueError, rational, "12.34 e0")
        self.assertRaises(ValueError, rational, "12.34e 0")
        self.RationalEqual(1234, 10000, rational("12.34e-2"))
        self.RationalEqual(1234, 1000, rational("12.34E-1"))
        self.RationalEqual(1234, 100, rational("12.34e0 "))
        self.RationalEqual(1234, 10, rational("12.34E+1"))
        self.RationalEqual(1234, 1, rational("12.34e+2"))
        self.assertRaises(ValueError, rational, "12.34e -0")
        self.assertRaises(ValueError, rational, "12.34e+ 0")
        self.assertRaises(ValueError, rational, "12.34e- 0")
        self.assertRaises(ValueError, rational, "12.34e +0")
        self.assertRaises(ValueError, rational, "12.34.56")
        self.assertRaises(ValueError, rational, "12e34.56")

    def testRationalInitStrings(self):
        self.RationalEqual(1, 2, rational("1/2"))
        self.RationalEqual(1, 2, rational("1.1/2.2"))
        self.RationalEqual(1, 2, rational("1./2."))
        self.RationalEqual(1, 2, rational(".1/.2"))
        self.RationalEqual(1, 2, rational("1e+0/2e+0"))
        self.RationalEqual(1, 2, rational("1.1e-0/2.2e-0"))
        self.RationalEqual(1, 2, rational("1.e+1/2.e+1"))
        self.RationalEqual(1, 2, rational(".1e-1/.2e-1"))
        self.RationalEqual(1, 2, rational("-1/-2"))
        self.RationalEqual(1, 2, rational("-1.1/-2.2"))
        self.RationalEqual(1, 2, rational("-1./-2."))
        self.RationalEqual(1, 2, rational("-.1/-.2"))
        self.RationalEqual(1, 2, rational("-1e0/-2e0"))
        self.RationalEqual(1, 2, rational("-1.1e-0/-2.2e-0"))
        self.RationalEqual(1, 2, rational("-1.e+1/-2.e+1"))
        self.RationalEqual(1, 2, rational("-.1e-1/-.2e-1"))

    def testRationalInitNumber(self):
        self.RationalEqual(1, 1, rational(1))
        self.RationalEqual(11, 10, rational(1.1))
        self.RationalEqual(1, 1, rational(1.))
        self.RationalEqual(1, 10, rational(.1))
        self.RationalEqual(1, 1, rational(1e+0))
        self.RationalEqual(11, 10, rational(1.1e-0))
        self.RationalEqual(10, 1, rational(1.e+1))
        self.RationalEqual(1, 100, rational(.1e-1))
        self.RationalEqual(-1, 1, rational(-1))
        self.RationalEqual(-11, 10, rational(-1.1))
        self.RationalEqual(-1, 1, rational(-1.))
        self.RationalEqual(-1, 10, rational(-.1))
        self.RationalEqual(-1, 1, rational(-1e0))
        self.RationalEqual(-11, 10, rational(-1.1e-0))
        self.RationalEqual(-10, 1, rational(-1.e+1))
        self.RationalEqual(-1, 100, rational(-.1e-1))


if __name__ == "__main__":
    unittest.main()