def test_perf1(self):
     # generate 10 thousand random intervals
     seed(10)
     input = map(generate, xrange(N))
     self._curr_duration()
     #input = [ [0,50],[45,80],[70,90], [100,150],[120,180], [190,210],[200,250]]
     print len(input)
     result = merge_intervals(input,False)
     print len(result)
     self._curr_duration()
     duration = calculate_duration_in_period(result)
     print duration
     self._curr_duration()
    def test_perf2(self):
        # generate 10 thousand random intervals
        seed(10)
        input1 = map(generate, xrange(N))
        self._curr_duration()
        seed(2000)
        input2 = map(generate, xrange(N))
        self._curr_duration()

        print "input1 interval size: %s" % len(input1)
        print "input1 interval size: %s" % len(input2)
        result1 = merge_intervals(input1,False)
        print "merged sorted interval1 size: %s" % len(result1)
        self._curr_duration()
        duration = calculate_duration_in_period(result1)
        print "result 1 total duration: %s"  % duration
        result2 = merge_intervals(input2,False)
        print "merged sorted interval2 size: %s" % len(result2)
        self._curr_duration()
        duration = calculate_duration_in_period(result2)
        print "result 2 total duration: %s"  % duration
        self._curr_duration()
        substr_result = substract_intervals(input1,input2)
        print "substruct input1-input2: %s" % len(substr_result)
        self._curr_duration()
        print "substruct duration %s" % calculate_duration_in_period(substr_result)
        self._curr_duration()
        substr_result_fast = substract_intervals_itree(input1,input2)
        self._curr_duration()
        print "substract_intervals_itree input1-input2: %s" % len(substr_result)
        print "substract_intervals_itree duration %s" % calculate_duration_in_period(substr_result_fast)
        self.assertEqual(substr_result_fast,substr_result)

        self.assertEqual(calculate_duration_in_period(substr_result_fast),calculate_duration_in_period(substr_result))




        #duration = calculate_duration_in_period(intersect)
        #print duration
        self._curr_duration()