示例#1
0
 def test_span_minus_non_overlapping_gives_span(self):
     '''
     -------------------+++++++++++++++++++
     ++++++++++++++++++--------------------
     -------------------+++++++++++++++++++
     '''
     self.assertEqual(span_utils.difference([20, 40], [0, 19]), [[20, 40]])
     '''
     +++++++++++++++++++-------------------
     --------------------++++++++++++++++++
     -------------------+++++++++++++++++++
     '''
     self.assertEqual(span_utils.difference([0, 20], [21, 40]), [[0, 20]])
示例#2
0
 def test_right_overlapping_spans_have_one_different_chunk(self):
     '''
     ----------++++++++++++++++++++--------
     ------------------++++++++++++++++++++
     ----------++++++++--------------------
     '''
     self.assertEqual(span_utils.difference([10, 30], [20, 40]), [[10, 20]])
示例#3
0
 def test_span_minus_centered_smaller_span_gives_two_different_chunks(self):
     '''
     ++++++++++++++++++++++++++++++++++++++
     ---------+++++++++++++++++++----------
     +++++++++-------------------++++++++++
     '''
     self.assertEqual(span_utils.difference([0, 40], [20, 30]),
                      [[0, 20], [30, 40]])
示例#4
0
 def __sub__(self, other):
     if type(other) is timedelta:
         return span_utils.shift(self, -other)
     else:
         return span_utils.difference(self, other)
示例#5
0
 def test_two_identical_spans_have_no_difference(self):
     self.assertEqual(span_utils.difference([1, 2], [1, 2]), [])
示例#6
0
 def test_invalid_span_raises(self, span1, span2):
     with self.assertRaises(TypeError):
         span_utils.difference(span1, span2)