Ejemplo n.º 1
0
 def test_extend_weekend_new_label(self):
     amds = {'17 Dec 2017': 5}
     result = extend_weekends(amds, how='nearest', label='a')
     assert result == {
         get_timestamp('17 Dec 2017'): 5,
         get_timestamp('18 Dec 2017'): 'a'
     }
Ejemplo n.º 2
0
 def test_extend_weekend_weekday_already_off2(self):
     amds = {'17 Dec 2017': 5, '15 Dec 2017': 5}
     result = extend_weekends(amds, how='previous')
     assert result == {
         get_timestamp('14 Dec 2017'): 5,
         get_timestamp('15 Dec 2017'): 5,
         get_timestamp('17 Dec 2017'): 5
     }
Ejemplo n.º 3
0
 def test_extend_weekend_weekday_already_off1(self):
     amds = {'17 Dec 2017': 5, '18 Dec 2017': 5}
     result = extend_weekends(amds, how='nearest')
     assert result == {
         get_timestamp('17 Dec 2017'): 5,
         get_timestamp('18 Dec 2017'): 5,
         get_timestamp('19 Dec 2017'): 5
     }
Ejemplo n.º 4
0
 def test_nth_weekday_shift(self):
     date_tuples_2017 = {
         (12, 5, 1, 0): get_timestamp('01 Dec 2017'),
         (12, 5, 1, 2): get_timestamp('03 Dec 2017'),
         (12, 5, 1, -2): get_timestamp('29 Nov 2017')
     }
     result = nth_weekday_of_month(2017, date_tuples_2017.keys())
     valid_dates = [x for x in date_tuples_2017.values() if x is not None]
     assert sorted(result.keys()) == sorted(valid_dates)
     assert list(result.values()).count(0) == len(result)
Ejemplo n.º 5
0
 def test_direct_workshift_constructor_with_bad_loc(self):
     clnd = tb_12_days()
     #with pytest.raises(KeyError):
     get_timestamp(Workshift(clnd, -1, clnd.default_schedule)
                          ) ==  datetime.datetime(2017, 1, 12, 0, 0, 0)
     with pytest.raises(OutOfBoundsError):
         Workshift(clnd, 500000000, clnd.default_schedule)
     with pytest.raises(TypeError):
         Workshift(clnd, 10.5, clnd.default_schedule)
     with pytest.raises(TypeError):
         Workshift(clnd, '05 Jan 2017', clnd.default_schedule)
Ejemplo n.º 6
0
 def test_rollforward_on_0(self):
     clnd = tb_12_days()
     ws = clnd('31 Dec 2016')
     new_ws_list = []
     for duty in ('on', 'off', 'same', 'alt', 'any'):
         new_ws_list.append(ws.rollforward(duty=duty)._loc)
     assert new_ws_list == [0, 1, 0, 1, 0]
     assert ws.rollforward(duty='off').start_time == get_timestamp('02 Jan '
                                                                   '2017')
     ws1 = clnd('01 Jan 2017')
     assert ws1.rollforward(duty='off').start_time == get_timestamp(
         '02 Jan '
         '2017')
Ejemplo n.º 7
0
 def test_days_splitby_annually_at_specific_date(self):
     f = _Frame(base_unit_freq='D', start='01 Jan 2015', end='31 Dec 2017')
     # set mark on Apr 11
     result = f.partition_with_marker(
         _Span(0,
               len(f) - 1), Marker('A', at=[{
                   'months': 3,
                   'days': 10
               }]))
     assert len(result) == 4
     assert assert_span(result[0], 0, 99, 365 - 100, 0)  #01.01.15 -
     # 10.04.15
     assert assert_span(result[1], 100, 100 + 365, 0, 0)  #11.04.15-10.04.16
     # 2016 leap year
     assert assert_span(result[2], 466, 466 + 364, 0, 0)  #11.04.16=10.04.17
     assert assert_span(result[3], 831, 365 + 366 + 365 - 1, 0,
                        100)  # 11.04.17=31.12.17
     assert f[result[0].last].start_time == get_timestamp('10 Apr 2015')
     assert f[result[1].last].start_time == get_timestamp('10 Apr 2016')
     assert f[result[2].last].start_time == get_timestamp('10 Apr 2017')
Ejemplo n.º 8
0
 def test_nth_weekday_positive(self):
     date_tuples_2017 = {
         (12, 5, 1): get_timestamp('01 Dec 2017'),
         (12, 7, 1): get_timestamp('03 Dec 2017'),
         (12, 3, 1): get_timestamp('06 Dec 2017'),
         (12, 3, 4): get_timestamp('27 Dec 2017'),
         (12, 3, 5): None,
         (12, 5, 5): get_timestamp('29 Dec 2017'),
         (12, 7, 5): get_timestamp('31 Dec 2017'),
         (5, 1, 1): get_timestamp('01 May 2017'),
         (5, 1, 5): get_timestamp('29 May 2017'),
     }
     result = nth_weekday_of_month(2017, date_tuples_2017.keys(), label=5)
     valid_dates = [x for x in date_tuples_2017.values() if x is not None]
     assert sorted(result.keys()) == sorted(valid_dates)
     assert list(result.values()).count(5) == len(result)
