def test_repr(self): s1 = TermSet({self.t1}) self.assertEqual(repr(s1), f"TermSet({{Term({self.t1.id!r})}})") s2 = TermSet({self.t1, self.t2}) self.assertIn(repr(s2), [ f"TermSet({{Term({self.t1.id!r}), Term({self.t2.id!r})}})", f"TermSet({{Term({self.t2.id!r}), Term({self.t1.id!r})}})" ])
def test_add_empty(self): s1 = TermSet() self.assertEqual(len(s1), 0) s1.add(self.ms['MS:1000015']) s1.add(self.ms['MS:1000014']) self.assertEqual(len(s1), 2) self.assertIn(s1.pop(), {self.ms['MS:1000015'], self.ms['MS:1000014']}) self.assertIn(s1.pop(), {self.ms['MS:1000015'], self.ms['MS:1000014']})
def test_inplace_and(self): s1 = TermSet((self.ms['MS:1000015'], self.ms['MS:1000014'])) s1 &= TermSet((self.ms['MS:1000015'], self.ms['MS:1000016'])) self.assertEqual(sorted(s1.ids), ['MS:1000015']) self.assertIsNot(s1._ontology, None) s2 = TermSet((self.ms['MS:1000015'], self.ms['MS:1000014'])) s2 &= {self.ms['MS:1000015'], self.ms['MS:1000016']} self.assertEqual(sorted(s2.ids), ['MS:1000015']) self.assertIsNot(s2._ontology, None) s3 = TermSet() s3 &= {} self.assertEqual(sorted(s3.ids), []) self.assertIs(s3._ontology, None)
def test_and(self): s1 = TermSet((self.ms['MS:1000015'], self.ms['MS:1000014'])) s = s1 & TermSet((self.ms['MS:1000015'], self.ms['MS:1000016'])) self.assertEqual(sorted(s.ids), ['MS:1000015']) self.assertIsNot(s._ontology, None) s2 = TermSet((self.ms['MS:1000015'], self.ms['MS:1000014'])) s = s2 & {self.ms['MS:1000015'], self.ms['MS:1000016']} self.assertEqual(sorted(s.ids), ['MS:1000015']) self.assertIsNot(s._ontology, None) s3 = TermSet() s = s3 & {} self.assertEqual(sorted(s.ids), []) self.assertIs(s._ontology, None)
def test_intersection_of(self): self.assertEqual(self.t1.intersection_of, TermSet()) self.t1.intersection_of = {self.t2, self.t3} self.assertEqual(self.t1.intersection_of, {self.t2, self.t3}) self.t1.intersection_of = {self.t2, (self.has_part, self.t3)} self.assertEqual(self.t1.intersection_of, {self.t2, (self.has_part, self.t3)})
def test_contains(self): s = TermSet({self.t1, self.t2}) self.assertIn(self.t1, s) self.assertIn(self.t2, s) self.assertNotIn(self.t3, s) self.assertIn(self.ont[self.t1.id], s) self.assertIn(self.ont[self.t2.id], s) self.assertNotIn(self.ont[self.t3.id], s)
def test_inplace_xor(self): s1 = TermSet((self.ms['MS:1000015'], self.ms['MS:1000014'])) s1 ^= TermSet((self.ms['MS:1000015'], self.ms['MS:1000016'])) self.assertEqual(sorted(s1.ids), ['MS:1000014', 'MS:1000016']) self.assertIsNot(s1._ontology, None) s2 = TermSet((self.ms['MS:1000015'], self.ms['MS:1000014'])) s2 ^= {self.ms['MS:1000015'], self.ms['MS:1000016']} self.assertEqual(sorted(s2.ids), ['MS:1000014', 'MS:1000016']) self.assertIsNot(s2._ontology, None) s3 = TermSet() s3 ^= TermSet((self.ms['MS:1000015'], self.ms['MS:1000016'])) self.assertEqual(sorted(s3.ids), ['MS:1000015', 'MS:1000016']) self.assertIsNot(s3._ontology, None) s4 = TermSet({self.ms['MS:1000015'], self.ms['MS:1000016']}) s4 ^= s4 self.assertEqual(sorted(s4.ids), []) self.assertIs(s4._ontology, None)
def test_inplace_sub(self): s1 = TermSet((self.ms['MS:1000015'], self.ms['MS:1000014'])) s1 -= TermSet((self.ms['MS:1000015'], self.ms['MS:1000016'])) self.assertEqual(sorted(s1.ids), ['MS:1000014']) self.assertIsNot(s1._ontology, None) s2 = TermSet((self.ms['MS:1000015'], self.ms['MS:1000014'])) s2 -= {self.ms['MS:1000015'], self.ms['MS:1000016']} self.assertEqual(sorted(s2.ids), ['MS:1000014']) self.assertIsNot(s2._ontology, None) s3 = TermSet() s3 -= TermSet((self.ms['MS:1000015'], self.ms['MS:1000016'])) self.assertEqual(sorted(s3.ids), []) self.assertIs(s3._ontology, None) s4 = TermSet() s4 -= {self.ms['MS:1000015'], self.ms['MS:1000016']} self.assertEqual(sorted(s4.ids), []) self.assertIs(s4._ontology, None)
def test_inplace_xor(self): s1 = TermSet((self.ms['MS:1000015'], self.ms['MS:1000014'])) s = s1 ^ TermSet((self.ms['MS:1000015'], self.ms['MS:1000016'])) self.assertEqual(sorted(s.ids), ['MS:1000014', 'MS:1000016']) self.assertIsNot(s._ontology, None) s2 = TermSet((self.ms['MS:1000015'], self.ms['MS:1000014'])) s = s2 ^ {self.ms['MS:1000015'], self.ms['MS:1000016']} self.assertEqual(sorted(s.ids), ['MS:1000014', 'MS:1000016']) self.assertIsNot(s._ontology, None) s3 = TermSet() s = s3 ^ TermSet((self.ms['MS:1000015'], self.ms['MS:1000016'])) self.assertEqual(sorted(s.ids), ['MS:1000015', 'MS:1000016']) self.assertIsNot(s._ontology, None) s4 = TermSet({self.ms['MS:1000015'], self.ms['MS:1000016']}) s = s4 ^ s4 self.assertEqual(sorted(s.ids), []) self.assertIs(s._ontology, None)
def test_sub(self): s1 = TermSet((self.ms['MS:1000015'], self.ms['MS:1000014'])) s = s1 - TermSet((self.ms['MS:1000015'], self.ms['MS:1000016'])) self.assertEqual(sorted(s.ids), ['MS:1000014']) self.assertIsNot(s._ontology, None) s2 = TermSet((self.ms['MS:1000015'], self.ms['MS:1000014'])) s = s2 - {self.ms['MS:1000015'], self.ms['MS:1000016']} self.assertEqual(sorted(s.ids), ['MS:1000014']) self.assertIsNot(s._ontology, None) s3 = TermSet() s = s3 - TermSet((self.ms['MS:1000015'], self.ms['MS:1000016'])) self.assertEqual(sorted(s.ids), []) self.assertIs(s._ontology, None) s4 = TermSet() s = s4 - {self.ms['MS:1000015'], self.ms['MS:1000016']} self.assertEqual(sorted(s.ids), []) self.assertIs(s._ontology, None)
def test_or(self): s1 = TermSet((self.ms['MS:1000015'], self.ms['MS:1000014'])) s = s1 | TermSet((self.ms['MS:1000015'], self.ms['MS:1000016'])) self.assertEqual(sorted(s.ids), ['MS:1000014', 'MS:1000015', 'MS:1000016']) self.assertIsNot(s._ontology, None) s2 = TermSet((self.ms['MS:1000015'], self.ms['MS:1000014'])) s = s2 | {self.ms['MS:1000015'], self.ms['MS:1000016']} self.assertEqual(sorted(s.ids), ['MS:1000014', 'MS:1000015', 'MS:1000016']) self.assertIsNot(s._ontology, None) s3 = TermSet() s = s3 | TermSet((self.ms['MS:1000015'], self.ms['MS:1000016'])) self.assertEqual(sorted(s.ids), ['MS:1000015', 'MS:1000016']) self.assertIsNot(s._ontology, None) s4 = TermSet() s = s4 | {self.ms['MS:1000015'], self.ms['MS:1000016']} self.assertEqual(sorted(s.ids), ['MS:1000015', 'MS:1000016']) self.assertIsNot(s._ontology, None)
def test_union_of(self): self.t1.union_of = {self.t2, self.t3} self.assertEqual(self.t1.union_of, TermSet({self.t2, self.t3})) self.assertEqual(self.t1._data().union_of, {self.t2.id, self.t3.id})
def test_disjoint_from(self): self.assertEqual(self.t1.disjoint_from, TermSet()) self.t1.disjoint_from = {self.t2} self.assertEqual(self.t1.disjoint_from, TermSet({self.t2}))
def test_consider(self): self.assertEqual(self.t1.consider, TermSet()) self.t1.consider = {self.t2} self.assertEqual(self.t1.consider, TermSet({self.t2})) self.t1.consider.clear() self.assertEqual(self.t1.consider, TermSet())