Skip to content

Commit 3191052

Browse files
committed
Add multiple fits for statistics
1 parent ab000a7 commit 3191052

File tree

2 files changed

+22
-9
lines changed

2 files changed

+22
-9
lines changed

conftest.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,12 @@ def pytest_addoption(parser):
4343
type=float,
4444
help="Absolute tolerance",
4545
)
46+
parser.addoption(
47+
"--fitCount",
48+
default=10,
49+
type=int,
50+
help="Number of fits to perform on the same parameters",
51+
)
4652

4753

4854
@pytest.fixture(scope="session")
@@ -68,6 +74,10 @@ def rtol(request):
6874
def atol(request):
6975
return request.config.getoption("--atol")
7076

77+
@pytest.fixture(scope="session")
78+
def fit_count(request):
79+
return request.config.getoption("--fitCount")
80+
7181

7282
def pytest_generate_tests(metafunc):
7383
if "SNR" in metafunc.fixturenames:

tests/IVIMmodels/unit_tests/test_ivim_synthetic.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,29 +5,32 @@
55
import pathlib
66
import os
77
import csv
8+
import random
89

910
from src.wrappers.OsipiBase import OsipiBase
1011
from utilities.data_simulation.GenerateData import GenerateData
1112

1213
#run using pytest <path_to_this_file> --saveFileName test_output.txt --SNR 50 100 200
1314
#e.g. pytest tests/IVIMmodels/unit_tests/test_ivim_synthetic.py --saveFileName test_output.txt --SNR 50 100 200
14-
def test_generated(ivim_algorithm, ivim_data, SNR, rtol, atol, save_file):
15+
def test_generated(ivim_algorithm, ivim_data, SNR, rtol, atol, fit_count, save_file):
1516
# assert save_file == "test"
17+
random.seed(42)
1618
S0 = 1
1719
gd = GenerateData()
1820
name, bvals, data = ivim_data
1921
D = data["D"]
2022
f = data["f"]
2123
Dp = data["Dp"]
22-
# if "data" not in data:
23-
signal = gd.ivim_signal(D, Dp, f, S0, bvals, SNR)
24-
# else:
25-
# signal = data["data"]
2624
fit = OsipiBase(algorithm=ivim_algorithm)
27-
[f_fit, Dp_fit, D_fit] = fit.ivim_fit(signal, bvals)
28-
if save_file:
29-
save_results(save_file, ivim_algorithm, name, SNR, [f, D, Dp], [f_fit, Dp_fit, D_fit])
30-
npt.assert_allclose([f, D, Dp], [f_fit, D_fit, Dp_fit], rtol, atol)
25+
for idx in range(fit_count):
26+
# if "data" not in data:
27+
signal = gd.ivim_signal(D, Dp, f, S0, bvals, SNR)
28+
# else:
29+
# signal = data["data"]
30+
[f_fit, Dp_fit, D_fit] = fit.ivim_fit(signal, bvals)
31+
if save_file:
32+
save_results(save_file, ivim_algorithm, name, SNR, [f, D, Dp], [f_fit, Dp_fit, D_fit])
33+
npt.assert_allclose([f, D, Dp], [f_fit, D_fit, Dp_fit], rtol, atol)
3134

3235

3336
def save_results(filename, algorithm, name, SNR, truth, fit):

0 commit comments

Comments
 (0)