From 0ece8406fad2c7f89ecbcc254cb9ae925b38579c Mon Sep 17 00:00:00 2001 From: Brian Ben Maranville Date: Thu, 19 May 2022 15:04:23 -0400 Subject: [PATCH 1/2] use lazy imports in anaklasis and bornagain tests so that test suite can run even if they are not installed (those tests will still fail, of course...) --- validation/scripts/test_anaklasis.py | 4 ++-- validation/scripts/test_bornagain.py | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/validation/scripts/test_anaklasis.py b/validation/scripts/test_anaklasis.py index 0103571..b020a84 100644 --- a/validation/scripts/test_anaklasis.py +++ b/validation/scripts/test_anaklasis.py @@ -2,13 +2,11 @@ import numpy as np from test_discovery import get_test_data -from anaklasis import ref tests = list(get_test_data()) ids = [f"{t[0]}" for t in tests] - @pytest.mark.parametrize("nsd", tests, ids=ids) def test_anaklasis(nsd): """ @@ -56,6 +54,7 @@ def anaklasis_layer_matrix(slabs): def kernel_test(slabs, data): # test unsmeared reflectivity calculation + from anaklasis import ref q = data[:, 0] R = data[:, 1] @@ -79,6 +78,7 @@ def kernel_test(slabs, data): def resolution_test(slabs, data): # test unsmeared reflectivity calculation + from anaklasis import ref q = data[:, 0] R = data[:, 1] # dq is a standard deviation but with anaklasis dQ represents the FWHM diff --git a/validation/scripts/test_bornagain.py b/validation/scripts/test_bornagain.py index 030878d..e4ee654 100644 --- a/validation/scripts/test_bornagain.py +++ b/validation/scripts/test_bornagain.py @@ -2,14 +2,13 @@ import numpy as np from test_discovery import get_test_data -import bornagain as ba -from bornagain import angstrom - def get_sample(slabs): """ Defines sample and returns it. Note that SLD-based materials are used. """ + import bornagain as ba + from bornagain import angstrom # creating materials multi_layer = ba.MultiLayer() @@ -43,6 +42,7 @@ def get_simulation(qzs): with a qz-defined beam """ # bornagain requires Qz in nm + import bornagain as ba scan = ba.QzScan(qzs * 10.0) simulation = ba.SpecularSimulation() simulation.setScan(scan) @@ -55,6 +55,7 @@ def get_simulation_smeared(qzs, dqzs): with a qz-defined beam """ # 3.5 sigma to sync with refnx + import bornagain as ba n_sig = 3.5 n_samples = 21 distr = ba.RangedDistributionGaussian(n_samples, n_sig) @@ -71,7 +72,6 @@ def get_simulation_smeared(qzs, dqzs): tests = list(get_test_data()) ids = [f"{t[0]}" for t in tests] - @pytest.mark.parametrize("nsd", tests, ids=ids) def test_bornagain(nsd): """ From ed24decea835f3eb68cea998ed7c8308bae3649b Mon Sep 17 00:00:00 2001 From: Brian Ben Maranville Date: Sat, 21 May 2022 10:58:53 -0400 Subject: [PATCH 2/2] black reformmating --- validation/scripts/test_anaklasis.py | 3 +++ validation/scripts/test_bornagain.py | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/validation/scripts/test_anaklasis.py b/validation/scripts/test_anaklasis.py index b020a84..f8d719a 100644 --- a/validation/scripts/test_anaklasis.py +++ b/validation/scripts/test_anaklasis.py @@ -7,6 +7,7 @@ tests = list(get_test_data()) ids = [f"{t[0]}" for t in tests] + @pytest.mark.parametrize("nsd", tests, ids=ids) def test_anaklasis(nsd): """ @@ -55,6 +56,7 @@ def anaklasis_layer_matrix(slabs): def kernel_test(slabs, data): # test unsmeared reflectivity calculation from anaklasis import ref + q = data[:, 0] R = data[:, 1] @@ -79,6 +81,7 @@ def kernel_test(slabs, data): def resolution_test(slabs, data): # test unsmeared reflectivity calculation from anaklasis import ref + q = data[:, 0] R = data[:, 1] # dq is a standard deviation but with anaklasis dQ represents the FWHM diff --git a/validation/scripts/test_bornagain.py b/validation/scripts/test_bornagain.py index e4ee654..8cb7f58 100644 --- a/validation/scripts/test_bornagain.py +++ b/validation/scripts/test_bornagain.py @@ -9,6 +9,7 @@ def get_sample(slabs): """ import bornagain as ba from bornagain import angstrom + # creating materials multi_layer = ba.MultiLayer() @@ -43,6 +44,7 @@ def get_simulation(qzs): """ # bornagain requires Qz in nm import bornagain as ba + scan = ba.QzScan(qzs * 10.0) simulation = ba.SpecularSimulation() simulation.setScan(scan) @@ -56,6 +58,7 @@ def get_simulation_smeared(qzs, dqzs): """ # 3.5 sigma to sync with refnx import bornagain as ba + n_sig = 3.5 n_samples = 21 distr = ba.RangedDistributionGaussian(n_samples, n_sig) @@ -72,6 +75,7 @@ def get_simulation_smeared(qzs, dqzs): tests = list(get_test_data()) ids = [f"{t[0]}" for t in tests] + @pytest.mark.parametrize("nsd", tests, ids=ids) def test_bornagain(nsd): """