18
18
19
19
from pandas .compat import range , zip
20
20
from pandas import compat
21
- from pandas .util .testing import assert_series_equal , assert_almost_equal
21
+ from pandas .util .testing import (assert_series_equal , assert_almost_equal ,
22
+ assert_frame_equal )
22
23
import pandas .util .testing as tm
23
24
24
25
from .common import TestData
@@ -45,8 +46,8 @@ def test_comparisons(self):
45
46
46
47
# it works!
47
48
exp = Series ([False , False , False ])
48
- tm . assert_series_equal (s == s2 , exp )
49
- tm . assert_series_equal (s2 == s , exp )
49
+ assert_series_equal (s == s2 , exp )
50
+ assert_series_equal (s2 == s , exp )
50
51
51
52
def test_op_method (self ):
52
53
def check (series , other , check_reverse = False ):
@@ -64,12 +65,12 @@ def check(series, other, check_reverse=False):
64
65
65
66
result = op (series , other )
66
67
expected = alt (series , other )
67
- tm . assert_almost_equal (result , expected )
68
+ assert_almost_equal (result , expected )
68
69
if check_reverse :
69
70
rop = getattr (Series , "r" + opname )
70
71
result = rop (series , other )
71
72
expected = alt (other , series )
72
- tm . assert_almost_equal (result , expected )
73
+ assert_almost_equal (result , expected )
73
74
74
75
check (self .ts , self .ts * 2 )
75
76
check (self .ts , self .ts [::2 ])
@@ -149,8 +150,8 @@ def _check_op(series, other, op, pos_only=False,
149
150
150
151
cython_or_numpy = op (left , right )
151
152
python = left .combine (right , op )
152
- tm . assert_series_equal (cython_or_numpy , python ,
153
- check_dtype = check_dtype )
153
+ assert_series_equal (cython_or_numpy , python ,
154
+ check_dtype = check_dtype )
154
155
155
156
def check (series , other ):
156
157
simple_ops = ['add' , 'sub' , 'mul' , 'truediv' , 'floordiv' , 'mod' ]
@@ -187,7 +188,7 @@ def check_comparators(series, other, check_dtype=True):
187
188
def test_operators_empty_int_corner (self ):
188
189
s1 = Series ([], [], dtype = np .int32 )
189
190
s2 = Series ({'x' : 0. })
190
- tm . assert_series_equal (s1 * s2 , Series ([np .nan ], index = ['x' ]))
191
+ assert_series_equal (s1 * s2 , Series ([np .nan ], index = ['x' ]))
191
192
192
193
def test_operators_timedelta64 (self ):
193
194
@@ -668,6 +669,16 @@ def run_ops(ops, get_ser, test_ser):
668
669
self .assertRaises (TypeError , lambda : td1 - dt1 )
669
670
self .assertRaises (TypeError , lambda : td2 - dt2 )
670
671
672
+ def test_sub_datetime_compat (self ):
673
+ # GH 14088
674
+ tm ._skip_if_no_pytz ()
675
+ import pytz
676
+ s = Series ([datetime (2016 , 8 , 23 , 12 , tzinfo = pytz .utc ), pd .NaT ])
677
+ dt = datetime (2016 , 8 , 22 , 12 , tzinfo = pytz .utc )
678
+ exp = Series ([Timedelta ('1 days' ), pd .NaT ])
679
+ assert_series_equal (s - dt , exp )
680
+ assert_series_equal (s - Timestamp (dt ), exp )
681
+
671
682
def test_sub_single_tz (self ):
672
683
# GH12290
673
684
s1 = Series ([pd .Timestamp ('2016-02-10' , tz = 'America/Sao_Paulo' )])
@@ -1175,21 +1186,21 @@ def test_comparison_flex_basic(self):
1175
1186
left = pd .Series (np .random .randn (10 ))
1176
1187
right = pd .Series (np .random .randn (10 ))
1177
1188
1178
- tm . assert_series_equal (left .eq (right ), left == right )
1179
- tm . assert_series_equal (left .ne (right ), left != right )
1180
- tm . assert_series_equal (left .le (right ), left < right )
1181
- tm . assert_series_equal (left .lt (right ), left <= right )
1182
- tm . assert_series_equal (left .gt (right ), left > right )
1183
- tm . assert_series_equal (left .ge (right ), left >= right )
1189
+ assert_series_equal (left .eq (right ), left == right )
1190
+ assert_series_equal (left .ne (right ), left != right )
1191
+ assert_series_equal (left .le (right ), left < right )
1192
+ assert_series_equal (left .lt (right ), left <= right )
1193
+ assert_series_equal (left .gt (right ), left > right )
1194
+ assert_series_equal (left .ge (right ), left >= right )
1184
1195
1185
1196
# axis
1186
1197
for axis in [0 , None , 'index' ]:
1187
- tm . assert_series_equal (left .eq (right , axis = axis ), left == right )
1188
- tm . assert_series_equal (left .ne (right , axis = axis ), left != right )
1189
- tm . assert_series_equal (left .le (right , axis = axis ), left < right )
1190
- tm . assert_series_equal (left .lt (right , axis = axis ), left <= right )
1191
- tm . assert_series_equal (left .gt (right , axis = axis ), left > right )
1192
- tm . assert_series_equal (left .ge (right , axis = axis ), left >= right )
1198
+ assert_series_equal (left .eq (right , axis = axis ), left == right )
1199
+ assert_series_equal (left .ne (right , axis = axis ), left != right )
1200
+ assert_series_equal (left .le (right , axis = axis ), left < right )
1201
+ assert_series_equal (left .lt (right , axis = axis ), left <= right )
1202
+ assert_series_equal (left .gt (right , axis = axis ), left > right )
1203
+ assert_series_equal (left .ge (right , axis = axis ), left >= right )
1193
1204
1194
1205
#
1195
1206
msg = 'No axis named 1 for object type'
@@ -1202,44 +1213,44 @@ def test_comparison_flex_alignment(self):
1202
1213
right = Series ([2 , 2 , 2 ], index = list ('bcd' ))
1203
1214
1204
1215
exp = pd .Series ([False , False , True , False ], index = list ('abcd' ))
1205
- tm . assert_series_equal (left .eq (right ), exp )
1216
+ assert_series_equal (left .eq (right ), exp )
1206
1217
1207
1218
exp = pd .Series ([True , True , False , True ], index = list ('abcd' ))
1208
- tm . assert_series_equal (left .ne (right ), exp )
1219
+ assert_series_equal (left .ne (right ), exp )
1209
1220
1210
1221
exp = pd .Series ([False , False , True , False ], index = list ('abcd' ))
1211
- tm . assert_series_equal (left .le (right ), exp )
1222
+ assert_series_equal (left .le (right ), exp )
1212
1223
1213
1224
exp = pd .Series ([False , False , False , False ], index = list ('abcd' ))
1214
- tm . assert_series_equal (left .lt (right ), exp )
1225
+ assert_series_equal (left .lt (right ), exp )
1215
1226
1216
1227
exp = pd .Series ([False , True , True , False ], index = list ('abcd' ))
1217
- tm . assert_series_equal (left .ge (right ), exp )
1228
+ assert_series_equal (left .ge (right ), exp )
1218
1229
1219
1230
exp = pd .Series ([False , True , False , False ], index = list ('abcd' ))
1220
- tm . assert_series_equal (left .gt (right ), exp )
1231
+ assert_series_equal (left .gt (right ), exp )
1221
1232
1222
1233
def test_comparison_flex_alignment_fill (self ):
1223
1234
left = Series ([1 , 3 , 2 ], index = list ('abc' ))
1224
1235
right = Series ([2 , 2 , 2 ], index = list ('bcd' ))
1225
1236
1226
1237
exp = pd .Series ([False , False , True , True ], index = list ('abcd' ))
1227
- tm . assert_series_equal (left .eq (right , fill_value = 2 ), exp )
1238
+ assert_series_equal (left .eq (right , fill_value = 2 ), exp )
1228
1239
1229
1240
exp = pd .Series ([True , True , False , False ], index = list ('abcd' ))
1230
- tm . assert_series_equal (left .ne (right , fill_value = 2 ), exp )
1241
+ assert_series_equal (left .ne (right , fill_value = 2 ), exp )
1231
1242
1232
1243
exp = pd .Series ([False , False , True , True ], index = list ('abcd' ))
1233
- tm . assert_series_equal (left .le (right , fill_value = 0 ), exp )
1244
+ assert_series_equal (left .le (right , fill_value = 0 ), exp )
1234
1245
1235
1246
exp = pd .Series ([False , False , False , True ], index = list ('abcd' ))
1236
- tm . assert_series_equal (left .lt (right , fill_value = 0 ), exp )
1247
+ assert_series_equal (left .lt (right , fill_value = 0 ), exp )
1237
1248
1238
1249
exp = pd .Series ([True , True , True , False ], index = list ('abcd' ))
1239
- tm . assert_series_equal (left .ge (right , fill_value = 0 ), exp )
1250
+ assert_series_equal (left .ge (right , fill_value = 0 ), exp )
1240
1251
1241
1252
exp = pd .Series ([True , True , False , False ], index = list ('abcd' ))
1242
- tm . assert_series_equal (left .gt (right , fill_value = 0 ), exp )
1253
+ assert_series_equal (left .gt (right , fill_value = 0 ), exp )
1243
1254
1244
1255
def test_operators_bitwise (self ):
1245
1256
# GH 9016: support bitwise op for integer types
@@ -1426,27 +1437,27 @@ def test_arith_ops_df_compat(self):
1426
1437
1427
1438
exp = pd .Series ([3.0 , 4.0 , np .nan , np .nan ],
1428
1439
index = list ('ABCD' ), name = 'x' )
1429
- tm . assert_series_equal (s1 + s2 , exp )
1430
- tm . assert_series_equal (s2 + s1 , exp )
1440
+ assert_series_equal (s1 + s2 , exp )
1441
+ assert_series_equal (s2 + s1 , exp )
1431
1442
1432
1443
exp = pd .DataFrame ({'x' : [3.0 , 4.0 , np .nan , np .nan ]},
1433
1444
index = list ('ABCD' ))
1434
- tm . assert_frame_equal (s1 .to_frame () + s2 .to_frame (), exp )
1435
- tm . assert_frame_equal (s2 .to_frame () + s1 .to_frame (), exp )
1445
+ assert_frame_equal (s1 .to_frame () + s2 .to_frame (), exp )
1446
+ assert_frame_equal (s2 .to_frame () + s1 .to_frame (), exp )
1436
1447
1437
1448
# different length
1438
1449
s3 = pd .Series ([1 , 2 , 3 ], index = list ('ABC' ), name = 'x' )
1439
1450
s4 = pd .Series ([2 , 2 , 2 , 2 ], index = list ('ABCD' ), name = 'x' )
1440
1451
1441
1452
exp = pd .Series ([3 , 4 , 5 , np .nan ],
1442
1453
index = list ('ABCD' ), name = 'x' )
1443
- tm . assert_series_equal (s3 + s4 , exp )
1444
- tm . assert_series_equal (s4 + s3 , exp )
1454
+ assert_series_equal (s3 + s4 , exp )
1455
+ assert_series_equal (s4 + s3 , exp )
1445
1456
1446
1457
exp = pd .DataFrame ({'x' : [3 , 4 , 5 , np .nan ]},
1447
1458
index = list ('ABCD' ))
1448
- tm . assert_frame_equal (s3 .to_frame () + s4 .to_frame (), exp )
1449
- tm . assert_frame_equal (s4 .to_frame () + s3 .to_frame (), exp )
1459
+ assert_frame_equal (s3 .to_frame () + s4 .to_frame (), exp )
1460
+ assert_frame_equal (s4 .to_frame () + s3 .to_frame (), exp )
1450
1461
1451
1462
def test_comp_ops_df_compat (self ):
1452
1463
# GH 1134
@@ -1485,56 +1496,56 @@ def test_bool_ops_df_compat(self):
1485
1496
1486
1497
exp = pd .Series ([True , False , False , False ],
1487
1498
index = list ('ABCD' ), name = 'x' )
1488
- tm . assert_series_equal (s1 & s2 , exp )
1489
- tm . assert_series_equal (s2 & s1 , exp )
1499
+ assert_series_equal (s1 & s2 , exp )
1500
+ assert_series_equal (s2 & s1 , exp )
1490
1501
1491
1502
# True | np.nan => True
1492
1503
exp = pd .Series ([True , True , True , False ],
1493
1504
index = list ('ABCD' ), name = 'x' )
1494
- tm . assert_series_equal (s1 | s2 , exp )
1505
+ assert_series_equal (s1 | s2 , exp )
1495
1506
# np.nan | True => np.nan, filled with False
1496
1507
exp = pd .Series ([True , True , False , False ],
1497
1508
index = list ('ABCD' ), name = 'x' )
1498
- tm . assert_series_equal (s2 | s1 , exp )
1509
+ assert_series_equal (s2 | s1 , exp )
1499
1510
1500
1511
# DataFrame doesn't fill nan with False
1501
1512
exp = pd .DataFrame ({'x' : [True , False , np .nan , np .nan ]},
1502
1513
index = list ('ABCD' ))
1503
- tm . assert_frame_equal (s1 .to_frame () & s2 .to_frame (), exp )
1504
- tm . assert_frame_equal (s2 .to_frame () & s1 .to_frame (), exp )
1514
+ assert_frame_equal (s1 .to_frame () & s2 .to_frame (), exp )
1515
+ assert_frame_equal (s2 .to_frame () & s1 .to_frame (), exp )
1505
1516
1506
1517
exp = pd .DataFrame ({'x' : [True , True , np .nan , np .nan ]},
1507
1518
index = list ('ABCD' ))
1508
- tm . assert_frame_equal (s1 .to_frame () | s2 .to_frame (), exp )
1509
- tm . assert_frame_equal (s2 .to_frame () | s1 .to_frame (), exp )
1519
+ assert_frame_equal (s1 .to_frame () | s2 .to_frame (), exp )
1520
+ assert_frame_equal (s2 .to_frame () | s1 .to_frame (), exp )
1510
1521
1511
1522
# different length
1512
1523
s3 = pd .Series ([True , False , True ], index = list ('ABC' ), name = 'x' )
1513
1524
s4 = pd .Series ([True , True , True , True ], index = list ('ABCD' ), name = 'x' )
1514
1525
1515
1526
exp = pd .Series ([True , False , True , False ],
1516
1527
index = list ('ABCD' ), name = 'x' )
1517
- tm . assert_series_equal (s3 & s4 , exp )
1518
- tm . assert_series_equal (s4 & s3 , exp )
1528
+ assert_series_equal (s3 & s4 , exp )
1529
+ assert_series_equal (s4 & s3 , exp )
1519
1530
1520
1531
# np.nan | True => np.nan, filled with False
1521
1532
exp = pd .Series ([True , True , True , False ],
1522
1533
index = list ('ABCD' ), name = 'x' )
1523
- tm . assert_series_equal (s3 | s4 , exp )
1534
+ assert_series_equal (s3 | s4 , exp )
1524
1535
# True | np.nan => True
1525
1536
exp = pd .Series ([True , True , True , True ],
1526
1537
index = list ('ABCD' ), name = 'x' )
1527
- tm . assert_series_equal (s4 | s3 , exp )
1538
+ assert_series_equal (s4 | s3 , exp )
1528
1539
1529
1540
exp = pd .DataFrame ({'x' : [True , False , True , np .nan ]},
1530
1541
index = list ('ABCD' ))
1531
- tm . assert_frame_equal (s3 .to_frame () & s4 .to_frame (), exp )
1532
- tm . assert_frame_equal (s4 .to_frame () & s3 .to_frame (), exp )
1542
+ assert_frame_equal (s3 .to_frame () & s4 .to_frame (), exp )
1543
+ assert_frame_equal (s4 .to_frame () & s3 .to_frame (), exp )
1533
1544
1534
1545
exp = pd .DataFrame ({'x' : [True , True , True , np .nan ]},
1535
1546
index = list ('ABCD' ))
1536
- tm . assert_frame_equal (s3 .to_frame () | s4 .to_frame (), exp )
1537
- tm . assert_frame_equal (s4 .to_frame () | s3 .to_frame (), exp )
1547
+ assert_frame_equal (s3 .to_frame () | s4 .to_frame (), exp )
1548
+ assert_frame_equal (s4 .to_frame () | s3 .to_frame (), exp )
1538
1549
1539
1550
def test_series_frame_radd_bug (self ):
1540
1551
# GH 353
@@ -1546,7 +1557,7 @@ def test_series_frame_radd_bug(self):
1546
1557
frame = DataFrame ({'vals' : vals })
1547
1558
result = 'foo_' + frame
1548
1559
expected = DataFrame ({'vals' : vals .map (lambda x : 'foo_' + x )})
1549
- tm . assert_frame_equal (result , expected )
1560
+ assert_frame_equal (result , expected )
1550
1561
1551
1562
# really raise this time
1552
1563
with tm .assertRaises (TypeError ):
@@ -1571,26 +1582,26 @@ def test_series_radd_more(self):
1571
1582
for dtype in [None , object ]:
1572
1583
res = 1 + pd .Series ([1 , 2 , 3 ], dtype = dtype )
1573
1584
exp = pd .Series ([2 , 3 , 4 ], dtype = dtype )
1574
- tm . assert_series_equal (res , exp )
1585
+ assert_series_equal (res , exp )
1575
1586
res = pd .Series ([1 , 2 , 3 ], dtype = dtype ) + 1
1576
- tm . assert_series_equal (res , exp )
1587
+ assert_series_equal (res , exp )
1577
1588
1578
1589
res = np .nan + pd .Series ([1 , 2 , 3 ], dtype = dtype )
1579
1590
exp = pd .Series ([np .nan , np .nan , np .nan ], dtype = dtype )
1580
- tm . assert_series_equal (res , exp )
1591
+ assert_series_equal (res , exp )
1581
1592
res = pd .Series ([1 , 2 , 3 ], dtype = dtype ) + np .nan
1582
- tm . assert_series_equal (res , exp )
1593
+ assert_series_equal (res , exp )
1583
1594
1584
1595
s = pd .Series ([pd .Timedelta ('1 days' ), pd .Timedelta ('2 days' ),
1585
1596
pd .Timedelta ('3 days' )], dtype = dtype )
1586
1597
exp = pd .Series ([pd .Timedelta ('4 days' ), pd .Timedelta ('5 days' ),
1587
1598
pd .Timedelta ('6 days' )])
1588
- tm . assert_series_equal (pd .Timedelta ('3 days' ) + s , exp )
1589
- tm . assert_series_equal (s + pd .Timedelta ('3 days' ), exp )
1599
+ assert_series_equal (pd .Timedelta ('3 days' ) + s , exp )
1600
+ assert_series_equal (s + pd .Timedelta ('3 days' ), exp )
1590
1601
1591
1602
s = pd .Series (['x' , np .nan , 'x' ])
1592
- tm . assert_series_equal ('a' + s , pd .Series (['ax' , np .nan , 'ax' ]))
1593
- tm . assert_series_equal (s + 'a' , pd .Series (['xa' , np .nan , 'xa' ]))
1603
+ assert_series_equal ('a' + s , pd .Series (['ax' , np .nan , 'ax' ]))
1604
+ assert_series_equal (s + 'a' , pd .Series (['xa' , np .nan , 'xa' ]))
1594
1605
1595
1606
def test_frame_radd_more (self ):
1596
1607
data = [[1 , 2 , 3 ],
@@ -1608,32 +1619,32 @@ def test_frame_radd_more(self):
1608
1619
for dtype in [None , object ]:
1609
1620
res = 1 + pd .DataFrame ([1 , 2 , 3 ], dtype = dtype )
1610
1621
exp = pd .DataFrame ([2 , 3 , 4 ], dtype = dtype )
1611
- tm . assert_frame_equal (res , exp )
1622
+ assert_frame_equal (res , exp )
1612
1623
res = pd .DataFrame ([1 , 2 , 3 ], dtype = dtype ) + 1
1613
- tm . assert_frame_equal (res , exp )
1624
+ assert_frame_equal (res , exp )
1614
1625
1615
1626
res = np .nan + pd .DataFrame ([1 , 2 , 3 ], dtype = dtype )
1616
1627
exp = pd .DataFrame ([np .nan , np .nan , np .nan ], dtype = dtype )
1617
- tm . assert_frame_equal (res , exp )
1628
+ assert_frame_equal (res , exp )
1618
1629
res = pd .DataFrame ([1 , 2 , 3 ], dtype = dtype ) + np .nan
1619
- tm . assert_frame_equal (res , exp )
1630
+ assert_frame_equal (res , exp )
1620
1631
1621
1632
df = pd .DataFrame (['x' , np .nan , 'x' ])
1622
- tm . assert_frame_equal ('a' + df , pd .DataFrame (['ax' , np .nan , 'ax' ]))
1623
- tm . assert_frame_equal (df + 'a' , pd .DataFrame (['xa' , np .nan , 'xa' ]))
1633
+ assert_frame_equal ('a' + df , pd .DataFrame (['ax' , np .nan , 'ax' ]))
1634
+ assert_frame_equal (df + 'a' , pd .DataFrame (['xa' , np .nan , 'xa' ]))
1624
1635
1625
1636
def test_operators_frame (self ):
1626
1637
# rpow does not work with DataFrame
1627
1638
df = DataFrame ({'A' : self .ts })
1628
1639
1629
- tm . assert_series_equal (self .ts + self .ts , self .ts + df ['A' ],
1630
- check_names = False )
1631
- tm . assert_series_equal (self .ts ** self .ts , self .ts ** df ['A' ],
1632
- check_names = False )
1633
- tm . assert_series_equal (self .ts < self .ts , self .ts < df ['A' ],
1634
- check_names = False )
1635
- tm . assert_series_equal (self .ts / self .ts , self .ts / df ['A' ],
1636
- check_names = False )
1640
+ assert_series_equal (self .ts + self .ts , self .ts + df ['A' ],
1641
+ check_names = False )
1642
+ assert_series_equal (self .ts ** self .ts , self .ts ** df ['A' ],
1643
+ check_names = False )
1644
+ assert_series_equal (self .ts < self .ts , self .ts < df ['A' ],
1645
+ check_names = False )
1646
+ assert_series_equal (self .ts / self .ts , self .ts / df ['A' ],
1647
+ check_names = False )
1637
1648
1638
1649
def test_operators_combine (self ):
1639
1650
def _check_fill (meth , op , a , b , fill_value = 0 ):
@@ -1729,12 +1740,12 @@ def test_divide_decimal(self):
1729
1740
s = Series ([Decimal (10 )])
1730
1741
s = s / Decimal (2 )
1731
1742
1732
- tm . assert_series_equal (expected , s )
1743
+ assert_series_equal (expected , s )
1733
1744
1734
1745
s = Series ([Decimal (10 )])
1735
1746
s = s // Decimal (2 )
1736
1747
1737
- tm . assert_series_equal (expected , s )
1748
+ assert_series_equal (expected , s )
1738
1749
1739
1750
def test_datetime64_with_index (self ):
1740
1751
0 commit comments