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
.columndata
[0], [1, 2])
15 self
.failUnlessEqual(mydata
.columns
["a"], [1, 4])
16 self
.failUnlessEqual(mydata
.columndata
[2], [2, 5])
17 self
.failUnlessEqual("c" in mydata
.columns
.keys(), 0)
20 mydata
= data
.list([[1], [2]], a
=1)
21 mydata2
= data
.data(mydata
, a
="2*a", b
="2*$1*a", c
="4*$(i)*a*$(-1)", context
={"i":1})
22 self
.failUnlessEqual(mydata
.columns
["a"], [1, 2])
23 self
.failUnlessAlmostEqual(mydata2
.columns
["a"][0], 2.0)
24 self
.failUnlessAlmostEqual(mydata2
.columns
["a"][1], 4.0)
25 self
.failUnlessAlmostEqual(mydata2
.columns
["b"][0], 2.0)
26 self
.failUnlessAlmostEqual(mydata2
.columns
["b"][1], 8.0)
27 self
.failUnlessAlmostEqual(mydata2
.columns
["c"][0], 4.0)
28 self
.failUnlessAlmostEqual(mydata2
.columns
["c"][1], 32.0)
29 mydata3
= data
.data(mydata2
, a
="b", b
="2*c")
30 self
.failUnlessEqual(mydata3
.columns
["a"], mydata2
.columns
["b"])
31 self
.failUnlessAlmostEqual(mydata3
.columns
["b"][0], 2*mydata2
.columns
["c"][0])
32 self
.failUnlessAlmostEqual(mydata3
.columns
["b"][1], 2*mydata2
.columns
["c"][1])
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
.columndata
[0], [1, 2])
40 self
.failUnlessAlmostEqual(mydata2
.columns
["b"][0], 2.0)
41 self
.failUnlessAlmostEqual(mydata2
.columns
["b"][1], 4.0)
42 self
.failUnlessAlmostEqual(mydata2
.columns
["c"][0], 2.0)
43 self
.failUnlessAlmostEqual(mydata2
.columns
["c"][1], 8.0)
44 self
.failUnlessAlmostEqual(mydata2
.columns
["d"][0], 1.0)
45 self
.failUnlessAlmostEqual(mydata2
.columns
["d"][1], 4.0)
48 testfile
= StringIO
.StringIO("""#a
53 mydata
= data
.file(testfile
, row
=0, a
="a", b
=2)
54 self
.failUnlessEqual(mydata
.columns
["row"], [1, 2, 3, 4])
55 self
.failUnlessAlmostEqual(mydata
.columns
["a"][0], 0.0)
56 self
.failUnlessAlmostEqual(mydata
.columns
["a"][1], 1.0)
57 self
.failUnlessAlmostEqual(mydata
.columns
["a"][2], 2.0)
58 self
.failUnlessAlmostEqual(mydata
.columns
["a"][3], 3.0)
59 self
.failUnlessEqual(mydata
.columns
["b"][0], None)
60 self
.failUnlessEqual(mydata
.columns
["b"][1], "eins")
61 self
.failUnlessEqual(mydata
.columns
["b"][2], "2")
62 self
.failUnlessEqual(mydata
.columns
["b"][3], "x\"x")
63 testfile
= StringIO
.StringIO("""#a
74 mydata
= data
.file(testfile
, title
="title", skiphead
=3, skiptail
=2, every
=2, row
=0)
75 self
.failUnlessEqual(mydata
.columns
["row"], [4, 6, 8])
76 self
.failUnlessEqual(mydata
.title
, "title")
79 testfile
= StringIO
.StringIO("""[sec1]
93 mydata
= data
.conffile(testfile
, sec
=0, a
="opt1", b
="opt2", c
="opt3", d
="val")
94 self
.failUnlessEqual(mydata
.columns
["sec"], ["sec1", "sec2"])
95 self
.failUnlessEqual(mydata
.columns
["a"], ["a1", "a4"])
96 self
.failUnlessEqual(mydata
.columns
["b"], ["a2", "a5"])
97 self
.failUnlessEqual(mydata
.columns
["c"], ["a3", None])
98 self
.failUnlessAlmostEqual(mydata
.columns
["d"][0], 2.0)
99 self
.failUnlessAlmostEqual(mydata
.columns
["d"][1], 1.0)
101 def testParamfunction(self
):
102 mydata
= data
.paramfunction("k", 0, 9, "x, y = k, -k", points
=10)
104 self
.failUnlessEqual(mydata
.columns
["x"][i
], i
)
105 self
.failUnlessEqual(mydata
.columns
["y"][i
], -i
)
108 if __name__
== "__main__":