Ejemplo n.º 1
0
    def test_Insert(self):
        """unit tests for insert function that insert an interval to an insert list successfully"""

        intlist = [interval('[-1,2]'), interval('(4, 8]'), interval('[10,20]')]
        newint = interval('[3,10]')
        insertlist = [interval('[-1,20]')]
        self.assertEqual(insert(intlist, newint), insertlist)
Ejemplo n.º 2
0
 def test_Insert(self):
     
     """unit tests for insert function that insert an interval to an insert list successfully"""
     
     intlist = [interval('[-1,2]'), interval('(4, 8]'), interval('[10,20]')]
     newint = interval('[3,10]')
     insertlist = [interval('[-1,20]')]
     self.assertEqual(insert(intlist, newint), insertlist)
Ejemplo n.º 3
0
    def test_mergeIntervals_success(self):
        
        """unit tests for mergeIntevals function
        test function mergeIntervals could merge correctly when two input intervals overlap or adjacent"""
        
        int1 = interval('[1,2]')
        int2 = interval('[2,3]')
        int3 = interval('(2,4]')
        int4 = interval('[0,4]')
        int5 = interval('[2,6]')

        int12 = interval('[1,3]')
        merge12 = mergeIntervals(int1, int2)
        self.assertEqual(int12, merge12)
       
        int13 = interval('[1,4]')
        merge13 = mergeIntervals(int1, int3)
        self.assertEqual(int13, merge13)
    
        int14 = interval('[0,4]')
        merge14 = mergeIntervals(int1, int4)
        self.assertEqual(int14, merge14)
        
        int45 = interval('(1,6]')
        merge45 = mergeIntervals(int4, int5)
        self.assertEqual(int45, merge45)
Ejemplo n.º 4
0
    def test_mergeIntervals_success(self):
        """unit tests for mergeIntevals function
        test function mergeIntervals could merge correctly when two input intervals overlap or adjacent"""

        int1 = interval('[1,2]')
        int2 = interval('[2,3]')
        int3 = interval('(2,4]')
        int4 = interval('[0,4]')
        int5 = interval('[2,6]')

        int12 = interval('[1,3]')
        merge12 = mergeIntervals(int1, int2)
        self.assertEqual(int12, merge12)

        int13 = interval('[1,4]')
        merge13 = mergeIntervals(int1, int3)
        self.assertEqual(int13, merge13)

        int14 = interval('[0,4]')
        merge14 = mergeIntervals(int1, int4)
        self.assertEqual(int14, merge14)

        int45 = interval('(1,6]')
        merge45 = mergeIntervals(int4, int5)
        self.assertEqual(int45, merge45)
Ejemplo n.º 5
0
    def test_mergeIntervals_fail(self):
        """unit tests for mergeIntevals function
        test two input intervals could not be merged"""

        int1 = interval('[1,2)')
        int2 = interval('[-2,-1]')
        int3 = interval('(2,5]')

        with self.assertRaises(IntervalsNotOverlap):
            self.interval = mergeIntervals(int1, int2)

        with self.assertRaises(IntervalsNotOverlap):
            self.interval = mergeIntervals(int1, int3)

        with self.assertRaises(IntervalsNotOverlap):
            self.interval = mergeIntervals(int1, int2)
Ejemplo n.º 6
0
 def test_mergeIntervals_fail(self):
     
     """unit tests for mergeIntevals function
     test two input intervals could not be merged"""
     
     int1 = interval('[1,2)')
     int2 = interval('[-2,-1]')
     int3 = interval('(2,5]')
     
     with self.assertRaises(IntervalsNotOverlap):
         self.interval = mergeIntervals(int1, int2)
     
     with self.assertRaises(IntervalsNotOverlap):
         self.interval = mergeIntervals(int1, int3)
         
     with self.assertRaises(IntervalsNotOverlap):
         self.interval = mergeIntervals(int1, int2)        
Ejemplo n.º 7
0
def loop():
    while raw_input('List of intervals?  ') not in ('quit()', 'q'):
        listintervalsinput = re.findall(r'[\[(]+[-+]?\d+,+[-+]?\d+[\])]',
                                        raw_input('List of intervals?  '))
        if len(listintervalsinput) == 0:
            continue
        else:
            objectlistinterval = []
            if isinstance(listintervalsinput,
                          list) and len(listintervalsinput) > 0:
                for i in range(len(listintervalsinput)):
                    try:
                        objectlistinterval.append(
                            interval(listintervalsinput[i]))
                    except ClassIntervalDefinitionException:
                        print 'Interval %s not defined appropiatedly, error %s. Try again. \n' % (
                            i, ClassIntervalDefinitionException.msg)
                        break
                while raw_input('Interval?  ') not in ('quit()', 'q'):
                    intervalnew = re.findall(r'[\[(]+[-+]?\d+,+[-+]?\d+[\])]',
                                             raw_input('Interval?  '))
                    if len(intervalnew) == 1:
                        try:
                            intervalnewi = interval(intervalnew)
                        except ClassIntervalDefinitionException:
                            print 'Interval input is not defined appropiatedly, error. Try again.'
                    try:
                        objectlistinterval = interval.insert(
                            objectlistinterval, intervalnewi)
                    except ClassIntervalOperationException:
                        pass
                        listforoverlap = objectlistinterval
                        listforoverlap.insert(0, intervalnewi)
                        try:
                            objectlistinterval = interval.mergeOverlapping(
                                listforoverlap)
                        except ClassIntervalOperationException:
                            print 'No possible union'

                else:
                    print 'Quitting'
            else:
                print 'Not a list! Enter intervals in list'
    else:
        print 'Quitting'
