Пример #1
0
 def test_period_ordinal_start_values(self):
     # information for 1.1.1970
     self.assertEqual(0, period_ordinal(1970, 1, 1, 0, 0, 0, 0, 0, get_freq("Y")))
     self.assertEqual(0, period_ordinal(1970, 1, 1, 0, 0, 0, 0, 0, get_freq("M")))
     self.assertEqual(1, period_ordinal(1970, 1, 1, 0, 0, 0, 0, 0, get_freq("W")))
     self.assertEqual(0, period_ordinal(1970, 1, 1, 0, 0, 0, 0, 0, get_freq("D")))
     self.assertEqual(0, period_ordinal(1970, 1, 1, 0, 0, 0, 0, 0, get_freq("B")))
Пример #2
0
 def test_period_ordinal_week(self):
     assert period_ordinal(1970, 1, 4, 0, 0, 0, 0, 0, get_freq('W')) == 1
     assert period_ordinal(1970, 1, 5, 0, 0, 0, 0, 0, get_freq('W')) == 2
     assert period_ordinal(2013, 10, 6, 0, 0, 0, 0, 0,
                           get_freq('W')) == 2284
     assert period_ordinal(2013, 10, 7, 0, 0, 0, 0, 0,
                           get_freq('W')) == 2285
Пример #3
0
 def test_period_ordinal_start_values(self):
     # information for 1.1.1970
     self.assertEqual(0, period_ordinal(1970, 1, 1, 0, 0, 0, 0, 0, get_freq('Y')))
     self.assertEqual(0, period_ordinal(1970, 1, 1, 0, 0, 0, 0, 0, get_freq('M')))
     self.assertEqual(1, period_ordinal(1970, 1, 1, 0, 0, 0, 0, 0, get_freq('W')))
     self.assertEqual(0, period_ordinal(1970, 1, 1, 0, 0, 0, 0, 0, get_freq('D')))
     self.assertEqual(0, period_ordinal(1970, 1, 1, 0, 0, 0, 0, 0, get_freq('B')))
Пример #4
0
 def test_period_ordinal_week(self):
     assert period_ordinal(1970, 1, 4, 0, 0, 0, 0, 0, get_freq('W')) == 1
     assert period_ordinal(1970, 1, 5, 0, 0, 0, 0, 0, get_freq('W')) == 2
     assert period_ordinal(2013, 10, 6, 0,
                           0, 0, 0, 0, get_freq('W')) == 2284
     assert period_ordinal(2013, 10, 7, 0,
                           0, 0, 0, 0, get_freq('W')) == 2285
Пример #5
0
 def test_period_ordinal_start_values(self):
     # information for 1.1.1970
     assert period_ordinal(1970, 1, 1, 0, 0, 0, 0, 0, get_freq('A')) == 0
     assert period_ordinal(1970, 1, 1, 0, 0, 0, 0, 0, get_freq('M')) == 0
     assert period_ordinal(1970, 1, 1, 0, 0, 0, 0, 0, get_freq('W')) == 1
     assert period_ordinal(1970, 1, 1, 0, 0, 0, 0, 0, get_freq('D')) == 0
     assert period_ordinal(1970, 1, 1, 0, 0, 0, 0, 0, get_freq('B')) == 0
Пример #6
0
 def test_period_ordinal_start_values(self):
     # information for 1.1.1970
     assert period_ordinal(1970, 1, 1, 0, 0, 0, 0, 0, get_freq('A')) == 0
     assert period_ordinal(1970, 1, 1, 0, 0, 0, 0, 0, get_freq('M')) == 0
     assert period_ordinal(1970, 1, 1, 0, 0, 0, 0, 0, get_freq('W')) == 1
     assert period_ordinal(1970, 1, 1, 0, 0, 0, 0, 0, get_freq('D')) == 0
     assert period_ordinal(1970, 1, 1, 0, 0, 0, 0, 0, get_freq('B')) == 0
Пример #7
0
 def test_period_ordinal_start_values(self):
     # information for 1.1.1970
     self.assertEqual(0, period_ordinal(1970, 1, 1, 0, 0, 0, 0, 0, get_freq('Y')))
     self.assertEqual(0, period_ordinal(1970, 1, 1, 0, 0, 0, 0, 0, get_freq('M')))
     self.assertEqual(1, period_ordinal(1970, 1, 1, 0, 0, 0, 0, 0, get_freq('W')))
     self.assertEqual(0, period_ordinal(1970, 1, 1, 0, 0, 0, 0, 0, get_freq('D')))
     self.assertEqual(0, period_ordinal(1970, 1, 1, 0, 0, 0, 0, 0, get_freq('B')))
Пример #8
0
    def test_period_ordinal_week(self):
        self.assertEqual(1, period_ordinal(1970, 1, 4, 0, 0, 0, 0, 0,
                                           get_freq('W')))
        self.assertEqual(2, period_ordinal(1970, 1, 5, 0, 0, 0, 0, 0,
                                           get_freq('W')))

        self.assertEqual(2284, period_ordinal(2013, 10, 6, 0, 0, 0, 0, 0,
                                              get_freq('W')))
        self.assertEqual(2285, period_ordinal(2013, 10, 7, 0, 0, 0, 0, 0,
                                              get_freq('W')))
Пример #9
0
    def test_period_ordinal_week(self):
        self.assertEqual(
            1, period_ordinal(1970, 1, 4, 0, 0, 0, 0, 0, get_freq('W')))
        self.assertEqual(
            2, period_ordinal(1970, 1, 5, 0, 0, 0, 0, 0, get_freq('W')))

        self.assertEqual(
            2284, period_ordinal(2013, 10, 6, 0, 0, 0, 0, 0, get_freq('W')))
        self.assertEqual(
            2285, period_ordinal(2013, 10, 7, 0, 0, 0, 0, 0, get_freq('W')))
Пример #10
0
def _use_dynamic_x(ax, data):
    freq = _get_index_freq(data)
    ax_freq = _get_ax_freq(ax)

    if freq is None:  # convert irregular if axes has freq info
        freq = ax_freq
    else:  # do not use tsplot if irregular was plotted first
        if (ax_freq is None) and (len(ax.get_lines()) > 0):
            return False

    if freq is None:
        return False

    if isinstance(freq, DateOffset):
        freq = freq.rule_code
    else:
        freq = frequencies.get_base_alias(freq)
    freq = frequencies.get_period_alias(freq)

    if freq is None:
        return False

    # hack this for 0.10.1, creating more technical debt...sigh
    if isinstance(data.index, DatetimeIndex):
        base = frequencies.get_freq(freq)
        x = data.index
        if (base <= frequencies.FreqGroup.FR_DAY):
            return x[:1].is_normalized
        return Period(x[0], freq).to_timestamp(tz=x.tz) == x[0]
    return True
