-
-
Notifications
You must be signed in to change notification settings - Fork 18.5k
move a small set of non-scalar tests out of scalar.test_timestamp #18377
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,6 +5,7 @@ | |
import pytest | ||
|
||
import numpy as np | ||
import pytz | ||
from pytz import timezone | ||
from datetime import datetime, timedelta, time | ||
|
||
|
@@ -20,6 +21,61 @@ | |
START, END = datetime(2009, 1, 1), datetime(2010, 1, 1) | ||
|
||
|
||
class TestTimestampEquivDateRange(object): | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This class was previously at the bottom of test_timestamp. |
||
# Older tests in TestTimeSeries constructed their `stamp` objects | ||
# using `date_range` instead of the `Timestamp` constructor. | ||
# TestTimestampEquivDateRange checks that these are equivalent in the | ||
# pertinent cases. | ||
|
||
def test_date_range_timestamp_equiv(self): | ||
rng = date_range('20090415', '20090519', tz='US/Eastern') | ||
stamp = rng[0] | ||
|
||
ts = Timestamp('20090415', tz='US/Eastern', freq='D') | ||
assert ts == stamp | ||
|
||
def test_date_range_timestamp_equiv_dateutil(self): | ||
rng = date_range('20090415', '20090519', tz='dateutil/US/Eastern') | ||
stamp = rng[0] | ||
|
||
ts = Timestamp('20090415', tz='dateutil/US/Eastern', freq='D') | ||
assert ts == stamp | ||
|
||
def test_date_range_timestamp_equiv_explicit_pytz(self): | ||
rng = date_range('20090415', '20090519', | ||
tz=pytz.timezone('US/Eastern')) | ||
stamp = rng[0] | ||
|
||
ts = Timestamp('20090415', tz=pytz.timezone('US/Eastern'), freq='D') | ||
assert ts == stamp | ||
|
||
def test_date_range_timestamp_equiv_explicit_dateutil(self): | ||
tm._skip_if_windows_python_3() | ||
from pandas._libs.tslibs.timezones import dateutil_gettz as gettz | ||
|
||
rng = date_range('20090415', '20090519', tz=gettz('US/Eastern')) | ||
stamp = rng[0] | ||
|
||
ts = Timestamp('20090415', tz=gettz('US/Eastern'), freq='D') | ||
assert ts == stamp | ||
|
||
def test_date_range_timestamp_equiv_from_datetime_instance(self): | ||
datetime_instance = datetime(2014, 3, 4) | ||
# build a timestamp with a frequency, since then it supports | ||
# addition/subtraction of integers | ||
timestamp_instance = date_range(datetime_instance, periods=1, | ||
freq='D')[0] | ||
|
||
ts = Timestamp(datetime_instance, freq='D') | ||
assert ts == timestamp_instance | ||
|
||
def test_date_range_timestamp_equiv_preserve_frequency(self): | ||
timestamp_instance = date_range('2014-03-05', periods=1, freq='D')[0] | ||
ts = Timestamp('2014-03-05', freq='D') | ||
|
||
assert timestamp_instance == ts | ||
|
||
|
||
class TestDateRanges(TestData): | ||
|
||
def test_date_range_gen_error(self): | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,21 +1,46 @@ | ||
import pytest | ||
|
||
import numpy as np | ||
from datetime import date, timedelta, time | ||
from datetime import date, timedelta, time, datetime | ||
|
||
import dateutil | ||
import pandas as pd | ||
import pandas.util.testing as tm | ||
from pandas.compat import lrange | ||
from pandas.compat.numpy import np_datetime64_compat | ||
from pandas import (DatetimeIndex, Index, date_range, DataFrame, | ||
Timestamp, datetime, offsets) | ||
Timestamp, offsets) | ||
|
||
from pandas.util.testing import assert_almost_equal | ||
|
||
randn = np.random.randn | ||
|
||
|
||
class TestDatetimeIndexLikeTimestamp(object): | ||
# Tests for DatetimeIndex behaving like a vectorized Timestamp | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I really like the vectorized-timestamp abstraction. It might make sense to have parallel test classes for Timestamp methods and their DatetimeIndex counterparts. |
||
|
||
def test_dti_date_out_of_range(self): | ||
# see gh-1475 | ||
pytest.raises(ValueError, DatetimeIndex, ['1400-01-01']) | ||
pytest.raises(ValueError, DatetimeIndex, [datetime(1400, 1, 1)]) | ||
|
||
def test_timestamp_fields(self): | ||
# extra fields from DatetimeIndex like quarter and week | ||
idx = tm.makeDateIndex(100) | ||
|
||
fields = ['dayofweek', 'dayofyear', 'week', 'weekofyear', 'quarter', | ||
'days_in_month', 'is_month_start', 'is_month_end', | ||
'is_quarter_start', 'is_quarter_end', 'is_year_start', | ||
'is_year_end', 'weekday_name'] | ||
for f in fields: | ||
expected = getattr(idx, f)[-1] | ||
result = getattr(Timestamp(idx[-1]), f) | ||
assert result == expected | ||
|
||
assert idx.freq == Timestamp(idx[-1], idx.freq).freq | ||
assert idx.freqstr == Timestamp(idx[-1], idx.freq).freqstr | ||
|
||
|
||
class TestDatetimeIndex(object): | ||
|
||
def test_get_loc(self): | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you add a comparison here