File: test_unit.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 (76 lines) | stat: -rw-r--r-- 3,324 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
import sys
if sys.path[0] != "../..":
    sys.path.insert(0, "../..")

import unittest

import types
from pyx import *

class UnitTestCase(unittest.TestCase):

    def testTrueUnits(self):
        self.assertAlmostEqual(unit.tom(unit.t_m*42), 42)
        self.assertAlmostEqual(unit.tocm(unit.t_cm*42), 42)
        self.assertAlmostEqual(unit.tomm(unit.t_mm*42), 42)
        self.assertAlmostEqual(unit.toinch(unit.t_inch*42), 42)
        self.assertAlmostEqual(unit.topt(unit.t_pt*42), 42)

    def testUserUnits(self):
        unit.set(uscale=2)
        self.assertAlmostEqual(unit.tom(unit.m*42), 84)
        self.assertAlmostEqual(unit.tocm(unit.cm*42), 84)
        self.assertAlmostEqual(unit.tomm(unit.mm*42), 84)
        self.assertAlmostEqual(unit.toinch(unit.inch*42), 84)
        self.assertAlmostEqual(unit.topt(unit.pt*42), 84)
        unit.set(uscale=1)

    def testVisualUnits(self):
        unit.set(vscale=3)
        self.assertAlmostEqual(unit.tom(unit.v_m*42), 126)
        self.assertAlmostEqual(unit.tocm(unit.v_cm*42), 126)
        self.assertAlmostEqual(unit.tomm(unit.v_mm*42), 126)
        self.assertAlmostEqual(unit.toinch(unit.v_inch*42), 126)
        self.assertAlmostEqual(unit.topt(unit.v_pt*42), 126)
        unit.set(vscale=1)

    def testWidthUnits(self):
        unit.set(wscale=4)
        self.assertAlmostEqual(unit.tom(unit.w_m*42), 168)
        self.assertAlmostEqual(unit.tocm(unit.w_cm*42), 168)
        self.assertAlmostEqual(unit.tomm(unit.w_mm*42), 168)
        self.assertAlmostEqual(unit.toinch(unit.w_inch*42), 168)
        self.assertAlmostEqual(unit.topt(unit.w_pt*42), 168)
        unit.set(wscale=1)

    def testTeXUnits(self):
        unit.set(xscale=5)
        self.assertAlmostEqual(unit.tom(unit.x_m*42), 210)
        self.assertAlmostEqual(unit.tocm(unit.x_cm*42), 210)
        self.assertAlmostEqual(unit.tomm(unit.x_mm*42), 210)
        self.assertAlmostEqual(unit.toinch(unit.x_inch*42), 210)
        self.assertAlmostEqual(unit.topt(unit.x_pt*42), 210)
        unit.set(xscale=1)

    def testMixedUnits(self):
        unit.set(uscale=2, vscale=3, wscale=4, xscale=5)
        self.assertAlmostEqual(unit.tom(42*unit.t_m + 42*unit.m + 42*unit.v_m + 42*unit.w_m + 42*unit.x_m), 630)
        self.assertAlmostEqual(unit.tocm(42*unit.t_cm + 42*unit.cm + 42*unit.v_cm + 42*unit.w_cm + 42*unit.x_cm), 630)
        self.assertAlmostEqual(unit.toinch(42*unit.t_inch + 42*unit.inch + 42*unit.v_inch + 42*unit.w_inch + 42*unit.x_inch), 630)
        self.assertAlmostEqual(unit.topt(42*unit.t_pt + 42*unit.pt + 42*unit.v_pt + 42*unit.w_pt + 42*unit.x_pt), 630)
        unit.set(uscale=1, vscale=1, wscale=1, xscale=1)

    def testCompareUnits(self):
        assert unit.cm*41 < unit.cm*42, "comparision error"
        assert unit.cm*42 == unit.cm*42, "numbers should be equal (might be unstable)"
        assert unit.cm*43 > unit.cm*42, "comparision error"
        assert unit.cm*41 < 42, "comparision error"
        assert unit.cm*42 == 42, "numbers should be equal (might be unstable)"
        assert unit.cm*43 > 42, "comparision error"
        assert 42 > unit.cm*41, "comparision error"
        assert 42 == unit.cm*42, "numbers should be equal (might be unstable)"
        assert 42 < unit.cm*43, "comparision error"


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