'''
Runs all unit test for Erange.
Functionality will eventually be incorporated into unittest in Python 2.7+
Uses test suites until then

Created on Sep 8, 2010

@author: sau
'''

import sys
import unittest
import testAnalyzeGO
import testBedToRegion
import testBinsToCdf
import testCdfDist
import testChksnp
import testColsum
import testCommoncode
import testFeatureIntersects
import testGeneMrnaCounts
import testGeneMrnaCountsWeighted
#import testGetFasta
import testGetNovelSNPs
import testGetSNPGeneInfo
import testGetSNPs
import testMakeBamFromRds
import testmakebedfromrds
#import testMakeGraphs
import testMakeRdsFromBam
import testMakeSiteTrack
import testMakeSNPTrack
import testMarkLinkers
import testPeak
import testPeaksToRegion
import testProcessVelvet
import testReadDataset
import testRnaAToIFilter
import testRnaEditing
import testRNAPATH
#import testTranscripts


def main(argv=None):
    if not argv:
        argv = sys.argv

    suite = unittest.TestSuite()
    suite.addTest(testAnalyzeGO.suite())
    suite.addTest(testBedToRegion.suite())
    suite.addTest(testBinsToCdf.suite())
    suite.addTest(testCdfDist.suite())
    suite.addTest(testChksnp.suite())
    suite.addTest(testColsum.suite())
    suite.addTest(testCommoncode.suite())
    suite.addTest(testFeatureIntersects.suite())
    suite.addTest(testGeneMrnaCounts.suite())
    suite.addTest(testGeneMrnaCountsWeighted.suite())
    #suite.addTest(testGetFasta.suite())
    suite.addTest(testGetNovelSNPs.suite())
    suite.addTest(testGetSNPGeneInfo.suite())
    suite.addTest(testGetSNPs.suite())
    suite.addTest(testMakeBamFromRds.suite())
    suite.addTest(testmakebedfromrds.suite())
    #suite.addTest(testMakeGraphs.suite())
    suite.addTest(testMakeRdsFromBam.suite())
    suite.addTest(testMakeSiteTrack.suite())
    suite.addTest(testMakeSNPTrack.suite())
    suite.addTest(testMarkLinkers.suite())
    suite.addTest(testPeak.suite())
    suite.addTest(testPeaksToRegion.suite())
    suite.addTest(testProcessVelvet.suite())
    suite.addTest(testReadDataset.suite())
    suite.addTest(testRnaAToIFilter.suite())
    suite.addTest(testRnaEditing.suite())
    suite.addTest(testRNAPATH.suite())
    #suite.addTest(testTranscripts.suite())

    unittest.TextTestRunner(verbosity=2).run(suite)

if __name__ == '__main__':
    main(sys.argv)