Example #1
0
def main():
    initial_intervals = []
    while True:
        try:
            user_input = input("List of intervals? ")
        except EOFError:
            sys.exit(0)
        initial_intervals = []
        try:
            for i in user_input.split(", "):
                interval_i = interval.interval(i)
                initial_intervals.append(interval_i)
            break
        except ValueError as e:
            print(e)
        except:
            print("Other unexpected errors.")
    while True:
        try:
            user_input = input("Interval? ")
        except EOFError:
            sys.exit(0)
        if user_input == "quit":
            break
        try:
            new_interval = interval.interval(user_input)
            insert_intervals = interval.insert(initial_intervals, new_interval)
            intervals_to_strings = ", ".join(repr(x) for x in insert_intervals)
            print(intervals_to_strings)
            continue
        except ValueError as e:
            print(e)
        except:
            print("Other unexpected errors.")
Example #2
0
def main():
    initial_intervals = []
    while True:
        try:
            user_input = input('List of intervals? ')
        except EOFError:
            sys.exit(0)
        initial_intervals = []
        try:
            for i in user_input.split(', '):
                interval_i = interval.interval(i)
                initial_intervals.append(interval_i)
            break
        except ValueError as e:
            print(e)
        except:
            print('Other unexpected errors.')
    while True:
        try:
            user_input = input('Interval? ')
        except EOFError:
            sys.exit(0)
        if user_input == 'quit':
            break
        try:
            new_interval = interval.interval(user_input)
            insert_intervals = interval.insert(initial_intervals, new_interval)
            intervals_to_strings = ", ".join(repr(x) for x in insert_intervals)
            print(intervals_to_strings)
            continue
        except ValueError as e:
            print(e)
        except:
            print('Other unexpected errors.')
Example #3
0
 def test_eq(self):
     """
     Unit test for the __eq__ function.
     """
     self.assertTrue(
         interval.interval('[1,3]') == interval.interval('[1,3]'))
     self.assertFalse(
         interval.interval('(2,4]') == interval.interval('[1,9)'))
Example #4
0
 def test_mergeIntervals(self):
     """
     Unit test for the mergeIntervals function and exception thrown (UnboundLocalError) when
     intervals cannot be merged.
     """
     int1, int2 = interval.interval('(8,10)'), interval.interval('[10,18)')
     int3, int4 = interval.interval('(7,10]'), interval.interval('(11,18]')
     merge_outcome = interval.mergeIntervals(int1, int2)
     self.assertEqual(merge_outcome, interval.interval('(8,18)'))
     with self.assertRaises(UnboundLocalError):
         interval.mergeIntervals(int3, int4)
Example #5
0
 def test_mergeIntervals(self):
     """
     Unit test for the mergeIntervals function and exception thrown (UnboundLocalError) when
     intervals cannot be merged.
     """
     int1, int2 = interval.interval('(8,10)'), interval.interval('[10,18)')
     int3, int4 = interval.interval('(7,10]'), interval.interval('(11,18]')
     merge_outcome = interval.mergeIntervals(int1, int2)
     self.assertEqual(merge_outcome, interval.interval('(8,18)'))
     with self.assertRaises(UnboundLocalError):
         interval.mergeIntervals(int3, int4)
Example #6
0
 def test_mergeOverlapping(self):
     """
     Unit test for the mergeOverlapping function.
     """
     int1, int2, int3 = interval.interval('(1,3)'), interval.interval('[2,5)'), interval.interval('[5,8]')
     int4, int5, int6 = interval.interval('[1,2]'), interval.interval('(3,7]'), interval.interval('(7,8]')
     merge_outcome1 = interval.mergeOverlapping([int1, int2, int3])
     merge_outcome2 = interval.mergeOverlapping([int4, int5, int6])
     self.assertEqual(merge_outcome1, [interval.interval('(1,8]')])
     self.assertEqual(merge_outcome2, [interval.interval('[1,2]'), interval.interval('(3,8]')])
