Exemple #1
0
 def test_past_vacation(self):
     road = [
         Brick(0, 0, None),
         Brick(7, None, 3),
     ]
     vacay = VacationSegment(-10, -5, 0, None)
     self.assertEquals(apply_vacation_segment(road, vacay), [
         Brick(0, 0, None),
         Brick(7, None, 3),
     ])
Exemple #2
0
 def test_idempotency(self):
     road = [
         Brick(0, 0, None),
         Brick(5, None, 3),
         Brick(10, None, 0),
         Brick(20, None, 1),
         Brick(31, None, 5),
     ]
     vacay = VacationSegment(5, 10, 0, None)
     self.assertEquals(apply_vacation_segment(road, vacay), road)
Exemple #3
0
 def test_future_vacation(self):
     road = [
         Brick(0, 0, None),
         Brick(7, None, 3),
     ]
     vacay = VacationSegment(50, 100, 0, None)
     self.assertEquals(apply_vacation_segment(road, vacay), [
         Brick(0, 0, None),
         Brick(7, None, 3),
     ])
Exemple #4
0
 def test_future_vacation(self):
     road = [
         Brick(0, 0, None),
         Brick(7, 7, None),
     ]
     vacay = VacationSegment(50, 100, 0,
                             config_pb2.VacationPattern.DISCARD_TOTALS)
     self.assertEquals(apply_vacation_segment(road, vacay), [
         Brick(0, 0, None),
         Brick(7, 7, None),
     ])
Exemple #5
0
 def test_future_vacation(self):
     road = [
         Brick(0, 0, None),
         Brick(7, 7, None),
     ]
     vacay = VacationSegment(
         50, 100, 0, config_pb2.VacationPattern.REACH_TOTAL_AFTER_VACATION)
     self.assertEquals(apply_vacation_segment(road, vacay), [
         Brick(0, 0, None),
         Brick(7, 7, None),
     ])
Exemple #6
0
 def test_past_vacation(self):
     road = [
         Brick(0, 0, None),
         Brick(7, 7, None),
     ]
     vacay = VacationSegment(
         -10, -5, 0, config_pb2.VacationPattern.REACH_TOTAL_BEFORE_VACATION)
     self.assertEquals(apply_vacation_segment(road, vacay), [
         Brick(0, 0, None),
         Brick(7, 7, None),
     ])
Exemple #7
0
 def test_more_basics(self):
     road = [
         Brick(100, 55, None),
         Brick(107, None, 3),
         Brick(120, None, 1),
         Brick(130, None, 5),
         Brick(131, None, 5),
     ]
     vacay = VacationSegment(105, 110, 0, None)
     self.assertEquals(apply_vacation_segment(road, vacay), [
         Brick(100, 55, None),
         Brick(105, None, 3),
         Brick(110, None, 0),
         Brick(120, None, 1),
         Brick(131, None, 5),
     ])
Exemple #8
0
 def test_non_zero_rate(self):
     road = [
         Brick(100, 55, None),
         Brick(107, None, 3),
         Brick(120, None, 1),
         Brick(130, None, 5),
         Brick(131, None, 5),
     ]
     vacay = VacationSegment(105, 110, 999, None)
     self.assertEquals(apply_vacation_segment(road, vacay), [
         Brick(100, 55, None),
         Brick(105, None, 3),
         Brick(110, None, 999),
         Brick(120, None, 1),
         Brick(131, None, 5),
     ])
Exemple #9
0
 def test_basics(self):
     road = [
         Brick(0, 0, None),
         Brick(7, None, 3),
         Brick(20, None, 1),
         Brick(30, None, 5),
         Brick(31, None, 5),
     ]
     vacay = VacationSegment(5, 10, 0, None)
     self.assertEquals(apply_vacation_segment(road, vacay), [
         Brick(0, 0, None),
         Brick(5, None, 3),
         Brick(10, None, 0),
         Brick(20, None, 1),
         Brick(31, None, 5),
     ])