Пример #11
0
def _use_dynamic_x(ax, data):
    freq = _get_index_freq(data)
    ax_freq = _get_ax_freq(ax)

    if freq is None:  # convert irregular if axes has freq info
        freq = ax_freq
    else:  # do not use tsplot if irregular was plotted first
        if (ax_freq is None) and (len(ax.get_lines()) > 0):
            return False

    if freq is None:
        return False

    if isinstance(freq, DateOffset):
        freq = freq.rule_code
    else:
        freq = frequencies.get_base_alias(freq)
    freq = frequencies.get_period_alias(freq)

    if freq is None:
        return False

    # hack this for 0.10.1, creating more technical debt...sigh
    if isinstance(data.index, ABCDatetimeIndex):
        base = frequencies.get_freq(freq)
        x = data.index
        if (base <= frequencies.FreqGroup.FR_DAY):
            return x[:1].is_normalized
        return Period(x[0], freq).to_timestamp(tz=x.tz) == x[0]
    return True
Пример #12
0
 def __init__(self, freq, minor_locator=False, dynamic_mode=True, base=1, quarter=1, month=1, day=1, plot_obj=None):
     if isinstance(freq, basestring):
         freq = frequencies.get_freq(freq)
     self.freq = freq
     self.base = base
     (self.quarter, self.month, self.day) = (quarter, month, day)
     self.isminor = minor_locator
     self.isdynamic = dynamic_mode
     self.offset = 0
     self.plot_obj = plot_obj
     self.finder = get_finder(freq)
Пример #13
0
 def __init__(self, freq, minor_locator=False, dynamic_mode=True,
              base=1, quarter=1, month=1, day=1, plot_obj=None):
     if isinstance(freq, compat.string_types):
         freq = frequencies.get_freq(freq)
     self.freq = freq
     self.base = base
     (self.quarter, self.month, self.day) = (quarter, month, day)
     self.isminor = minor_locator
     self.isdynamic = dynamic_mode
     self.offset = 0
     self.plot_obj = plot_obj
     self.finder = get_finder(freq)
Пример #14
0
 def __init__(self, freq, minor_locator=False, dynamic_mode=True, plot_obj=None):
     if isinstance(freq, basestring):
         freq = frequencies.get_freq(freq)
     self.format = None
     self.freq = freq
     self.locs = []
     self.formatdict = None
     self.isminor = minor_locator
     self.isdynamic = dynamic_mode
     self.offset = 0
     self.plot_obj = plot_obj
     self.finder = get_finder(freq)
Пример #15
0
    def test_freq_code(self):
        assert frequencies.get_freq('A') == 1000
        assert frequencies.get_freq('3A') == 1000
        assert frequencies.get_freq('-1A') == 1000

        assert frequencies.get_freq('Y') == 1000
        assert frequencies.get_freq('3Y') == 1000
        assert frequencies.get_freq('-1Y') == 1000

        assert frequencies.get_freq('W') == 4000
        assert frequencies.get_freq('W-MON') == 4001
        assert frequencies.get_freq('W-FRI') == 4005

        for freqstr, code in compat.iteritems(_period_code_map):
            result = frequencies.get_freq(freqstr)
            assert result == code

            result = resolution.get_freq_group(freqstr)
            assert result == code // 1000 * 1000

            result = resolution.get_freq_group(code)
            assert result == code // 1000 * 1000
Пример #16
0
    def test_freq_code(self):
        assert frequencies.get_freq('A') == 1000
        assert frequencies.get_freq('3A') == 1000
        assert frequencies.get_freq('-1A') == 1000

        assert frequencies.get_freq('Y') == 1000
        assert frequencies.get_freq('3Y') == 1000
        assert frequencies.get_freq('-1Y') == 1000

        assert frequencies.get_freq('W') == 4000
        assert frequencies.get_freq('W-MON') == 4001
        assert frequencies.get_freq('W-FRI') == 4005

        for freqstr, code in compat.iteritems(_period_code_map):
            result = frequencies.get_freq(freqstr)
            assert result == code

            result = resolution.get_freq_group(freqstr)
            assert result == code // 1000 * 1000

            result = resolution.get_freq_group(code)
            assert result == code // 1000 * 1000
Пример #17
0
 def __init__(self, freq, minor_locator=False, dynamic_mode=True,
              plot_obj=None):
     if isinstance(freq, compat.string_types):
         freq = frequencies.get_freq(freq)
     self.format = None
     self.freq = freq
     self.locs = []
     self.formatdict = None
     self.isminor = minor_locator
     self.isdynamic = dynamic_mode
     self.offset = 0
     self.plot_obj = plot_obj
     self.finder = get_finder(freq)
Пример #18
0
def _quarterly_finder(vmin, vmax, freq):
    if isinstance(freq, basestring):
        freq = frequencies.get_freq(freq)

    if frequencies.get_freq_group(freq) != FreqGroup.FR_QTR:
        raise ValueError("Unexpected frequency")
    periodsperyear = 4
    vmin_orig = vmin
    (vmin, vmax) = (int(vmin), int(vmax))
    span = vmax - vmin + 1
    #............................................
    info = np.zeros(span,
                    dtype=[('val', int), ('maj', bool), ('min', bool),
                           ('fmt', '|S8')])
    info['val'] = np.arange(vmin, vmax + 1)
    info['fmt'] = ''
    dates_ = info['val']
    info_maj = info['maj']
    info_fmt = info['fmt']
    year_start = (dates_ % 4 == 0).nonzero()[0]
    #..............
    if span <= 3.5 * periodsperyear:
        info_maj[year_start] = True
        info['min'] = True

        info_fmt[:] = 'Q%q'
        info_fmt[year_start] = 'Q%q\n%F'
        if not has_level_label(year_start, vmin_orig):
            if dates_.size > 1:
                idx = 1
            else:
                idx = 0
            info_fmt[idx] = 'Q%q\n%F'
    #..............
    elif span <= 11 * periodsperyear:
        info_maj[year_start] = True
        info['min'] = True
        info_fmt[year_start] = '%F'
    #..............
    else:
        years = dates_[year_start] // 4 + 1
        nyears = span / periodsperyear
        (min_anndef, maj_anndef) = _get_default_annual_spacing(nyears)
        major_idx = year_start[(years % maj_anndef == 0)]
        info_maj[major_idx] = True
        info['min'][year_start[(years % min_anndef == 0)]] = True
        info_fmt[major_idx] = '%F'
    #..............
    return info
