Skip to content

Commit 9389318

Browse files
committed
TST: Add Panel tests to test_expressions
1 parent 0f944b1 commit 9389318

File tree

1 file changed

+23
-2
lines changed

1 file changed

+23
-2
lines changed

pandas/tests/test_expressions.py

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,13 @@
1010
from numpy.testing import assert_array_equal
1111

1212
import pandas as pan
13-
from pandas.core.api import DataFrame, Series, notnull, isnull
13+
from pandas.core.api import Panel, DataFrame, Series, notnull, isnull
1414
from pandas.core import expressions as expr
1515

1616
from pandas.util.testing import (assert_almost_equal,
1717
assert_series_equal,
18-
assert_frame_equal)
18+
assert_frame_equal,
19+
assert_panel_equal)
1920
from pandas.util import py3compat
2021

2122
import pandas.util.testing as tm
@@ -31,6 +32,9 @@
3132
_mixed = DataFrame({ 'A' : _frame['A'].copy(), 'B' : _frame['B'].astype('float32'), 'C' : _frame['C'].astype('int64'), 'D' : _frame['D'].astype('int32') })
3233
_mixed2 = DataFrame({ 'A' : _frame2['A'].copy(), 'B' : _frame2['B'].astype('float32'), 'C' : _frame2['C'].astype('int64'), 'D' : _frame2['D'].astype('int32') })
3334
_integer = DataFrame(np.random.randint(1, 100, size=(10001, 4)), columns = list('ABCD'), dtype='int64')
35+
_frame_panel = Panel(dict(ItemA = _frame.copy(), ItemB = (_frame.copy() + 3), ItemC=_frame.copy(), ItemD=_frame.copy()))
36+
_integer_panel = Panel(dict(ItemA = _integer, ItemB = (_integer+34).astype('int64')))
37+
_mixed_panel = Panel(dict(ItemA = _mixed, ItemB = (_mixed+3)))
3438

3539
class TestExpressions(unittest.TestCase):
3640

@@ -89,24 +93,41 @@ def run_series(self, ser, other, **kwargs):
8993
self.run_arithmetic_test(ser, other, assert_series_equal, test_flex=False, **kwargs)
9094
self.run_arithmetic_test(ser, other, assert_almost_equal, test_flex=True, **kwargs)
9195

96+
def run_panel(self, panel, other, **kwargs):
97+
self.run_arithmetic_test(panel, other, assert_panel_equal, test_flex=False, **kwargs)
98+
# self.run_arithmetic_test(panel, other, assert_panel_equal, test_flex=True, **kwargs)
99+
92100
def test_integer_arithmetic(self):
93101
self.run_frame(self.integer, self.integer)
94102
self.run_series(self.integer.icol(0), self.integer.icol(0))
95103

104+
def test_integer_panel(self):
105+
self.run_panel(_integer_panel, np.random.randint(1, 100))
106+
96107
def test_float_arithemtic(self):
97108
self.run_frame(self.frame, self.frame)
98109
self.run_series(self.frame.icol(0), self.frame.icol(0))
99110

111+
def test_float_panel(self):
112+
self.run_panel(_frame_panel, np.random.randn() + 0.1)
113+
100114
def test_mixed_arithmetic(self):
101115
self.run_frame(self.mixed, self.mixed)
102116
for col in self.mixed.columns:
103117
self.run_series(self.mixed[col], self.mixed[col])
104118

119+
def test_mixed_panel(self):
120+
self.run_panel(_mixed_panel, np.random.randint(1, 100))
121+
105122
def test_integer_with_zeros(self):
106123
integer = self.integer * np.random.randint(0, 2, size=np.shape(self.integer))
107124
self.run_frame(integer, integer)
108125
self.run_series(integer.icol(0), integer.icol(0))
109126

127+
def test_integer_panel_with_zeros(self):
128+
# this probably isn't the greatest test, but whatever
129+
self.run_panel(_mixed_panel, 0)
130+
110131
def test_invalid(self):
111132

112133
# no op

0 commit comments

Comments
 (0)