@@ -1481,23 +1481,29 @@ def test_binary_functions(self):
1481
1481
def test_df_use_case (self ):
1482
1482
df = DataFrame ({'a' : np .random .randn (10 ),
1483
1483
'b' : np .random .randn (10 )})
1484
- df .eval ("e = arctan2(sin(a), b)" )
1484
+ df .eval ("e = arctan2(sin(a), b)" ,
1485
+ engine = self .engine ,
1486
+ parser = self .parser )
1485
1487
got = df .e
1486
1488
expect = np .arctan2 (np .sin (df .a ), df .b )
1487
1489
pd .util .testing .assert_almost_equal (got , expect )
1488
1490
1489
1491
def test_df_arithmetic_subexpression (self ):
1490
1492
df = DataFrame ({'a' : np .random .randn (10 ),
1491
1493
'b' : np .random .randn (10 )})
1492
- df .eval ("e = sin(a + b)" )
1494
+ df .eval ("e = sin(a + b)" ,
1495
+ engine = self .engine ,
1496
+ parser = self .parser )
1493
1497
got = df .e
1494
1498
expect = np .sin (df .a + df .b )
1495
1499
pd .util .testing .assert_almost_equal (got , expect )
1496
1500
1497
1501
def check_result_type (self , dtype , expect_dtype ):
1498
1502
df = DataFrame ({'a' : np .random .randn (10 ).astype (dtype )})
1499
1503
self .assertEqual (df .a .dtype , dtype )
1500
- df .eval ("b = sin(a)" )
1504
+ df .eval ("b = sin(a)" ,
1505
+ engine = self .engine ,
1506
+ parser = self .parser )
1501
1507
got = df .b
1502
1508
expect = np .sin (df .a )
1503
1509
self .assertEqual (expect .dtype , got .dtype )
@@ -1510,9 +1516,15 @@ def test_result_types(self):
1510
1516
self .check_result_type (np .float32 , np .float32 )
1511
1517
self .check_result_type (np .float64 , np .float64 )
1512
1518
# Did not test complex64 because DataFrame is converting it to
1513
- # complex128
1519
+ # complex128. Due to https://github.com/pydata/pandas/issues/10952
1514
1520
self .check_result_type (np .complex128 , np .complex128 )
1515
1521
1522
+ def test_undefined_func (self ):
1523
+ df = DataFrame ({'a' : np .random .randn (10 )})
1524
+ with tm .assertRaises (ValueError ):
1525
+ df .eval ("mysin(a)" ,
1526
+ engine = self .engine ,
1527
+ parser = self .parser )
1516
1528
1517
1529
class TestMathPythonPandas (TestMathPythonPython ):
1518
1530
@classmethod
0 commit comments