Пример #19
0
def _quarterly_finder(vmin, vmax, freq):
    if isinstance(freq, basestring):
        freq = frequencies.get_freq(freq)

    if frequencies.get_freq_group(freq) != FreqGroup.FR_QTR:
        raise ValueError("Unexpected frequency")
    periodsperyear = 4
    vmin_orig = vmin
    (vmin, vmax) = (int(vmin), int(vmax))
    span = vmax - vmin + 1
    #............................................
    info = np.zeros(span,
                    dtype=[('val', int), ('maj', bool), ('min', bool),
                           ('fmt', '|S8')])
    info['val'] = np.arange(vmin, vmax + 1)
    info['fmt'] = ''
    dates_ = info['val']
    info_maj = info['maj']
    info_fmt = info['fmt']
    year_start = (dates_ % 4 == 1).nonzero()[0]
    #..............
    if span <= 3.5 * periodsperyear:
        info_maj[year_start] = True
        info['min'] = True

        info_fmt[:] = 'Q%q'
        info_fmt[year_start] = 'Q%q\n%F'
        if not has_level_label(year_start, vmin_orig):
            if dates_.size > 1:
                idx = 1
            else:
                idx = 0
            info_fmt[idx] = 'Q%q\n%F'
    #..............
    elif span <= 11 * periodsperyear:
        info_maj[year_start] = True
        info['min'] = True
        info_fmt[year_start] = '%F'
    #..............
    else:
        years = dates_[year_start] // 4 + 1
        nyears = span / periodsperyear
        (min_anndef, maj_anndef) = _get_default_annual_spacing(nyears)
        major_idx = year_start[(years % maj_anndef == 0)]
        info_maj[major_idx] = True
        info['min'][year_start[(years % min_anndef == 0)]] = True
        info_fmt[major_idx] = '%F'
    #..............
    return info
Пример #20
0
def get_finder(freq):
    if isinstance(freq, basestring):
        freq = frequencies.get_freq(freq)
    fgroup = frequencies.get_freq_group(freq)

    if fgroup == FreqGroup.FR_ANN:
        return _annual_finder
    elif fgroup == FreqGroup.FR_QTR:
        return _quarterly_finder
    elif freq == FreqGroup.FR_MTH:
        return _monthly_finder
    elif (freq >= FreqGroup.FR_BUS) or fgroup == FreqGroup.FR_WK:
        return _daily_finder
    else:  # pragma: no cover
        errmsg = "Unsupported frequency: %s" % (freq)
        raise NotImplementedError(errmsg)
Пример #21
0
def get_finder(freq):
    if isinstance(freq, compat.string_types):
        freq = frequencies.get_freq(freq)
    fgroup = frequencies.get_freq_group(freq)

    if fgroup == FreqGroup.FR_ANN:
        return _annual_finder
    elif fgroup == FreqGroup.FR_QTR:
        return _quarterly_finder
    elif freq == FreqGroup.FR_MTH:
        return _monthly_finder
    elif ((freq >= FreqGroup.FR_BUS) or fgroup == FreqGroup.FR_WK):
        return _daily_finder
    else:  # pragma: no cover
        errmsg = "Unsupported frequency: %s" % (freq)
        raise NotImplementedError(errmsg)
Пример #22
0
def get_finder(freq):
    if isinstance(freq, compat.string_types):
        freq = frequencies.get_freq(freq)
    fgroup = resolution.get_freq_group(freq)

    if fgroup == FreqGroup.FR_ANN:
        return _annual_finder
    elif fgroup == FreqGroup.FR_QTR:
        return _quarterly_finder
    elif freq == FreqGroup.FR_MTH:
        return _monthly_finder
    elif ((freq >= FreqGroup.FR_BUS) or fgroup == FreqGroup.FR_WK):
        return _daily_finder
    else:  # pragma: no cover
        errmsg = "Unsupported frequency: {freq}".format(freq=freq)
        raise NotImplementedError(errmsg)
Пример #23
0
 def test_period_ordinal_business_day(self):
     # Thursday
     self.assertEqual(11415, period_ordinal(2013, 10, 3, 0, 0, 0, 0, 0, get_freq('B')))
     # Friday
     self.assertEqual(11416, period_ordinal(2013, 10, 4, 0, 0, 0, 0, 0, get_freq('B')))
     # Saturday
     self.assertEqual(11417, period_ordinal(2013, 10, 5, 0, 0, 0, 0, 0, get_freq('B')))
     # Sunday
     self.assertEqual(11417, period_ordinal(2013, 10, 6, 0, 0, 0, 0, 0, get_freq('B')))
     # Monday
     self.assertEqual(11417, period_ordinal(2013, 10, 7, 0, 0, 0, 0, 0, get_freq('B')))
     # Tuesday
     self.assertEqual(11418, period_ordinal(2013, 10, 8, 0, 0, 0, 0, 0, get_freq('B')))
Пример #24
0
 def test_period_ordinal_business_day(self):
     # Thursday
     self.assertEqual(11415, period_ordinal(2013, 10, 3, 0, 0, 0, 0, 0, get_freq('B')))
     # Friday
     self.assertEqual(11416, period_ordinal(2013, 10, 4, 0, 0, 0, 0, 0, get_freq('B')))
     # Saturday
     self.assertEqual(11417, period_ordinal(2013, 10, 5, 0, 0, 0, 0, 0, get_freq('B')))
     # Sunday
     self.assertEqual(11417, period_ordinal(2013, 10, 6, 0, 0, 0, 0, 0, get_freq('B')))
     # Monday
     self.assertEqual(11417, period_ordinal(2013, 10, 7, 0, 0, 0, 0, 0, get_freq('B')))
     # Tuesday
     self.assertEqual(11418, period_ordinal(2013, 10, 8, 0, 0, 0, 0, 0, get_freq('B')))
