From 281b161ea4021940e56b8808e3295b273eb2861b Mon Sep 17 00:00:00 2001 From: alexhroom Date: Wed, 20 Nov 2024 13:41:39 +0000 Subject: [PATCH 1/2] fixed custom xy label and layer index names --- RATapi/utils/convert.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/RATapi/utils/convert.py b/RATapi/utils/convert.py index f5e1e0ff..52c8603c 100644 --- a/RATapi/utils/convert.py +++ b/RATapi/utils/convert.py @@ -37,7 +37,7 @@ def r1_to_project_class(filename: str) -> Project: # R1 uses a different name for custom xy layer model layer_model = mat_module["type"] - if layer_model == "custom XY profile": + if layer_model.lower() == "custom xy profile": layer_model = LayerModels.CustomXY layer_model = LayerModels(layer_model) @@ -105,7 +105,9 @@ def read_param(names, constrs, values, fits): f"Background parameter {i}" for i in range(1, mat_project["numberOfBacks"] + 1) ] - if mat_project["numberOfResolutions"] == 1: + # sometimes numberOfResolutions isn't defined: in all these cases there's only one resolution + # maybe from before multiple resolutions were possible? + if getattr(mat_project, "numberOfResolutions", 1) == 1: mat_project["res_param_names"] = "Resolution parameter 1" else: mat_project["res_param_names"] = [ @@ -208,10 +210,11 @@ def read_param(names, constrs, values, fits): [ Layer( name=name, - thickness=params[thickness - 1].name, - SLD=params[sld - 1].name, - roughness=params[roughness - 1].name, - hydration=params[hydration - 1].name, + thickness=params[int(thickness) - 1].name, + SLD=params[int(sld) - 1].name, + roughness=params[int(roughness) - 1].name, + # if hydration is not set, it is an empty numpy array, else it is a string representing a number + hydration=params[int(hydration) - 1].name if getattr(hydration, "size", 1) > 0 else "", hydrate_with=hydrate_with, ) # R1 layers are 6-item arrays, unpack into a Layer object @@ -224,7 +227,8 @@ def read_param(names, constrs, values, fits): if ( isinstance(mat_project["contrastsNumberOfLayers"], int) and mat_project["contrastsNumberOfLayers"] == 0 - or mat_project["contrastsNumberOfLayers"][i] == 0 + or isinstance(mat_project["contrastsNumberOfLayers"], list) + and mat_project["contrastsNumberOfLayers"][i] == 0 ): continue # contrastLayers is not an array, but rather a string with commas between entries @@ -412,7 +416,7 @@ def convert_parameters( project.parameters.index(layer.thickness, True), project.parameters.index(layer.SLD, True), project.parameters.index(layer.roughness, True), - project.parameters.index(layer.hydration, True), + project.parameters.index(layer.hydration, True) if layer.hydration else empty(shape=(0, 0)), layer.name, str(layer.hydrate_with), ] From 0c485500c8fa2a9d99f6b1d9338ebe715e3bd338 Mon Sep 17 00:00:00 2001 From: alexhroom Date: Thu, 21 Nov 2024 09:57:37 +0000 Subject: [PATCH 2/2] added additional test cases --- tests/conftest.py | 1128 +++++++++++++++++++ tests/test_convert.py | 9 + tests/test_data/R1Monolayer_8_contrasts.mat | Bin 0 -> 32958 bytes tests/test_data/R1motofitBenchMark.mat | Bin 0 -> 31802 bytes tests/test_data/R1orsoPolymerExample.mat | Bin 0 -> 33258 bytes tests/test_data/moto.dat | 400 +++++++ tests/test_data/orso_poly.dat | 408 +++++++ 7 files changed, 1945 insertions(+) create mode 100644 tests/test_data/R1Monolayer_8_contrasts.mat create mode 100644 tests/test_data/R1motofitBenchMark.mat create mode 100644 tests/test_data/R1orsoPolymerExample.mat create mode 100644 tests/test_data/moto.dat create mode 100644 tests/test_data/orso_poly.dat diff --git a/tests/conftest.py b/tests/conftest.py index 815acf6a..cfbf3bd2 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,3 +1,5 @@ +from pathlib import Path + import numpy as np import pytest @@ -6000,6 +6002,1132 @@ def r1_monolayer(): return project +@pytest.fixture +def r1_monolayer_8_contrasts(): + """The Project equivalent of the R1 Monolayer_8_contrasts RasCAL-1 project.""" + return RATapi.Project( + name="20nM_data", + calculation="non polarised", + model="standard layers", + geometry="air/substrate", + absorption=False, + parameters=[ + RATapi.models.ProtectedParameter( + name="Substrate Roughness", + min=3.0, + value=6.990825828311747, + max=7.0, + fit=True, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ), + RATapi.models.Parameter( + name="Tails thick", + min=12.0, + value=18.769067940891517, + max=20.0, + fit=True, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ), + RATapi.models.Parameter( + name="Deuterated tails SLD", + min=5e-06, + value=6.935587727961928e-06, + max=9e-06, + fit=True, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ), + RATapi.models.Parameter( + name="Tails roughness", + min=3.0, + value=3.0000000000074776, + max=7.0, + fit=True, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ), + RATapi.models.Parameter( + name="Hydrogenated tails SLD", + min=-6e-07, + value=-2.1907853109709215e-07, + max=-2e-07, + fit=True, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ), + RATapi.models.Parameter( + name="Head thickness", + min=7.0, + value=7.000000000117902, + max=12.0, + fit=True, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ), + RATapi.models.Parameter( + name="Deuterated head SLD", + min=3e-06, + value=5.855129143529369e-06, + max=6e-06, + fit=True, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ), + RATapi.models.Parameter( + name="Head roughness", + min=3.0, + value=3.0000000000000258, + max=7.0, + fit=True, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ), + RATapi.models.Parameter( + name="Hydrogenated head SLD", + min=1e-06, + value=1.8079398141440577e-06, + max=2e-06, + fit=True, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ), + RATapi.models.Parameter( + name="Head hydration", + min=0.0, + value=9.33740417574095, + max=20.0, + fit=True, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ), + ], + bulk_in=[ + RATapi.models.Parameter( + name="Air", + min=0.0, + value=0.0, + max=0.0, + fit=False, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ) + ], + bulk_out=[ + RATapi.models.Parameter( + name="D2O", + min=6.3e-06, + value=6.349999999999999e-06, + max=6.4e-06, + fit=False, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ), + RATapi.models.Parameter( + name="ACMW", + min=-5e-07, + value=3.492898018624419e-08, + max=5e-07, + fit=False, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ), + ], + scalefactors=[ + RATapi.models.Parameter( + name="Scalefactor 1", + min=0.1, + value=0.23251357931599084, + max=0.4, + fit=True, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ) + ], + domain_ratios=[], + background_parameters=[ + RATapi.models.Parameter( + name="Background parameter 1", + min=1e-07, + value=2.889465920816701e-06, + max=7e-06, + fit=True, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ), + RATapi.models.Parameter( + name="Background parameter 2", + min=1e-07, + value=5.172884539063037e-06, + max=7e-06, + fit=True, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ), + ], + backgrounds=[ + RATapi.models.Background( + name="Background D2O", + type="constant", + value_1="Background parameter 1", + value_2="", + value_3="", + value_4="", + value_5="", + ), + RATapi.models.Background( + name="Background ACMW", + type="constant", + value_1="Background parameter 2", + value_2="", + value_3="", + value_4="", + value_5="", + ), + ], + resolution_parameters=[ + RATapi.models.Parameter( + name="Resolution parameter 1", + min=0.01, + value=0.029999999999999964, + max=0.05, + fit=False, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ) + ], + resolutions=[ + RATapi.models.Resolution( + name="Resolution 1", + type="constant", + value_1="Resolution parameter 1", + value_2="", + value_3="", + value_4="", + value_5="", + ) + ], + custom_files=[], + data=[ + RATapi.models.Data( + name="d70acmw20", + data=np.array( + [ + [5.1793e-02, 2.3792e-04, 3.6498e-06], + [5.4383e-02, 2.2030e-04, 3.1361e-06], + [5.7102e-02, 1.9302e-04, 2.6450e-06], + [5.9957e-02, 1.7223e-04, 2.2673e-06], + [6.2955e-02, 1.5210e-04, 1.9699e-06], + [6.6103e-02, 1.3650e-04, 1.7055e-06], + [6.9408e-02, 1.1806e-04, 1.5072e-06], + [7.2878e-02, 1.0904e-04, 1.3658e-06], + [7.6522e-02, 9.5873e-05, 1.2024e-06], + [8.0348e-02, 8.2201e-05, 1.0754e-06], + [8.4365e-02, 7.0764e-05, 9.4576e-07], + [8.8584e-02, 6.2973e-05, 8.3975e-07], + [9.3013e-02, 5.3710e-05, 7.3854e-07], + [9.7664e-02, 4.6651e-05, 6.5893e-07], + [1.0255e-01, 4.0448e-05, 5.8945e-07], + [1.0767e-01, 3.4559e-05, 5.2655e-07], + [1.1306e-01, 2.9817e-05, 4.7806e-07], + [1.1871e-01, 2.5965e-05, 4.4165e-07], + [1.2465e-01, 2.1963e-05, 3.9117e-07], + [1.3088e-01, 1.8535e-05, 3.5668e-07], + [1.3742e-01, 1.6299e-05, 3.4665e-07], + [1.4429e-01, 1.3704e-05, 3.2491e-07], + [1.5151e-01, 1.0571e-05, 2.9830e-07], + [1.5908e-01, 8.9320e-06, 2.9188e-07], + [1.6704e-01, 6.8328e-06, 2.7922e-07], + [1.7539e-01, 5.7856e-06, 2.7261e-07], + [1.8416e-01, 4.5358e-06, 2.5335e-07], + [1.9337e-01, 3.9935e-06, 2.5336e-07], + [2.0304e-01, 3.1800e-06, 5.2440e-07], + [2.1319e-01, 2.7006e-06, 4.6690e-07], + [2.2385e-01, 2.2210e-06, 4.5090e-07], + [2.3504e-01, 1.6163e-06, 4.9340e-07], + [2.4679e-01, 1.7554e-06, 3.2120e-07], + [2.5913e-01, 1.3194e-06, 1.7170e-07], + [2.7209e-01, 1.5033e-06, 3.4760e-07], + [2.8569e-01, 1.3801e-06, 7.2017e-07], + [2.9998e-01, 1.2640e-06, 4.5486e-07], + [3.1497e-01, 1.0585e-06, 3.6820e-07], + [3.3072e-01, 1.3063e-06, 4.5401e-07], + [3.4726e-01, 1.1229e-06, 2.3240e-07], + [3.6462e-01, 1.5197e-06, 4.8780e-07], + [3.8285e-01, 1.1419e-06, 4.1880e-07], + [4.0200e-01, 1.3285e-06, 4.0215e-07], + [4.2210e-01, 1.2467e-06, 5.8010e-07], + [4.4320e-01, 1.1322e-06, 3.2730e-07], + [4.6536e-01, 1.1336e-06, 4.3291e-07], + [4.8863e-01, 1.4843e-06, 5.0110e-07], + [5.1306e-01, 1.2055e-06, 3.0660e-07], + [5.3871e-01, 1.2170e-06, 4.0500e-07], + [5.6565e-01, 8.9674e-07, 3.5866e-07], + [5.8877e-01, 9.4625e-07, 7.6511e-07], + ] + ), + data_range=[0.051793, 0.58877], + simulation_range=[0.051793, 0.58877], + ), + RATapi.models.Data( + name="d70d2o20", + data=np.array( + [ + [5.1793e-02, 1.4943e-04, 3.2517e-06], + [5.4383e-02, 1.1882e-04, 2.5846e-06], + [5.7102e-02, 9.2164e-05, 2.0507e-06], + [5.9957e-02, 7.7813e-05, 1.7070e-06], + [6.2955e-02, 6.1143e-05, 1.3983e-06], + [6.6103e-02, 4.8033e-05, 1.1343e-06], + [6.9408e-02, 4.1379e-05, 1.0006e-06], + [7.2878e-02, 3.5090e-05, 8.6919e-07], + [7.6522e-02, 3.0350e-05, 7.5890e-07], + [8.0348e-02, 2.4115e-05, 6.5226e-07], + [8.4365e-02, 2.0755e-05, 5.7445e-07], + [8.8584e-02, 1.7500e-05, 4.9617e-07], + [9.3013e-02, 1.5011e-05, 4.3754e-07], + [9.7664e-02, 1.3632e-05, 3.9907e-07], + [1.0255e-01, 1.2997e-05, 3.7469e-07], + [1.0767e-01, 1.1656e-05, 3.4282e-07], + [1.1306e-01, 1.0820e-05, 3.2299e-07], + [1.1871e-01, 9.5831e-06, 3.0088e-07], + [1.2465e-01, 8.9996e-06, 2.8102e-07], + [1.3088e-01, 8.6498e-06, 2.7363e-07], + [1.3742e-01, 7.9412e-06, 2.7158e-07], + [1.4429e-01, 7.4042e-06, 2.6829e-07], + [1.5151e-01, 6.8321e-06, 2.6877e-07], + [1.5908e-01, 5.6809e-06, 2.6232e-07], + [1.6704e-01, 5.6646e-06, 2.8607e-07], + [1.7539e-01, 4.7762e-06, 2.7767e-07], + [1.8416e-01, 4.1971e-06, 2.7353e-07], + [1.9337e-01, 4.1815e-06, 2.9140e-07], + [2.0304e-01, 3.2725e-06, 2.3160e-07], + [2.1319e-01, 2.3244e-06, 4.2270e-07], + [2.2385e-01, 2.2892e-06, 1.4970e-07], + [2.3504e-01, 1.9198e-06, 8.1460e-07], + [2.4679e-01, 1.4828e-06, 1.0840e-07], + [2.5913e-01, 1.1450e-06, 4.7440e-07], + [2.7209e-01, 1.3047e-06, 1.8840e-07], + [2.8569e-01, 9.6081e-07, 3.9385e-07], + [2.9998e-01, 8.2280e-07, 2.3955e-07], + [3.1497e-01, 6.3219e-07, 3.5324e-07], + [3.3072e-01, 6.1254e-07, 5.0846e-07], + [3.4726e-01, 7.4092e-07, 2.2312e-07], + [3.6462e-01, 6.3584e-07, 4.2866e-07], + [3.8285e-01, 7.7287e-07, 2.9493e-07], + [4.0200e-01, 9.4637e-07, 2.3347e-07], + [4.2210e-01, 7.0576e-07, 3.3494e-07], + [4.4320e-01, 7.8969e-07, 2.3371e-07], + [4.6536e-01, 5.8374e-07, 3.2624e-07], + [4.8863e-01, 5.6711e-07, 6.0419e-07], + [5.1306e-01, 4.7782e-07, 3.4822e-07], + [5.3871e-01, 6.3813e-07, 4.3279e-07], + [5.6565e-01, 4.6186e-07, 1.8863e-07], + [5.8877e-01, 5.6129e-07, 4.3960e-07], + ] + ), + data_range=[0.051793, 0.58877], + simulation_range=[0.051793, 0.58877], + ), + RATapi.models.Data( + name="d13acmw20", + data=np.array( + [ + [5.1793e-02, 1.8087e-05, 7.9683e-07], + [5.4383e-02, 1.4582e-05, 6.3691e-07], + [5.7102e-02, 1.3621e-05, 5.5407e-07], + [5.9957e-02, 1.2409e-05, 4.8014e-07], + [6.2955e-02, 1.0992e-05, 4.1824e-07], + [6.6103e-02, 1.0619e-05, 3.7541e-07], + [6.9408e-02, 1.0162e-05, 3.4945e-07], + [7.2878e-02, 1.0716e-05, 3.3763e-07], + [7.6522e-02, 8.3468e-06, 2.8040e-07], + [8.0348e-02, 7.5250e-06, 2.5702e-07], + [8.4365e-02, 6.4395e-06, 2.2528e-07], + [8.8584e-02, 6.0544e-06, 2.0545e-07], + [9.3013e-02, 5.9517e-06, 1.9417e-07], + [9.7664e-02, 5.6433e-06, 1.8108e-07], + [1.0255e-01, 4.8172e-06, 1.6076e-07], + [1.0767e-01, 4.8066e-06, 1.5520e-07], + [1.1306e-01, 4.1559e-06, 1.4115e-07], + [1.1871e-01, 4.1418e-06, 1.3926e-07], + [1.2465e-01, 3.4580e-06, 1.2273e-07], + [1.3088e-01, 3.2376e-06, 1.1791e-07], + [1.3742e-01, 3.0976e-06, 1.1948e-07], + [1.4429e-01, 2.7478e-06, 1.1518e-07], + [1.5151e-01, 2.5492e-06, 1.1573e-07], + [1.5908e-01, 2.7500e-06, 1.2812e-07], + [1.6704e-01, 2.1813e-06, 2.0450e-07], + [1.7539e-01, 1.8609e-06, 5.4900e-07], + [1.8416e-01, 1.9405e-06, 1.5660e-07], + [1.9337e-01, 1.7421e-06, 2.3280e-07], + [2.0304e-01, 1.8050e-06, 3.9820e-07], + [2.1319e-01, 1.5801e-06, 1.4110e-07], + [2.2385e-01, 1.6724e-06, 7.7900e-08], + [2.3504e-01, 1.4150e-06, 4.0820e-07], + [2.4679e-01, 1.4340e-06, 5.3180e-07], + [2.5913e-01, 1.3102e-06, 2.6000e-07], + [2.7209e-01, 1.3702e-06, 2.8540e-07], + [2.8569e-01, 1.2468e-06, 2.3230e-07], + [2.9998e-01, 1.2956e-06, 5.3240e-07], + [3.1497e-01, 1.2947e-06, 3.9940e-07], + [3.3072e-01, 1.2488e-06, 2.1390e-07], + [3.4726e-01, 1.4620e-06, 3.3640e-07], + [3.6462e-01, 1.3056e-06, 2.1600e-07], + [3.8285e-01, 1.4553e-06, 2.3170e-07], + [4.0200e-01, 1.1579e-06, 2.6740e-07], + [4.2210e-01, 1.1753e-06, 3.0940e-07], + [4.4320e-01, 1.0066e-06, 5.2040e-07], + [4.6536e-01, 1.1043e-06, 3.1870e-07], + [4.8863e-01, 1.2969e-06, 4.1670e-07], + [5.1306e-01, 1.2495e-06, 2.0890e-07], + [5.3871e-01, 1.3898e-06, 4.7560e-07], + [5.6565e-01, 1.1225e-06, 3.0470e-07], + [5.8877e-01, 8.3346e-07, 3.8944e-07], + ] + ), + data_range=[0.051793, 0.58877], + simulation_range=[0.051793, 0.58877], + ), + RATapi.models.Data( + name="d13d2o20", + data=np.array( + [ + [5.1793e-02, 2.2464e-04, 3.4007e-06], + [5.4383e-02, 1.8531e-04, 2.7523e-06], + [5.7102e-02, 1.5463e-04, 2.2639e-06], + [5.9957e-02, 1.2459e-04, 1.8443e-06], + [6.2955e-02, 1.0332e-04, 1.5526e-06], + [6.6103e-02, 8.3207e-05, 1.2736e-06], + [6.9408e-02, 6.6859e-05, 1.0850e-06], + [7.2878e-02, 5.5540e-05, 9.3212e-07], + [7.6522e-02, 4.6869e-05, 8.0410e-07], + [8.0348e-02, 3.6672e-05, 6.8717e-07], + [8.4365e-02, 3.0955e-05, 5.9837e-07], + [8.8584e-02, 2.4781e-05, 5.0395e-07], + [9.3013e-02, 2.0163e-05, 4.3266e-07], + [9.7664e-02, 1.7194e-05, 3.8276e-07], + [1.0255e-01, 1.3801e-05, 3.2953e-07], + [1.0767e-01, 1.0868e-05, 2.8268e-07], + [1.1306e-01, 8.9118e-06, 2.5019e-07], + [1.1871e-01, 8.2266e-06, 2.3789e-07], + [1.2465e-01, 6.7891e-06, 2.0822e-07], + [1.3088e-01, 5.5048e-06, 1.8610e-07], + [1.3742e-01, 4.3011e-06, 1.7064e-07], + [1.4429e-01, 3.7549e-06, 1.6291e-07], + [1.5151e-01, 3.0281e-06, 1.5298e-07], + [1.5908e-01, 2.7102e-06, 1.5371e-07], + [1.6704e-01, 1.9817e-06, 5.2560e-07], + [1.7539e-01, 1.8156e-06, 6.2930e-07], + [1.8416e-01, 1.6126e-06, 1.0180e-07], + [1.9337e-01, 1.5010e-06, 2.6400e-07], + [2.0304e-01, 1.3504e-06, 3.6310e-07], + [2.1319e-01, 1.0658e-06, 6.1751e-07], + [2.2385e-01, 1.0028e-06, 2.4871e-07], + [2.3504e-01, 9.1701e-07, 2.3499e-07], + [2.4679e-01, 7.5092e-07, 2.4518e-07], + [2.5913e-01, 1.0126e-06, 1.6429e-07], + [2.7209e-01, 7.5725e-07, 4.1481e-07], + [2.8569e-01, 6.2167e-07, 3.5735e-07], + [2.9998e-01, 7.0777e-07, 2.0772e-07], + [3.1497e-01, 8.5576e-07, 1.6916e-07], + [3.3072e-01, 8.4284e-07, 2.2151e-07], + [3.4726e-01, 4.4441e-07, 3.2246e-07], + [3.6462e-01, 6.6378e-07, 2.3675e-07], + [3.8285e-01, 7.1382e-07, 3.7039e-07], + [4.0200e-01, 5.6163e-07, 4.4157e-07], + [4.2210e-01, 5.9761e-07, 3.4927e-07], + [4.4320e-01, 4.9182e-07, 3.5155e-07], + [4.6536e-01, 5.6609e-07, 2.3558e-07], + [4.8863e-01, 5.3547e-07, 1.7267e-07], + [5.1306e-01, 4.7647e-07, 5.4127e-07], + [5.3871e-01, 3.8841e-07, 2.9179e-07], + [5.6565e-01, 4.7749e-07, 8.6240e-08], + [5.8877e-01, 4.6278e-07, 2.3214e-07], + ] + ), + data_range=[0.051793, 0.58877], + simulation_range=[0.051793, 0.58877], + ), + RATapi.models.Data( + name="d83acmw20", + data=np.array( + [ + [5.1793e-02, 3.1675e-04, 4.7735e-06], + [5.4383e-02, 2.7591e-04, 3.9806e-06], + [5.7102e-02, 2.4370e-04, 3.3680e-06], + [5.9957e-02, 2.1836e-04, 2.8915e-06], + [6.2955e-02, 1.9492e-04, 2.5226e-06], + [6.6103e-02, 1.7128e-04, 2.1638e-06], + [6.9408e-02, 1.5381e-04, 1.9499e-06], + [7.2878e-02, 1.3398e-04, 1.7140e-06], + [7.6522e-02, 1.1643e-04, 1.5011e-06], + [8.0348e-02, 9.7386e-05, 1.3256e-06], + [8.4365e-02, 8.5091e-05, 1.1744e-06], + [8.8584e-02, 7.2996e-05, 1.0224e-06], + [9.3013e-02, 6.0693e-05, 8.8816e-07], + [9.7664e-02, 5.1967e-05, 7.8767e-07], + [1.0255e-01, 4.3371e-05, 6.9118e-07], + [1.0767e-01, 3.6363e-05, 6.1123e-07], + [1.1306e-01, 2.9948e-05, 5.4231e-07], + [1.1871e-01, 2.5863e-05, 4.9879e-07], + [1.2465e-01, 2.1196e-05, 4.3527e-07], + [1.3088e-01, 1.7278e-05, 3.8999e-07], + [1.3742e-01, 1.3647e-05, 3.5922e-07], + [1.4429e-01, 1.0898e-05, 3.2810e-07], + [1.5151e-01, 8.3399e-06, 2.9972e-07], + [1.5908e-01, 6.7776e-06, 2.8761e-07], + [1.6704e-01, 5.8668e-06, 2.9311e-07], + [1.7539e-01, 4.1380e-06, 2.6133e-07], + [1.8416e-01, 2.7663e-06, 2.2329e-07], + [1.9337e-01, 2.3200e-06, 2.1903e-07], + [2.0304e-01, 1.9127e-06, 5.6910e-07], + [2.1319e-01, 1.7434e-06, 1.2640e-07], + [2.2385e-01, 1.7550e-06, 1.9990e-07], + [2.3504e-01, 1.4527e-06, 3.8840e-07], + [2.4679e-01, 1.1333e-06, 5.9440e-07], + [2.5913e-01, 1.1667e-06, 5.7100e-07], + [2.7209e-01, 1.3539e-06, 2.1560e-07], + [2.8569e-01, 1.5357e-06, 3.5990e-07], + [2.9998e-01, 9.0768e-07, 8.9822e-07], + [3.1497e-01, 1.2821e-06, 3.1450e-07], + [3.3072e-01, 1.2360e-06, 4.1700e-07], + [3.4726e-01, 9.6932e-07, 4.5458e-07], + [3.6462e-01, 1.4644e-06, 4.7300e-07], + [3.8285e-01, 1.2330e-06, 3.4780e-07], + [4.0200e-01, 1.3783e-06, 4.5143e-07], + [4.2210e-01, 1.2637e-06, 2.4980e-07], + [4.4320e-01, 1.1299e-06, 1.9310e-07], + [4.6536e-01, 1.1748e-06, 4.3340e-07], + [4.8863e-01, 1.2029e-06, 1.4040e-07], + [5.1306e-01, 9.9648e-07, 6.1262e-07], + [5.3871e-01, 9.4235e-07, 6.9825e-07], + [5.6565e-01, 1.2561e-06, 4.5650e-07], + [5.8877e-01, 1.0005e-06, 1.1520e-07], + ] + ), + data_range=[0.051793, 0.58877], + simulation_range=[0.051793, 0.58877], + ), + RATapi.models.Data( + name="d83d2o20", + data=np.array( + [ + [5.1793e-02, 2.3497e-04, 4.1366e-06], + [5.4383e-02, 1.9138e-04, 3.3298e-06], + [5.7102e-02, 1.6092e-04, 2.7523e-06], + [5.9957e-02, 1.3177e-04, 2.2579e-06], + [6.2955e-02, 1.0694e-04, 1.8785e-06], + [6.6103e-02, 9.0449e-05, 1.5805e-06], + [6.9408e-02, 7.2115e-05, 1.3407e-06], + [7.2878e-02, 5.9602e-05, 1.1494e-06], + [7.6522e-02, 4.9097e-05, 9.7903e-07], + [8.0348e-02, 4.1264e-05, 8.6633e-07], + [8.4365e-02, 3.2611e-05, 7.3101e-07], + [8.8584e-02, 2.7676e-05, 6.3311e-07], + [9.3013e-02, 2.2224e-05, 5.4031e-07], + [9.7664e-02, 1.9035e-05, 4.7882e-07], + [1.0255e-01, 1.5324e-05, 4.1267e-07], + [1.0767e-01, 1.3008e-05, 3.6731e-07], + [1.1306e-01, 1.0121e-05, 3.1672e-07], + [1.1871e-01, 9.3837e-06, 3.0201e-07], + [1.2465e-01, 7.4003e-06, 2.5840e-07], + [1.3088e-01, 6.6417e-06, 2.4288e-07], + [1.3742e-01, 5.5185e-06, 2.2950e-07], + [1.4429e-01, 4.6301e-06, 2.1511e-07], + [1.5151e-01, 3.8179e-06, 2.0421e-07], + [1.5908e-01, 3.6504e-06, 2.1327e-07], + [1.6704e-01, 3.3693e-06, 5.8910e-07], + [1.7539e-01, 2.9089e-06, 6.0910e-07], + [1.8416e-01, 2.0826e-06, 8.8760e-07], + [1.9337e-01, 1.8413e-06, 2.0110e-07], + [2.0304e-01, 1.7280e-06, 4.2860e-07], + [2.1319e-01, 2.0794e-06, 4.5100e-07], + [2.2385e-01, 1.2345e-06, 4.2410e-07], + [2.3504e-01, 1.3707e-06, 2.7770e-07], + [2.4679e-01, 1.2666e-06, 9.8800e-08], + [2.5913e-01, 1.1391e-06, 6.9332e-07], + [2.7209e-01, 1.1299e-06, 2.1680e-07], + [2.8569e-01, 8.4537e-07, 5.3956e-07], + [2.9998e-01, 6.8579e-07, 4.6611e-07], + [3.1497e-01, 8.3948e-07, 3.2138e-07], + [3.3072e-01, 8.8276e-07, 4.6705e-07], + [3.4726e-01, 7.8563e-07, 6.4686e-07], + [3.6462e-01, 6.8788e-07, 3.9930e-07], + [3.8285e-01, 6.1412e-07, 1.8886e-07], + [4.0200e-01, 6.8538e-07, 4.0952e-07], + [4.2210e-01, 5.8111e-07, 5.0615e-07], + [4.4320e-01, 5.4626e-07, 2.3667e-07], + [4.6536e-01, 6.5234e-07, 4.2512e-07], + [4.8863e-01, 3.6587e-07, 4.3870e-07], + [5.1306e-01, 4.1699e-07, 1.9893e-07], + [5.3871e-01, 4.9769e-07, 2.1907e-07], + [5.6565e-01, 3.7836e-07, 3.9193e-07], + [5.8877e-01, 4.2082e-07, 3.5255e-07], + ] + ), + data_range=[0.051793, 0.58877], + simulation_range=[0.051793, 0.58877], + ), + RATapi.models.Data( + name="hd2o20", + data=np.array( + [ + [5.1793e-02, 2.1311e-04, 3.8170e-06], + [5.4383e-02, 1.7454e-04, 3.0814e-06], + [5.7102e-02, 1.4351e-04, 2.5155e-06], + [5.9957e-02, 1.1515e-04, 2.0424e-06], + [6.2955e-02, 9.0901e-05, 1.6762e-06], + [6.6103e-02, 7.4677e-05, 1.3909e-06], + [6.9408e-02, 6.1965e-05, 1.2044e-06], + [7.2878e-02, 4.9933e-05, 1.0186e-06], + [7.6522e-02, 4.1322e-05, 8.7025e-07], + [8.0348e-02, 3.2145e-05, 7.4114e-07], + [8.4365e-02, 2.6927e-05, 6.4343e-07], + [8.8584e-02, 2.0970e-05, 5.3415e-07], + [9.3013e-02, 1.6109e-05, 4.4582e-07], + [9.7664e-02, 1.2974e-05, 3.8305e-07], + [1.0255e-01, 1.0411e-05, 3.2993e-07], + [1.0767e-01, 7.7586e-06, 2.7512e-07], + [1.1306e-01, 6.8947e-06, 2.5357e-07], + [1.1871e-01, 5.5102e-06, 2.2445e-07], + [1.2465e-01, 4.3486e-06, 1.9200e-07], + [1.3088e-01, 3.3433e-06, 1.6724e-07], + [1.3742e-01, 2.7268e-06, 1.5634e-07], + [1.4429e-01, 2.2001e-06, 1.4377e-07], + [1.5151e-01, 1.8064e-06, 1.3591e-07], + [1.5908e-01, 1.4947e-06, 1.3214e-07], + [1.6704e-01, 1.5335e-06, 3.9200e-07], + [1.7539e-01, 1.0430e-06, 8.5200e-08], + [1.8416e-01, 1.0070e-06, 3.9617e-07], + [1.9337e-01, 7.5452e-07, 1.7785e-07], + [2.0304e-01, 6.9356e-07, 2.8065e-07], + [2.1319e-01, 5.9018e-07, 4.0612e-07], + [2.2385e-01, 7.0286e-07, 3.4384e-07], + [2.3504e-01, 6.0890e-07, 2.8376e-07], + [2.4679e-01, 8.0600e-07, 2.2092e-07], + [2.5913e-01, 7.9177e-07, 3.4918e-07], + [2.7209e-01, 8.5193e-07, 3.3083e-07], + [2.8569e-01, 8.1507e-07, 2.7682e-07], + [2.9998e-01, 7.1477e-07, 1.6790e-07], + [3.1497e-01, 6.1835e-07, 2.0612e-07], + [3.3072e-01, 5.7863e-07, 3.3869e-07], + [3.4726e-01, 4.0735e-07, 6.1275e-07], + [3.6462e-01, 8.2937e-07, 3.2510e-07], + [3.8285e-01, 7.5561e-07, 2.0851e-07], + [4.0200e-01, 6.6174e-07, 2.9566e-07], + [4.2210e-01, 5.6503e-07, 2.0503e-07], + [4.4320e-01, 6.5599e-07, 3.0025e-07], + [4.6536e-01, 4.8085e-07, 2.6812e-07], + [4.8863e-01, 4.1179e-07, 2.7538e-07], + [5.1306e-01, 6.0006e-07, 2.6417e-07], + [5.3871e-01, 6.3395e-07, 3.9303e-07], + [5.6565e-01, 6.3474e-07, 2.3217e-07], + [5.8877e-01, 3.3414e-07, 3.9170e-07], + ] + ), + data_range=[0.051793, 0.58877], + simulation_range=[0.051793, 0.58877], + ), + ], + layers=[ + RATapi.models.Layer( + name="Deuterated tails", + thickness="Tails thick", + SLD="Deuterated tails SLD", + roughness="Tails roughness", + hydration="", + hydrate_with="bulk out", + ), + RATapi.models.Layer( + name="Hydrogenated tails", + thickness="Tails thick", + SLD="Hydrogenated tails SLD", + roughness="Tails roughness", + hydration="", + hydrate_with="bulk out", + ), + RATapi.models.Layer( + name="Deuterated heads", + thickness="Head thickness", + SLD="Deuterated head SLD", + roughness="Head roughness", + hydration="Head hydration", + hydrate_with="bulk out", + ), + RATapi.models.Layer( + name="Hydrogenated heads", + thickness="Head thickness", + SLD="Hydrogenated head SLD", + roughness="Head roughness", + hydration="Head hydration", + hydrate_with="bulk out", + ), + ], + domain_contrasts=[], + contrasts=[ + RATapi.models.Contrast( + name="d70, acmw", + data="d70acmw20", + background="Background ACMW", + background_action="add", + bulk_in="Air", + bulk_out="ACMW", + scalefactor="Scalefactor 1", + resolution="Resolution 1", + resample=False, + model=["Deuterated tails", "Hydrogenated heads"], + ), + RATapi.models.Contrast( + name="d70 d2o", + data="d70d2o20", + background="Background D2O", + background_action="add", + bulk_in="Air", + bulk_out="D2O", + scalefactor="Scalefactor 1", + resolution="Resolution 1", + resample=False, + model=["Deuterated tails", "Hydrogenated heads"], + ), + RATapi.models.Contrast( + name="d13 acmw", + data="d13acmw20", + background="Background ACMW", + background_action="add", + bulk_in="Air", + bulk_out="ACMW", + scalefactor="Scalefactor 1", + resolution="Resolution 1", + resample=False, + model=["Hydrogenated tails", "Deuterated heads"], + ), + RATapi.models.Contrast( + name="d13 d2o", + data="d13d2o20", + background="Background D2O", + background_action="add", + bulk_in="Air", + bulk_out="D2O", + scalefactor="Scalefactor 1", + resolution="Resolution 1", + resample=False, + model=["Hydrogenated tails", "Deuterated heads"], + ), + RATapi.models.Contrast( + name="d83 acmw", + data="d83acmw20", + background="Background ACMW", + background_action="add", + bulk_in="Air", + bulk_out="ACMW", + scalefactor="Scalefactor 1", + resolution="Resolution 1", + resample=False, + model=["Deuterated tails", "Deuterated heads"], + ), + RATapi.models.Contrast( + name="d83 d2o", + data="d83d2o20", + background="Background D2O", + background_action="add", + bulk_in="Air", + bulk_out="D2O", + scalefactor="Scalefactor 1", + resolution="Resolution 1", + resample=False, + model=["Deuterated tails", "Deuterated heads"], + ), + RATapi.models.Contrast( + name="fully h, D2O", + data="hd2o20", + background="Background D2O", + background_action="add", + bulk_in="Air", + bulk_out="D2O", + scalefactor="Scalefactor 1", + resolution="Resolution 1", + resample=False, + model=["Hydrogenated tails", "Hydrogenated heads"], + ), + ], + ) + + +@pytest.fixture +def r1_orso_polymer(): + """The project equivalent of the RasCAL-1 ORSO Polymer example.""" + # the test data is BIG (400 lines) so it's easier to just load it in + orso_poly_data = np.loadtxt(Path(__file__).parent / "test_data/orso_poly.dat") + + return RATapi.Project( + name="orsoPolymerExample", + calculation="non polarised", + model="standard layers", + geometry="air/substrate", + absorption=False, + parameters=[ + RATapi.models.ProtectedParameter( + name="Substrate Roughness", + min=3.0, + value=4.844363132849221, + max=8.0, + fit=True, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ) + ], + bulk_in=[ + RATapi.models.Parameter( + name="Air", + min=0.0, + value=0.0, + max=0.0, + fit=False, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ) + ], + bulk_out=[ + RATapi.models.Parameter( + name="D2O", + min=6.3e-06, + value=6.35e-06, + max=6.4e-06, + fit=False, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ) + ], + scalefactors=[ + RATapi.models.Parameter( + name="Scalefactor 1", + min=0.05, + value=0.10141560336360426, + max=0.3, + fit=False, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ) + ], + domain_ratios=[], + background_parameters=[ + RATapi.models.Parameter( + name="Background parameter 1", + min=5e-08, + value=3.069003361230152e-06, + max=7e-06, + fit=False, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ) + ], + backgrounds=[ + RATapi.models.Background( + name="Background 1", + type="constant", + value_1="Background parameter 1", + value_2="", + value_3="", + value_4="", + value_5="", + ) + ], + resolution_parameters=[ + RATapi.models.Parameter( + name="Resolution parameter 1", + min=0.01, + value=0.03, + max=0.05, + fit=False, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ) + ], + resolutions=[ + RATapi.models.Resolution( + name="Resolution 1", + type="constant", + value_1="Resolution parameter 1", + value_2="", + value_3="", + value_4="", + value_5="", + ) + ], + custom_files=[], + data=[ + RATapi.models.Data( + name="polymerData", + data=orso_poly_data, + data_range=[0.0080602, 0.46555], + simulation_range=[0.0080602, 0.46555], + ) + ], + layers=[], + domain_contrasts=[], + contrasts=[ + RATapi.models.Contrast( + name="Chain-d, acmw", + data="polymerData", + background="Background 1", + background_action="add", + bulk_in="Air", + bulk_out="D2O", + scalefactor="Scalefactor 1", + resolution="Resolution 1", + resample=False, + model=[], + ) + ], + ) + + +@pytest.fixture +def r1_motofit_bench_mark(): + """The project from the R1motofitBenchMark RasCAL-1 project file.""" + moto_data = np.loadtxt(Path(__file__).parent / "test_data/moto.dat") + + return RATapi.Project( + name="motofitBenchMark", + calculation="non polarised", + model="standard layers", + geometry="air/substrate", + absorption=False, + parameters=[ + RATapi.models.ProtectedParameter( + name="Substrate Roughness", + min=1.0, + value=3.0, + max=5.0, + fit=True, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ), + RATapi.models.Parameter( + name="sub rough", + min=3.0, + value=3.9949146424129665, + max=8.0, + fit=True, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ), + RATapi.models.Parameter( + name="Thick", + min=0.0, + value=33.2791896400743, + max=100.0, + fit=True, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ), + RATapi.models.Parameter( + name="SLD 1", + min=0.0, + value=1.074484187182878e-06, + max=5e-06, + fit=True, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ), + RATapi.models.Parameter( + name="SLD 2", + min=9e-06, + value=1.0658506835478824e-05, + max=1.2e-05, + fit=True, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ), + RATapi.models.Parameter( + name="Thick2", + min=100.0, + value=498.6676783112137, + max=1000.0, + fit=True, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ), + RATapi.models.Parameter( + name="Rough 1", + min=2.0, + value=4.563688983733924, + max=7.0, + fit=True, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ), + RATapi.models.Parameter( + name="Rough 2", + min=2.0, + value=4.410704485333302, + max=7.0, + fit=True, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ), + ], + bulk_in=[ + RATapi.models.Parameter( + name="Air", + min=0.0, + value=0.0, + max=0.0, + fit=False, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ) + ], + bulk_out=[ + RATapi.models.Parameter( + name="D2O", + min=2e-05, + value=2.01e-05, + max=2.2e-05, + fit=False, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ) + ], + scalefactors=[ + RATapi.models.Parameter( + name="Scalefactor 1", + min=0.99, + value=0.9999894027309877, + max=1.01, + fit=True, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ) + ], + domain_ratios=[], + background_parameters=[ + RATapi.models.Parameter( + name="Background parameter 1", + min=5e-08, + value=1.306895319301746e-07, + max=1e-06, + fit=True, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ) + ], + backgrounds=[ + RATapi.models.Background( + name="Background 1", + type="constant", + value_1="Background parameter 1", + value_2="", + value_3="", + value_4="", + value_5="", + ) + ], + resolution_parameters=[ + RATapi.models.Parameter( + name="Resolution parameter 1", + min=0.0, + value=0.0, + max=0.05, + fit=False, + prior_type="uniform", + mu=0.0, + sigma=np.inf, + ) + ], + resolutions=[ + RATapi.models.Resolution( + name="Resolution 1", + type="constant", + value_1="Resolution parameter 1", + value_2="", + value_3="", + value_4="", + value_5="", + ) + ], + custom_files=[], + data=[ + RATapi.models.Data( + name="mFitBench", + data=moto_data, + data_range=[0.02, 0.59188], + simulation_range=[0.02, 0.59188], + ) + ], + layers=[ + RATapi.models.Layer( + name="New Layer 0", + thickness="Thick", + SLD="SLD 1", + roughness="Rough 1", + hydration="", + hydrate_with="bulk out", + ), + RATapi.models.Layer( + name="New Layer 1", + thickness="Thick2", + SLD="SLD 2", + roughness="Rough 2", + hydration="", + hydrate_with="bulk out", + ), + ], + domain_contrasts=[], + contrasts=[ + RATapi.models.Contrast( + name="Chain-d, acmw", + data="mFitBench", + background="Background 1", + background_action="add", + bulk_in="Air", + bulk_out="D2O", + scalefactor="Scalefactor 1", + resolution="Resolution 1", + resample=False, + model=["New Layer 0"], + ) + ], + ) + + @pytest.fixture def dspc_standard_layers(): """The project from the DSPC Standard Layers example.""" diff --git a/tests/test_convert.py b/tests/test_convert.py index 72934d50..3e4690c6 100644 --- a/tests/test_convert.py +++ b/tests/test_convert.py @@ -51,6 +51,9 @@ def dspc_bilayer(): ["R1defaultProject.mat", "r1_default_project"], ["R1monolayerVolumeModel.mat", "r1_monolayer"], ["R1DSPCBilayer.mat", "dspc_bilayer"], + ["R1Monolayer_8_contrasts.mat", "r1_monolayer_8_contrasts"], + ["R1orsoPolymerExample.mat", "r1_orso_polymer"], + ["R1motofitBenchMark.mat", "r1_motofit_bench_mark"], ], ) def test_r1_to_project_class(file, project, request): @@ -69,6 +72,9 @@ def test_r1_to_project_class(file, project, request): [ "r1_default_project", "r1_monolayer", + "r1_monolayer_8_contrasts", + "r1_orso_polymer", + "r1_motofit_bench_mark", "dspc_bilayer", ], ) @@ -96,6 +102,9 @@ def mock_load(ignored_filename, **ignored_settings): [ "r1_default_project", "r1_monolayer", + "r1_monolayer_8_contrasts", + "r1_orso_polymer", + "r1_motofit_bench_mark", "dspc_bilayer", "dspc_standard_layers", "dspc_custom_layers", diff --git a/tests/test_data/R1Monolayer_8_contrasts.mat b/tests/test_data/R1Monolayer_8_contrasts.mat new file mode 100644 index 0000000000000000000000000000000000000000..da9de41789853053504a7a652eb23b5c446b7d2a GIT binary patch literal 32958 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 F{{h^+PaFUM literal 0 HcmV?d00001 diff --git a/tests/test_data/R1motofitBenchMark.mat b/tests/test_data/R1motofitBenchMark.mat new file mode 100644 index 0000000000000000000000000000000000000000..449362a5248478f511f40e28da251b7e9c5cdac2 GIT binary patch literal 31802 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 yytT=XBTsl z?RA1163#4EC9Pk(w0lerOhDLP;LR{LPkC-84W7wQ@T?W-5{c_1LL9ue!Bx)pk=pux z4xKKvtP#H$_vop}iJwc+QS7C3&R$?EXU2DV&qZSs*_vqrJYh0@A{D-D2r%xR{1lJO zwns&vmvCI=r-3g=x9lam<>*r}w5c~Uuw6FR_-%A5PiyRR1MlZ!{NWv)-VKppxA>zvpZMi5eU!T`b>|GGX%spbtt!UByjK| zI-IrT$0k&!QZTFm`CEvB8|oJUo4r`FD{Y{a=!s|^2$jWBW)DEE?=b;5Wu0NP`2}XN z?rsJndOR@KbF_dHvqRTu&V{yU3fj7lX72w8Nc}vaemrjFB{mTp6)+KS$`au2iJ`Qg zquGtWCp+cxBR<@f${9>({Rn@Ac*Q+S<(!Q`-v3;Kp7tPro}O>TcckBMrzeFza<*PS zX4nmIMnflrdM^J-etN${W?wnLIPqIPIo$y8^s}?r4b}8y4#SN=S*Sot2@fg$bguZJ z^bY8j_d*Q=8E5(php15DfQqRsV{p0#rz~9ow?FZNLWWPh}%yaw!9ph^EmILMn_e2UM zYT)s|%x!O-nmqRW)%qZS%$>*JR$y!DuS!JPYzl!6W~omfXY*S_O7E~Sme{<2 zQwV_+3!nObG<3!O-5!~{#)gJRpNzOj4?Y>m!+tdkzQOb7`79Io2_td3_vjcg|LONK kw6qWg_FI(Hix!?{uTzvFr&hRW_;=?YpFZI}fBEtM0GSj$>;M1& literal 0 HcmV?d00001 diff --git a/tests/test_data/R1orsoPolymerExample.mat b/tests/test_data/R1orsoPolymerExample.mat new file mode 100644 index 0000000000000000000000000000000000000000..48bc10f658d61b0e6adef332890e007eefa16142 GIT binary patch literal 33258 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

roC>H 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