MCPcopy
hub / github.com/pandas-dev/pandas / test_matmul

Method test_matmul

pandas/tests/series/methods/test_matmul.py:14–82  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

12
13class TestMatmul:
14 def test_matmul(self):
15 # matmul test is for GH#10259
16 a = Series(
17 np.random.default_rng(2).standard_normal(4), index=["p", "q", "r", "s"]
18 )
19 b = DataFrame(
20 np.random.default_rng(2).standard_normal((3, 4)),
21 index=["1", "2", "3"],
22 columns=["p", "q", "r", "s"],
23 ).T
24
25 # Series @ DataFrame -> Series
26 result = operator.matmul(a, b)
27 expected = Series(np.dot(a.values, b.values), index=["1", "2", "3"])
28 tm.assert_series_equal(result, expected)
29
30 # DataFrame @ Series -> Series
31 result = operator.matmul(b.T, a)
32 expected = Series(np.dot(b.T.values, a.T.values), index=["1", "2", "3"])
33 tm.assert_series_equal(result, expected)
34
35 # Series @ Series -> scalar
36 result = operator.matmul(a, a)
37 expected = np.dot(a.values, a.values)
38 tm.assert_almost_equal(result, expected)
39
40 # GH#21530
41 # vector (1D np.array) @ Series (__rmatmul__)
42 result = operator.matmul(a.values, a)
43 expected = np.dot(a.values, a.values)
44 tm.assert_almost_equal(result, expected)
45
46 # GH#21530
47 # vector (1D list) @ Series (__rmatmul__)
48 result = operator.matmul(a.values.tolist(), a)
49 expected = np.dot(a.values, a.values)
50 tm.assert_almost_equal(result, expected)
51
52 # GH#21530
53 # matrix (2D np.array) @ Series (__rmatmul__)
54 result = operator.matmul(b.T.values, a)
55 expected = np.dot(b.T.values, a.values)
56 tm.assert_almost_equal(result, expected)
57
58 # GH#21530
59 # matrix (2D nested lists) @ Series (__rmatmul__)
60 result = operator.matmul(b.T.values.tolist(), a)
61 expected = np.dot(b.T.values, a.values)
62 tm.assert_almost_equal(result, expected)
63
64 # mixed dtype DataFrame @ Series
65 a["p"] = int(a.p)
66 result = operator.matmul(b.T, a)
67 expected = Series(np.dot(b.T.values, a.T.values), index=["1", "2", "3"])
68 tm.assert_series_equal(result, expected)
69
70 # different dtypes DataFrame @ Series
71 a = a.astype(int)

Callers

nothing calls this directly

Calls 6

dotMethod · 0.95
SeriesClass · 0.90
DataFrameClass · 0.90
tolistMethod · 0.45
astypeMethod · 0.45
raisesMethod · 0.45

Tested by

no test coverage detected