Пример #25
0
    def test_freq_code(self):
        self.assertEqual(frequencies.get_freq('A'), 1000)
        self.assertEqual(frequencies.get_freq('3A'), 1000)
        self.assertEqual(frequencies.get_freq('-1A'), 1000)

        self.assertEqual(frequencies.get_freq('W'), 4000)
        self.assertEqual(frequencies.get_freq('W-MON'), 4001)
        self.assertEqual(frequencies.get_freq('W-FRI'), 4005)

        for freqstr, code in compat.iteritems(frequencies._period_code_map):
            result = frequencies.get_freq(freqstr)
            self.assertEqual(result, code)

            result = frequencies.get_freq_group(freqstr)
            self.assertEqual(result, code // 1000 * 1000)

            result = frequencies.get_freq_group(code)
            self.assertEqual(result, code // 1000 * 1000)
Пример #26
0
    def test_freq_code(self):
        self.assertEqual(frequencies.get_freq("A"), 1000)
        self.assertEqual(frequencies.get_freq("3A"), 1000)
        self.assertEqual(frequencies.get_freq("-1A"), 1000)

        self.assertEqual(frequencies.get_freq("W"), 4000)
        self.assertEqual(frequencies.get_freq("W-MON"), 4001)
        self.assertEqual(frequencies.get_freq("W-FRI"), 4005)

        for freqstr, code in compat.iteritems(frequencies._period_code_map):
            result = frequencies.get_freq(freqstr)
            self.assertEqual(result, code)

            result = frequencies.get_freq_group(freqstr)
            self.assertEqual(result, code // 1000 * 1000)

            result = frequencies.get_freq_group(code)
            self.assertEqual(result, code // 1000 * 1000)
Пример #27
0
def _annual_finder(vmin, vmax, freq):
    if isinstance(freq, basestring):
        freq = frequencies.get_freq(freq)
    if frequencies.get_freq_group(freq) != FreqGroup.FR_ANN:
        raise ValueError("Unexpected frequency")
    (vmin, vmax) = (int(vmin), int(vmax + 1))
    span = vmax - vmin + 1
    # ..............
    info = np.zeros(span, dtype=[("val", int), ("maj", bool), ("min", bool), ("fmt", "|S8")])
    info["val"] = np.arange(vmin, vmax + 1)
    info["fmt"] = ""
    dates_ = info["val"]
    # ..............
    (min_anndef, maj_anndef) = _get_default_annual_spacing(span)
    major_idx = dates_ % maj_anndef == 0
    info["maj"][major_idx] = True
    info["min"][(dates_ % min_anndef == 0)] = True
    info["fmt"][major_idx] = "%Y"
    # ..............
    return info
Пример #28
0
def _annual_finder(vmin, vmax, freq):
    if isinstance(freq, basestring):
        freq = frequencies.get_freq(freq)
    if frequencies.get_freq_group(freq) != FreqGroup.FR_ANN:
        raise ValueError("Unexpected frequency")
    (vmin, vmax) = (int(vmin), int(vmax + 1))
    span = vmax - vmin + 1
    #..............
    info = np.zeros(span,
                    dtype=[('val', int), ('maj', bool), ('min', bool),
                           ('fmt', '|S8')])
    info['val'] = np.arange(vmin, vmax + 1)
    info['fmt'] = ''
    dates_ = info['val']
    #..............
    (min_anndef, maj_anndef) = _get_default_annual_spacing(span)
    major_idx = dates_ % maj_anndef == 0
    info['maj'][major_idx] = True
    info['min'][(dates_ % min_anndef == 0)] = True
    info['fmt'][major_idx] = '%Y'
    #..............
    return info
Пример #29
0
def _annual_finder(vmin, vmax, freq):
    if isinstance(freq, basestring):
        freq = frequencies.get_freq(freq)
    if frequencies.get_freq_group(freq) != FreqGroup.FR_ANN:
        raise ValueError("Unexpected frequency")
    (vmin, vmax) = (int(vmin), int(vmax + 1))
    span = vmax - vmin + 1
    #..............
    info = np.zeros(span,
                    dtype=[('val', int), ('maj', bool), ('min', bool),
                           ('fmt', '|S8')])
    info['val'] = np.arange(vmin, vmax + 1)
    info['fmt'] = ''
    dates_ = info['val']
    #..............
    (min_anndef, maj_anndef) = _get_default_annual_spacing(span)
    major_idx = dates_ % maj_anndef == 0
    info['maj'][major_idx] = True
    info['min'][(dates_ % min_anndef == 0)] = True
    info['fmt'][major_idx] = '%Y'
    #..............
    return info
Пример #30
0
 def test_period_ordinal_business_day(self):
     # Thursday
     assert period_ordinal(2013, 10, 3, 0,
                           0, 0, 0, 0, get_freq('B')) == 11415
     # Friday
     assert period_ordinal(2013, 10, 4, 0,
                           0, 0, 0, 0, get_freq('B')) == 11416
     # Saturday
     assert period_ordinal(2013, 10, 5, 0,
                           0, 0, 0, 0, get_freq('B')) == 11417
     # Sunday
     assert period_ordinal(2013, 10, 6, 0,
                           0, 0, 0, 0, get_freq('B')) == 11417
     # Monday
     assert period_ordinal(2013, 10, 7, 0,
                           0, 0, 0, 0, get_freq('B')) == 11417
     # Tuesday
     assert period_ordinal(2013, 10, 8, 0,
                           0, 0, 0, 0, get_freq('B')) == 11418
Пример #31
0
 def test_period_ordinal_business_day(self):
     # Thursday
     assert period_ordinal(2013, 10, 3, 0, 0, 0, 0, 0,
                           get_freq('B')) == 11415
     # Friday
     assert period_ordinal(2013, 10, 4, 0, 0, 0, 0, 0,
                           get_freq('B')) == 11416
     # Saturday
     assert period_ordinal(2013, 10, 5, 0, 0, 0, 0, 0,
                           get_freq('B')) == 11417
     # Sunday
     assert period_ordinal(2013, 10, 6, 0, 0, 0, 0, 0,
                           get_freq('B')) == 11417
     # Monday
     assert period_ordinal(2013, 10, 7, 0, 0, 0, 0, 0,
                           get_freq('B')) == 11417
     # Tuesday
     assert period_ordinal(2013, 10, 8, 0, 0, 0, 0, 0,
                           get_freq('B')) == 11418
Пример #32
0
    def test_intraday_conversion_factors(self):
        self.assertEqual(period_asfreq(1, get_freq('D'), get_freq('H'), False), 24)
        self.assertEqual(period_asfreq(1, get_freq('D'), get_freq('T'), False), 1440)
        self.assertEqual(period_asfreq(1, get_freq('D'), get_freq('S'), False), 86400)
        self.assertEqual(period_asfreq(1, get_freq('D'), get_freq('L'), False), 86400000)
        self.assertEqual(period_asfreq(1, get_freq('D'), get_freq('U'), False), 86400000000)
        self.assertEqual(period_asfreq(1, get_freq('D'), get_freq('N'), False), 86400000000000)

        self.assertEqual(period_asfreq(1, get_freq('H'), get_freq('T'), False), 60)
        self.assertEqual(period_asfreq(1, get_freq('H'), get_freq('S'), False), 3600)
        self.assertEqual(period_asfreq(1, get_freq('H'), get_freq('L'), False), 3600000)
        self.assertEqual(period_asfreq(1, get_freq('H'), get_freq('U'), False), 3600000000)
        self.assertEqual(period_asfreq(1, get_freq('H'), get_freq('N'), False), 3600000000000)

        self.assertEqual(period_asfreq(1, get_freq('T'), get_freq('S'), False), 60)
        self.assertEqual(period_asfreq(1, get_freq('T'), get_freq('L'), False), 60000)
        self.assertEqual(period_asfreq(1, get_freq('T'), get_freq('U'), False), 60000000)
        self.assertEqual(period_asfreq(1, get_freq('T'), get_freq('N'), False), 60000000000)

        self.assertEqual(period_asfreq(1, get_freq('S'), get_freq('L'), False), 1000)
        self.assertEqual(period_asfreq(1, get_freq('S'), get_freq('U'), False), 1000000)
        self.assertEqual(period_asfreq(1, get_freq('S'), get_freq('N'), False), 1000000000)

        self.assertEqual(period_asfreq(1, get_freq('L'), get_freq('U'), False), 1000)
        self.assertEqual(period_asfreq(1, get_freq('L'), get_freq('N'), False), 1000000)

        self.assertEqual(period_asfreq(1, get_freq('U'), get_freq('N'), False), 1000)
Пример #33
0
    def test_get_freq_code(self):
        # frequency str
        assert (frequencies.get_freq_code('A') == (frequencies.get_freq('A'),
                                                   1))
        assert (frequencies.get_freq_code('3D') == (frequencies.get_freq('D'),
                                                    3))
        assert (frequencies.get_freq_code('-2M') == (frequencies.get_freq('M'),
                                                     -2))

        # tuple
        assert (frequencies.get_freq_code(
            ('D', 1)) == (frequencies.get_freq('D'), 1))
        assert (frequencies.get_freq_code(
            ('A', 3)) == (frequencies.get_freq('A'), 3))
        assert (frequencies.get_freq_code(
            ('M', -2)) == (frequencies.get_freq('M'), -2))

        # numeric tuple
        assert frequencies.get_freq_code((1000, 1)) == (1000, 1)

        # offsets
        assert (frequencies.get_freq_code(
            offsets.Day()) == (frequencies.get_freq('D'), 1))
        assert (frequencies.get_freq_code(
            offsets.Day(3)) == (frequencies.get_freq('D'), 3))
        assert (frequencies.get_freq_code(
            offsets.Day(-2)) == (frequencies.get_freq('D'), -2))

        assert (frequencies.get_freq_code(
            offsets.MonthEnd()) == (frequencies.get_freq('M'), 1))
        assert (frequencies.get_freq_code(
            offsets.MonthEnd(3)) == (frequencies.get_freq('M'), 3))
        assert (frequencies.get_freq_code(
            offsets.MonthEnd(-2)) == (frequencies.get_freq('M'), -2))

        assert (frequencies.get_freq_code(
            offsets.Week()) == (frequencies.get_freq('W'), 1))
        assert (frequencies.get_freq_code(
            offsets.Week(3)) == (frequencies.get_freq('W'), 3))
        assert (frequencies.get_freq_code(
            offsets.Week(-2)) == (frequencies.get_freq('W'), -2))

        # Monday is weekday=0
        assert (frequencies.get_freq_code(
            offsets.Week(weekday=1)) == (frequencies.get_freq('W-TUE'), 1))
        assert (frequencies.get_freq_code(offsets.Week(
            3, weekday=0)) == (frequencies.get_freq('W-MON'), 3))
        assert (frequencies.get_freq_code(offsets.Week(
            -2, weekday=4)) == (frequencies.get_freq('W-FRI'), -2))
Пример #34
0
    def test_intraday_conversion_factors(self):
        assert period_asfreq(1, get_freq('D'), get_freq('H'), False) == 24
        assert period_asfreq(1, get_freq('D'), get_freq('T'), False) == 1440
        assert period_asfreq(1, get_freq('D'), get_freq('S'), False) == 86400
        assert period_asfreq(1, get_freq('D'),
                             get_freq('L'), False) == 86400000
        assert period_asfreq(1, get_freq('D'),
                             get_freq('U'), False) == 86400000000
        assert period_asfreq(1, get_freq('D'),
                             get_freq('N'), False) == 86400000000000

        assert period_asfreq(1, get_freq('H'), get_freq('T'), False) == 60
        assert period_asfreq(1, get_freq('H'), get_freq('S'), False) == 3600
        assert period_asfreq(1, get_freq('H'),
                             get_freq('L'), False) == 3600000
        assert period_asfreq(1, get_freq('H'),
                             get_freq('U'), False) == 3600000000
        assert period_asfreq(1, get_freq('H'),
                             get_freq('N'), False) == 3600000000000

        assert period_asfreq(1, get_freq('T'), get_freq('S'), False) == 60
        assert period_asfreq(1, get_freq('T'), get_freq('L'), False) == 60000
        assert period_asfreq(1, get_freq('T'),
                             get_freq('U'), False) == 60000000
        assert period_asfreq(1, get_freq('T'),
                             get_freq('N'), False) == 60000000000

        assert period_asfreq(1, get_freq('S'), get_freq('L'), False) == 1000
        assert period_asfreq(1, get_freq('S'),
                             get_freq('U'), False) == 1000000
        assert period_asfreq(1, get_freq('S'),
                             get_freq('N'), False) == 1000000000

        assert period_asfreq(1, get_freq('L'), get_freq('U'), False) == 1000
        assert period_asfreq(1, get_freq('L'),
                             get_freq('N'), False) == 1000000

        assert period_asfreq(1, get_freq('U'), get_freq('N'), False) == 1000
Пример #35
0
    def test_intraday_conversion_factors(self):
        assert period_asfreq(1, get_freq('D'), get_freq('H'), False) == 24
        assert period_asfreq(1, get_freq('D'), get_freq('T'), False) == 1440
        assert period_asfreq(1, get_freq('D'), get_freq('S'), False) == 86400
        assert period_asfreq(1, get_freq('D'), get_freq('L'),
                             False) == 86400000
        assert period_asfreq(1, get_freq('D'), get_freq('U'),
                             False) == 86400000000
        assert period_asfreq(1, get_freq('D'), get_freq('N'),
                             False) == 86400000000000

        assert period_asfreq(1, get_freq('H'), get_freq('T'), False) == 60
        assert period_asfreq(1, get_freq('H'), get_freq('S'), False) == 3600
        assert period_asfreq(1, get_freq('H'), get_freq('L'), False) == 3600000
        assert period_asfreq(1, get_freq('H'), get_freq('U'),
                             False) == 3600000000
        assert period_asfreq(1, get_freq('H'), get_freq('N'),
                             False) == 3600000000000

        assert period_asfreq(1, get_freq('T'), get_freq('S'), False) == 60
        assert period_asfreq(1, get_freq('T'), get_freq('L'), False) == 60000
        assert period_asfreq(1, get_freq('T'), get_freq('U'),
                             False) == 60000000
        assert period_asfreq(1, get_freq('T'), get_freq('N'),
                             False) == 60000000000

        assert period_asfreq(1, get_freq('S'), get_freq('L'), False) == 1000
        assert period_asfreq(1, get_freq('S'), get_freq('U'), False) == 1000000
        assert period_asfreq(1, get_freq('S'), get_freq('N'),
                             False) == 1000000000

        assert period_asfreq(1, get_freq('L'), get_freq('U'), False) == 1000
        assert period_asfreq(1, get_freq('L'), get_freq('N'), False) == 1000000

        assert period_asfreq(1, get_freq('U'), get_freq('N'), False) == 1000
Пример #36
0
    def test_get_freq_code(self):
        # freqstr
        self.assertEqual(frequencies.get_freq_code("A"), (frequencies.get_freq("A"), 1))
        self.assertEqual(frequencies.get_freq_code("3D"), (frequencies.get_freq("D"), 3))
        self.assertEqual(frequencies.get_freq_code("-2M"), (frequencies.get_freq("M"), -2))

        # tuple
        self.assertEqual(frequencies.get_freq_code(("D", 1)), (frequencies.get_freq("D"), 1))
        self.assertEqual(frequencies.get_freq_code(("A", 3)), (frequencies.get_freq("A"), 3))
        self.assertEqual(frequencies.get_freq_code(("M", -2)), (frequencies.get_freq("M"), -2))
        # numeric tuple
        self.assertEqual(frequencies.get_freq_code((1000, 1)), (1000, 1))

        # offsets
        self.assertEqual(frequencies.get_freq_code(offsets.Day()), (frequencies.get_freq("D"), 1))
        self.assertEqual(frequencies.get_freq_code(offsets.Day(3)), (frequencies.get_freq("D"), 3))
        self.assertEqual(frequencies.get_freq_code(offsets.Day(-2)), (frequencies.get_freq("D"), -2))

        self.assertEqual(frequencies.get_freq_code(offsets.MonthEnd()), (frequencies.get_freq("M"), 1))
        self.assertEqual(frequencies.get_freq_code(offsets.MonthEnd(3)), (frequencies.get_freq("M"), 3))
        self.assertEqual(frequencies.get_freq_code(offsets.MonthEnd(-2)), (frequencies.get_freq("M"), -2))

        self.assertEqual(frequencies.get_freq_code(offsets.Week()), (frequencies.get_freq("W"), 1))
        self.assertEqual(frequencies.get_freq_code(offsets.Week(3)), (frequencies.get_freq("W"), 3))
        self.assertEqual(frequencies.get_freq_code(offsets.Week(-2)), (frequencies.get_freq("W"), -2))

        # monday is weekday=0
        self.assertEqual(frequencies.get_freq_code(offsets.Week(weekday=1)), (frequencies.get_freq("W-TUE"), 1))
        self.assertEqual(frequencies.get_freq_code(offsets.Week(3, weekday=0)), (frequencies.get_freq("W-MON"), 3))
        self.assertEqual(frequencies.get_freq_code(offsets.Week(-2, weekday=4)), (frequencies.get_freq("W-FRI"), -2))
Пример #37
0
def _monthly_finder(vmin, vmax, freq):
    if isinstance(freq, basestring):
        freq = frequencies.get_freq(freq)

    if freq != FreqGroup.FR_MTH:
        raise ValueError("Unexpected frequency")
    periodsperyear = 12

    vmin_orig = vmin
    (vmin, vmax) = (int(vmin), int(vmax))
    span = vmax - vmin + 1
    # ..............
    # Initialize the output
    info = np.zeros(span, dtype=[("val", int), ("maj", bool), ("min", bool), ("fmt", "|S8")])
    info["val"] = np.arange(vmin, vmax + 1)
    dates_ = info["val"]
    info["fmt"] = ""
    year_start = (dates_ % 12 == 1).nonzero()[0]
    info_maj = info["maj"]
    info_fmt = info["fmt"]
    # ..............
    if span <= 1.15 * periodsperyear:
        info_maj[year_start] = True
        info["min"] = True

        info_fmt[:] = "%b"
        info_fmt[year_start] = "%b\n%Y"

        if not has_level_label(year_start, vmin_orig):
            if dates_.size > 1:
                idx = 1
            else:
                idx = 0
            info_fmt[idx] = "%b\n%Y"
    # ..............
    elif span <= 2.5 * periodsperyear:
        quarter_start = (dates_ % 3 == 1).nonzero()
        info_maj[year_start] = True
        # TODO: Check the following : is it really info['fmt'] ?
        info["fmt"][quarter_start] = True
        info["min"] = True

        info_fmt[quarter_start] = "%b"
        info_fmt[year_start] = "%b\n%Y"
    # ..............
    elif span <= 4 * periodsperyear:
        info_maj[year_start] = True
        info["min"] = True

        jan_or_jul = (dates_ % 12 == 1) | (dates_ % 12 == 7)
        info_fmt[jan_or_jul] = "%b"
        info_fmt[year_start] = "%b\n%Y"
    # ..............
    elif span <= 11 * periodsperyear:
        quarter_start = (dates_ % 3 == 1).nonzero()
        info_maj[year_start] = True
        info["min"][quarter_start] = True

        info_fmt[year_start] = "%Y"
    # ..................
    else:
        nyears = span / periodsperyear
        (min_anndef, maj_anndef) = _get_default_annual_spacing(nyears)
        years = dates_[year_start] // 12 + 1
        major_idx = year_start[(years % maj_anndef == 0)]
        info_maj[major_idx] = True
        info["min"][year_start[(years % min_anndef == 0)]] = True

        info_fmt[major_idx] = "%Y"
    # ..............
    return info
Пример #38
0
    def test_intraday_conversion_factors(self):
        self.assertEqual(period_asfreq(1, get_freq("D"), get_freq("H"), False), 24)
        self.assertEqual(period_asfreq(1, get_freq("D"), get_freq("T"), False), 1440)
        self.assertEqual(period_asfreq(1, get_freq("D"), get_freq("S"), False), 86400)
        self.assertEqual(period_asfreq(1, get_freq("D"), get_freq("L"), False), 86400000)
        self.assertEqual(period_asfreq(1, get_freq("D"), get_freq("U"), False), 86400000000)
        self.assertEqual(period_asfreq(1, get_freq("D"), get_freq("N"), False), 86400000000000)

        self.assertEqual(period_asfreq(1, get_freq("H"), get_freq("T"), False), 60)
        self.assertEqual(period_asfreq(1, get_freq("H"), get_freq("S"), False), 3600)
        self.assertEqual(period_asfreq(1, get_freq("H"), get_freq("L"), False), 3600000)
        self.assertEqual(period_asfreq(1, get_freq("H"), get_freq("U"), False), 3600000000)
        self.assertEqual(period_asfreq(1, get_freq("H"), get_freq("N"), False), 3600000000000)

        self.assertEqual(period_asfreq(1, get_freq("T"), get_freq("S"), False), 60)
        self.assertEqual(period_asfreq(1, get_freq("T"), get_freq("L"), False), 60000)
        self.assertEqual(period_asfreq(1, get_freq("T"), get_freq("U"), False), 60000000)
        self.assertEqual(period_asfreq(1, get_freq("T"), get_freq("N"), False), 60000000000)

        self.assertEqual(period_asfreq(1, get_freq("S"), get_freq("L"), False), 1000)
        self.assertEqual(period_asfreq(1, get_freq("S"), get_freq("U"), False), 1000000)
        self.assertEqual(period_asfreq(1, get_freq("S"), get_freq("N"), False), 1000000000)

        self.assertEqual(period_asfreq(1, get_freq("L"), get_freq("U"), False), 1000)
        self.assertEqual(period_asfreq(1, get_freq("L"), get_freq("N"), False), 1000000)

        self.assertEqual(period_asfreq(1, get_freq("U"), get_freq("N"), False), 1000)
Пример #39
0
    def test_intraday_conversion_factors(self):
        self.assertEqual(period_asfreq(1, get_freq('D'), get_freq('H'), False),
                         24)
        self.assertEqual(period_asfreq(1, get_freq('D'), get_freq('T'), False),
                         1440)
        self.assertEqual(period_asfreq(1, get_freq('D'), get_freq('S'), False),
                         86400)
        self.assertEqual(period_asfreq(1, get_freq('D'), get_freq('L'), False),
                         86400000)
        self.assertEqual(period_asfreq(1, get_freq('D'), get_freq('U'), False),
                         86400000000)
        self.assertEqual(period_asfreq(1, get_freq('D'), get_freq('N'), False),
                         86400000000000)

        self.assertEqual(period_asfreq(1, get_freq('H'), get_freq('T'), False),
                         60)
        self.assertEqual(period_asfreq(1, get_freq('H'), get_freq('S'), False),
                         3600)
        self.assertEqual(period_asfreq(1, get_freq('H'), get_freq('L'), False),
                         3600000)
        self.assertEqual(period_asfreq(1, get_freq('H'), get_freq('U'), False),
                         3600000000)
        self.assertEqual(period_asfreq(1, get_freq('H'), get_freq('N'), False),
                         3600000000000)

        self.assertEqual(period_asfreq(1, get_freq('T'), get_freq('S'), False),
                         60)
        self.assertEqual(period_asfreq(1, get_freq('T'), get_freq('L'), False),
                         60000)
        self.assertEqual(period_asfreq(1, get_freq('T'), get_freq('U'), False),
                         60000000)
        self.assertEqual(period_asfreq(1, get_freq('T'), get_freq('N'), False),
                         60000000000)

        self.assertEqual(period_asfreq(1, get_freq('S'), get_freq('L'), False),
                         1000)
        self.assertEqual(period_asfreq(1, get_freq('S'), get_freq('U'), False),
                         1000000)
        self.assertEqual(period_asfreq(1, get_freq('S'), get_freq('N'), False),
                         1000000000)

        self.assertEqual(period_asfreq(1, get_freq('L'), get_freq('U'), False),
                         1000)
        self.assertEqual(period_asfreq(1, get_freq('L'), get_freq('N'), False),
                         1000000)

        self.assertEqual(period_asfreq(1, get_freq('U'), get_freq('N'), False),
                         1000)
Пример #40
0
    def test_get_freq_code(self):
        # frequency str
        assert (frequencies.get_freq_code('A') ==
                (frequencies.get_freq('A'), 1))
        assert (frequencies.get_freq_code('3D') ==
                (frequencies.get_freq('D'), 3))
        assert (frequencies.get_freq_code('-2M') ==
                (frequencies.get_freq('M'), -2))

        # tuple
        assert (frequencies.get_freq_code(('D', 1)) ==
                (frequencies.get_freq('D'), 1))
        assert (frequencies.get_freq_code(('A', 3)) ==
                (frequencies.get_freq('A'), 3))
        assert (frequencies.get_freq_code(('M', -2)) ==
                (frequencies.get_freq('M'), -2))

        # numeric tuple
        assert frequencies.get_freq_code((1000, 1)) == (1000, 1)

        # offsets
        assert (frequencies.get_freq_code(offsets.Day()) ==
                (frequencies.get_freq('D'), 1))
        assert (frequencies.get_freq_code(offsets.Day(3)) ==
                (frequencies.get_freq('D'), 3))
        assert (frequencies.get_freq_code(offsets.Day(-2)) ==
                (frequencies.get_freq('D'), -2))

        assert (frequencies.get_freq_code(offsets.MonthEnd()) ==
                (frequencies.get_freq('M'), 1))
        assert (frequencies.get_freq_code(offsets.MonthEnd(3)) ==
                (frequencies.get_freq('M'), 3))
        assert (frequencies.get_freq_code(offsets.MonthEnd(-2)) ==
                (frequencies.get_freq('M'), -2))

        assert (frequencies.get_freq_code(offsets.Week()) ==
                (frequencies.get_freq('W'), 1))
        assert (frequencies.get_freq_code(offsets.Week(3)) ==
                (frequencies.get_freq('W'), 3))
        assert (frequencies.get_freq_code(offsets.Week(-2)) ==
                (frequencies.get_freq('W'), -2))

        # Monday is weekday=0
        assert (frequencies.get_freq_code(offsets.Week(weekday=1)) ==
                (frequencies.get_freq('W-TUE'), 1))
        assert (frequencies.get_freq_code(offsets.Week(3, weekday=0)) ==
                (frequencies.get_freq('W-MON'), 3))
        assert (frequencies.get_freq_code(offsets.Week(-2, weekday=4)) ==
                (frequencies.get_freq('W-FRI'), -2))
Пример #41
0
    def test_get_freq_code(self):
        # freqstr
        self.assertEqual(frequencies.get_freq_code('A'),
                         (frequencies.get_freq('A'), 1))
        self.assertEqual(frequencies.get_freq_code('3D'),
                         (frequencies.get_freq('D'), 3))
        self.assertEqual(frequencies.get_freq_code('-2M'),
                         (frequencies.get_freq('M'), -2))

        # tuple
        self.assertEqual(frequencies.get_freq_code(('D', 1)),
                         (frequencies.get_freq('D'), 1))
        self.assertEqual(frequencies.get_freq_code(('A', 3)),
                         (frequencies.get_freq('A'), 3))
        self.assertEqual(frequencies.get_freq_code(('M', -2)),
                         (frequencies.get_freq('M'), -2))
        # numeric tuple
        self.assertEqual(frequencies.get_freq_code((1000, 1)), (1000, 1))

        # offsets
        self.assertEqual(frequencies.get_freq_code(offsets.Day()),
                         (frequencies.get_freq('D'), 1))
        self.assertEqual(frequencies.get_freq_code(offsets.Day(3)),
                         (frequencies.get_freq('D'), 3))
        self.assertEqual(frequencies.get_freq_code(offsets.Day(-2)),
                         (frequencies.get_freq('D'), -2))

        self.assertEqual(frequencies.get_freq_code(offsets.MonthEnd()),
                         (frequencies.get_freq('M'), 1))
        self.assertEqual(frequencies.get_freq_code(offsets.MonthEnd(3)),
                         (frequencies.get_freq('M'), 3))
        self.assertEqual(frequencies.get_freq_code(offsets.MonthEnd(-2)),
                         (frequencies.get_freq('M'), -2))

        self.assertEqual(frequencies.get_freq_code(offsets.Week()),
                         (frequencies.get_freq('W'), 1))
        self.assertEqual(frequencies.get_freq_code(offsets.Week(3)),
                         (frequencies.get_freq('W'), 3))
        self.assertEqual(frequencies.get_freq_code(offsets.Week(-2)),
                         (frequencies.get_freq('W'), -2))

        # monday is weekday=0
        self.assertEqual(frequencies.get_freq_code(offsets.Week(weekday=1)),
                         (frequencies.get_freq('W-TUE'), 1))
        self.assertEqual(frequencies.get_freq_code(offsets.Week(3, weekday=0)),
                         (frequencies.get_freq('W-MON'), 3))
        self.assertEqual(frequencies.get_freq_code(offsets.Week(-2, weekday=4)),
                         (frequencies.get_freq('W-FRI'), -2))
Пример #42
0
def _monthly_finder(vmin, vmax, freq):
    if isinstance(freq, basestring):
        freq = frequencies.get_freq(freq)

    if freq != FreqGroup.FR_MTH:
        raise ValueError("Unexpected frequency")
    periodsperyear = 12

    vmin_orig = vmin
    (vmin, vmax) = (int(vmin), int(vmax))
    span = vmax - vmin + 1
    #..............
    # Initialize the output
    info = np.zeros(span,
                    dtype=[('val', int), ('maj', bool), ('min', bool),
                           ('fmt', '|S8')])
    info['val'] = np.arange(vmin, vmax + 1)
    dates_ = info['val']
    info['fmt'] = ''
    year_start = (dates_ % 12 == 0).nonzero()[0]
    info_maj = info['maj']
    info_fmt = info['fmt']
    #..............
    if span <= 1.15 * periodsperyear:
        info_maj[year_start] = True
        info['min'] = True

        info_fmt[:] = '%b'
        info_fmt[year_start] = '%b\n%Y'

        if not has_level_label(year_start, vmin_orig):
            if dates_.size > 1:
                idx = 1
            else:
                idx = 0
            info_fmt[idx] = '%b\n%Y'
    #..............
    elif span <= 2.5 * periodsperyear:
        quarter_start = (dates_ % 3 == 0).nonzero()
        info_maj[year_start] = True
        # TODO: Check the following : is it really info['fmt'] ?
        info['fmt'][quarter_start] = True
        info['min'] = True

        info_fmt[quarter_start] = '%b'
        info_fmt[year_start] = '%b\n%Y'
    #..............
    elif span <= 4 * periodsperyear:
        info_maj[year_start] = True
        info['min'] = True

        jan_or_jul = (dates_ % 12 == 0) | (dates_ % 12 == 6)
        info_fmt[jan_or_jul] = '%b'
        info_fmt[year_start] = '%b\n%Y'
    #..............
    elif span <= 11 * periodsperyear:
        quarter_start = (dates_ % 3 == 0).nonzero()
        info_maj[year_start] = True
        info['min'][quarter_start] = True

        info_fmt[year_start] = '%Y'
    #..................
    else:
        nyears = span / periodsperyear
        (min_anndef, maj_anndef) = _get_default_annual_spacing(nyears)
        years = dates_[year_start] // 12 + 1
        major_idx = year_start[(years % maj_anndef == 0)]
        info_maj[major_idx] = True
        info['min'][year_start[(years % min_anndef == 0)]] = True

        info_fmt[major_idx] = '%Y'
    #..............
    return info
Пример #43
0
    def test_get_freq_code(self):
        # freqstr
        self.assertEqual(frequencies.get_freq_code('A'),
                         (frequencies.get_freq('A'), 1))
        self.assertEqual(frequencies.get_freq_code('3D'),
                         (frequencies.get_freq('D'), 3))
        self.assertEqual(frequencies.get_freq_code('-2M'),
                         (frequencies.get_freq('M'), -2))

        # tuple
        self.assertEqual(frequencies.get_freq_code(('D', 1)),
                         (frequencies.get_freq('D'), 1))
        self.assertEqual(frequencies.get_freq_code(('A', 3)),
                         (frequencies.get_freq('A'), 3))
        self.assertEqual(frequencies.get_freq_code(('M', -2)),
                         (frequencies.get_freq('M'), -2))
        # numeric tuple
        self.assertEqual(frequencies.get_freq_code((1000, 1)), (1000, 1))

        # offsets
        self.assertEqual(frequencies.get_freq_code(offsets.Day()),
                         (frequencies.get_freq('D'), 1))
        self.assertEqual(frequencies.get_freq_code(offsets.Day(3)),
                         (frequencies.get_freq('D'), 3))
        self.assertEqual(frequencies.get_freq_code(offsets.Day(-2)),
                         (frequencies.get_freq('D'), -2))

        self.assertEqual(frequencies.get_freq_code(offsets.MonthEnd()),
                         (frequencies.get_freq('M'), 1))
        self.assertEqual(frequencies.get_freq_code(offsets.MonthEnd(3)),
                         (frequencies.get_freq('M'), 3))
        self.assertEqual(frequencies.get_freq_code(offsets.MonthEnd(-2)),
                         (frequencies.get_freq('M'), -2))

        self.assertEqual(frequencies.get_freq_code(offsets.Week()),
                         (frequencies.get_freq('W'), 1))
        self.assertEqual(frequencies.get_freq_code(offsets.Week(3)),
                         (frequencies.get_freq('W'), 3))
        self.assertEqual(frequencies.get_freq_code(offsets.Week(-2)),
                         (frequencies.get_freq('W'), -2))

        # monday is weekday=0
        self.assertEqual(frequencies.get_freq_code(offsets.Week(weekday=1)),
                         (frequencies.get_freq('W-TUE'), 1))
        self.assertEqual(frequencies.get_freq_code(offsets.Week(3, weekday=0)),
                         (frequencies.get_freq('W-MON'), 3))
        self.assertEqual(
            frequencies.get_freq_code(offsets.Week(-2, weekday=4)),
            (frequencies.get_freq('W-FRI'), -2))