def testRichCmp(self): # be obsessive . . . # # == a = Interval("chr21", 100, 200) b = Interval("chr21", 100, 200) self.assertTrue(a == b) self.assertFalse(a != b) self.assertTrue(a <= b) self.assertTrue(a >= b) self.assertFalse(a < b) self.assertFalse(a > b) a = Interval("chr21", 100, 100) b = Interval("chr21", 100, 100) self.assertTrue(a == b) self.assertFalse(a != b) self.assertTrue(a <= b) self.assertTrue(a >= b) self.assertFalse(a < b) self.assertFalse(a > b) # != because of strand a = Interval("chr21", 100, 200, strand="+") b = Interval("chr21", 100, 200, strand="-") self.assertFalse(a == b) self.assertTrue(a != b) self.assertFalse(a <= b) self.assertFalse(a >= b) self.assertFalse(a < b) self.assertFalse(a > b) # a >= b a = Interval("chr21", 100, 300) b = Interval("chr21", 100, 200) self.assertFalse(a == b) self.assertTrue(a != b) self.assertFalse(a <= b) self.assertTrue(a >= b) self.assertFalse(a < b) self.assertFalse(a > b) # a <= b a = Interval("chr21", 100, 300) b = Interval("chr21", 300, 300) self.assertFalse(a == b) self.assertTrue(a != b) self.assertTrue(a <= b) self.assertFalse(a >= b) self.assertFalse(a < b) self.assertFalse(a > b) # a <= b a = Interval("chr21", 100, 300) b = Interval("chr21", 250, 300) self.assertFalse(a == b) self.assertTrue(a != b) self.assertTrue(a <= b) self.assertFalse(a >= b) self.assertFalse(a < b) self.assertFalse(a > b) # a < b a = Interval("chr21", 100, 200) b = Interval("chr21", 201, 300) self.assertFalse(a == b) self.assertTrue(a != b) self.assertTrue(a <= b) self.assertFalse(a >= b) self.assertTrue(a < b) self.assertFalse(a > b) # a > b a = Interval("chr21", 201, 300) b = Interval("chr21", 100, 200) self.assertFalse(a == b) self.assertTrue(a != b) self.assertFalse(a <= b) self.assertTrue(a >= b) self.assertFalse(a < b) self.assertTrue(a > b) # a != b a = Interval("none", 1, 100) b = Interval("chr21", 1, 100) self.assertFalse(a == b) self.assertTrue(a != b) self.assertFalse(a <= b) self.assertFalse(a >= b) self.assertFalse(a < b) self.assertFalse(a > b) # nested should raise NotImplementedError a = Interval("chr21", 100, 200) b = Interval("chr21", 50, 300) self.assertRaises(NotImplementedError, a.__eq__, b) self.assertRaises(NotImplementedError, a.__ne__, b) self.assertRaises(NotImplementedError, a.__le__, b) self.assertRaises(NotImplementedError, a.__ge__, b) self.assertRaises(NotImplementedError, a.__lt__, b) self.assertRaises(NotImplementedError, a.__gt__, b)
def testOverlaps(self): i = Interval("chr21", 9719768, 9739768) hits = self.bed.all_hits(i) self.assertEqual(len(hits), 8) for hit in hits: self.assertTrue(hit.start <= 9739768 and hit.end >= 9719768)
def setUp(self): self.file = os.path.join(PATH, self.file) start, end, strand = 1, 100, "+" self.i = Interval("chr1", start, end, strand=strand) self.start, self.end, self.strand = start, end, strand
def setUp(self): self.file = os.path.join(PATH, self.file) start, end, strand = 9719768, 9739768, "-" self.i = Interval("chr21", start, end, strand=strand) self.start, self.end, self.strand = start, end, strand