[3] | 1 | """ |
---|
| 2 | Tests for `bx.seq.nib`. |
---|
| 3 | """ |
---|
| 4 | |
---|
| 5 | import unittest |
---|
| 6 | import sys |
---|
| 7 | import os.path |
---|
| 8 | import nib |
---|
| 9 | |
---|
| 10 | test_nib = "test_data/seq_tests/test.nib" |
---|
| 11 | |
---|
| 12 | # Same sequence data as stored in test.nib |
---|
| 13 | |
---|
| 14 | valid_seq = "TGGAGGCATTTGTGATTCAATAGATGCAGAAAGAAACCTTCCTAGAGCTG" \ |
---|
| 15 | + "GCGTTCTCTAACTAAAAGTGGAAAGTTCTGAGGAATGAGGACTGTTATAA" \ |
---|
| 16 | + "ATCCCACCCCACACCGCACCTTCTCCAGGGAAGTTTCATGGCCGTGAAGA" \ |
---|
| 17 | + "GGACAGAAAGTGAGAACCAAGATggaactgaataaacaagcttcacactg" \ |
---|
| 18 | + "ttagtttccccatatgcttaccttcccacagatgccaaccttggaggcct" \ |
---|
| 19 | + "aagaggcctagaatattatcctttgtctgatcatttctctacaaatttat" \ |
---|
| 20 | + "tgttctttgttaagatgctacataagcccaaattctaaccacccctttga" \ |
---|
| 21 | + "gttacccatcatcaagtttctcccatgtg" |
---|
| 22 | |
---|
| 23 | valid_seq_len = len( valid_seq ) |
---|
| 24 | |
---|
| 25 | class NIBTestCase( unittest.TestCase ): |
---|
| 26 | |
---|
| 27 | def test_get( self ): |
---|
| 28 | nibfile = nib.NibFile( file( test_nib ) ) |
---|
| 29 | # Try all combinations of even / odd boundaries |
---|
| 30 | check_get( nibfile, 0, 10 ) |
---|
| 31 | check_get( nibfile, 1, 10 ) |
---|
| 32 | check_get( nibfile, 0, 11 ) |
---|
| 33 | check_get( nibfile, 1, 11 ) |
---|
| 34 | # Test near end of file also |
---|
| 35 | check_get( nibfile, valid_seq_len - 10, 10 ) |
---|
| 36 | check_get( nibfile, valid_seq_len - 11, 11 ) |
---|
| 37 | # Test really short gets |
---|
| 38 | check_get( nibfile, 0, 0 ) |
---|
| 39 | check_get( nibfile, 1, 0 ) |
---|
| 40 | check_get( nibfile, 0, 1 ) |
---|
| 41 | check_get( nibfile, 1, 1 ) |
---|
| 42 | # Test negative length |
---|
| 43 | self.assertRaises( AssertionError, nibfile.get, 20, -1 ) |
---|
| 44 | |
---|
| 45 | def check_get( nibfile, start, len ): |
---|
| 46 | ## print "expect: |%r|" % valid_seq[start:start+len] |
---|
| 47 | ## print "actual: |%r|" % nibfile.get( start, len ) |
---|
| 48 | assert nibfile.get( start, len ) == valid_seq[start:start+len] |
---|
| 49 | |
---|
| 50 | test_classes = [ NIBTestCase ] |
---|
| 51 | suite = unittest.TestSuite( [ unittest.makeSuite( c ) for c in test_classes ] ) |
---|