test_map_parallel.test_starmap_parallel()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 6
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 5
nop 2
dl 0
loc 6
rs 10
c 0
b 0
f 0
1
from itertools import product
2
3
from pytest import mark
4
5
from map_parallel import map_parallel
6
from map_parallel import starmap_parallel
7
8
n_args = 3
9
# a not so small prime no. > 8
10
n_jobs = 17
11
12
ARGS = [[2 * i * i + 3 * j * j + 5 * i * j for j in range(n_args)] for i in range(n_jobs)]
13
14
args = list(map(list, zip(*ARGS)))
15
16
# MPI is tested separately
17
cases = list(product(('multiprocessing', 'multithreading', 'dask', 'serial'), (None, 1, 2)))
18
19
20
def f(x, y, z):
21
    return x * x + y * y - z * z
22
23
24
truth = list(map(f, *args))
25
26
27
@mark.parametrize(
28
    'mode, processes',
29
    cases,
30
)
31
def test_map_parallel(mode, processes):
32
    assert map_parallel(f, *args, mode=mode, processes=processes) == truth
33
34
35
@mark.parametrize(
36
    'mode, processes',
37
    cases,
38
)
39
def test_starmap_parallel(mode, processes):
40
    assert starmap_parallel(f, ARGS, mode=mode, processes=processes) == truth
41