1 import unittest
, StringIO
, ConfigParser
, types
5 class DataTestCase(unittest
.TestCase
):
8 mydata
= data
.data([[1, 2, 3], [4, 5, 6]], ["a", "b", "b"])
9 assert mydata
.getcolumnno("a") == 0
10 assert mydata
.getcolumnno(1) == 1
13 assert 0, "ColumnError expected"
14 except data
.ColumnError
: pass
16 mydata
.getcolumnno("b")
17 assert 0, "ColumnError expected"
18 except data
.ColumnError
: pass
20 mydata
.getcolumnno("c")
21 assert 0, "ColumnError expected"
22 except data
.ColumnError
: pass
23 assert mydata
.getcolumn("a") == [1, 4]
24 assert mydata
.getcolumn(1) == [2, 5]
27 mydata
= data
.data([[1], [2]], ["a"])
28 mydata
.addcolumn("b=2*a")
29 mydata
.addcolumn("2*$1*a")
30 assert mydata
.titles
== ["a", "b", None]
31 assert mydata
.data
== [[1, 2.0, 4.0], [2, 4.0, 16.0]]
36 mydata
= data
.data([[1], [2]], ["a"])
37 mydata
.addcolumn("b=two*a", context
=locals())
38 mydata
.addcolumn("two*$-1*a", context
=locals())
39 mydata
.addcolumn("two*$(-1)*a", context
=locals())
40 mydata
.addcolumn("f($-1)", context
=locals())
41 assert mydata
.titles
== ["a", "b", None, None, None]
42 assert mydata
.data
== [[1, 2.0, 4.0, 8.0, 64.0], [2, 4.0, 16.0, 64.0, 4096.0]]
51 mydata
= data
.datafile(StringIO
.StringIO(teststr
))
52 assert mydata
.titles
== [None, "a", None]
53 assert len(mydata
.data
) == 4
54 assert mydata
.data
[0] == [1, 0.0, None]
55 assert mydata
.data
[1] == [2, 1.0, "eins"]
56 assert mydata
.data
[2] == [3, 2.0, "2"]
57 assert mydata
.data
[3] == [4, 3.0, "x\"x"]
75 mydata
= data
.sectionfile(StringIO
.StringIO(teststr
))
77 configfile
= ConfigParser
.ConfigParser()
78 configfile
.optionxform
= str
79 configfile
.readfp(StringIO
.StringIO(teststr
))
81 sec1
= list(mydata
.getcolumn("section"))
83 sec2
= list(configfile
.sections())
87 for line
in mydata
.data
:
89 for i
in range(1, len(mydata
.titles
)):
90 opt
= mydata
.titles
[i
]
91 if type(line
[i
]) == types
.FloatType
:
92 assert configfile
.getfloat(sec
, opt
) == line
[i
]
93 elif type(line
[i
]) == types
.StringType
:
94 assert configfile
.get(sec
, opt
) == line
[i
]
96 assert not configfile
.has_option(sec
, opt
)
98 suite
= unittest
.TestSuite((unittest
.makeSuite(DataTestCase
, 'test'), ))
100 if __name__
== "__main__":
101 runner
= unittest
.TextTestRunner()