From 89119ef173e48cdbfff8b8327b9f194747d32806 Mon Sep 17 00:00:00 2001 From: Saravanan Shanmugam Date: Mon, 20 Jun 2022 11:23:51 +0200 Subject: [PATCH 1/6] TST: GH26650, added new test to validate numpy matmul function with dataframes as inputs --- pandas/tests/series/test_ufunc.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/pandas/tests/series/test_ufunc.py b/pandas/tests/series/test_ufunc.py index 13af94feaf744..1b6a6bac843de 100644 --- a/pandas/tests/series/test_ufunc.py +++ b/pandas/tests/series/test_ufunc.py @@ -1,6 +1,8 @@ from collections import deque import string +from pyparsing import nums + import numpy as np import pytest @@ -439,3 +441,12 @@ def test_outer(): with pytest.raises(NotImplementedError, match=tm.EMPTY_STRING_PATTERN): np.subtract.outer(s, o) + +def test_npmul(): + # https://github.com/pandas-dev/pandas/issues/26650 + nums = np.random.randint(0, 10, 100, dtype="int64") + df = pd.DataFrame({"nums": nums}) + dfT = df.T + + expected_result = pd.DataFrame(index= ["nums"], data= [np.sum(np.square(nums))]) + assert expected_result.equals(np.matmul(dfT, df)) \ No newline at end of file From fbeefee0cc7a923dec5dd41f09ecb8a19b18a28d Mon Sep 17 00:00:00 2001 From: Saravanan Shanmugam Date: Mon, 20 Jun 2022 12:06:42 +0200 Subject: [PATCH 2/6] TST: GH26650, updated variable names --- pandas/tests/series/test_ufunc.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/pandas/tests/series/test_ufunc.py b/pandas/tests/series/test_ufunc.py index 1b6a6bac843de..a3c36fda826dc 100644 --- a/pandas/tests/series/test_ufunc.py +++ b/pandas/tests/series/test_ufunc.py @@ -1,8 +1,6 @@ from collections import deque import string -from pyparsing import nums - import numpy as np import pytest @@ -442,11 +440,12 @@ def test_outer(): with pytest.raises(NotImplementedError, match=tm.EMPTY_STRING_PATTERN): np.subtract.outer(s, o) + def test_npmul(): # https://github.com/pandas-dev/pandas/issues/26650 - nums = np.random.randint(0, 10, 100, dtype="int64") - df = pd.DataFrame({"nums": nums}) + data = np.random.randint(0, 10, 100, dtype="int64") + df = pd.DataFrame({"nums": data}) dfT = df.T - expected_result = pd.DataFrame(index= ["nums"], data= [np.sum(np.square(nums))]) - assert expected_result.equals(np.matmul(dfT, df)) \ No newline at end of file + expected_result = pd.DataFrame(index=["nums"], data=[np.sum(np.square(data))]) + assert expected_result.equals(np.matmul(dfT, df)) From 03fafb40e322f340092d2b73fe02ad6a8c3af1ed Mon Sep 17 00:00:00 2001 From: Saravanan Shanmugam Date: Mon, 20 Jun 2022 21:06:04 +0200 Subject: [PATCH 3/6] Updated based on PR feedback --- pandas/tests/series/test_ufunc.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pandas/tests/series/test_ufunc.py b/pandas/tests/series/test_ufunc.py index a3c36fda826dc..0e966eb0b2710 100644 --- a/pandas/tests/series/test_ufunc.py +++ b/pandas/tests/series/test_ufunc.py @@ -442,10 +442,10 @@ def test_outer(): def test_npmul(): - # https://github.com/pandas-dev/pandas/issues/26650 - data = np.random.randint(0, 10, 100, dtype="int64") + # GH26650 + data = [-1, 1, 10] df = pd.DataFrame({"nums": data}) dfT = df.T - expected_result = pd.DataFrame(index=["nums"], data=[np.sum(np.square(data))]) - assert expected_result.equals(np.matmul(dfT, df)) + expected_result = pd.DataFrame(index=["nums"], data=[102]) + tm.assert_frame_equal(expected_result, np.matmul(dfT, df)) From 8b14e926c893862b86a431b510c7fa134065b18f Mon Sep 17 00:00:00 2001 From: Saravanan Shanmugam Date: Mon, 20 Jun 2022 21:31:44 +0200 Subject: [PATCH 4/6] Removed variable initialisations per feedback --- pandas/tests/series/test_ufunc.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pandas/tests/series/test_ufunc.py b/pandas/tests/series/test_ufunc.py index 0e966eb0b2710..c102943f8bd6c 100644 --- a/pandas/tests/series/test_ufunc.py +++ b/pandas/tests/series/test_ufunc.py @@ -443,9 +443,11 @@ def test_outer(): def test_npmul(): # GH26650 - data = [-1, 1, 10] - df = pd.DataFrame({"nums": data}) - dfT = df.T expected_result = pd.DataFrame(index=["nums"], data=[102]) - tm.assert_frame_equal(expected_result, np.matmul(dfT, df)) + tm.assert_frame_equal( + expected_result, + np.matmul( + pd.DataFrame({"nums": [-1, 1, 10]}).T, pd.DataFrame({"nums": [-1, 1, 10]}) + ), + ) From e5cd71c007400bf3eea44beff8b10e43e3ced6bb Mon Sep 17 00:00:00 2001 From: Saravanan Shanmugam Date: Mon, 20 Jun 2022 22:11:10 +0200 Subject: [PATCH 5/6] Final updates to PR --- pandas/tests/series/test_ufunc.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/pandas/tests/series/test_ufunc.py b/pandas/tests/series/test_ufunc.py index c102943f8bd6c..96cd16b174e10 100644 --- a/pandas/tests/series/test_ufunc.py +++ b/pandas/tests/series/test_ufunc.py @@ -443,11 +443,10 @@ def test_outer(): def test_npmul(): # GH26650 - - expected_result = pd.DataFrame(index=["nums"], data=[102]) + df1 = pd.DataFrame(data=[[-1, 1, 10]]) + df2 = pd.DataFrame(data=[-1, 1, 10]) + expected_result = pd.DataFrame(data=[102]) tm.assert_frame_equal( expected_result, - np.matmul( - pd.DataFrame({"nums": [-1, 1, 10]}).T, pd.DataFrame({"nums": [-1, 1, 10]}) - ), + np.matmul(df1, df2), ) From 36e2ae2869b40cc443f65da8e90281e47bf20560 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke Date: Tue, 21 Jun 2022 10:43:10 -0700 Subject: [PATCH 6/6] Update pandas/tests/series/test_ufunc.py --- pandas/tests/series/test_ufunc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/tests/series/test_ufunc.py b/pandas/tests/series/test_ufunc.py index 96cd16b174e10..624496ea26a81 100644 --- a/pandas/tests/series/test_ufunc.py +++ b/pandas/tests/series/test_ufunc.py @@ -441,7 +441,7 @@ def test_outer(): np.subtract.outer(s, o) -def test_npmul(): +def test_np_matmul(): # GH26650 df1 = pd.DataFrame(data=[[-1, 1, 10]]) df2 = pd.DataFrame(data=[-1, 1, 10])