Example #1
0
 def test_interval_nth_no_off_duty(self):
     clnd = tb_12_days()
     ivl = Interval(clnd, (4, 4), clnd.default_schedule)
     with pytest.raises(OutOfBoundsError):
         ivl.first(duty='off')
     with pytest.raises(OutOfBoundsError):
         ivl.last(duty='off')
     with pytest.raises(OutOfBoundsError):
         ivl.nth(0, duty='off')
Example #2
0
 def test_interval_nth_any(self):
     clnd = tb_12_days()
     ivl = Interval(clnd, (2, 10), clnd.default_schedule)
     wsf = ivl.first(duty='any')
     wsl = ivl.last(duty='any')
     ws2 = ivl.nth(1, duty='any')
     wsneg = ivl.nth(-2, duty='any')
     assert isinstance(wsf, Workshift)
     assert isinstance(wsl, Workshift)
     assert isinstance(ws2, Workshift)
     assert isinstance(wsneg, Workshift)
     assert wsf._loc == 2
     assert wsl._loc == 10
     assert ws2._loc == 3
     assert wsneg._loc == 9
Example #3
0
 def test_interval_nth_on(self):
     clnd = tb_12_days()
     for locs in ((2, 11), (4, 11), (2, 10), (4, 10)):
         ivl = Interval(clnd, locs, clnd.default_schedule)
         wsf = ivl.first()
         wsl = ivl.last()
         ws2 = ivl.nth(1)
         wsneg = ivl.nth(-2)
         assert isinstance(wsf, Workshift)
         assert isinstance(wsl, Workshift)
         assert isinstance(ws2, Workshift)
         assert isinstance(wsneg, Workshift)
         assert wsf._loc == 4
         assert wsl._loc == 10
         assert ws2._loc == 7
         assert wsneg._loc == 7
Example #4
0
 def test_interval_nth_off(self):
     clnd = tb_12_days()
     for locs in ((1, 10), (2, 10), (1, 9), (2, 9)):
         ivl = Interval(clnd, locs, clnd.default_schedule)
         wsf = ivl.first(duty='off')
         wsl = ivl.last(duty='off')
         ws2 = ivl.nth(1, duty='off')
         wsneg = ivl.nth(-2, duty='off')
         assert isinstance(wsf, Workshift)
         assert isinstance(wsl, Workshift)
         assert isinstance(ws2, Workshift)
         assert isinstance(wsneg, Workshift)
         assert wsf._loc == 2
         assert wsl._loc == 9
         assert ws2._loc == 3
         assert wsneg._loc == 8
Example #5
0
 def test_interval_nth_single(self):
     clnd = tb_12_days()
     for loc, duty in ((0, 'off'), (3, 'any'), (4, 'on'), (7, 'any'),
                       (12, 'off')):
         ivl = Interval(clnd, (loc, loc), clnd.default_schedule)
         wsf = ivl.first(duty=duty)
         wsl = ivl.last(duty=duty)
         ws2 = ivl.nth(0, duty=duty)
         assert isinstance(wsf, Workshift)
         assert isinstance(wsl, Workshift)
         assert isinstance(ws2, Workshift)
         assert wsf._loc == loc
         assert wsl._loc == loc
         assert ws2._loc == loc
Example #6
0
 def test_interval_nth_OOB(self):
     clnd = tb_12_days()
     ivl = Interval(clnd, (2, 8), clnd.default_schedule)
     with pytest.raises(OutOfBoundsError):
         ivl.nth(2)
     with pytest.raises(OutOfBoundsError):
         ivl.nth(5, duty='off')
     with pytest.raises(OutOfBoundsError):
         ivl.nth(7, duty='any')