Skip to content

Commit b8e9590

Browse files
committed
Merge pull request #9388 from sinhrks/offsets_test
TST: Cleanup offsets.Tick tests
2 parents dc6592e + 2e915fd commit b8e9590

File tree

1 file changed

+125
-115
lines changed

1 file changed

+125
-115
lines changed

pandas/tseries/tests/test_offsets.py

Lines changed: 125 additions & 115 deletions
Original file line numberDiff line numberDiff line change
@@ -2818,123 +2818,10 @@ def test_Easter():
28182818
assertEq(-Easter(2), datetime(2010, 4, 4), datetime(2008, 3, 23))
28192819

28202820

2821-
def test_Hour():
2822-
assertEq(Hour(), datetime(2010, 1, 1), datetime(2010, 1, 1, 1))
2823-
assertEq(Hour(-1), datetime(2010, 1, 1, 1), datetime(2010, 1, 1))
2824-
assertEq(2 * Hour(), datetime(2010, 1, 1), datetime(2010, 1, 1, 2))
2825-
assertEq(-1 * Hour(), datetime(2010, 1, 1, 1), datetime(2010, 1, 1))
2826-
2827-
assert (Hour(3) + Hour(2)) == Hour(5)
2828-
assert (Hour(3) - Hour(2)) == Hour()
2829-
2830-
assert(Hour(4) != Hour(1))
2831-
2832-
assert not Hour().isAnchored()
2833-
2834-
2835-
def test_Minute():
2836-
assertEq(Minute(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 1))
2837-
assertEq(Minute(-1), datetime(2010, 1, 1, 0, 1), datetime(2010, 1, 1))
2838-
assertEq(2 * Minute(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 2))
2839-
assertEq(-1 * Minute(), datetime(2010, 1, 1, 0, 1), datetime(2010, 1, 1))
2840-
2841-
assert (Minute(3) + Minute(2)) == Minute(5)
2842-
assert (Minute(3) - Minute(2)) == Minute()
2843-
assert(Minute(5) != Minute())
2844-
2845-
assert not Minute().isAnchored()
2846-
2847-
2848-
def test_Second():
2849-
assertEq(Second(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 1))
2850-
assertEq(Second(-1), datetime(2010, 1, 1, 0, 0, 1), datetime(2010, 1, 1))
2851-
assertEq(2 * Second(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 2))
2852-
assertEq(
2853-
-1 * Second(), datetime(2010, 1, 1, 0, 0, 1), datetime(2010, 1, 1))
2854-
2855-
assert (Second(3) + Second(2)) == Second(5)
2856-
assert (Second(3) - Second(2)) == Second()
2857-
2858-
assert not Second().isAnchored()
2859-
2860-
2861-
def test_Millisecond():
2862-
assertEq(Milli(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 0, 1000))
2863-
assertEq(Milli(-1), datetime(2010, 1, 1, 0, 0, 0, 1000), datetime(2010, 1, 1))
2864-
assertEq(Milli(2), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 0, 2000))
2865-
assertEq(2 * Milli(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 0, 2000))
2866-
assertEq(-1 * Milli(), datetime(2010, 1, 1, 0, 0, 0, 1000), datetime(2010, 1, 1))
2867-
2868-
assert (Milli(3) + Milli(2)) == Milli(5)
2869-
assert (Milli(3) - Milli(2)) == Milli()
2870-
2871-
2872-
def test_MillisecondTimestampArithmetic():
2873-
assertEq(Milli(), Timestamp('2010-01-01'), Timestamp('2010-01-01 00:00:00.001'))
2874-
assertEq(Milli(-1), Timestamp('2010-01-01 00:00:00.001'), Timestamp('2010-01-01'))
2875-
2876-
2877-
def test_Microsecond():
2878-
assertEq(Micro(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 0, 1))
2879-
assertEq(Micro(-1), datetime(2010, 1, 1, 0, 0, 0, 1), datetime(2010, 1, 1))
2880-
assertEq(2 * Micro(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 0, 2))
2881-
assertEq(-1 * Micro(), datetime(2010, 1, 1, 0, 0, 0, 1), datetime(2010, 1, 1))
2882-
2883-
assert (Micro(3) + Micro(2)) == Micro(5)
2884-
assert (Micro(3) - Micro(2)) == Micro()
2885-
2886-
2887-
def test_NanosecondGeneric():
2888-
timestamp = Timestamp(datetime(2010, 1, 1))
2889-
assert timestamp.nanosecond == 0
2890-
2891-
result = timestamp + Nano(10)
2892-
assert result.nanosecond == 10
2893-
2894-
reverse_result = Nano(10) + timestamp
2895-
assert reverse_result.nanosecond == 10
2896-
2897-
2898-
def test_Nanosecond():
2899-
timestamp = Timestamp(datetime(2010, 1, 1))
2900-
assertEq(Nano(), timestamp, timestamp + np.timedelta64(1, 'ns'))
2901-
assertEq(Nano(-1), timestamp + np.timedelta64(1, 'ns'), timestamp)
2902-
assertEq(2 * Nano(), timestamp, timestamp + np.timedelta64(2, 'ns'))
2903-
assertEq(-1 * Nano(), timestamp + np.timedelta64(1, 'ns'), timestamp)
2904-
2905-
assert (Nano(3) + Nano(2)) == Nano(5)
2906-
assert (Nano(3) - Nano(2)) == Nano()
2907-
2908-
# GH9284
2909-
assert Nano(1) + Nano(10) == Nano(11)
2910-
assert Nano(5) + Micro(1) == Nano(1005)
2911-
assert Micro(5) + Nano(1) == Nano(5001)
2912-
2913-
def test_tick_offset():
2914-
assert not Day().isAnchored()
2915-
assert not Milli().isAnchored()
2916-
assert not Micro().isAnchored()
2917-
assert not Nano().isAnchored()
2918-
2919-
2920-
def test_compare_ticks():
2921-
offsets = [Hour, Minute, Second, Milli, Micro]
2922-
2923-
for kls in offsets:
2924-
three = kls(3)
2925-
four = kls(4)
2926-
2927-
for _ in range(10):
2928-
assert(three < kls(4))
2929-
assert(kls(3) < four)
2930-
assert(four > kls(3))
2931-
assert(kls(4) > three)
2932-
assert(kls(3) == kls(3))
2933-
assert(kls(3) != kls(4))
2934-
2935-
29362821
class TestTicks(tm.TestCase):
29372822

