def test_remove(self):
     obj = SequenceRanges.from_ranges([(1, 3)])
     obj.remove(2)
     self.assertEqual(obj.to_ranges(), [1, 3])
     obj.remove(1)
     self.assertEqual(obj.to_ranges(), [3])
     obj.remove(3)
     self.assertEqual(obj.to_ranges(), [])
     obj.remove(4)
     self.assertEqual(obj.to_ranges(), [])
 def test_contains(self):
     obj = SequenceRanges.from_ranges(self.ranges)
     self.assertTrue(1 in obj)
     self.assertTrue(2 in obj)
     self.assertTrue(15 in obj)
     self.assertTrue(16 in obj)
     self.assertTrue(17 in obj)
     self.assertTrue(19 in obj)
     self.assertTrue(27 in obj)
     self.assertTrue(0 not in obj)
     self.assertTrue(3 not in obj)
     self.assertTrue(14 not in obj)
     self.assertTrue(18 not in obj)
     self.assertTrue(20 not in obj)
     self.assertTrue(28 not in obj)
 def test_add(self):
     obj = SequenceRanges()
     obj.add(1)
     self.assertEqual(obj.to_ranges(), [1])
     obj.add(2)
     self.assertEqual(obj.to_ranges(), [1, 2])
     obj.add(3)
     self.assertEqual(obj.to_ranges(), [(1, 3)])
     obj.add(3)
     self.assertEqual(obj.to_ranges(), [(1, 3)])
 def test_iter(self):
     obj = SequenceRanges.from_ranges(self.ranges)
     self.assertEqual(list(obj), self.sequence)
 def test_from_ranges_to_sequence(self):
     obj = SequenceRanges.from_ranges(self.ranges)
     self.assertEqual(list(obj.to_sequence()), self.sequence)
 def test_to_ranges_immutable(self):
     obj = SequenceRanges.from_ranges(self.ranges)
     obj.to_ranges().append(123)
     self.assertEqual(obj.to_ranges(), self.ranges)
 def test_from_to_ranges(self):
     obj = SequenceRanges.from_ranges(self.ranges)
     self.assertEqual(obj.to_ranges(), self.ranges)
 def test_from_to_sequence(self):
     obj = SequenceRanges.from_sequence(self.sequence)
     self.assertEqual(obj.to_sequence(), self.sequence)
 def test_empty_to_ranges(self):
     self.assertEqual(SequenceRanges().to_ranges(), [])