def test_intersection(self): rn1 = RangeSetND([["10", "10-13"], ["10", "9-12"], ["8-9", "12-15"]]) self.assertEqual(len(rn1), 13) self.assertEqual(str(rn1), "8-9; 12-15\n10; 9-13\n") rn2 = RangeSetND([["10", "10"], ["9", "12-15"]]) self.assertEqual(len(rn2), 5) self.assertEqual(str(rn2), "9; 12-15\n10; 10\n") rni = rn1.intersection(rn2) self.assertEqual(len(rni), 5) self.assertEqual(str(rni), "9; 12-15\n10; 10\n") self.assertEqual(len(rn1), 13) self.assertEqual(str(rn1), "8-9; 12-15\n10; 9-13\n") self.assertEqual(len(rn2), 5) self.assertEqual(str(rn2), "9; 12-15\n10; 10\n") # test __and__ rni2 = rn1 & rn2 self.assertEqual(len(rni2), 5) self.assertEqual(str(rni2), "9; 12-15\n10; 10\n") self.assertEqual(len(rn1), 13) self.assertEqual(str(rn1), "8-9; 12-15\n10; 9-13\n") self.assertEqual(len(rn2), 5) self.assertEqual(str(rn2), "9; 12-15\n10; 10\n") self.assertEqual(rni, rni2) # btw test __eq__ try: dummy = rn1 & "foobar" self.assertFalse("TypeError not raised") except TypeError: pass