Exemple #10
0
 def test_basics(self):
     road = [
         Brick(0, 0, None),
         Brick(3, 3, None),
         Brick(20, 20, None),
         Brick(30, 40, None),
     ]
     vacay = VacationSegment(
         5, 10, 0, config_pb2.VacationPattern.REACH_TOTAL_AFTER_VACATION)
     self.assertEquals(apply_vacation_segment(road, vacay), [
         Brick(0, 0, None),
         Brick(3, 3, None),
         Brick(5, 5.0, None),
         Brick(10, None, 0),
         Brick(20, 20, None),
         Brick(30, 40, None),
     ])
Exemple #11
0
 def test_non_zero_rate(self):
     road = [
         Brick(100, 55, None),
         Brick(103, 61, None),
         Brick(120, 95, None),
         Brick(130, 115, None),
     ]
     vacay = VacationSegment(105, 110, 999,
                             config_pb2.VacationPattern.DISCARD_TOTALS)
     self.assertEquals(apply_vacation_segment(road, vacay), [
         Brick(100, 55, None),
         Brick(103, 61, None),
         Brick(105, None, 2.0),
         Brick(110, None, 999),
         Brick(120, None, 2.0),
         Brick(130, 115, None),
     ])
Exemple #12
0
 def test_basics(self):
     road = [
         Brick(0, 0, None),
         Brick(3, 3, None),
         Brick(20, 20, None),
         Brick(30, 40, None),
     ]
     vacay = VacationSegment(5, 10, 0,
                             config_pb2.VacationPattern.DISCARD_TOTALS)
     self.assertEquals(apply_vacation_segment(road, vacay), [
         Brick(0, 0, None),
         Brick(3, 3, None),
         Brick(5, None, 1.0),
         Brick(10, None, 0),
         Brick(20, None, 1.0),
         Brick(30, 40, None),
     ])
Exemple #13
0
 def test_non_zero_rate(self):
     road = [
         Brick(100, 55, None),
         Brick(103, 61, None),
         Brick(120, 95, None),
         Brick(130, 115, None),
     ]
     vacay = VacationSegment(
         105, 110, 999,
         config_pb2.VacationPattern.REACH_TOTAL_AFTER_VACATION)
     self.assertEquals(apply_vacation_segment(road, vacay), [
         Brick(100, 55, None),
         Brick(103, 61, None),
         Brick(105, 65.0, None),
         Brick(110, None, 999),
         Brick(120, 95, None),
         Brick(130, 115, None),
     ])
Exemple #14
0
 def test_more_basics(self):
     self.maxDiff = 100000
     road = [
         Brick(100, 55, None),
         Brick(103, 61, None),
         Brick(120, 95, None),
         Brick(130, 115, None),
     ]
     vacay = VacationSegment(
         105, 110, 0, config_pb2.VacationPattern.REACH_TOTAL_AFTER_VACATION)
     self.assertEquals(apply_vacation_segment(road, vacay), [
         Brick(100, 55, None),
         Brick(103, 61, None),
         Brick(105, 65.0, None),
         Brick(110, None, 0),
         Brick(120, 95, None),
         Brick(130, 115, None),
     ])
Exemple #15
0
 def test_past_and_future_vacation(self):
     road = [
         Brick(0, 0, None),
         Brick(7, None, 3),
         Brick(20, 20, None),
         Brick(30, None, 5),
         Brick(31, None, 5),
     ]
     vacay = VacationSegment(
         -50, 100, 0, config_pb2.VacationPattern.REACH_TOTAL_AFTER_VACATION)
     self.assertEquals(apply_vacation_segment(road, vacay), [
         Brick(0, 0, None),
         Brick(31, None, 0),
         Brick(32, 20, None),
     ])
Exemple #16
0
 def test_past_and_future_vacation(self):
     road = [
         Brick(0, 0, None),
         Brick(7, None, 3),
         Brick(20, None, 1),
         Brick(30, None, 5),
         Brick(31, None, 5),
     ]
     vacay = VacationSegment(-50, 100, 0, None)
     self.assertEquals(apply_vacation_segment(road, vacay), [
         Brick(0, 0, None),
         Brick(31, None, 0),
     ])
