Skip to content

Commit 0612373

Browse files
authored
test: Benchmark to be run on codspeed (#740)
1 parent d42b5db commit 0612373

File tree

1 file changed

+30
-7
lines changed

1 file changed

+30
-7
lines changed

benchmarks/test_benchmark_coo.py

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,38 @@
1+
import itertools
2+
import operator
3+
14
import sparse
25

6+
import pytest
7+
38
import numpy as np
49

10+
DENSITY = 0.01
11+
SEED = 42
12+
13+
14+
def elemwise_test_name(param):
15+
side, rank = param
16+
return f"{side=}-{rank=}"
17+
18+
19+
@pytest.fixture(scope="module", params=itertools.product([100, 500, 1000], [1, 2, 3, 4]), ids=elemwise_test_name)
20+
def elemwise_args(request):
21+
side, rank = request.param
22+
if side**rank >= 2**26:
23+
pytest.skip()
24+
rng = np.random.default_rng(seed=SEED)
25+
shape = (side,) * rank
26+
x = sparse.random(shape, density=DENSITY, random_state=rng)
27+
y = sparse.random(shape, density=DENSITY, random_state=rng)
28+
return x, y
529

6-
def test_matmul(benchmark):
7-
rng = np.random.default_rng(seed=42)
8-
x = sparse.random((40, 40), density=0.01, random_state=rng)
9-
y = sparse.random((40, 40), density=0.01, random_state=rng)
1030

11-
x @ y # Numba compilation
31+
@pytest.mark.parametrize("f", [operator.add, operator.mul])
32+
def test_elemwise(benchmark, f, elemwise_args):
33+
x, y = elemwise_args
34+
f(x, y)
1235

1336
@benchmark
14-
def test_matmul():
15-
x @ y
37+
def bench():
38+
f(x, y)

0 commit comments

Comments
 (0)