Example #7
0
 def test_mergeOverlapping(self):
     """
     Unit test for the mergeOverlapping function.
     """
     int1, int2, int3 = interval.interval('(1,3)'), interval.interval(
         '[2,5)'), interval.interval('[5,8]')
     int4, int5, int6 = interval.interval('[1,2]'), interval.interval(
         '(3,7]'), interval.interval('(7,8]')
     merge_outcome1 = interval.mergeOverlapping([int1, int2, int3])
     merge_outcome2 = interval.mergeOverlapping([int4, int5, int6])
     self.assertEqual(merge_outcome1, [interval.interval('(1,8]')])
     self.assertEqual(
         merge_outcome2,
         [interval.interval('[1,2]'),
          interval.interval('(3,8]')])
Example #8
0
 def test_insert(self):
     """
     Unit test for the insert function.
     """
     interval_list1, int1 = [interval.interval('(4,7)'), interval.interval('[8,10)')], interval.interval('(11,13)')
     interval_list2, int2 = [interval.interval('[5,6]')], interval.interval('(6,10]')
     outcome1 = interval.insert(interval_list1, int1)
     outcome2 = interval.insert(interval_list2, int2)
     self.assertEqual(outcome1, [interval.interval('(4,7)'), interval.interval('[8,10)'), interval.interval('(11,13)')])
     self.assertEqual(outcome2, [interval.interval('[5,10]')])
Example #9
0
 def test_insert(self):
     """
     Unit test for the insert function.
     """
     interval_list1, int1 = [
         interval.interval('(4,7)'),
         interval.interval('[8,10)')
     ], interval.interval('(11,13)')
     interval_list2, int2 = [interval.interval('[5,6]')
                             ], interval.interval('(6,10]')
     outcome1 = interval.insert(interval_list1, int1)
     outcome2 = interval.insert(interval_list2, int2)
     self.assertEqual(outcome1, [
         interval.interval('(4,7)'),
         interval.interval('[8,10)'),
         interval.interval('(11,13)')
     ])
     self.assertEqual(outcome2, [interval.interval('[5,10]')])
Example #10
0
 def test_init(self):
     """
     Unit test for the constructor (including possible exceptions and invalid user inputs).
     """
     int1 = interval.interval('[1,3]')
     self.assertEqual(int1.lower_number, 1)
     self.assertEqual(int1.upper_number, 3)
     self.assertEqual(int1.lower_symbol, '[')
     self.assertEqual(int1.upper_symbol, ']')
     self.assertEqual(int1.interval, '[1,3]')
     self.assertEqual(int1.interval_to_list, ['[1', '3]'])
     with self.assertRaises(ValueError):
         interval.interval(' ')
     with self.assertRaises(ValueError):
         interval.interval('[3 4]')
     with self.assertRaises(ValueError):
         interval.interval('foo')
Example #11
0
 def test_init(self):
     """
     Unit test for the constructor (including possible exceptions and invalid user inputs).
     """
     int1 = interval.interval('[1,3]')
     self.assertEqual(int1.lower_number, 1)
     self.assertEqual(int1.upper_number, 3)
     self.assertEqual(int1.lower_symbol, '[')
     self.assertEqual(int1.upper_symbol, ']')
     self.assertEqual(int1.interval, '[1,3]')
     self.assertEqual(int1.interval_to_list, ['[1','3]'])
     with self.assertRaises(ValueError):
         interval.interval(' ')
     with self.assertRaises(ValueError):
         interval.interval('[3 4]')
     with self.assertRaises(ValueError):
         interval.interval('foo')
Example #12
0
 def test_eq(self):
     """
     Unit test for the __eq__ function.
     """
     self.assertTrue(interval.interval('[1,3]') == interval.interval('[1,3]'))
     self.assertFalse(interval.interval('(2,4]') == interval.interval('[1,9)'))