Exemple #17
0
 def test_vacation_into_the_future(self):
     road = [
         Brick(0, 0, None),
         Brick(7, None, 3),
         Brick(20, 20, None),
     ]
     vacay = VacationSegment(
         5, 25, 0, config_pb2.VacationPattern.REACH_TOTAL_AFTER_VACATION)
     self.assertEquals(apply_vacation_segment(road, vacay), [
         Brick(0, 0, None),
         Brick(5, 5.0, None),
         Brick(20, None, 0),
         Brick(21, 20, None),
     ])
Exemple #18
0
 def test_idempotency(self):
     road = [
         Brick(0, 0, None),
         Brick(3, 3, None),
         Brick(5, 10.0, None),
         Brick(10, None, 0),
         Brick(20, 20, None),
         Brick(30, 40, None),
     ]
     vacay = VacationSegment(
         5, 10, 0, config_pb2.VacationPattern.REACH_TOTAL_BEFORE_VACATION)
     self.assertEquals(apply_vacation_segment(road, vacay), road)
Exemple #19
0
 def test_minimalist_road(self):
     road = [
         Brick(0, 0, None),
         Brick(20, None, 1),
     ]
     vacay = VacationSegment(5, 10, 0, None)
     self.assertEquals(apply_vacation_segment(road, vacay), [
         Brick(0, 0, None),
         Brick(5, None, 1),
         Brick(10, None, 0),
         Brick(20, None, 1),
     ])
Exemple #20
0
 def test_vacation_into_the_future(self):
     road = [
         Brick(0, 0, None),
         Brick(7, None, 3),
         Brick(20, None, 1),
     ]
     vacay = VacationSegment(5, 25, 0, None)
     self.assertEquals(apply_vacation_segment(road, vacay), [
         Brick(0, 0, None),
         Brick(5, None, 3),
         Brick(20, None, 0),
     ])
Exemple #21
0
 def test_minimalist_road(self):
     road = [
         Brick(0, 0, None),
         Brick(20, 20, None),
     ]
     vacay = VacationSegment(
         5, 10, 0, config_pb2.VacationPattern.REACH_TOTAL_BEFORE_VACATION)
     self.assertEquals(apply_vacation_segment(road, vacay), [
         Brick(0, 0, None),
         Brick(5, 10, None),
         Brick(10, None, 0),
         Brick(20, 20, None),
     ])
Exemple #22
0
 def test_vacation_into_the_future(self):
     road = [
         Brick(0, 0, None),
         Brick(7, None, 3),
         Brick(20, 20, None),
     ]
     vacay = VacationSegment(5, 25, 0,
                             config_pb2.VacationPattern.DISCARD_TOTALS)
     self.assertEquals(apply_vacation_segment(road, vacay), [
         Brick(0, 0, None),
         Brick(5, None, 1.0),
         Brick(20, None, 0),
     ])
Exemple #23
0
 def test_interior_rates(self):
     road = [
         Brick(0, 0, None),
         Brick(7, None, 3),
         Brick(8, None, 500),
         Brick(9, None, -999),
         Brick(10, None, 500),
         Brick(20, None, 1),
         Brick(30, None, 5),
         Brick(31, None, 5),
     ]
     vacay = VacationSegment(5, 10, 0, None)
     self.assertEquals(apply_vacation_segment(road, vacay), [
         Brick(0, 0, None),
         Brick(5, None, 3),
         Brick(10, None, 0),
         Brick(20, None, 1),
         Brick(31, None, 5),
     ])
Exemple #24
0
 def test_interior_rates(self):
     self.maxDiff = 100000
     road = [
         Brick(0, 0, None),
         Brick(3, 3, None),
         Brick(8, None, 500),
         Brick(9, None, -999),
         Brick(10, None, 800),
         Brick(20, 20, None),
         Brick(30, 40, None),
     ]
     vacay = VacationSegment(
         5, 10, 0, config_pb2.VacationPattern.REACH_TOTAL_AFTER_VACATION)
     self.assertEquals(apply_vacation_segment(road, vacay), [
         Brick(0, 0, None),
         Brick(3, 3, None),
         Brick(5, 5.0, None),
         Brick(10, None, 0),
         Brick(20, 20, None),
         Brick(30, 40, None),
     ])