'''
Created on Aug 25, 2010

@author: sau
'''
import unittest
from erange import rnaAToIFilter


class TestRnaAToIFilter(unittest.TestCase):


    def setUp(self):
        pass


    def tearDown(self):
        pass


    def testRnaAToIFilter(self):
        snpPropertiesList = []
        self.assertEquals([], rnaAToIFilter.rnaAToIFilter(snpPropertiesList))

        snpPropertiesList = ["0 1 2 3 4 5 6 7 8 9 10 11 12 13"]
        result = []
        self.assertEquals(result, rnaAToIFilter.rnaAToIFilter(snpPropertiesList))

        snpPropertiesList = ["0 1 2 3 4 5 6 A-G 8 9 10 11 12 F"]
        result = ["0 1 2 3 4 5 6 A-G 8 9 10 11 12 F"]
        self.assertEquals(result, rnaAToIFilter.rnaAToIFilter(snpPropertiesList))

        snpPropertiesList = ["0\t1\t2\t3\t4\t5\t6\tA-G\t8\t9\t10\t11\t12\tF"]
        result = ["0\t1\t2\t3\t4\t5\t6\tA-G\t8\t9\t10\t11\t12\tF"]
        self.assertEquals(result, rnaAToIFilter.rnaAToIFilter(snpPropertiesList))

        snpPropertiesList = ["0 1 2 3 4 5 6 A-G 8 9 10 11 12 R"]
        result = []
        self.assertEquals(result, rnaAToIFilter.rnaAToIFilter(snpPropertiesList))

        snpPropertiesList = ["0 1 2 3 4 5 6 T-C 8 9 10 11 12 R"]
        result = ["0 1 2 3 4 5 6 T-C 8 9 10 11 12 R"]
        self.assertEquals(result, rnaAToIFilter.rnaAToIFilter(snpPropertiesList))

        snpPropertiesList = ["0 1 2 3 4 5 6 T-C 8 9 10 11 12 F"]
        result = []
        self.assertEquals(result, rnaAToIFilter.rnaAToIFilter(snpPropertiesList))

        snpPropertiesList = ["0 1 2 3 4 5 6 A-G 8 9 10 11 12 F",
                             "0 1 2 3 4 5 6 7 8 9 10 11 12 13"
        ]
        result = ["0 1 2 3 4 5 6 A-G 8 9 10 11 12 F"]
        self.assertEquals(result, rnaAToIFilter.rnaAToIFilter(snpPropertiesList))

        snpPropertiesList = ["0 1 2 3 4 5 6 A-G 8 9 10 11 12 F",
                             "0 1 2 3 4 5 6 T-C 8 9 10 11 12 R"
        ]
        result = ["0 1 2 3 4 5 6 A-G 8 9 10 11 12 F",
                  "0 1 2 3 4 5 6 T-C 8 9 10 11 12 R"
        ]
        self.assertEquals(result, rnaAToIFilter.rnaAToIFilter(snpPropertiesList))

        snpPropertiesList = ["0 1 2 3 4 5 6 A-G 8 9 10 11 12 F",
                             "0 1 2 3 4 5 6 A-G 8 9 10 11 12 F"
        ]
        result = ["0 1 2 3 4 5 6 A-G 8 9 10 11 12 F",
                  "0 1 2 3 4 5 6 A-G 8 9 10 11 12 F"
        ]
        self.assertEquals(result, rnaAToIFilter.rnaAToIFilter(snpPropertiesList))

        snpPropertiesList = ["invalid entry"]
        self.assertRaises(IndexError, rnaAToIFilter.rnaAToIFilter, snpPropertiesList)


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

    return suite


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