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
.getcolumn(0), [1, 2])
15 self
.failUnlessEqual(mydata
.getcolumn("a"), [1, 4])
16 self
.failUnlessEqual(mydata
.getcolumn(2), [2, 5])
17 self
.failUnlessRaises(ValueError, mydata
.getcolumn
, "c")
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
.getcolumn("a"), [1, 2])
23 self
.failUnlessAlmostEqual(mydata2
.getcolumn("a")[0], 2.0)
24 self
.failUnlessAlmostEqual(mydata2
.getcolumn("a")[1], 4.0)
25 self
.failUnlessAlmostEqual(mydata2
.getcolumn("b")[0], 2.0)
26 self
.failUnlessAlmostEqual(mydata2
.getcolumn("b")[1], 8.0)
27 self
.failUnlessAlmostEqual(mydata2
.getcolumn("c")[0], 4.0)
28 self
.failUnlessAlmostEqual(mydata2
.getcolumn("c")[1], 32.0)
29 mydata3
= data
.data(mydata2
, a
="b", b
="2*c")
30 self
.failUnlessEqual(mydata3
.getcolumn("a"), mydata2
.getcolumn("b"))
31 self
.failUnlessAlmostEqual(mydata3
.getcolumn("b")[0], 2*mydata2
.getcolumn("c")[0])
32 self
.failUnlessAlmostEqual(mydata3
.getcolumn("b")[1], 2*mydata2
.getcolumn("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
.getcolumn(0), [1, 2])
40 self
.failUnlessAlmostEqual(mydata2
.getcolumn("b")[0], 2.0)
41 self
.failUnlessAlmostEqual(mydata2
.getcolumn("b")[1], 4.0)
42 self
.failUnlessAlmostEqual(mydata2
.getcolumn("c")[0], 2.0)
43 self
.failUnlessAlmostEqual(mydata2
.getcolumn("c")[1], 8.0)
44 self
.failUnlessAlmostEqual(mydata2
.getcolumn("d")[0], 1.0)
45 self
.failUnlessAlmostEqual(mydata2
.getcolumn("d")[1], 4.0)
48 testfile
= StringIO
.StringIO("""#a
53 mydata
= data
.file(testfile
, row
=0, a
="a", b
=2)
54 self
.failUnlessEqual(mydata
.getcolumn("row"), [1, 2, 3, 4])
55 self
.failUnlessAlmostEqual(mydata
.getcolumn("a")[0], 0.0)
56 self
.failUnlessAlmostEqual(mydata
.getcolumn("a")[1], 1.0)
57 self
.failUnlessAlmostEqual(mydata
.getcolumn("a")[2], 2.0)
58 self
.failUnlessAlmostEqual(mydata
.getcolumn("a")[3], 3.0)
59 self
.failUnlessEqual(mydata
.getcolumn("b")[0], None)
60 self
.failUnlessEqual(mydata
.getcolumn("b")[1], "eins")
61 self
.failUnlessEqual(mydata
.getcolumn("b")[2], "2")
62 self
.failUnlessEqual(mydata
.getcolumn("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
.getcolumn("row"), [4, 6, 8])
76 self
.failUnlessEqual(mydata
.gettitle(), "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
.getcolumn("sec"), ["sec1", "sec2"])
95 self
.failUnlessEqual(mydata
.getcolumn("a"), ["a1", "a4"])
96 self
.failUnlessEqual(mydata
.getcolumn("b"), ["a2", "a5"])
97 self
.failUnlessEqual(mydata
.getcolumn("c"), ["a3", None])
98 self
.failUnlessAlmostEqual(mydata
.getcolumn("d")[0], 2.0)
99 self
.failUnlessAlmostEqual(mydata
.getcolumn("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
.getcolumn("x")[i
], i
)
105 self
.failUnlessEqual(mydata
.getcolumn("y")[i
], -i
)
108 if __name__
== "__main__":