2 """More direct synthetic test cases for the eland output file processing
4 from StringIO import StringIO
5 from unittest import TestCase
7 from htsworkflow.pipelines.samplekey import SampleKey
9 class TestSampleKey(TestCase):
10 def test_equality(self):
11 k1 = SampleKey(lane=1, read='1', sample='12345')
12 k2 = SampleKey(lane=1, read=1, sample='12345')
13 k3 = SampleKey(lane=1, read=2, sample='12345')
15 self.assertEqual(k1, k2)
16 self.assertEqual(hash(k1), hash(k2))
17 self.assertNotEqual(k1, k3)
19 self.assertTrue(k1 < k3)
20 self.assertTrue(k1 <= k2)
22 self.assertTrue(k3 > k1)
25 def test_matching(self):
26 k1 = SampleKey(lane=1, read='1', sample='12345')
27 k2 = SampleKey(lane=1, read=1, sample='12345')
28 k3 = SampleKey(lane=1, read=2, sample='12345')
31 q2 = SampleKey(read=1)
32 q3 = SampleKey(sample='12345')
34 self.assertTrue(k1.matches(q1))
35 self.assertTrue(k2.matches(q1))
36 self.assertTrue(k3.matches(q1))
38 self.assertTrue(k1.matches(q2))
39 self.assertTrue(k2.matches(q2))
40 self.assertFalse(k3.matches(q2))
42 self.assertTrue(k1.matches(q3))
43 self.assertTrue(k2.matches(q3))
44 self.assertTrue(k3.matches(q3))
47 from unittest import TestSuite, defaultTestLoader
49 suite.addTests(defaultTestLoader.loadTestsFromTestCase(TestSampleKey))
53 if __name__ == "__main__":
54 from unittest import main
55 main(defaultTest="suite")