Ejemplo n.º 8
0
    def test_invalidinterval(self):
        """unit tests for the interval constructor
        Test the creation of invalid inputs to the Interval constructor."""

        invalid_interval = ['[a,1]', 'a', '[1,2][', '', '()', '(1,1)', '(3,4)']
        intervals = []
        for item in intervals:
            with self.assertRaises(InvalidIntervals):
                self.interval = interval(item)
Ejemplo n.º 9
0
 def test_invalidinterval(self):
     
     """unit tests for the interval constructor
     Test the creation of invalid inputs to the Interval constructor."""
     
     invalid_interval = ['[a,1]', 'a', '[1,2][', '', '()', '(1,1)', '(3,4)']
     intervals = []
     for item in intervals:
         with self.assertRaises(InvalidIntervals):
             self.interval = interval(item)
Ejemplo n.º 10
0
 def test_mergeOverlapping(self):
     
     """unit tests for mergeOverlapping function
     test function mergeOverlapping could merge correctly"""
     
     intlist = [interval('[1,2]'), interval('[2,3]'), interval('[-1,2]'), interval('(4, 8]'), interval('[10,20]')]
     
     #expected return list of intervals after calling mergeOverlapping function
     mergelist = [interval('[-1,3]'), interval('(4, 8]'), interval('[10,20]')]
     
     self.assertEqual(mergeOverlapping(intlist), mergelist)
Ejemplo n.º 11
0
def loop():
    while raw_input('List of intervals?  ') not in  ('quit()','q'):
        listintervalsinput=re.findall(r'[\[(]+[-+]?\d+,+[-+]?\d+[\])]', raw_input('List of intervals?  '))
        if len(listintervalsinput) == 0:
            continue
        else:
            objectlistinterval=[]
            if isinstance(listintervalsinput,list) and len(listintervalsinput) > 0:
                for i in range(len(listintervalsinput)):
                    try:
                        objectlistinterval.append(interval(listintervalsinput[i]))
                    except ClassIntervalDefinitionException:
                        print 'Interval %s not defined appropiatedly, error %s. Try again. \n' %(i,ClassIntervalDefinitionException.msg)
                        break
                while raw_input('Interval?  ') not in  ('quit()','q'):
                    intervalnew=re.findall(r'[\[(]+[-+]?\d+,+[-+]?\d+[\])]',raw_input('Interval?  '))
                    if len(intervalnew)==1:
                        try:
                            intervalnewi=interval(intervalnew)
                        except ClassIntervalDefinitionException:
                            print 'Interval input is not defined appropiatedly, error. Try again.'
                    try:
                        objectlistinterval = interval.insert(objectlistinterval,intervalnewi)
                    except ClassIntervalOperationException:
                        pass
                        listforoverlap=objectlistinterval
                        listforoverlap.insert(0,intervalnewi)
                        try:
                            objectlistinterval = interval.mergeOverlapping(listforoverlap)
                        except ClassIntervalOperationException:
                            print 'No possible union'

                else:
                    print 'Quitting'
            else:
                print 'Not a list! Enter intervals in list'
    else:
        print 'Quitting'
Ejemplo n.º 12
0
 def loadOutputFromFileSystem(self, filename):
     with open(filename, 'r') as file:
         line = file.readline().strip()
         nameFig = line.replace("name of the figure:", "")
         line = file.readline().strip()
         noIntervals = int(line.replace("number of intervals:", ""))
         intervals = []
         for j in range(0, noIntervals):
             line = file.readline().strip().split(" ")
             params = []
             for z in range(1, len(line)):
                 params.append(float(line[z]))
             intervals.append(interval(params, line[0]))
     return figure(intervals, nameFig, 0)
Ejemplo n.º 13
0
 def test_validinteval(self):
     
     """unit tests for the interval constructor
     Test the creation of valid inputs to the Interval constructor."""
     
     validinterval = ['[1,2]', '(2,5)', '[2,4)','(5,7]', #intervals with [], [), (], ()
                      '[-2,-1]', '[-4,-2)', '(-5,-2]', '(-6, -2)', # intervals with neggtive numbers
                      '[2,2]', '[-1,-1]',
                      '[  0,   1]', '[1,  2]', '  [ 2,  3 ]   ',#intervals with whitespace
                      '[00, +11]' #intervals leading with 0
                      ]     
     intervals = [interval(item) for item in validinterval]
     
     self.assertEqual(len(validinterval), len(intervals))  
Ejemplo n.º 14
0
    def test_mergeOverlapping(self):
        """unit tests for mergeOverlapping function
        test function mergeOverlapping could merge correctly"""

        intlist = [
            interval('[1,2]'),
            interval('[2,3]'),
            interval('[-1,2]'),
            interval('(4, 8]'),
            interval('[10,20]')
        ]

        #expected return list of intervals after calling mergeOverlapping function
        mergelist = [
            interval('[-1,3]'),
            interval('(4, 8]'),
            interval('[10,20]')
        ]

        self.assertEqual(mergeOverlapping(intlist), mergelist)
Ejemplo n.º 15
0
    def test_validinteval(self):
        """unit tests for the interval constructor
        Test the creation of valid inputs to the Interval constructor."""

        validinterval = [
            '[1,2]',
            '(2,5)',
            '[2,4)',
            '(5,7]',  #intervals with [], [), (], ()
            '[-2,-1]',
            '[-4,-2)',
            '(-5,-2]',
            '(-6, -2)',  # intervals with neggtive numbers
            '[2,2]',
            '[-1,-1]',
            '[  0,   1]',
            '[1,  2]',
            '  [ 2,  3 ]   ',  #intervals with whitespace
            '[00, +11]'  #intervals leading with 0
        ]
        intervals = [interval(item) for item in validinterval]

        self.assertEqual(len(validinterval), len(intervals))