Release version for Erange 4.0a
[erange.git] / test / testBinsToCdf.py
1 '''
2 Created on Dec 2, 2010
3
4 @author: sau
5 '''
6 import unittest
7 import os
8 from erange import binstocdf
9
10
11 class TestBinsToCdf(unittest.TestCase):
12
13     testInputFile = "erangeTestBinFile"
14     testOutputFile = "erangeTestCDFFile"
15
16
17     def setUp(self):
18         binfile = open(self.testInputFile, "w")
19         binfile.write("field1\tfield2\t10\tfield4\t2\t3\n")
20         binfile.write("field1\tfield2\t20\tfield4\t1\t4\n")
21         binfile.write("field1\tfield2\t0\tfield4\n")
22         binfile.write("too short\n")
23         binfile.close()
24
25
26     def tearDown(self):
27         try:
28             os.remove(self.testInputFile)
29         except OSError:
30             print "bin file does not exist"
31
32         try:
33             os.remove(self.testOutputFile)
34         except OSError:
35             print "cdf file does not exist"
36
37
38     def testBinsToCdf(self):
39         binstocdf.binToCDF(self.testInputFile, self.testOutputFile)
40         resultFile = open(self.testOutputFile)
41         resultList = resultFile.readlines()
42         self.assertEquals(3, len(resultList))
43         self.assertEquals("field1\tfield2\t10\tfield4\t20\t50\n", resultList[0])
44         self.assertEquals("field1\tfield2\t20\tfield4\t5\t25\n", resultList[1])
45         self.assertEquals("field1\tfield2\t0\tfield4\n", resultList[2])
46
47
48     def testMain(self):
49         argv = ["binstocdf"]
50         self.assertRaises(SystemExit, binstocdf.main, argv)
51         argv = ["binstocdf", self.testInputFile, self.testOutputFile]
52         binstocdf.main(argv)
53         resultFile = open(self.testOutputFile)
54         self.assertEquals(3, len(resultFile.readlines()))
55
56
57 def suite():
58     suite = unittest.TestSuite()
59     suite.addTest(unittest.makeSuite(TestBinsToCdf))
60
61     return suite
62
63
64 if __name__ == "__main__":
65     #import sys;sys.argv = ['', 'Test.testName']
66     unittest.main()