2823+
ticks = [Hour, Minute, Second, Milli, Micro, Nano]
2824+
29382825
def test_ticks(self):
29392826
offsets = [(Hour, Timedelta(hours=5)),
29402827
(Minute, Timedelta(hours=2, minutes=3)),
@@ -2949,6 +2836,129 @@ def test_ticks(self):
29492836
self.assertTrue(isinstance(result, Timedelta))
29502837
self.assertEqual(result, expected)
29512838

2839+
def test_Hour(self):
2840+
assertEq(Hour(), datetime(2010, 1, 1), datetime(2010, 1, 1, 1))
2841+
assertEq(Hour(-1), datetime(2010, 1, 1, 1), datetime(2010, 1, 1))
2842+
assertEq(2 * Hour(), datetime(2010, 1, 1), datetime(2010, 1, 1, 2))
2843+
assertEq(-1 * Hour(), datetime(2010, 1, 1, 1), datetime(2010, 1, 1))
2844+
2845+
self.assertEquals(Hour(3) + Hour(2), Hour(5))
2846+
self.assertEquals(Hour(3) - Hour(2), Hour())
2847+
2848+
self.assertNotEquals(Hour(4), Hour(1))
2849+
2850+
def test_Minute(self):
2851+
assertEq(Minute(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 1))
2852+
assertEq(Minute(-1), datetime(2010, 1, 1, 0, 1), datetime(2010, 1, 1))
2853+
assertEq(2 * Minute(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 2))
2854+
assertEq(-1 * Minute(), datetime(2010, 1, 1, 0, 1), datetime(2010, 1, 1))
2855+
2856+
self.assertEquals(Minute(3) + Minute(2), Minute(5))
2857+
self.assertEquals(Minute(3) - Minute(2), Minute())
2858+
self.assertNotEquals(Minute(5), Minute())
2859+
2860+
def test_Second(self):
2861+
assertEq(Second(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 1))
2862+
assertEq(Second(-1), datetime(2010, 1, 1, 0, 0, 1), datetime(2010, 1, 1))
2863+
assertEq(2 * Second(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 2))
2864+
assertEq(
2865+
-1 * Second(), datetime(2010, 1, 1, 0, 0, 1), datetime(2010, 1, 1))
2866+
2867+
self.assertEquals(Second(3) + Second(2), Second(5))
2868+
self.assertEquals(Second(3) - Second(2), Second())
2869+
2870+
def test_Millisecond(self):
2871+
assertEq(Milli(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 0, 1000))
2872+
assertEq(Milli(-1), datetime(2010, 1, 1, 0, 0, 0, 1000), datetime(2010, 1, 1))
2873+
assertEq(Milli(2), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 0, 2000))
2874+
assertEq(2 * Milli(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 0, 2000))
2875+
assertEq(-1 * Milli(), datetime(2010, 1, 1, 0, 0, 0, 1000), datetime(2010, 1, 1))
2876+
2877+
self.assertEquals(Milli(3) + Milli(2), Milli(5))
2878+
self.assertEquals(Milli(3) - Milli(2), Milli())
2879+
2880+
def test_MillisecondTimestampArithmetic(self):
2881+
assertEq(Milli(), Timestamp('2010-01-01'), Timestamp('2010-01-01 00:00:00.001'))
2882+
assertEq(Milli(-1), Timestamp('2010-01-01 00:00:00.001'), Timestamp('2010-01-01'))
2883+
2884+
def test_Microsecond(self):
2885+
assertEq(Micro(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 0, 1))
2886+
assertEq(Micro(-1), datetime(2010, 1, 1, 0, 0, 0, 1), datetime(2010, 1, 1))
2887+
assertEq(2 * Micro(), datetime(2010, 1, 1), datetime(2010, 1, 1, 0, 0, 0, 2))
2888+
assertEq(-1 * Micro(), datetime(2010, 1, 1, 0, 0, 0, 1), datetime(2010, 1, 1))
2889+
2890+
self.assertEquals(Micro(3) + Micro(2), Micro(5))
2891+
self.assertEquals(Micro(3) - Micro(2), Micro())
2892+
2893+
def test_NanosecondGeneric(self):
2894+
timestamp = Timestamp(datetime(2010, 1, 1))
2895+
self.assertEquals(timestamp.nanosecond, 0)
2896+
2897+
result = timestamp + Nano(10)
2898+
self.assertEquals(result.nanosecond, 10)
2899+
2900+
reverse_result = Nano(10) + timestamp
2901+
self.assertEquals(reverse_result.nanosecond, 10)
2902+
2903+
def test_Nanosecond(self):
2904+
timestamp = Timestamp(datetime(2010, 1, 1))
2905+
assertEq(Nano(), timestamp, timestamp + np.timedelta64(1, 'ns'))
2906+
assertEq(Nano(-1), timestamp + np.timedelta64(1, 'ns'), timestamp)
2907+
assertEq(2 * Nano(), timestamp, timestamp + np.timedelta64(2, 'ns'))
2908+
assertEq(-1 * Nano(), timestamp + np.timedelta64(1, 'ns'), timestamp)
2909+
2910+
self.assertEquals(Nano(3) + Nano(2), Nano(5))
2911+
self.assertEquals(Nano(3) - Nano(2), Nano())
2912+
2913+
# GH9284
2914+
self.assertEquals(Nano(1) + Nano(10), Nano(11))
2915+
self.assertEquals(Nano(5) + Micro(1), Nano(1005))
2916+
self.assertEquals(Micro(5) + Nano(1), Nano(5001))
2917+
2918+
def test_tick_zero(self):
2919+
for t1 in self.ticks:
2920+
for t2 in self.ticks:
2921+
self.assertEquals(t1(0), t2(0))
2922+
self.assertEquals(t1(0) + t2(0), t1(0))
2923+
2924+
if t1 is not Nano:
2925+
self.assertEquals(t1(2) + t2(0), t1(2))
2926+
if t1 is Nano:
2927+
self.assertEquals(t1(2) + Nano(0), t1(2))
2928+
2929+
def test_tick_equalities(self):
2930+
for t in self.ticks:
2931+
self.assertEquals(t(3), t(3))
2932+
self.assertEquals(t(), t(1))
2933+
2934+
# not equals
2935+
self.assertNotEquals(t(3), t(2))
2936+
self.assertNotEquals(t(3), t(-3))
2937+
2938+
def test_tick_operators(self):
2939+
for t in self.ticks:
2940+
self.assertEquals(t(3) + t(2), t(5))
2941+
self.assertEquals(t(3) - t(2), t(1))
2942+
self.assertEquals(t(800) + t(300), t(1100))
2943+
self.assertEquals(t(1000) - t(5), t(995))
2944+
2945+
def test_tick_offset(self):
2946+
for t in self.ticks:
2947+
self.assertFalse(t().isAnchored())
2948+
2949+
def test_compare_ticks(self):
2950+
for kls in self.ticks:
2951+
three = kls(3)
2952+
four = kls(4)
2953+
2954+
for _ in range(10):
2955+
self.assertTrue(three < kls(4))
2956+
self.assertTrue(kls(3) < four)
2957+
self.assertTrue(four > kls(3))
2958+
self.assertTrue(kls(4) > three)
2959+
self.assertTrue(kls(3) == kls(3))
2960+
self.assertTrue(kls(3) != kls(4))
2961+
29522962

29532963
class TestOffsetNames(tm.TestCase):
29542964
def test_get_offset_name(self):

0 commit comments

Comments
 (0)