'''
Created on Dec 2, 2010

@author: sau
'''
import unittest
import os
from erange import cdfdist


class TestCdfDist(unittest.TestCase):

    testInputFile = "erangeTestCDFFile"


    def setUp(self):
        cdffile = open(self.testInputFile, "w")
        cdffile.write("line1 30 60\n")
        cdffile.write("line2 90 99\n")
        cdffile.write("line3 5 80\n")
        cdffile.write("line4 10 14\n")
        cdffile.close()


    def tearDown(self):
        try:
            os.remove(self.testInputFile)
        except OSError:
            print "cdf file does not exist"


    def testBinsToCdf(self):
        bins = 2
        self.assertEquals([2, 2], cdfdist.cdfDist(bins, 10, self.testInputFile))
        self.assertEquals([1, 2], cdfdist.cdfDist(bins, 50, self.testInputFile))
        self.assertEquals([1, 0], cdfdist.cdfDist(bins, 89, self.testInputFile))
        self.assertEquals([0, 1], cdfdist.cdfDist(bins, 91, self.testInputFile))


    def testMain(self):
        bins = 2
        percent = 50
        argv = ["cdfdist"]
        self.assertRaises(SystemExit, cdfdist.main, argv)
        argv = ["cdfdist", bins, percent, self.testInputFile]
        cdfdist.main(argv)


def suite():
    suite = unittest.TestSuite()
    suite.addTest(unittest.makeSuite(TestCdfDist))

    return suite


if __name__ == "__main__":
    #import sys;sys.argv = ['', 'Test.testName']
    unittest.main()