Ejemplo n.º 9
0
    def test_from_easter(self):
        assert from_easter(2017, [0, 1, -2]) == {
            get_timestamp('16 Apr 2017'): 0,
            get_timestamp('17 Apr 2017'): 0,
            get_timestamp('14 Apr 2017'): 0
        }

        assert from_easter(2017, [1], easter_type='orthodox', label=5) == {
            get_timestamp('17 Apr 2017'): 5
        }
        assert from_easter(2000, [0]) == {get_timestamp('23 Apr 2000'): 0}
        assert from_easter(2000, [0], easter_type='orthodox') == {
            get_timestamp('30 Apr 2000'): 0
        }
        assert from_easter(2000, []) == {}
Ejemplo n.º 10
0
 def test_extend_weekend_strange_weekend(self):
     amds = {'16 Dec 2017': 5}
     result = extend_weekends(amds, how='nearest', weekend=[5])
     # if there is a tie, 'nearest' == 'next'
     assert result == {
         get_timestamp('16 Dec 2017'): 5,
         get_timestamp('17 Dec 2017'): 5
     }
     result = extend_weekends(amds, how='next', weekend=[5, 6, 0])
     assert result == {
         get_timestamp('16 Dec 2017'): 5,
         get_timestamp('19 Dec 2017'): 5
     }
     result = extend_weekends(amds, how='previous', weekend=[3, 4, 5])
     assert result == {
         get_timestamp('13 Dec 2017'): 5,
         get_timestamp('16 Dec 2017'): 5
     }
     result = extend_weekends(amds, weekend=[])
     assert result == {get_timestamp('16 Dec 2017'): 5}
Ejemplo n.º 11
0
 def test_extend_weekend_sunday(self):
     amds = {'17 Dec 2017': 5}
     result = extend_weekends(amds, how='nearest')
     assert result == {
         get_timestamp('17 Dec 2017'): 5,
         get_timestamp('18 Dec 2017'): 5
     }
     result = extend_weekends(amds, how='previous')
     assert result == {
         get_timestamp('17 Dec 2017'): 5,
         get_timestamp('15 Dec 2017'): 5
     }
     result = extend_weekends(amds, how='next')
     assert result == {
         get_timestamp('17 Dec 2017'): 5,
         get_timestamp('18 Dec 2017'): 5
     }
Ejemplo n.º 12
0
 def test_extend_weekend_two_holidays_diff_labels(self):
     amds = {'16 Dec 2017': 3, '17 Dec 2017': 5}
     result = extend_weekends(amds, how='nearest')
     assert result == {
         get_timestamp('15 Dec 2017'): 3,
         get_timestamp('16 Dec 2017'): 3,
         get_timestamp('17 Dec 2017'): 5,
         get_timestamp('18 Dec 2017'): 5
     }
     result = extend_weekends(amds, how='previous')
     assert result == {
         get_timestamp('14 Dec 2017'): 5,
         get_timestamp('15 Dec 2017'): 3,
         get_timestamp('16 Dec 2017'): 3,
         get_timestamp('17 Dec 2017'): 5,
     }
     result = extend_weekends(amds, how='next')
     assert result == {
         get_timestamp('16 Dec 2017'): 3,
         get_timestamp('17 Dec 2017'): 5,
         get_timestamp('18 Dec 2017'): 3,
         get_timestamp('19 Dec 2017'): 5
     }
Ejemplo n.º 13
0
 def test_extend_weekend_two_holidays_new_label(self):
     amds = {'16 Dec 2017': 5, '17 Dec 2017': 5}
     result = extend_weekends(amds, how='nearest', label=0)
     assert result == {
         get_timestamp('15 Dec 2017'): 0,
         get_timestamp('16 Dec 2017'): 5,
         get_timestamp('17 Dec 2017'): 5,
         get_timestamp('18 Dec 2017'): 0
     }
     result = extend_weekends(amds, how='previous', label=0)
     assert result == {
         get_timestamp('14 Dec 2017'): 0,
         get_timestamp('15 Dec 2017'): 0,
         get_timestamp('16 Dec 2017'): 5,
         get_timestamp('17 Dec 2017'): 5,
     }
     result = extend_weekends(amds, how='next', label=0)
     assert result == {
         get_timestamp('16 Dec 2017'): 5,
         get_timestamp('17 Dec 2017'): 5,
         get_timestamp('18 Dec 2017'): 0,
         get_timestamp('19 Dec 2017'): 0
     }
Ejemplo n.º 14
0
 def test_extend_weekend_weekday(self):
     amds = {'15 Dec 2017': 5}
     result = extend_weekends(amds, how='nearest')
     assert result == {get_timestamp('15 Dec 2017'): 5}
Ejemplo n.º 15
0
 def test_rollback_trivial_0_to_next(self):
     clnd = tb_12_days()
     ws = clnd('02 Jan 2017')
     new_ws = ws.rollback()
     assert new_ws._loc == 0
     assert new_ws.start_time == get_timestamp('31 Dec 2016')