def test_equals_false(self): # type mismatch a = BiologicalSequence('ACGT', id='foo', description='abc', quality=[1, 2, 3, 4]) b = NucleotideSequence('ACGT', id='bar', description='def', quality=[5, 6, 7, 8]) self.assertFalse(a.equals(b, ignore=['quality', 'description', 'id'])) # id mismatch a = BiologicalSequence('ACGT', id='foo') b = BiologicalSequence('ACGT', id='bar') self.assertFalse(a.equals(b)) # description mismatch a = BiologicalSequence('ACGT', description='foo') b = BiologicalSequence('ACGT', description='bar') self.assertFalse(a.equals(b)) # quality mismatch (both provided) a = BiologicalSequence('ACGT', quality=[1, 2, 3, 4]) b = BiologicalSequence('ACGT', quality=[1, 2, 3, 5]) self.assertFalse(a.equals(b)) # quality mismatch (one provided) a = BiologicalSequence('ACGT', quality=[1, 2, 3, 4]) b = BiologicalSequence('ACGT') self.assertFalse(a.equals(b)) # sequence mismatch a = BiologicalSequence('ACGT') b = BiologicalSequence('TGCA') self.assertFalse(a.equals(b))
def test_equals_true(self): # sequences match, all other attributes are not provided self.assertTrue( BiologicalSequence('ACGT').equals(BiologicalSequence('ACGT'))) # all attributes are provided and match a = BiologicalSequence('ACGT', id='foo', description='abc', quality=[1, 2, 3, 4]) b = BiologicalSequence('ACGT', id='foo', description='abc', quality=[1, 2, 3, 4]) self.assertTrue(a.equals(b)) # ignore type a = BiologicalSequence('ACGT') b = DNASequence('ACGT') self.assertTrue(a.equals(b, ignore=['type'])) # ignore id a = BiologicalSequence('ACGT', id='foo') b = BiologicalSequence('ACGT', id='bar') self.assertTrue(a.equals(b, ignore=['id'])) # ignore description a = BiologicalSequence('ACGT', description='foo') b = BiologicalSequence('ACGT', description='bar') self.assertTrue(a.equals(b, ignore=['description'])) # ignore quality a = BiologicalSequence('ACGT', quality=[1, 2, 3, 4]) b = BiologicalSequence('ACGT', quality=[5, 6, 7, 8]) self.assertTrue(a.equals(b, ignore=['quality'])) # ignore sequence a = BiologicalSequence('ACGA') b = BiologicalSequence('ACGT') self.assertTrue(a.equals(b, ignore=['sequence'])) # ignore everything a = BiologicalSequence('ACGA', id='foo', description='abc', quality=[1, 2, 3, 4]) b = DNASequence('ACGT', id='bar', description='def', quality=[5, 6, 7, 8]) self.assertTrue(a.equals(b, ignore=['quality', 'description', 'id', 'sequence', 'type']))