2 if sys
.path
[0] != "../..":
3 sys
.path
.insert(0, "../..")
8 from pyx
.graph
import data
10 class DataTestCase(unittest
.TestCase
):
13 mydata
= data
.list([[1, 2, 3], [4, 5, 6]], a
=1, b
=2)
14 self
.failUnlessEqual(mydata
.getcolumnnumber("a"), 1)
15 self
.failUnlessEqual(mydata
.getcolumnnumber(2), 2)
16 self
.failUnlessRaises(KeyError, mydata
.getcolumnnumber
, "c")
17 self
.failUnlessEqual(mydata
.getcolumn("a"), [1, 4])
18 self
.failUnlessEqual(mydata
.getcolumn(2), [2, 5])
21 mydata
= data
.list([[1], [2]], a
=1)
22 mydata2
= data
.data(mydata
, a
="2*a", b
="2*$1*a", c
="4*$(i)*a*$(-1)", context
={"i":1})
23 self
.failUnlessEqual(mydata
.points
[0][0], 1)
24 self
.failUnlessEqual(mydata
.points
[1][0], 2)
25 self
.failUnlessAlmostEqual(mydata2
.points
[0][mydata2
.columns
["a"]], 2.0)
26 self
.failUnlessAlmostEqual(mydata2
.points
[1][mydata2
.columns
["a"]], 4.0)
27 self
.failUnlessAlmostEqual(mydata2
.points
[0][mydata2
.columns
["b"]], 2.0)
28 self
.failUnlessAlmostEqual(mydata2
.points
[1][mydata2
.columns
["b"]], 8.0)
29 self
.failUnlessAlmostEqual(mydata2
.points
[0][mydata2
.columns
["c"]], 4.0)
30 self
.failUnlessAlmostEqual(mydata2
.points
[1][mydata2
.columns
["c"]], 32.0)
31 mydata3
= data
.data(mydata2
, a
=2, b
=3)
32 self
.failUnlessEqual(mydata3
.points
, mydata2
.points
)
37 mydata
= data
.list([[1], [2]], a
=1)
38 mydata2
= data
.data(mydata
, b
="two*a", c
="two*$1*a", d
="f($1)", context
=locals())
39 self
.failUnlessEqual(mydata
.points
[0][0], 1)
40 self
.failUnlessEqual(mydata
.points
[1][0], 2)
41 self
.failUnlessAlmostEqual(mydata2
.points
[0][mydata2
.columns
["b"]], 2.0)
42 self
.failUnlessAlmostEqual(mydata2
.points
[1][mydata2
.columns
["b"]], 4.0)
43 self
.failUnlessAlmostEqual(mydata2
.points
[0][mydata2
.columns
["c"]], 2.0)
44 self
.failUnlessAlmostEqual(mydata2
.points
[1][mydata2
.columns
["c"]], 8.0)
45 self
.failUnlessAlmostEqual(mydata2
.points
[0][mydata2
.columns
["d"]], 1.0)
46 self
.failUnlessAlmostEqual(mydata2
.points
[1][mydata2
.columns
["d"]], 4.0)
49 testfile
= open("test_data.dat", "w")
56 mydata
= data
.file("test_data.dat", a
="a", b
=2)
57 self
.failUnlessEqual(len(mydata
.columns
.keys()), 2)
58 self
.failUnlessEqual(len(mydata
.points
), 4)
59 self
.failUnlessEqual(mydata
.points
[0][0], 1)
60 self
.failUnlessEqual(mydata
.points
[1][0], 2)
61 self
.failUnlessEqual(mydata
.points
[2][0], 3)
62 self
.failUnlessEqual(mydata
.points
[3][0], 4)
63 self
.failUnlessAlmostEqual(mydata
.points
[0][mydata
.columns
["a"]], 0.0)
64 self
.failUnlessAlmostEqual(mydata
.points
[1][mydata
.columns
["a"]], 1.0)
65 self
.failUnlessAlmostEqual(mydata
.points
[2][mydata
.columns
["a"]], 2.0)
66 self
.failUnlessAlmostEqual(mydata
.points
[3][mydata
.columns
["a"]], 3.0)
67 self
.failUnlessEqual(mydata
.points
[0][mydata
.columns
["b"]], None)
68 self
.failUnlessEqual(mydata
.points
[1][mydata
.columns
["b"]], "eins")
69 self
.failUnlessEqual(mydata
.points
[2][mydata
.columns
["b"]], "2")
70 self
.failUnlessEqual(mydata
.points
[3][mydata
.columns
["b"]], "x\"x")
71 os
.unlink("test_data.dat")
74 testfile
= open("test_data.dat", "w")
75 testfile
.write("""[sec1]
90 mydata
= data
.conffile("test_data.dat", a
="opt1", b
="opt2", c
="opt3", d
="val")
91 self
.failUnlessEqual(len(mydata
.columns
.keys()), 4)
92 self
.failUnlessEqual(len(mydata
.points
), 2)
93 self
.failUnlessEqual(mydata
.points
[0][0], "sec1")
94 self
.failUnlessEqual(mydata
.points
[1][0], "sec2")
95 self
.failUnlessEqual(mydata
.points
[0][mydata
.columns
["a"]], "bla1")
96 self
.failUnlessEqual(mydata
.points
[0][mydata
.columns
["b"]], "bla2")
97 self
.failUnlessEqual(mydata
.points
[0][mydata
.columns
["c"]], "bla3")
98 self
.failUnlessAlmostEqual(mydata
.points
[0][mydata
.columns
["d"]], 2.0)
99 self
.failUnlessEqual(mydata
.points
[1][mydata
.columns
["a"]], "bla1")
100 self
.failUnlessEqual(mydata
.points
[1][mydata
.columns
["b"]], "bla2")
101 self
.failUnlessEqual(mydata
.points
[1][mydata
.columns
["c"]], None)
102 self
.failUnlessAlmostEqual(mydata
.points
[1][mydata
.columns
["d"]], 1.0)
103 os
.unlink("test_data.dat")
106 if __name__
== "__main__":