From 85e166b79775b4ecc3d7da3fa19b120fe0d87e46 Mon Sep 17 00:00:00 2001 From: henrikjacobsenfys Date: Mon, 6 Jul 2026 19:14:45 +0200 Subject: [PATCH 1/2] Rename model unit to separate x_unit and y_unit (core) Replace the single `unit` on EasyDynamicsModelBase with independent `x_unit` (axis, default meV) and `y_unit` (output, default dimensionless), and migrate every subclass in the hierarchy. `convert_unit` becomes `convert_x_unit`/`convert_y_unit`, and `evaluate` gains an `output='numpy'|'scipp'` selector. Includes tutorial-notebook updates. Core of the unit-system overhaul; the FitBinding/FitTarget redesign and ExpressionComponent physical constants are split into follow-up PRs. Co-Authored-By: Claude Opus 4.8 --- docs/docs/tutorials/analysis.ipynb | 19 +- docs/docs/tutorials/analysis1d.ipynb | 6 +- .../docs/tutorials/component_collection.ipynb | 6 +- docs/docs/tutorials/components.ipynb | 43 +- docs/docs/tutorials/convolution.ipynb | 10 +- .../tutorials/data/create_fake_data.ipynb | 8 +- .../tutorials/data/fake_advanced_data.hdf5 | Bin 409056 -> 409056 bytes .../docs/tutorials/data/fake_simple_data.hdf5 | Bin 409056 -> 409056 bytes docs/docs/tutorials/delta_lorentz.ipynb | 27 +- docs/docs/tutorials/detailed_balance.ipynb | 4 +- docs/docs/tutorials/diffusion_model.ipynb | 6 +- docs/docs/tutorials/experiment.ipynb | 8 +- docs/docs/tutorials/instrument_model.ipynb | 6 +- docs/docs/tutorials/sample_model.ipynb | 8 +- docs/docs/tutorials/tutorial0_basics.ipynb | 30 +- .../tutorials/tutorial0_more_advanced.ipynb | 43 +- docs/docs/tutorials/tutorial1_brownian.ipynb | 29 +- .../tutorials/tutorial2_nanoparticles.ipynb | 4 +- src/easydynamics/analysis/analysis.py | 28 +- src/easydynamics/analysis/analysis1d.py | 95 ++-- .../base_classes/easydynamics_modelbase.py | 51 ++- .../convolution/analytical_convolution.py | 3 +- src/easydynamics/convolution/convolution.py | 51 ++- .../convolution/convolution_base.py | 113 +++-- .../convolution/numerical_convolution.py | 24 +- .../convolution/numerical_convolution_base.py | 68 ++- src/easydynamics/experiment/experiment.py | 58 ++- .../sample_model/background_model.py | 14 +- .../sample_model/component_collection.py | 208 ++++++--- .../components/damped_harmonic_oscillator.py | 160 ++++--- .../sample_model/components/delta_function.py | 166 ++++--- .../sample_model/components/exponential.py | 200 ++++----- .../components/expression_component.py | 120 +++-- .../sample_model/components/gaussian.py | 149 +++--- .../sample_model/components/lorentzian.py | 146 +++--- .../sample_model/components/mixins.py | 122 ++--- .../components/model_component.py | 425 +++++++++++++----- .../sample_model/components/polynomial.py | 274 ++++++----- .../sample_model/components/voigt.py | 165 ++++--- .../brownian_translational_diffusion.py | 91 ++-- .../diffusion_model/delta_lorentz.py | 169 +++++-- .../diffusion_model/diffusion_model_base.py | 307 +++++++++++-- .../jump_translational_diffusion.py | 92 ++-- .../sample_model/instrument_model.py | 83 ++-- src/easydynamics/sample_model/model_base.py | 102 +++-- .../sample_model/resolution_model.py | 54 ++- src/easydynamics/sample_model/sample_model.py | 153 ++++--- .../settings/convolution_settings.py | 61 ++- .../convolution_width_thresholds.ipynb | 10 +- .../detailed_balance_approximations.ipynb | 6 +- .../easydynamics/analysis/test_analysis.py | 106 ++++- .../easydynamics/analysis/test_analysis1d.py | 98 +++- .../analysis/test_analysis_base.py | 83 +++- .../test_easydynamics_modelbase.py | 18 +- .../test_analytical_convolution.py | 1 - .../convolution/test_convolution.py | 79 +++- .../convolution/test_convolution_base.py | 128 +++++- .../convolution/test_energy_grid.py | 3 + .../convolution/test_numerical_convolution.py | 125 +++++- .../test_numerical_convolution_base.py | 41 +- .../experiment/test_experiment.py | 81 +++- .../test_damped_harmonic_oscillator.py | 142 +++++- .../components/test_delta_function.py | 162 ++++++- .../components/test_exponential.py | 164 +++++-- .../components/test_expression_component.py | 35 +- .../sample_model/components/test_gaussian.py | 129 +++++- .../components/test_lorentzian.py | 123 ++++- .../sample_model/components/test_mixins.py | 18 +- .../components/test_model_component.py | 166 ++++++- .../components/test_polynomial.py | 128 +++++- .../sample_model/components/test_voigt.py | 159 +++++-- .../test_brownian_translational_diffusion.py | 95 +++- .../diffusion_model/test_delta_lorentz.py | 125 +++++- .../test_diffusion_model_base.py | 68 ++- .../test_jump_translational_diffusion.py | 48 +- .../sample_model/test_background_model.py | 32 +- .../sample_model/test_component_collection.py | 275 ++++++++++-- .../sample_model/test_instrument_model.py | 48 +- .../sample_model/test_model_base.py | 181 ++++++-- .../sample_model/test_resolution_model.py | 55 ++- .../sample_model/test_sample_model.py | 99 +++- .../settings/test_convolution_settings.py | 86 ++-- tests/unit/easydynamics/test_exceptions.py | 6 + tests/unit/easydynamics/test_import.py | 5 +- .../utils/test_detailed_balance.py | 28 ++ 85 files changed, 5193 insertions(+), 1972 deletions(-) diff --git a/docs/docs/tutorials/analysis.ipynb b/docs/docs/tutorials/analysis.ipynb index 41e6c7ed1..7ba7858b5 100644 --- a/docs/docs/tutorials/analysis.ipynb +++ b/docs/docs/tutorials/analysis.ipynb @@ -255,17 +255,6 @@ "diffusion_analysis.plot_parameters(names=['Lorentzian width', 'Lorentzian area'])" ] }, - { - "cell_type": "code", - "execution_count": null, - "id": "eb226c8f", - "metadata": {}, - "outputs": [], - "source": [ - "# It will be possible to fit this to a DiffusionModel, but that will\n", - "# come later." - ] - }, { "cell_type": "code", "execution_count": null, @@ -332,13 +321,13 @@ "outputs": [], "source": [ "# Let us look at the fitted diffusion coefficient\n", - "diffusion_model.get_all_parameters()" + "diffusion_model.get_fittable_parameters()" ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "default", "language": "python", "name": "python3" }, @@ -352,9 +341,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.14.4" + "version": "3.14.5" } }, "nbformat": 4, "nbformat_minor": 5 -} \ No newline at end of file +} diff --git a/docs/docs/tutorials/analysis1d.ipynb b/docs/docs/tutorials/analysis1d.ipynb index 784f2be50..5ee06676d 100644 --- a/docs/docs/tutorials/analysis1d.ipynb +++ b/docs/docs/tutorials/analysis1d.ipynb @@ -81,7 +81,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "default", "language": "python", "name": "python3" }, @@ -95,9 +95,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.14.5" + "version": "3.14.6" } }, "nbformat": 4, "nbformat_minor": 5 -} \ No newline at end of file +} diff --git a/docs/docs/tutorials/component_collection.ipynb b/docs/docs/tutorials/component_collection.ipynb index 54f763871..656fcf59f 100644 --- a/docs/docs/tutorials/component_collection.ipynb +++ b/docs/docs/tutorials/component_collection.ipynb @@ -67,7 +67,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "default", "language": "python", "name": "python3" }, @@ -81,9 +81,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.14.4" + "version": "3.14.6" } }, "nbformat": 4, "nbformat_minor": 5 -} \ No newline at end of file +} diff --git a/docs/docs/tutorials/components.ipynb b/docs/docs/tutorials/components.ipynb index 70070f1e0..eafa88973 100644 --- a/docs/docs/tutorials/components.ipynb +++ b/docs/docs/tutorials/components.ipynb @@ -39,7 +39,9 @@ "gaussian = sm.Gaussian(display_name='Gaussian', width=0.5, area=1)\n", "dho = sm.DampedHarmonicOscillator(display_name='DHO', center=1.0, width=0.3, area=2.0)\n", "lorentzian = sm.Lorentzian(display_name='Lorentzian', center=-1.0, width=0.2, area=1.0)\n", - "polynomial = sm.Polynomial(display_name='Polynomial', coefficients=[0.1, 0, 0.5]) # y=0.1+0.5*x^2\n", + "polynomial = sm.Polynomial(\n", + " display_name='Polynomial', coefficients=[-0.2, 0, 0.5]\n", + ") # y=-0.2+0.5*x^2\n", "exponential = sm.Exponential(display_name='Exponential', amplitude=1.0, rate=-0.5)\n", "\n", "x = np.linspace(-2, 2, 100)\n", @@ -59,6 +61,18 @@ "plt.show()" ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "6db00a3e", + "metadata": {}, + "outputs": [], + "source": [ + "# Suppress the warning from the Polynomial:\n", + "polynomial.suppress_warnings = True\n", + "y = polynomial.evaluate(x)" + ] + }, { "cell_type": "code", "execution_count": null, @@ -119,6 +133,14 @@ "plt.show()" ] }, + { + "cell_type": "markdown", + "id": "11884136", + "metadata": {}, + "source": [ + "The `ExpressionComponent` can create almost any function you would like. Units are supported and must be given for each parameter either at construction as below, or afterwards as properties. The individual parameters can be accessed by their name in the usual way. You must use `x` fore the x-axis. It will warn if the units are not consistent." + ] + }, { "cell_type": "code", "execution_count": null, @@ -129,6 +151,15 @@ "expr = sm.ExpressionComponent(\n", " 'A * exp(-(x - x0)**2 / (2*sigma**2)) +B*sin(2*pi*x/period)',\n", " parameters={'A': 10, 'x0': 0, 'sigma': 1},\n", + " parameter_units={\n", + " 'A': 'dimensionless',\n", + " 'x0': 'meV',\n", + " 'sigma': 'meV',\n", + " 'B': 'dimensionless',\n", + " 'period': 'meV',\n", + " },\n", + " x_unit='meV',\n", + " y_unit='dimensionless',\n", ")\n", "\n", "expr.A = 5\n", @@ -142,7 +173,9 @@ "plt.figure()\n", "plt.plot(x, y, label='Expression Component')\n", "plt.legend()\n", - "plt.show()" + "plt.show()\n", + "plt.xlabel('Energy (meV)')\n", + "plt.ylabel('Intensity (arb. units)')" ] }, { @@ -172,7 +205,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "default", "language": "python", "name": "python3" }, @@ -186,9 +219,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.14.5" + "version": "3.14.6" } }, "nbformat": 4, "nbformat_minor": 5 -} \ No newline at end of file +} diff --git a/docs/docs/tutorials/convolution.ipynb b/docs/docs/tutorials/convolution.ipynb index d37c38c14..2e9625559 100644 --- a/docs/docs/tutorials/convolution.ipynb +++ b/docs/docs/tutorials/convolution.ipynb @@ -51,8 +51,8 @@ "sample_components.append_component(delta)\n", "\n", "resolution_components = sm.ComponentCollection()\n", - "resolution_gaussian = sm.Gaussian(display_name='Resolution Gaussian', width=0.015, area=0.8)\n", - "resolution_lorentzian = sm.Lorentzian(display_name='Resolution Lorentzian', width=0.025, area=0.2)\n", + "resolution_gaussian = sm.Gaussian(display_name='Resolution Gaussian', width=0.05, area=0.8)\n", + "resolution_lorentzian = sm.Lorentzian(display_name='Resolution Lorentzian', width=0.05, area=0.2)\n", "resolution_components.append_component(resolution_gaussian)\n", "resolution_components.append_component(resolution_lorentzian)\n", "\n", @@ -210,7 +210,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "default", "language": "python", "name": "python3" }, @@ -224,9 +224,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.14.4" + "version": "3.14.6" } }, "nbformat": 4, "nbformat_minor": 5 -} \ No newline at end of file +} diff --git a/docs/docs/tutorials/data/create_fake_data.ipynb b/docs/docs/tutorials/data/create_fake_data.ipynb index e4ed0ee8c..55ac3822c 100644 --- a/docs/docs/tutorials/data/create_fake_data.ipynb +++ b/docs/docs/tutorials/data/create_fake_data.ipynb @@ -59,7 +59,7 @@ "intensity_dataarray.values += noise\n", "intensity_dataarray.variances = noise**2\n", "\n", - "sc.io.save_hdf5(intensity_dataarray, 'fake_simple_data.hdf5')\n", + "# sc.io.save_hdf5(intensity_dataarray, 'fake_simple_data.hdf5')\n", "pp.slicer(intensity_dataarray)" ] }, @@ -105,14 +105,14 @@ "intensity_dataarray.values += noise\n", "intensity_dataarray.variances = noise**2\n", "\n", - "sc.io.save_hdf5(intensity_dataarray, 'fake_advanced_data.hdf5')\n", + "# sc.io.save_hdf5(intensity_dataarray, 'fake_advanced_data.hdf5')\n", "pp.slicer(intensity_dataarray)" ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "default", "language": "python", "name": "python3" }, @@ -126,7 +126,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.14.4" + "version": "3.14.6" } }, "nbformat": 4, diff --git a/docs/docs/tutorials/data/fake_advanced_data.hdf5 b/docs/docs/tutorials/data/fake_advanced_data.hdf5 index d83903fb0b33a1e3acd00db35e6c3eddb975f709..2a21cb285878516f2bc0debf23c1282aa8e2f3c3 100644 GIT binary patch literal 409056 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�AGv@4I&cC+twnOh47h1sTcjG`5`QfR?)Htyiyb zK-lgRbWC5_;bGS1ag!Vl@OlwZi}T1Cr6OhAx}YOUYL3JQnj3B|q)fP$a5hw5T+ae24i zzg4A&+?TGG`KGZrH+s&&>&aAjvt6#E?j=1Gb!pSw@*qRIe+{{PJsD19l-1ibli=e9 z+u6rE$Y2$6bpNCv3B(UP(YpAM1ip>tig&y&l0eI(dHKK|8aSdR@~ti(5BKeSLbO>aP_^)^XCD@q_rmD%aW_j^usr^~ zjv0%8XHj@<)^!sP$5{{V8k@o5xX%zgP2W>tGq200*M`d|s#H5uk4ysPcRP01VCR?D zDGIy11~7T6-YaX{O@Nz0X1fN832?IUDcR*LMo(VaWo-@(Ji$+=X*E({Ht9m0m;@~t zikyF)ACHH`Ua4|wD;A%S|JLChwx8~vG7EqiGPJyGKGMF42E6G{##spvfsZl2sali* zyA;03;rwVo)VAr=VJsezV_S9Bm?9B81!DDC%?NO1z)Ld%!!Kg&k|S?Dr2!jH_1pPf zG*I!()8x|(9W?EV2~@}M|6>N~Dy=@W@J{^H+1FVF*zl1}n!$_+(jyac6TC#Ya&?yw z9w^|rbvR8M`wpNx;grUa5DdRxyyxT;M}{OFi*32jsGv{i-6vp5hQ@b&o921x;k6Y@ zdp0c@q@tyREnKO9|KvMQ5hlZV4xiFWGe#I?Ul8fCr@#Rv)vYBF^ziNQGlivFjMzuY zrr~1j7>*xvlKG2f%i_a2-p8V(oVU~PwoASYc?XVDhepCOdKwcPjTa`=>vxv=8;U}S-Swv=vKX+Pl8p?L6@$DPdwJdpF%Ud_EO{hB0?2E^X;G6T z%w&D?dP^q*{p@TL^`2{??2D;KR)ZY4akzA|-%|pg4rEYwbvlNf(tqz+iWar@$UW;2ABo|NdZ0Z?O38o1=Q2_gc{ zZ#v|n1$fbY_f8;n;CbE`Pc&5n-_m;g1I$05uDvr?d0q)lJgCzDwj>W5gO4yBXI~5c zsh2KXDwcuqidQ^II4RhYMz`0@Spp`XHF7SW5{DFBwlMWLG4NSFi|h__jvZUKWO;zzoGOW)UdSdc~CC zEdpEmcSW~!@xz&=o8A#lSUmlW0~Re)LSTEIw@9W}5UhE-m9?%3!SlFOI{$}4V76<< z!7fe!cAM^+ncx(JtH)28E+p_lkZgB?VIV&^5*NDtwhF)uaX!iEDlde^dta9*#^h%c zL!9m@eoz{At>v}j1w&T@J86Ah(EC185VnyE==1d-*Lg zhRC&XJsi-HwNb$SB?qJ*``+Me%>@M^x6cq+x!`DeSI_ML4(PIsp{=Rs0!n3Y_a{FN z2xQzHwiVMC%lVM}t$v(vtgAhE>s9>PIG_^WA%Z(3LL;{Z ~ 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≫*_m5&eeB4 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

-7gELiteQ`ks*vjN)n5)=30Hb9g> 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%0AjcqfK0S!gd1u1y^XkZ;QwNPrr2+ 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

2bo$lgTW{cviSR4i_MOz@F5@4?m| z%{}UkuhCf%{PcOPDmc#SI)>yE|42(t`5)_EBd@&VW*4`@XFwUZ^&M1oX3@rn}_qwo`L{! z9nE{YA+@wu#5!&ci-r>0KgN|o>uJP}pE9Ix@^YzS^?eUCMVa1k--*G{{$0CUHWfkj z=J0Cm0v|44-b9s6a(EXuW%XEP_2JQ>7?akpF3j;PO>2C30eRQ^?-SPx@vq2d>jjP| zcylf2yKj_`eox~uqq<7mqY`VVT?r*Ue<^ELXnnf>7e9_&~fyLgx&MbWntD=Xnt^Tv&WM$7;C(fn&4bQX3H7N4Z#USOE}R# zI2VL}I|XT@Y_cG2HgxIkW|EUqRq^=ML%w@W_DN--nMnLQds7pbt_Flj$Aa(F0xO(mM71Nt3L(ilu4dEk$HJtrw``!{9?S<7qGR* zU947N2pY{7KJNJT5?0jw7uFP{;PCMzAcuBxDA_dHpK?yD$ANlHB@3o z{iHw$dkjRQM$gr}dxPlT;%RgbT9Hwy&fE0e0ljzs=xqJmf)d-Qw}KWGxSm*8YP(jA z75A}co2N6#_rt}UieK$ea18i!E7A*gJKrKQE*sq=LgNZQ-@-t0#eGE~9gFH|TtWAP zv3Hav;`NE!kbGu#B}x4a_J$T}b~Sb*$j?vRg2NFi@}Ju8{qBX!&#Y9X$wzP+ySQ@Z zP7*e5hOo_^CO55--MbLsLCB~uX6(1`K-81B)`oO+RX zPLJn~W8`~2$$0RiWp@VVMq{}i^~B*~sDthj`A#Jhah|sn0ibEDSoqgah-js*zmg~F z@HvP(v&SqPWp`M|nVp>Ql)aHZdaoZC&c-WQ==UHY$nsp&r2t$FiYj*5*#J7tV)~Ng zWkmlG;Cz1WJ`ON%QV?-YLcX%c*~veqc+JF7{Ue4Q1NCAqx`dNU+jHANiLU`Gr*&3t z{8tCs|Xv?l+ape@Fl;r*bR596HKAlyrp%R#kWnIzv6 z=d&SE52|4ieGV@Zanp8_CYq;tAgiS}IuQ-TAAXhXirsypsU-`A~7lO_2?VVR7hdgjrP*fv=G+FNLAKH0C7W3@gxBp}B!@O!(`h^d5 z2sYed&GKqZ{6v7Xz4Ve5j^~+_Oj6jx&9q@eQM-?D=yx`>-l~I{nX5gyj)jq1ZCrITv9=^7+p3n0)sYkty<71Z9dCFsovaCkgNxpg)tLyYZ+AZZ zB@bu6-&c6_unf<=20x1h2EovZL6+Xc39o{;K6fB{>hL2U^z8Zg&=nx~ws3nZN>{|X zCD;PV-u5DA>(NmhJJ!=b7?THvF6~0rXYJ5xzj){rZ8*a2$(5fZyh4Fa8H4A^4RAHh zJRdXk0gv5_c-Sc)fv)L~n(6~9;#nB^Ccsk(@%>wqO26O7>%0>-N+gHeIDgi;jGF?i zA+xR=2SO3NFSKsuTn>^-_2XZ96HZ35f#jF$Ib2BSeJN?T2x*EN)@tOt<~~hWUV3CB zvZQ7^A_%W4uFRMFKetXS|JHYCzE}vy%&S3+8##D78>i<*_(rsQw;p4da6z-G-nhC> zA;hw1Go9!&V0*#y7{!&Ba3B8t{m+pa9DZ~Cx3y&t7R1i^N_8|7zD~E4q*^u14Z~&X z?v-KbpgqI&?EN@y>A>?NB>}Zvo#lr=XkmW5a^L*AH#xs}XorT%;bysXr1Y^UbT4$u zea|F(h;{LxD`X$O{LscQ@ec9K`Q_4@TZN&g_TW!*MQ2Ec2o)b*QpWOvd#q7(3A}m! z{CK{50>$s_K8V{}LakQz!R&Cjj=eekWXc5} z=eb)QVg^8?)S&W+-XA~AJe>+}WJ74_cWTc+2bgjF*Ky_Kdqh*V)F*sOMp4^Ve6P+& zC$;8gzAFJ(^$--f8WjWj;oT`QJDPCW#8Kt2+)I3mOslC_E5-7)f$USdbdYA5MP#>6SY6_@o>^+TU=u4!AW+b z&c*>tMBb)9!gwkHPYtfFWs~0C$woIj--r~XZZ?nqaLx)_IqOZXKQ@Q;OSxf&tfz=p zy>97V^%V0Qw1p{z+vA+HuVMW_z4#*^s>`1XU!hjMaNGHfAV})}bNxX2GgbABD>=&Z zPzujgcsFK;J+Dvq(fM|esK+hq2+<65N3KX33XuMfxQw%FbpfI~iXAAp;)!2a<+EIL z0*Li2?ECqr2sFQ+xQFvKC@!5C+9cP5tC~yS?ljLL&c1J$VRtoR^mp2D%rzouT6oVf z!Xa+nq0bkyBMBcK_UUL?7eHk9rYq?jI>>z<$~&V~3HxHcS9j7>&=Pas@B2|#th&FA zDct0b9v`-KDydfR@HrW0U+F->f&JUR+WLZGxZ{z~xe082{GQHL$rE?JajXv9YRBk~ za#m#z(r1_6{HWz*9xOE9HeB822;-=SB1JT{cvkBnV$dCf?ZJPyRs}g>u4TEzpY$c_ zWYp|}CVC)q)4#EC*&Jg*Pdk%!ryaaq!xwsFTEQ!!aj@2p^c_-D-U`u;;5%2-L6K9Yn5EJG)O0-=I(75Q zv7UNpIJ8~dSG@rK59VLFFkb`3?KRc?Ka(Mt$-Dn2O(yX?CqE5)lZV^t0xUfC{pe{b zz3qH^6!qUloi}tW5PHKUvxi;=7J2G%G3q&Z>$~A^(@cR9;}h)n{*;J+54p+6O5cK? z7mWv~yJv9B!nOORodqtBa^_#U*DUWK1RfB5I4ou>j~XHY$GhYQu6`Zb;08w9;>Vc8J;s?~4&xNtSMDVi_?}QJ{WDbU+$DIeD{n90I zmw5}$($AmqDk?@L9UF_IYc4!@TWGf=1j1sxP4k)xd5>xdb7tx0V1v1NJ+|o={tPc4 z6}!-f0ETNP{@=5xXJq7CI`JAD6zj!I0Rzad77==4Jc?@X0(Zs#-@n^V=jpnpW2M8a zkmd{Nn~lr&=|4-x>N}gZmm_t=qqHwK)FPX3MOpm#NIxaeCTw8L!5@Lrqp4&&jHH*A zv>$fKV6#w%^3i3oH@KfnRVCv^_Uo2<-h1M(m*M<{ZStL{GhCx8)hFj~3u?za!o!`> z*vFnrINTY$D_ZI#|J!3KRjC|BgE_w7xXE=pxZb(S^^xQ$zbMmF(6YFq#BpVP<4^tn zJxnY57WD{5ocfV-q`!a3;Api_6G9tDi<3i>(Pgg1eMeOXl`CU+xF3-@-?k%LUj~n1 z_QkVfN)Ac5T2# zb-=4&Z*}*?5xm!zdusk67Y-&T&UOV4p)C1*wWtdn;+0CWf7dz@Ud_J2;R6FO(Q696 z&Zv%!Q)P8;NFJ`k?EQ_?&tAfV>EqO|Ons97ypwdaFA}EiGOJCirC=PjJ=rhchFAFs zht_JX;r(62Xvm@f=a@$2n*aFWv?SZb|JKq-{`+LleE1Z){*LZD7oCTxa}07hrha(D ztEDDIk&d49{tZX6*J}JFdBx*>5KPUE+@QIVh$u(b7bnT}|I~TeO86V$uTT5By~{C% z_`&95`x7M*`eXm+$<-Lprb+G0ZK%P=w&U#f2D$iQNu6d$DS#8zj_>I=YlHgina3gG zP9Pbt%%oUv6y?km9xW|`0()NDHo|u{-p9l{(>#K2+`pskQ<7owA$3J0Ko7&deeIor zwQ$a|bq;#r4l^yfz#JJPRP8%^KTC297iIrhIPy#(BvZD$hU{-f`nJW0bwnW2%`M&a zKmp`=raYhTRlzn(9i18RQUs`(zr9%+hpdpbsW#~btm(7zQ0xi@6?IzZ$OU82-Z+p# zLFUc0mtro`bx@9-Je6@NynPciwG>VYi)1lK+ z_jBnm;o4+=U`rgd6{48g^?Hc!W~KMsNfT6yv-awL@kUda>8JT^$#@ytq%-o>F-SA|U5!uuPTy;kXRwC9_6 z)o)S0xZX5~3*J3UDdr31rgz0&`)i?fHTC#jM@a;XK4cNmYC*~d2RHR1>CGSiS;|X1 zsP~@y{;J8*ii46n#-Q+y`@N%@e1L4S5ao>#znk3%82jvIt zRQe!2(spW7P%)ksr97Bq&V{+kmM>E$?2)z5=ETG0i3U6C4IYhn7#DRqJ&;Vs@5)TZ zzVT_$o%?rU;lpbjv6eRXC3E_RlmjZl8~$ieFO+5=+&7iww~qvFClGJe)#0xzWw=e- zwe4TT2xQb>%kMR*MKbH8-o|-Fu$A|g$sWulo(9EV0fM4VBO`_yJyh4?C!NGw@aX4p#1GsuPFW`f+0C zv5j}c3sB_4p!%8c+f7wp9r#>Na>X=P*$s(DC*zczXba&ZpZC_^)iPp;IER+P|CETQ zmd){F@ry33JC(Iq2(_bxJ9P50b1!z+SsbQa^CahhpKTXUXy69L#oH78WZn_|`=*pu zE`qtNekr`#5Z@vw&og1cKMrr@WbVVlPhVzroht!`z zIacdvMdtYyvltH}e1{3{?4#lNb$EVBRVYn#91$iQW1B_WAwZ+@&Qsk9d#@!dZ;`D* z^4y+Aqt)lw{DYQ8rkb38LZv=EP-({T8^X(9Op0N|c6rshxD9k6(U#KJonYqgs(*s; zi^lt}1_k@{g751!!yUgmp%&SqQ|m^&8MJI+Cl=~an7;kH*e=2wSh1MVWeS3C<+l*q z;y6V6_!@;g8^l>(@fQuUoft96+(ubljssbiqqW?%5O_D!eJw!|3NjayD|M+bGM`l? zwGe^``MGVvj8=%&9d6nvjloxU7fY$4GW=EW{F3-nhs?9P%(X8!-~g9HWq0U(2r_lv zd&@b8jL|ihGlz0uy1S%y7dPSH(MbG$E;WFa@*7&do1;N>o$vAI)3y-YnU-DnxePN~ z7b4eh^h3qh2rpXVW*ps#1E|5Ei<5bpiwCT8+onh-_Vm8g(Ge5KbySNC_o zo=H*mf%%tE%`~j26{zH$GdG z;z*iu_#MJ^yx#mkSGu>45c)Zd4I(RO}(98PY!!@%!3) zDjUIkd6ljKnPB@`WfJExh^3t>yX(o`!RFQLJC!5mc+>O8o|_>MF>#9iKTZvRx>A^D zf%NNpo&N5mG8}=J37`IF`#FRqJfT+8@`hGb@ckVRg0T>Olf9oY1-opyPM^_A#9^%5 zRkkN{vQ^fRb<+D3X4W%QrEP@d{nUw5Kv2i`EA+F&g`bpb($@dKRyjZ9SaXPa(-)ympH3(sSZ9;XA^EQR-@u@X77Cw zb+Bg|RY#6ifJ&C{%woC_7FpM<9a&W%C+U&>i_E8wOzCXyx?P9BjA*$>L*zMRf0#3r zy&7(rcQ==gro-&PSEq%cC-~V!tId>Zh>@o|uKzR`LN%|?CZh@;1h;VijELoc`?q|h zzWa9gHTm34i*WD*cir?$%w)#JBia_sq%V3Z(r}GM(-hZ_Zl|&E55dt;c>f{S=ZE{d zeMM|jUc-|xuj;~8{r~($6g$D7-}Khk9r#zgR{V=_1V#OCb+%CUBgoBn zJVxU%gakRCn74R+M1*c+jUFeXGbq`flnBJQ?vavGz(y{ z`K-#df6?H&toTQD#F=>eET8}4x`n&D3uL3B;-R^pI>2CTm*0(xuL4-p*K)CXCWd{nn+23HPbGtB z$oZGL^TF1p8cf&9JX>k$N4L;+<|^i6)jL=v>M*t}`k|H?1I#dG_^ zD1IpunojA{+kbdsOC(A-cMZYwKUbsEJIOvhp|(!hyO00&cU-g zzC}W-Z@~XrICP|u^gP_|=F)P9;vv6L3q@%qlD6`jJ(zZZBo~7r-Q74CvxeyOkGG!igzBL2_H}q8M%|e*Gtlg2xD#F{n@Lu%0AJ&IANw@D! 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 G;PoHVxqJrz diff --git a/docs/docs/tutorials/data/fake_simple_data.hdf5 b/docs/docs/tutorials/data/fake_simple_data.hdf5 index 14afb8306e10348eadf2bf0725104324d0f4aa29..bef9761a85ea8e0cdbcd324d59a3695449f1b7db 100644 GIT binary patch literal 409056 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%0Drd;q&%AJVO(oUQ>Y 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∋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 z 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

e~h1yvV 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

hm5=>jChS?>!kZ#7C zVr->DkNjfHg?Hga_zv+_N>hsPWZEpgD8v-)wk8+it)%zKh{mn-a2#KN-Q&5y3M9Ir5oYdFF%HRwl>$_tFRz~w1saUEzNcBkRi2|w&ki+Sq}%;FmO^O$Ai z)NyXP!|y9F-vd()nEQaK2bg-no%bAIo(s%-0P|kJyeBa44NN@YBP zndIB%+G$|yHZXP^7`qOPod?G51LFsP@e9EC31IvNFn$CWzXFV(0mknDjGqO@?*ik8f$_`0_-SDLHZXo1 z7{3lyJU9CpPeUswh9AIz{tmFcwcA!x-!9{SAhm$~whns+F#VgyvkcX?FhKI9& z1Zgzx0u>srS#&@o50?Rh)8Ho$w}B@Q#{q-u;2jU=fe8=y0fPgurltAJhbnGTmmb_3VlPU{BNQ7-O< zJ3Jf=T({uU4Ou*#3|2hc3=EEj03NP}c|4pA4DJR89u5Z)9xew4rvu{Qb|~cGcwlfn zNbzt!Jg39bZN0$60Z_q<3&5EUzvFv>i5nn-7e@e>W+3~XnK%R7d2t7D=@hpQ379wvI(cywc=O^c zVB#)F;l*LFgBO80V!vi1!+G$<@F+2fccmwo;$0HzyS3nHUfVgIYVj+fyKnyQ|xUjR0 zg&5ufDe!m<#0_)C@gauiKtnv<12H@ZVt5f$%i~E9!nC9&Aw{`@MO*4x(ASmO1>0;e8Op10mXK5nc!}JP~4eBSgS6%_AX( zS3(TWgckC6C&chjsF24?A%>?y3~z-f9*>0>UJEfi7kW<9V{6DdejX2o7+wrrqv^Sm zY{c+ph~d$YGffYMvJu0xA%=HDTzayMjTl}IF+3gO(xZ|Bh~e=N!|Nd~JqrSe;r&oL zj|U{#6}h}1;+lJR0rZ;38zS0j5grjSydt{C;~5dnauMDUF+3zX!{a3p!&4%Lw?qec zJSJjzO~mk=XakS;L<|p#7+w^SAcYXaf{5Ww5yPV*H6E{u7@id|yep#F48p@AhL=T; zc|0wmSxmy)B8JCB-aK9xan*UH5Mp>=6&yM!M?kE9nt;;cK&w2vUmgzrDj^V2gX|If_xGwTxmJM;Vp zEg5O>F8}b~KhM2$C;3Uq-}8$9=%zp4LznqI&-i;<>ikU8sxfn{^nU;U_wPf@0)zis z>kGKES0cQ(lqQ!y&$s<|)))Mq2mE6m^8fDog1=us{>S_NpRF(WbGv1@^5^6Bff7#? ze_PM6Qja&kXSIlT<*hGZ{lk4U%\n", + "

Note\n", + "
\n", + "Two units must be set on the fit function:\n", + "\n", + "- `x_unit='1/angstrom'` — because `ParameterAnalysis` always uses Q as its x-axis.\n", + "- `y_unit='meV'` — because we are fitting `Gaussian area`, which has unit `meV`.\n", + "
\n", + "" ] }, { @@ -397,10 +410,13 @@ "outputs": [], "source": [ "fit_func = sm.Polynomial(\n", - " coefficients=[3.7, -0.5], name='Straight line', display_name='Straight line'\n", + " coefficients=[3.7, -0.5],\n", + " x_unit='1/angstrom',\n", + " y_unit='meV',\n", + " name='Straight line',\n", ")\n", "\n", - "binding = edyn.FitBinding(parameter_name='Gaussian area', model=fit_func)\n", + "binding = edyn.FitBinding(model=fit_func, targets='Gaussian area')\n", "\n", "parameter_analysis = edyn.ParameterAnalysis(\n", " parameters=analysis,\n", @@ -450,7 +466,7 @@ "id": "dc33728c", "metadata": {}, "source": [ - "To see the parameters we can use the `get_all_parameters()` method. We can also see only the parameters that can be fitted:" + "To see the parameters we can use the `get_all_parameters()` method. We can also see only the parameters that can be fitted using `get_fittable_parameters`:" ] }, { @@ -476,7 +492,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "default", "language": "python", "name": "python3" }, @@ -490,7 +506,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.14.5" + "version": "3.14.6" } }, "nbformat": 4, diff --git a/docs/docs/tutorials/tutorial0_more_advanced.ipynb b/docs/docs/tutorials/tutorial0_more_advanced.ipynb index f203dbdcb..da7469571 100644 --- a/docs/docs/tutorials/tutorial0_more_advanced.ipynb +++ b/docs/docs/tutorials/tutorial0_more_advanced.ipynb @@ -144,6 +144,13 @@ "
\n", " SampleModel, BackgroundModel and ResolutionModel (introduced later) all take components in several different ways: you can add a single component like in the previous tutorial, append components using the `append_component` method, or give a ComponentCollection like we do here. \n", "
\n", + "\n", + "\n", + "
\n", + " 💡 Tip\n", + "
\n", + " Polynomials will warn if they produce negative values, since negative backgrounds are unphysical. To suppress the warning, set suppress_warnings to True, either when constructing the Polynomial (polynomial=sm.Polynomial(coefficients=[0.0], suppress_warnings=True)), or afterwards (polynomial.suppress_warnings = True).\n", + "
\n", "
\n" ] }, @@ -300,7 +307,19 @@ "id": "0eadbd91", "metadata": {}, "source": [ - "With apologies for the lack of creativity, these all appear like straight lines. We can fit them individually or all together using `ParameterAnalysis`" + "With apologies for the lack of creativity, these all appear like straight lines. We can fit them individually or all together using `ParameterAnalysis`.\n", + "\n", + "For each parameter we want to fit, we create a fit function (here a `Polynomial`) and a `FitBinding` connecting the parameter name to the fit function. We then pass all bindings to a single `ParameterAnalysis` object:\n", + "\n", + "
\n", + " Note\n", + "
\n", + "Two units must be set on each fit function:\n", + "\n", + "- `x_unit='1/angstrom'` — because `ParameterAnalysis` always uses Q as its x-axis.\n", + "- `y_unit='meV'` — because all three parameters (`Gaussian area`, `DHO area`, `DHO center`) have unit `meV`.\n", + "
\n", + "
" ] }, { @@ -310,17 +329,21 @@ "metadata": {}, "outputs": [], "source": [ - "gauss_fit_func = sm.Polynomial(coefficients=[3.7, -0.5], unit='1/angstrom', name='Gauss area fit')\n", - "dho_area_fit_func = sm.Polynomial(coefficients=[2.0, 0.12], unit='1/angstrom', name='DHO area fit')\n", + "gauss_fit_func = sm.Polynomial(\n", + " coefficients=[3.7, -0.5], x_unit='1/angstrom', y_unit='meV', name='Gauss area fit'\n", + ")\n", + "dho_area_fit_func = sm.Polynomial(\n", + " coefficients=[2.0, 0.12], x_unit='1/angstrom', y_unit='meV', name='DHO area fit'\n", + ")\n", "dho_center_fit_func = sm.Polynomial(\n", - " coefficients=[1.1, 0.2], unit='1/angstrom', name='DHO center fit'\n", + " coefficients=[1.1, 0.2], x_unit='1/angstrom', y_unit='meV', name='DHO center fit'\n", ")\n", "\n", - "binding1 = edyn.FitBinding(parameter_name='Gaussian area', model=gauss_fit_func)\n", + "binding1 = edyn.FitBinding(model=gauss_fit_func, targets='Gaussian area')\n", "\n", - "binding2 = edyn.FitBinding(parameter_name='DHO area', model=dho_area_fit_func)\n", + "binding2 = edyn.FitBinding(model=dho_area_fit_func, targets='DHO area')\n", "\n", - "binding3 = edyn.FitBinding(parameter_name='DHO center', model=dho_center_fit_func)\n", + "binding3 = edyn.FitBinding(model=dho_center_fit_func, targets='DHO center')\n", "\n", "parameter_analysis = edyn.ParameterAnalysis(\n", " parameters=analysis,\n", @@ -335,7 +358,7 @@ "id": "32bc1efc", "metadata": {}, "source": [ - "The start guesses look reasonable, so we fit:" + "The start guesses look reasonable, so we fit and plot the result:" ] }, { @@ -352,7 +375,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "default", "language": "python", "name": "python3" }, @@ -366,7 +389,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.14.5" + "version": "3.14.6" } }, "nbformat": 4, diff --git a/docs/docs/tutorials/tutorial1_brownian.ipynb b/docs/docs/tutorials/tutorial1_brownian.ipynb index 269bb2599..bb6403252 100644 --- a/docs/docs/tutorials/tutorial1_brownian.ipynb +++ b/docs/docs/tutorials/tutorial1_brownian.ipynb @@ -451,7 +451,7 @@ "$$\n", "where $\\Gamma(Q) = D Q^2$ and $D$ is the diffusion coefficient. $S$ is an overall scale.\n", "\n", - "To fit the Brownian translational diffusion model to the data, we use the `ParameterAnalysis`. This time, we wish to fit the `Lorentzian`, and we wish to fit both its area (scale, $S$) and width to the diffusion model. We do this by creating a `FitBinding`, saying we want to fit both the area an width of the component called `Lorentzian`" + "To fit the Brownian translational diffusion model to the data, we use the `ParameterAnalysis`. This time, we wish to fit the `Lorentzian`, and we wish to fit both its area (scale, $S$) and width to the diffusion model. We do this by creating a `FitBinding`. Because the diffusion model's `lorentzian_name` matches the fitted component's name, the default targets automatically fit both the area and the width against the `Lorentzian area` and `Lorentzian width` parameters" ] }, { @@ -462,18 +462,17 @@ "outputs": [], "source": [ "brownian_diffusion_model = sm.BrownianTranslationalDiffusion(\n", - " name='Brownian Translational Diffusion', diffusion_coefficient=2.4e-9, scale=0.5\n", + " name='Brownian Translational Diffusion',\n", + " lorentzian_name='Lorentzian',\n", + " diffusion_coefficient=2.4e-9,\n", + " scale=0.5,\n", ")\n", "\n", - "binding = edyn.FitBinding(\n", - " parameter_name='Lorentzian',\n", - " model=brownian_diffusion_model,\n", - " modes=['area', 'width'],\n", - ")\n", + "binding = edyn.FitBinding(model=brownian_diffusion_model)\n", "\n", "parameter_analysis = edyn.ParameterAnalysis(\n", " parameters=diffusion_analysis,\n", - " bindings=[binding],\n", + " bindings=binding,\n", ")" ] }, @@ -495,16 +494,6 @@ "parameter_analysis.plot()" ] }, - { - "cell_type": "code", - "execution_count": null, - "id": "57b76d06", - "metadata": {}, - "outputs": [], - "source": [ - "parameter_analysis.plot(names=['Polynomial_c0'])" - ] - }, { "cell_type": "markdown", "id": "64babb01", @@ -691,7 +680,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "default", "language": "python", "name": "python3" }, @@ -705,7 +694,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.14.5" + "version": "3.14.6" } }, "nbformat": 4, diff --git a/docs/docs/tutorials/tutorial2_nanoparticles.ipynb b/docs/docs/tutorials/tutorial2_nanoparticles.ipynb index 22de24900..cca884bb2 100644 --- a/docs/docs/tutorials/tutorial2_nanoparticles.ipynb +++ b/docs/docs/tutorials/tutorial2_nanoparticles.ipynb @@ -593,7 +593,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "default", "language": "python", "name": "python3" }, @@ -607,7 +607,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.14.5" + "version": "3.14.6" } }, "nbformat": 4, diff --git a/src/easydynamics/analysis/analysis.py b/src/easydynamics/analysis/analysis.py index 712169669..ed1a2d44f 100644 --- a/src/easydynamics/analysis/analysis.py +++ b/src/easydynamics/analysis/analysis.py @@ -1,6 +1,7 @@ # SPDX-FileCopyrightText: 2026 EasyScience contributors # SPDX-License-Identifier: BSD-3-Clause +from copy import copy from typing import Any import numpy as np @@ -253,7 +254,6 @@ def calculate( if Q_index is None: return [analysis.calculate(energy=energy) for analysis in self.analysis_list] - verify_Q_index(Q_index=Q_index, Q=self.Q) return self.analysis_list[Q_index].calculate(energy=energy) @@ -456,10 +456,7 @@ def data_and_model_to_datagroup( self._verify_bool(include_components, 'include_components') self._verify_bool(include_residuals, 'include_residuals') - energy = self._verify_energy(energy) - - if energy is None: - energy = self.energy + energy = self._verify_energy(energy) if energy is not None else self.energy data_and_model = { 'Data': self.experiment.binned_data, @@ -532,6 +529,7 @@ def parameters_to_dataset(self) -> sc.Dataset: units[name] = p.unit elif units[name] != p.unit: try: + p = copy(p) p.convert_unit(units[name]) except Exception as e: raise UnitError( @@ -587,6 +585,7 @@ def plot_parameters( ds = self.parameters_to_dataset() + # None or an empty list both mean 'plot all parameters'. if not names: names = list(ds.keys()) @@ -686,9 +685,8 @@ def _on_convolution_settings_changed(self) -> None: def _ensure_analysis_list_current(self) -> None: """Rebuild the analysis list if any dependency has changed since it was last built.""" - if self._analysis_list_is_dirty: - if self.Q is not None: - self._create_analysis_list() + if self._analysis_list_is_dirty and self.Q is not None: + self._create_analysis_list() self._analysis_list_is_dirty = False def _create_analysis_list(self) -> None: @@ -698,6 +696,8 @@ def _create_analysis_list(self) -> None: """ self._analysis_list = [] for Q_index in range(len(self.Q)): + # The ConvolutionSettings object is shared so user changes reach every Q index; + # plan validity is tracked per convolver, not on the settings object. analysis = Analysis1d( display_name=f'{self.display_name}_Q{Q_index}', experiment=self.experiment, @@ -756,16 +756,22 @@ def _fit_all_Q_simultaneously(self) -> FitResults: ys = [] ws = [] + # TODO: consider using scipp built-in masking instead of numpy boolean masks, # noqa: FIX002 TD002 TD003 + for analysis1d in self.analysis_list: - x, y, weight, _ = self.experiment._extract_x_y_weights_only_finite( # noqa: SLF001 + x, y, weight, mask = self.experiment.extract_x_y_weights_only_finite( analysis1d.Q_index ) xs.append(x) ys.append(y) ws.append(weight) - # Make sure the convolver is up to date for this Q index - analysis1d.refresh_convolver(energy=x) + # Reuse the mask from the extraction above so the masked energy does not require a + # second full extraction. + mask_var = sc.array(dims=['energy'], values=mask) + analysis1d.refresh_convolver( + energy=self.experiment.get_masked_energy(Q_index=analysis1d.Q_index, mask=mask_var) + ) mf = MultiFitter( fit_objects=self.analysis_list, diff --git a/src/easydynamics/analysis/analysis1d.py b/src/easydynamics/analysis/analysis1d.py index 01fa826f5..3a66ca6de 100644 --- a/src/easydynamics/analysis/analysis1d.py +++ b/src/easydynamics/analysis/analysis1d.py @@ -109,6 +109,14 @@ def __init__( Extra parameters to be included in the analysis for advanced users. If None, no extra parameters are added. """ + # Initialize state read by observer callbacks (e.g. _on_experiment_changed) before + # super().__init__ wires the sub-models and fires them. + self._Q_index = None + self._masked_energy = None + self._fit_result = None + self._convolver = None + self._convolver_is_dirty = True + super().__init__( display_name=display_name, unique_name=unique_name, @@ -124,14 +132,7 @@ def __init__( self._Q_index = Q_index if self._Q_index is not None and self.experiment is not None: - masked_energy = self.experiment.get_masked_energy(Q_index=self._Q_index) - self._masked_energy = masked_energy - else: - self._masked_energy = None - - self._fit_result = None - self._convolver = None - self._convolver_is_dirty = True + self._masked_energy = self.experiment.get_masked_energy(Q_index=self._Q_index) ############# # Properties @@ -172,7 +173,7 @@ def calculate(self, energy: sc.Variable | None = None) -> np.ndarray: """ Calculate the model prediction for the chosen Q index. - Makes sure the convolver is up to date before calculating. + Creates a new convolver before calculating without touching the stored convolver. Parameters ---------- @@ -186,14 +187,12 @@ def calculate(self, energy: sc.Variable | None = None) -> np.ndarray: The calculated model prediction. """ energy = self._verify_energy(energy) - self._convolver = self._create_convolver(energy=energy) - # Mark dirty so the next fit() call rebuilds the convolver with the standard - # (unmasked) energy grid rather than reusing this plot-path grid. - self._convolver_is_dirty = True - - return self._calculate(energy=energy) + convolver = self._create_convolver(energy=energy) + return self._calculate(energy=energy, convolver=convolver) - def _calculate(self, energy: sc.Variable | None = None) -> np.ndarray: + def _calculate( + self, energy: sc.Variable | None = None, convolver: Convolution | None = None + ) -> np.ndarray: """ Calculate the model prediction for the chosen Q index. @@ -204,18 +203,21 @@ def _calculate(self, energy: sc.Variable | None = None) -> np.ndarray: energy : sc.Variable | None, default=None Optional energy grid to use for calculation. If None, the energy grid from the experiment is used. + convolver : Convolution | None, default=None + Optional convolver to use. If None, uses self._convolver. Returns ------- np.ndarray The calculated model prediction. """ - + if convolver is None: + convolver = self._convolver Q_index = self._require_Q_index() sample = self._evaluate_with_convolution( self.sample_model.get_component_collection(Q_index), energy, - convolver=self._convolver, + convolver=convolver, ) background = self._evaluate_direct( self.instrument_model.background_model.get_component_collection(Q_index), @@ -256,7 +258,7 @@ def fit(self) -> FitResults: fit_function=self.as_fit_function(), ) - x, y, weights, _ = self.experiment._extract_x_y_weights_only_finite( # noqa: SLF001 + x, y, weights, _ = self.experiment.extract_x_y_weights_only_finite( Q_index=self._require_Q_index() ) fit_result = fitter.fit(x=x, y=y, weights=weights) @@ -440,7 +442,7 @@ def data_and_model_to_datagroup( energy = self._masked_energy data_and_model = { - 'Data': self.experiment.binned_data['Q', self.Q_index], + 'Data': self.experiment.get_masked_binned_data(Q_index=self.Q_index), 'Model': self._create_model_array(energy=energy), } @@ -518,6 +520,10 @@ def _on_Q_index_changed(self) -> None: This method is called whenever the Q index is changed. It updates the masked energy from the experiment for the new Q index and marks the convolver as dirty. """ + if self._Q_index is None: + self._masked_energy = None + self._convolver_is_dirty = True + return masked_energy = self.experiment.get_masked_energy(Q_index=self._Q_index) self._masked_energy = masked_energy self._convolver_is_dirty = True @@ -525,6 +531,9 @@ def _on_Q_index_changed(self) -> None: def _on_experiment_changed(self) -> None: """Mark the convolver as dirty when the experiment changes.""" super()._on_experiment_changed() + # Refresh masked energy if Q_index is already set (i.e. post-init experiment swap). + if self._Q_index is not None and self.experiment is not None: + self._masked_energy = self.experiment.get_masked_energy(Q_index=self._Q_index) self._convolver_is_dirty = True def _on_sample_model_changed(self) -> None: @@ -563,28 +572,15 @@ def _calculate_energy_with_offset( energy_offset : Parameter The energy offset to apply. - Raises - ------ - sc.UnitError - If the energy and energy offset have incompatible units. - Returns ------- sc.Variable The energy grid with the offset applied. """ - if energy.unit != energy_offset.unit: - try: - energy_offset.convert_unit(str(energy.unit)) - except Exception as e: - raise sc.UnitError( - f'Energy and energy offset must have compatible units. ' - f'Got {energy.unit} and {energy_offset.unit}.' - ) from e - - energy_with_offset = energy.copy(deep=True) - energy_with_offset.values -= energy_offset.value + offset_value = sc.to_unit(energy_offset.full_value, energy.unit).value + energy_with_offset = energy.copy() + energy_with_offset.values = energy.values - offset_value return energy_with_offset ############# @@ -642,18 +638,15 @@ def _evaluate_with_convolution( energy=energy_with_offset, temperature=self.temperature, divide_by_temperature=self.detailed_balance_settings.normalize_detailed_balance, - energy_unit=self.unit, + energy_unit=self.x_unit, ) return result - return Convolution( - energy=energy, + return self._build_convolution( sample_components=components, resolution_components=resolution, + energy=energy, energy_offset=energy_offset, - convolution_settings=self.convolution_settings, - temperature=self.temperature, - detailed_balance_settings=self.detailed_balance_settings, ).convolution() def _evaluate_direct( @@ -721,11 +714,25 @@ def _create_convolver( if resolution_components.is_empty: return None + return self._build_convolution( + sample_components=sample_components, + resolution_components=resolution_components, + energy=energy, + energy_offset=self.instrument_model.get_energy_offset(Q_index), + ) + + def _build_convolution( + self, + sample_components: ComponentCollection | ModelComponent, + resolution_components: ComponentCollection, + energy: sc.Variable, + energy_offset: Parameter, + ) -> Convolution: return Convolution( energy=energy, sample_components=sample_components, resolution_components=resolution_components, - energy_offset=self.instrument_model.get_energy_offset(Q_index), + energy_offset=energy_offset, convolution_settings=self.convolution_settings, temperature=self.temperature, detailed_balance_settings=self.detailed_balance_settings, @@ -771,7 +778,7 @@ def _create_residuals_array(self) -> sc.DataArray: if self.Q_index is None: raise ValueError('Q_index must be set to calculate residuals.') - data = self.experiment.binned_data['Q', self.Q_index] + data = self.experiment.get_masked_binned_data(Q_index=self.Q_index) model = self._create_model_array() return data.copy(deep=True) - model diff --git a/src/easydynamics/base_classes/easydynamics_modelbase.py b/src/easydynamics/base_classes/easydynamics_modelbase.py index 6d002f71e..3e48fe82c 100644 --- a/src/easydynamics/base_classes/easydynamics_modelbase.py +++ b/src/easydynamics/base_classes/easydynamics_modelbase.py @@ -14,7 +14,8 @@ class EasyDynamicsModelBase(NameMixin, ModelBase): def __init__( self, *args: object, - unit: str | sc.Unit = 'meV', + x_unit: str | sc.Unit = 'meV', + y_unit: str | sc.Unit = 'dimensionless', name: str = 'MyEasyDynamicsModel', display_name: str | None = None, unique_name: str | None = None, @@ -27,8 +28,10 @@ def __init__( ---------- *args : object Positional arguments to pass to the parent class. - unit : str | sc.Unit, default='meV' - Unit of the model. + x_unit : str | sc.Unit, default='meV' + Unit of the x-axis. + y_unit : str | sc.Unit, default='dimensionless' + Unit of the y-axis. name : str, default='MyEasyDynamicsModel' Name of the model. display_name : str | None, default=None @@ -58,37 +61,43 @@ def __init__( **kwargs, ) - self._unit = _validate_unit(unit) + self._x_unit = _validate_unit(x_unit) + self._y_unit = _validate_unit(y_unit) @property - def unit(self) -> str | sc.Unit | None: + def x_unit(self) -> str | sc.Unit | None: """ - Get the unit of the model. + Get the unit of the x-axis. Returns ------- str | sc.Unit | None - The unit of the model. + The unit of the x-axis. """ + return self._x_unit - return self._unit + @x_unit.setter + def x_unit(self, _: str) -> None: + raise AttributeError( + f'x_unit is read-only. Use convert_x_unit to change the unit ' + f'or create a new {self.__class__.__name__} with the desired unit.' + ) - @unit.setter - def unit(self, _unit_str: str) -> None: + @property + def y_unit(self) -> str | sc.Unit | None: """ - Unit is read-only and cannot be set directly. - - Parameters - ---------- - _unit_str : str - The new unit to set (ignored). + Get the unit of the model output. - Raises - ------ - AttributeError - Always raised to indicate that the unit is read-only. + Returns + ------- + str | sc.Unit | None + The unit of the y-axis. """ + return self._y_unit + + @y_unit.setter + def y_unit(self, _: str) -> None: raise AttributeError( - f'Unit is read-only. Use convert_unit to change the unit between allowed types ' + f'y_unit is read-only. Use convert_y_unit to change the unit ' f'or create a new {self.__class__.__name__} with the desired unit.' ) diff --git a/src/easydynamics/convolution/analytical_convolution.py b/src/easydynamics/convolution/analytical_convolution.py index 535bea989..efcdf6f52 100644 --- a/src/easydynamics/convolution/analytical_convolution.py +++ b/src/easydynamics/convolution/analytical_convolution.py @@ -491,6 +491,7 @@ def __repr__(self) -> str: f'{self.__class__.__name__}(' f'display_name={self.display_name!r}, ' f'unique_name={self.unique_name!r}, ' - f'unit={self._unit}, ' + f'x_unit={self.x_unit}, ' + f'y_unit={self.y_unit}, ' f'energy_len={len(self.energy)})' ) diff --git a/src/easydynamics/convolution/convolution.py b/src/easydynamics/convolution/convolution.py index d4e8aafee..ccf37f474 100644 --- a/src/easydynamics/convolution/convolution.py +++ b/src/easydynamics/convolution/convolution.py @@ -80,9 +80,8 @@ class Convolution(NumericalConvolutionBase): # needs to be rebuilt. # Note: the public 'energy' property setter always writes to '_energy', so '_energy' alone # is sufficient — listing 'energy' separately would cause a double invalidation. - _invalidate_plan_on_change: ClassVar[dict[str, object]] = { + _invalidate_plan_on_change: ClassVar[set[str]] = { '_energy', - '_energy_grid', '_sample_components', '_resolution_components', '_temperature', @@ -101,7 +100,8 @@ def __init__( temperature: Parameter | Numeric | None = None, temperature_unit: str | sc.Unit = 'K', detailed_balance_settings: DetailedBalanceSettings | None = None, - unit: str | sc.Unit = 'meV', + x_unit: str | sc.Unit = 'meV', + y_unit: str | sc.Unit = 'dimensionless', display_name: str | None = 'MyConvolution', unique_name: str | None = None, ) -> None: @@ -113,7 +113,7 @@ def __init__( energy : np.ndarray | sc.Variable 1D array of energy values where the convolution is evaluated. sample_components : ComponentCollection | ModelComponent - The sample components to be convolved. + The sample components to be convolved. resolution_components : ComponentCollection | ModelComponent The resolution components to convolve with. energy_offset : Numeric | Parameter, default=0.0 @@ -126,8 +126,10 @@ def __init__( The unit of the temperature parameter. detailed_balance_settings : DetailedBalanceSettings | None, default=None The settings for detailed balance. If None, default settings will be used. - unit : str | sc.Unit, default='meV' - The unit of the energy. + x_unit : str | sc.Unit, default='meV' + The unit of the energy axis. + y_unit : str | sc.Unit, default='dimensionless' + The unit of the model output (intensity). display_name : str | None, default='MyConvolution' Display name of the model. unique_name : str | None, default=None @@ -144,7 +146,8 @@ def __init__( temperature=temperature, temperature_unit=temperature_unit, detailed_balance_settings=detailed_balance_settings, - unit=unit, + x_unit=x_unit, + y_unit=y_unit, display_name=display_name, unique_name=unique_name, ) @@ -168,7 +171,7 @@ def convolution( np.ndarray The convolved values evaluated at energy. """ - if not self.convolution_settings.convolution_plan_is_valid: + if not self._convolution_plan_is_current(): self._build_convolution_plan() total = np.zeros_like(self.energy.values, dtype=float) @@ -287,7 +290,7 @@ def _build_convolution_plan(self) -> None: # Update convolvers self._set_convolvers() - self.convolution_settings.convolution_plan_is_valid = True + self._mark_convolution_plan_current() def _set_convolvers(self) -> None: """ @@ -303,6 +306,8 @@ def _set_convolvers(self) -> None: energy_offset=self.energy_offset, sample_components=self._analytical_sample_components, resolution_components=self._resolution_components, + x_unit=self.x_unit, + y_unit=self.y_unit, ) else: self._analytical_convolver = None @@ -317,11 +322,29 @@ def _set_convolvers(self) -> None: temperature=self.temperature, temperature_unit=self._temperature_unit, detailed_balance_settings=self.detailed_balance_settings, - unit=self.unit, + x_unit=self.x_unit, + y_unit=self.y_unit, ) else: self._numerical_convolver = None + def convert_y_unit(self, unit: str) -> None: + """ + Convert the y-axis unit and propagate it to the analytical and numerical sub-convolvers. + + Parameters + ---------- + unit : str + The new y-axis unit. + """ + super().convert_y_unit(unit) + # The sub-convolvers share this convolver's component objects, which were already + # converted by super(); only their y-unit labels need updating. + if getattr(self, '_analytical_convolver', None) is not None: + self._analytical_convolver._relabel_y_unit(self.y_unit) # noqa: SLF001 + if getattr(self, '_numerical_convolver', None) is not None: + self._numerical_convolver._relabel_y_unit(self.y_unit) # noqa: SLF001 + # Update some setters so the internal sample models are updated def __setattr__(self, name: str, value: any) -> None: """ @@ -341,16 +364,18 @@ def __setattr__(self, name: str, value: any) -> None: super().__setattr__(name, value) # Only rebuild the convolution plan if reactions are enabled, to - # avoid issues during __init__ + # avoid issues during __init__. These are convolver-local changes, so other convolvers + # sharing the same ConvolutionSettings are unaffected. if getattr(self, '_reactions_enabled', False) and name in self._invalidate_plan_on_change: - self.convolution_settings.convolution_plan_is_valid = False + self._plan_seen_version = None def __repr__(self) -> str: return ( f'{self.__class__.__name__}(' f'display_name={self.display_name!r}, ' f'unique_name={self.unique_name!r}, ' - f'unit={self.unit}, ' + f'x_unit={self.x_unit}, ' + f'y_unit={self.y_unit}, ' f'energy_len={len(self.energy)}, ' f'temperature={self.temperature})' ) diff --git a/src/easydynamics/convolution/convolution_base.py b/src/easydynamics/convolution/convolution_base.py index c8516cb0b..83c0c2351 100644 --- a/src/easydynamics/convolution/convolution_base.py +++ b/src/easydynamics/convolution/convolution_base.py @@ -1,6 +1,8 @@ # SPDX-FileCopyrightText: 2026 EasyScience contributors # SPDX-License-Identifier: BSD-3-Clause +from functools import partial + import numpy as np import scipp as sc from easyscience.variable import Parameter @@ -9,6 +11,9 @@ from easydynamics.sample_model.component_collection import ComponentCollection from easydynamics.sample_model.components.model_component import ModelComponent from easydynamics.utils.utils import Numeric +from easydynamics.utils.utils import convert_parameter_unit +from easydynamics.utils.utils import convert_units_with_rollback +from easydynamics.utils.utils import energy_to_scipp class ConvolutionBase(EasyDynamicsModelBase): @@ -23,7 +28,8 @@ def __init__( energy: np.ndarray | sc.Variable, sample_components: ComponentCollection | ModelComponent | None = None, resolution_components: ComponentCollection | ModelComponent | None = None, - unit: str | sc.Unit = 'meV', + x_unit: str | sc.Unit = 'meV', + y_unit: str | sc.Unit = 'dimensionless', energy_offset: Numeric | Parameter = 0.0, display_name: str | None = 'MyConvolution', unique_name: str | None = None, @@ -39,8 +45,10 @@ def __init__( The sample model to be convolved. resolution_components : ComponentCollection | ModelComponent | None, default=None The resolution model to convolve with. - unit : str | sc.Unit, default='meV' - The unit of the energy. + x_unit : str | sc.Unit, default='meV' + The unit of the energy axis. + y_unit : str | sc.Unit, default='dimensionless' + The unit of the model output (intensity). energy_offset : Numeric | Parameter, default=0.0 The energy offset applied to the convolution. display_name : str | None, default='MyConvolution' @@ -58,7 +66,8 @@ def __init__( """ super().__init__( - unit=unit, + x_unit=x_unit, + y_unit=y_unit, display_name=display_name, unique_name=unique_name, ) @@ -70,10 +79,12 @@ def __init__( raise TypeError(f'Energy must be a numpy ndarray or a scipp Variable. Got {energy}') if isinstance(energy, np.ndarray): - energy = sc.array(dims=['energy'], values=energy, unit=unit) + energy = energy_to_scipp(energy, x_unit) if isinstance(energy_offset, Numeric): - energy_offset = Parameter(name='energy_offset', value=float(energy_offset), unit=unit) + energy_offset = Parameter( + name='energy_offset', value=float(energy_offset), unit=x_unit + ) if not isinstance(energy_offset, Parameter): raise TypeError('Energy_offset must be a number or a Parameter.') @@ -147,8 +158,9 @@ def energy_with_offset(self) -> sc.Variable: sc.Variable The energy values with the offset applied. """ + offset_value = sc.to_unit(self.energy_offset.full_value, self._energy.unit).value energy_with_offset = self.energy.copy() - energy_with_offset.values = self.energy.values - self.energy_offset.value + energy_with_offset.values = self.energy.values - offset_value return energy_with_offset @property @@ -187,15 +199,18 @@ def energy(self, energy: np.ndarray | sc.Variable) -> None: raise TypeError('Energy must be a Number, a numpy ndarray or a scipp Variable.') if isinstance(energy, np.ndarray): - self._energy = sc.array(dims=['energy'], values=energy, unit=self._energy.unit) + self._energy = energy_to_scipp(energy, self._energy.unit) if isinstance(energy, sc.Variable): self._energy = energy - self._unit = energy.unit + self._x_unit = energy.unit - def convert_unit(self, unit: str | sc.Unit) -> None: + def convert_x_unit(self, unit: str | sc.Unit) -> None: """ - Convert the energy and energy_offset to the specified unit. + Convert the energy axis, energy_offset, and all components to the specified unit. + + If any conversion fails, the already-converted state is rolled back best-effort before the + failing conversion's exception is re-raised. Parameters ---------- @@ -206,27 +221,69 @@ def convert_unit(self, unit: str | sc.Unit) -> None: ------ TypeError If unit is not a string or scipp unit. - Exception - If energy cannot be converted to the specified unit. """ if not isinstance(unit, (str, sc.Unit)): raise TypeError('Energy unit must be a string or scipp unit.') - old_energy = self.energy.copy() - try: - self.energy = sc.to_unit(self.energy, unit) - except Exception as e: - self.energy = old_energy - raise e - - old_energy_offset = self.energy_offset - try: - self.energy_offset.convert_unit(unit) - except Exception as e: - self.energy_offset = old_energy_offset - raise e - - self._unit = unit + old_x_unit = str(self.x_unit) + old_offset_unit = str(self.energy_offset.unit) + + def _convert_energy(target_unit: str | sc.Unit) -> None: + self.energy = sc.to_unit(self.energy, target_unit) + + conversions = [ + (_convert_energy, unit, old_x_unit), + (partial(convert_parameter_unit, self._energy_offset), unit, old_offset_unit), + ] + if self.sample_components is not None: + conversions.append((self.sample_components.convert_x_unit, unit, old_x_unit)) + if self.resolution_components is not None: + conversions.append((self.resolution_components.convert_x_unit, unit, old_x_unit)) + convert_units_with_rollback(conversions) + + self._x_unit = unit + + def convert_y_unit(self, unit: str | sc.Unit) -> None: + """ + Convert the y-axis unit of the sample components. + + Only propagates to sample components (resolution is normalised and unit-independent). If + any component raises during unit conversion, the conversion is rolled back best-effort + before the exception is re-raised. + + Parameters + ---------- + unit : str | sc.Unit + The new y-axis unit. + + Raises + ------ + TypeError + If unit is not a string or scipp unit. + """ + if not isinstance(unit, (str, sc.Unit)): + raise TypeError('y_unit must be a string or scipp unit.') + old_y_unit = self.y_unit + if self.sample_components is not None: + convert_units_with_rollback([ + (self.sample_components.convert_y_unit, unit, old_y_unit) + ]) + self._relabel_y_unit(unit) + + def _relabel_y_unit(self, unit: str | sc.Unit) -> None: + """ + Update the y-unit label without converting any components. + + This is the contract for a parent convolver whose sub-convolvers share its component + objects: the parent converts the components once, then relabels the sub-convolvers so their + y_unit stays consistent without double-converting the shared components. + + Parameters + ---------- + unit : str | sc.Unit + The new y-axis unit. The caller is responsible for having converted the components. + """ + self._y_unit = str(unit) if isinstance(unit, sc.Unit) else unit @property def sample_components(self) -> ComponentCollection | ModelComponent: diff --git a/src/easydynamics/convolution/numerical_convolution.py b/src/easydynamics/convolution/numerical_convolution.py index e0ddde05d..0443e986a 100644 --- a/src/easydynamics/convolution/numerical_convolution.py +++ b/src/easydynamics/convolution/numerical_convolution.py @@ -2,6 +2,7 @@ # SPDX-License-Identifier: BSD-3-Clause import numpy as np +import scipp as sc from scipy.signal import fftconvolve from easydynamics.convolution.numerical_convolution_base import NumericalConvolutionBase @@ -31,9 +32,9 @@ def convolution( """ # Make sure the convolver is updated with the latest convolution # settings before convolution. - if not self.convolution_settings.convolution_plan_is_valid: + if not self._convolution_plan_is_current(): self._energy_grid = self._create_energy_grid() - self.convolution_settings.convolution_plan_is_valid = True + self._mark_convolution_plan_current() # Give warnings if peaks are very wide or very narrow if not self.convolution_settings.suppress_warnings: @@ -46,18 +47,24 @@ def convolution( model_name='resolution model', ) - # Evaluate sample model. If called via the Convolution class, - # delta functions are already filtered out. - sample_vals = self.sample_components.evaluate( + # Unit-convert the energy offset to match the energy grid unit. + # sc.to_unit returns a new scalar — self.energy_offset is never mutated. + offset_value = sc.to_unit(self.energy_offset.full_value, self.energy.unit).value + + shifted_energy = ( self._energy_grid.energy_dense - self._energy_grid.energy_even_length_offset - - self.energy_offset.value + - offset_value ) + # Evaluate sample model. If called via the Convolution class, + # delta functions are already filtered out. + sample_vals = self.sample_components.evaluate(shifted_energy) + # Detailed balance correction if self.temperature is not None and self.detailed_balance_settings.use_detailed_balance: detailed_balance_factor_correction = detailed_balance_factor( - energy=self._energy_grid.energy_dense - self.energy_offset.value, + energy=shifted_energy, temperature=self.temperature, energy_unit=self.energy.unit, divide_by_temperature=self.detailed_balance_settings.normalize_detailed_balance, @@ -90,7 +97,8 @@ def __repr__(self) -> str: f'{self.__class__.__name__}(' f'display_name={self.display_name!r}, ' f'unique_name={self.unique_name!r}, ' - f'unit={self.unit}, ' + f'x_unit={self.x_unit}, ' + f'y_unit={self.y_unit}, ' f'energy_len={len(self.energy)}, ' f'temperature={self.temperature})' ) diff --git a/src/easydynamics/convolution/numerical_convolution_base.py b/src/easydynamics/convolution/numerical_convolution_base.py index 188a69dbc..dc257fd36 100644 --- a/src/easydynamics/convolution/numerical_convolution_base.py +++ b/src/easydynamics/convolution/numerical_convolution_base.py @@ -43,7 +43,8 @@ def __init__( temperature: Parameter | Numeric | None = None, temperature_unit: str | sc.Unit = 'K', detailed_balance_settings: DetailedBalanceSettings | None = None, - unit: str | sc.Unit = 'meV', + x_unit: str | sc.Unit = 'meV', + y_unit: str | sc.Unit = 'dimensionless', display_name: str | None = 'MyConvolution', unique_name: str | None = None, ) -> None: @@ -68,8 +69,10 @@ def __init__( The unit of the temperature parameter. detailed_balance_settings : DetailedBalanceSettings | None, default=None The settings for detailed balance. If None, default settings will be used. - unit : str | sc.Unit, default='meV' - The unit of the energy. + x_unit : str | sc.Unit, default='meV' + The unit of the energy axis. + y_unit : str | sc.Unit, default='dimensionless' + The unit of the model output (intensity). display_name : str | None, default='MyConvolution' Display name of the model. unique_name : str | None, default=None @@ -85,7 +88,8 @@ def __init__( energy=energy, sample_components=sample_components, resolution_components=resolution_components, - unit=unit, + x_unit=x_unit, + y_unit=y_unit, energy_offset=energy_offset, display_name=display_name, unique_name=unique_name, @@ -116,7 +120,30 @@ def __init__( # When upsample_factor>1, we evaluate on this grid and # interpolate back to the original values at the end self._energy_grid = self._create_energy_grid() - self._convolution_settings.convolution_plan_is_valid = True + self._mark_convolution_plan_current() + + def _convolution_plan_is_current(self) -> bool: + """ + Check whether this convolver's plan is up to date. + + Plan validity is tracked per convolver so several convolvers can share one + ConvolutionSettings object: each convolver stores the settings' plan version it last + rebuilt against (None after a convolver-local invalidation such as a new energy grid), and + the settings bump their version whenever an accuracy knob changes. + + Returns + ------- + bool + True if the plan does not need to be rebuilt. + """ + seen_version = getattr(self, '_plan_seen_version', None) + if seen_version is None: + return False + return self.convolution_settings._plan_valid_for(seen_version) # noqa: SLF001 + + def _mark_convolution_plan_current(self) -> None: + """Record that this convolver's plan matches its current state and settings.""" + self._plan_seen_version = self.convolution_settings._plan_version # noqa: SLF001 @property def convolution_settings(self) -> ConvolutionSettings: @@ -149,12 +176,17 @@ def convolution_settings(self, settings: ConvolutionSettings) -> None: if not isinstance(settings, ConvolutionSettings): raise TypeError('settings must be a ConvolutionSettings instance.') self._convolution_settings = settings - self._convolution_settings.convolution_plan_is_valid = False + # Convolver-local invalidation: other convolvers sharing the new settings object are + # unaffected. + self._plan_seen_version = None @ConvolutionBase.energy.setter def energy(self, energy: np.ndarray) -> None: """ - Set the energy array and recreate the dense grid. + Set the energy array and invalidate this convolver's plan. + + The dense grid is rebuilt lazily on the next convolution. Other convolvers sharing the same + ConvolutionSettings are unaffected — a new energy array is a convolver-local change. Parameters ---------- @@ -162,7 +194,7 @@ def energy(self, energy: np.ndarray) -> None: The new energy array. """ ConvolutionBase.energy.fset(self, energy) - self.convolution_settings.convolution_plan_is_valid = False + self._plan_seen_version = None @property def upsample_factor(self) -> Numeric | None: @@ -332,6 +364,10 @@ def _create_energy_grid( energy_span_dense = self.energy.values.max() - self.energy.values.min() else: + if self.extension_factor is None: + raise ValueError( + 'extension_factor must be a number (not None) when upsample_factor is set.' + ) # Create an extended and upsampled energy grid energy_min, energy_max = self.energy.values.min(), self.energy.values.max() energy_span_original = energy_max - energy_min @@ -437,12 +473,12 @@ def __repr__(self) -> str: """ return ( f'{self.__class__.__name__}(' - f' energy=array of shape {self.energy.values.shape},\n' - f' sample_components={self.sample_components!r},\n' - f' resolution_components={self.resolution_components!r},\n' - f' unit={self.unit}, ' - f' upsample_factor={self.upsample_factor}, ' - f' extension_factor={self.extension_factor}, ' - f' temperature={self.temperature}, ' - f' detailed_balance={self.detailed_balance_settings!r})' + f'energy=array of shape {self.energy.values.shape},\n ' + f'sample_components={self.sample_components!r}, \n' + f'resolution_components={self.resolution_components!r},\n ' + f'x_unit={self.x_unit}, y_unit={self.y_unit}, ' + f'upsample_factor={self.upsample_factor}, ' + f'extension_factor={self.extension_factor}, ' + f'temperature={self.temperature}, ' + f'detailed_balance={self.detailed_balance_settings!r})' ) diff --git a/src/easydynamics/experiment/experiment.py b/src/easydynamics/experiment/experiment.py index a27dc2b66..27df30315 100644 --- a/src/easydynamics/experiment/experiment.py +++ b/src/easydynamics/experiment/experiment.py @@ -230,7 +230,9 @@ def energy(self, _value: sc.Variable) -> None: """ raise AttributeError('energy is a read-only property derived from the data.') - def get_masked_energy(self, Q_index: int) -> sc.Variable | None: + def get_masked_energy( + self, Q_index: int, mask: sc.Variable | None = None + ) -> sc.Variable | None: """ Get the energy values from the dataset, removing points where the y values or variances are NaN or Inf for the given Q index. @@ -239,22 +241,66 @@ def get_masked_energy(self, Q_index: int) -> sc.Variable | None: ---------- Q_index : int The Q index to get the masked energy values for. + mask : sc.Variable | None, default=None + Optional precomputed finite-energy mask (as returned by + :meth:`get_finite_energy_mask`), so callers that already extracted the data do not pay + for a second extraction. If None, the mask is computed. Returns ------- sc.Variable | None The masked energy values from the dataset, or None if no data is loaded. """ + if mask is None: + mask = self.get_finite_energy_mask(Q_index=Q_index) + if mask is None: + return None + + return self.binned_data.coords['energy'][mask] + + def get_finite_energy_mask(self, Q_index: int) -> sc.Variable | None: + """ + Get a boolean scipp Variable selecting energy points with finite intensity at the given Q. + + Parameters + ---------- + Q_index : int + The Q index to get the mask for. + + Returns + ------- + sc.Variable | None + Boolean scipp Variable of length n_energy with dim ``'energy'``, or None if no data is + loaded. + """ if self.binned_data is None: return None verify_Q_index(Q_index, self.Q) - energy = self.binned_data.coords['energy'] - _, _, _, mask = self._extract_x_y_weights_only_finite(Q_index=Q_index) + _, _, _, mask = self.extract_x_y_weights_only_finite(Q_index=Q_index) + return sc.array(dims=['energy'], values=mask) + + def get_masked_binned_data(self, Q_index: int) -> sc.DataArray | None: + """ + Get the binned data for a single Q slice with non-finite points masked out. + + Parameters + ---------- + Q_index : int + The Q index to extract. + + Returns + ------- + sc.DataArray | None + The binned data for the given Q index with NaN/Inf points removed, or None if no data + is loaded. + """ + mask_var = self.get_finite_energy_mask(Q_index=Q_index) + if mask_var is None: + return None - mask_var = sc.array(dims=['energy'], values=mask) - return energy[mask_var] + return self.binned_data['Q', Q_index][mask_var] ########### # Handle data @@ -537,7 +583,7 @@ def _extract_x_y_var(self, Q_index: int) -> tuple[np.ndarray, np.ndarray, np.nda var = data.variances return x, y, var - def _extract_x_y_weights_only_finite( + def extract_x_y_weights_only_finite( self, Q_index: int ) -> tuple[np.ndarray, np.ndarray, np.ndarray, np.ndarray]: """ diff --git a/src/easydynamics/sample_model/background_model.py b/src/easydynamics/sample_model/background_model.py index 34d313932..031d9493c 100644 --- a/src/easydynamics/sample_model/background_model.py +++ b/src/easydynamics/sample_model/background_model.py @@ -47,7 +47,8 @@ def __init__( self, display_name: str | None = 'MyBackgroundModel', unique_name: str | None = None, - unit: str | sc.Unit = 'meV', + x_unit: str | sc.Unit = 'meV', + y_unit: str | sc.Unit = 'dimensionless', components: ModelComponent | ComponentCollection | None = None, Q: Q_type | None = None, ) -> None: @@ -60,8 +61,10 @@ def __init__( Display name of the model. unique_name : str | None, default=None Unique name of the model. If None, a unique name will be generated. - unit : str | sc.Unit, default='meV' - Unit of the model. + x_unit : str | sc.Unit, default='meV' + Unit of the x-axis (energy, Q, etc.). + y_unit : str | sc.Unit, default='dimensionless' + Unit of the model output (intensity). components : ModelComponent | ComponentCollection | None, default=None Template components of the model. If None, no components are added. These components are copied into ComponentCollections for each Q value. @@ -71,7 +74,8 @@ def __init__( super().__init__( display_name=display_name, unique_name=unique_name, - unit=unit, + x_unit=x_unit, + y_unit=y_unit, components=components, Q=Q, ) @@ -80,7 +84,7 @@ def __repr__(self) -> str: return ( f'{self.__class__.__name__}(' f'unique_name={self.unique_name!r}, ' - f'unit={self.unit}, ' + f'x_unit={self.x_unit}, y_unit={self.y_unit}, ' f'Q_len={None if self._Q is None else len(self._Q)}, ' f'components={self.components})' ) diff --git a/src/easydynamics/sample_model/component_collection.py b/src/easydynamics/sample_model/component_collection.py index 54a6b0010..b63135fb8 100644 --- a/src/easydynamics/sample_model/component_collection.py +++ b/src/easydynamics/sample_model/component_collection.py @@ -9,14 +9,17 @@ import numpy as np import scipp as sc -from easyscience.variable import DescriptorBase -from easyscience.variable import Parameter from easydynamics.base_classes.easydynamics_list import EasyDynamicsList from easydynamics.base_classes.easydynamics_modelbase import EasyDynamicsModelBase from easydynamics.sample_model.components.model_component import ModelComponent +from easydynamics.utils.fit_target import FitTarget +from easydynamics.utils.utils import convert_units_with_rollback +from easydynamics.utils.utils import convert_value_unit if TYPE_CHECKING: + from easyscience.variable import DescriptorBase + from easydynamics.utils.utils import Numeric @@ -54,7 +57,8 @@ class ComponentCollection(EasyDynamicsList, EasyDynamicsModelBase): def __init__( self, components: ModelComponent | list[ModelComponent] | None = None, - unit: str | sc.Unit = 'meV', + x_unit: str | sc.Unit = 'meV', + y_unit: str | sc.Unit = 'dimensionless', name: str = 'ComponentCollection', display_name: str | None = None, unique_name: str | None = None, @@ -66,8 +70,10 @@ def __init__( ---------- components : ModelComponent | list[ModelComponent] | None, default=None Initial model components to add to the ComponentCollection. - unit : str | sc.Unit, default='meV' - Unit of the collection. + x_unit : str | sc.Unit, default='meV' + Unit of the x-axis (energy, Q, etc.). + y_unit : str | sc.Unit, default='dimensionless' + Unit of the model output (intensity). name : str, default='ComponentCollection' Name of the collection. display_name : str | None, default=None @@ -86,12 +92,14 @@ def __init__( components = [components] elif not isinstance(components, list): raise TypeError( - f'components must be a ModelComponent or a list of ModelComponent, got {type(components).__name__} instead.' # noqa: E501 + f'components must be a ModelComponent or a list of ModelComponent, ' + f'got {type(components).__name__} instead.' ) for comp in components: if not isinstance(comp, ModelComponent): raise TypeError( - f'All items in components must be instances of ModelComponent, got {type(comp).__name__} instead.' # noqa: E501 + f'All items in components must be instances of ModelComponent, ' + f'got {type(comp).__name__} instead.' ) EasyDynamicsList.__init__( @@ -102,7 +110,8 @@ def __init__( EasyDynamicsModelBase.__init__( self, - unit=unit, + x_unit=x_unit, + y_unit=y_unit, name=name, display_name=display_name, unique_name=unique_name, @@ -146,40 +155,65 @@ def is_empty(self, _value: bool) -> None: 'whether the collection has components.' ) - def convert_unit(self, unit: str | sc.Unit) -> None: + # ------------------------------------------------------------------ + # Unit conversion + # ------------------------------------------------------------------ + + def convert_x_unit(self, new_x_unit: str | sc.Unit) -> None: """ - Convert the unit of the ComponentCollection and all its components. + Convert the x-axis unit of the ComponentCollection and all its components. + + Parameters + ---------- + new_x_unit : str | sc.Unit + The target x-axis unit to convert to. + """ + self._convert_axis_unit(new_x_unit, axis='x') + + def convert_y_unit(self, new_y_unit: str | sc.Unit) -> None: + """ + Convert the y-axis unit of the ComponentCollection and all its components. + + Parameters + ---------- + new_y_unit : str | sc.Unit + The target y-axis unit to convert to. + """ + self._convert_axis_unit(new_y_unit, axis='y') + + def _convert_axis_unit(self, unit: str | sc.Unit, axis: str) -> None: + """ + Convert one axis unit on all components in the collection. + + Converts every component via its ``convert__unit`` method and updates the + collection's own unit attribute. On failure, attempts a best-effort rollback of all + components to the old unit before re-raising the failing conversion's exception. Parameters ---------- unit : str | sc.Unit - The target unit to convert to. + The new unit to convert to. + axis : str + Which axis to convert: ``'x'`` or ``'y'``. Raises ------ TypeError - If unit is not a string or sc.Unit. - Exception - If any component cannot be converted to the specified unit. + If the provided unit is not a string or sc.Unit. """ - if not isinstance(unit, (str, sc.Unit)): - raise TypeError(f'Unit must be a string or sc.Unit, got {type(unit).__name__}') - - old_unit = self._unit - - try: - for component in self: - component.convert_unit(unit) - self._unit = unit - except Exception as e: - # Attempt to rollback on failure - try: - for component in self: - component.convert_unit(old_unit) - except Exception: # noqa: S110 - pass # Best effort rollback - raise e + raise TypeError(f'{axis}_unit must be a string or sc.Unit, got {type(unit).__name__}') + + method = f'convert_{axis}_unit' + old_unit = self.x_unit if axis == 'x' else self.y_unit + convert_units_with_rollback([ + (getattr(component, method), unit, old_unit) for component in self + ]) + unit_str = str(unit) if isinstance(unit, sc.Unit) else unit + if axis == 'x': + self._x_unit = unit_str + else: + self._y_unit = unit_str # ------------------------------------------------------------------ # Component management @@ -211,9 +245,33 @@ def list_component_names(self) -> list[str]: list[str] List of names of the components in the collection. """ - return [component.name for component in self] + def get_fit_targets(self) -> list[FitTarget]: + """ + Get the fittable predictions of this collection as FitTargets. + + Collections have a single prediction — their summed ``evaluate`` — named ``'value'`` with + no default dataset key; ``FitBinding`` supplies the dataset key to fit against. The target + is a snapshot: its units reflect the collection's x_unit/y_unit at call time (None means + raw values are fitted without unit conversion). + + Returns + ------- + list[FitTarget] + A single FitTarget wrapping this collection's evaluate. + """ + return [ + FitTarget( + name='value', + dataset_key=None, + function=lambda x, model=self, **_: model.evaluate(x), + label=self.display_name, + x_unit=self.x_unit, + y_unit=self.y_unit, + ) + ] + def normalize_area(self) -> None: """ Normalize the areas of all components so they sum to 1. @@ -230,28 +288,37 @@ def normalize_area(self) -> None: raise ValueError('No components in the model to normalize.') area_params = [] - total_area = Parameter(name='total_area', value=0.0, unit=self._unit) for component in self: if hasattr(component, 'area'): area_params.append(component.area) - total_area += component.area else: warnings.warn( f"Component '{component.name}' does not have an 'area' attribute " - f'and will be skipped in normalization.', + 'and will be skipped in normalization.', UserWarning, stacklevel=2, ) - if total_area.value == 0: + if not area_params: + raise ValueError('No components with an area attribute; cannot normalize.') + + # Sum the areas in a common unit so components with different (but compatible) + # units normalize correctly. Dividing each value by the total expressed in the + # reference unit makes the areas sum to 1 in that unit. + reference_unit = str(area_params[0].unit) + total_area_value = sum( + convert_value_unit(p.value, p.unit, reference_unit) for p in area_params + ) + + if total_area_value == 0: raise ValueError('Total area is zero; cannot normalize.') - if not np.isfinite(total_area.value): + if not np.isfinite(total_area_value): raise ValueError('Total area is not finite; cannot normalize.') for param in area_params: - param.value /= total_area.value + param.value /= total_area_value # ------------------------------------------------------------------ # Other methods @@ -259,17 +326,20 @@ def normalize_area(self) -> None: def get_all_variables(self) -> list[DescriptorBase]: """ - Get all parameters from the model component. + Get all parameters from all model components. Returns ------- list[DescriptorBase] - List of parameters in the component. + List of parameters in the collection. """ - return [var for component in self for var in component.get_all_variables()] - def evaluate(self, x: Numeric | list | np.ndarray | sc.Variable | sc.DataArray) -> np.ndarray: + def evaluate( + self, + x: Numeric | list | np.ndarray | sc.Variable | sc.DataArray, + output: str = 'numpy', + ) -> np.ndarray | sc.Variable: """ Evaluate the sum of all components. @@ -277,22 +347,35 @@ def evaluate(self, x: Numeric | list | np.ndarray | sc.Variable | sc.DataArray) ---------- x : Numeric | list | np.ndarray | sc.Variable | sc.DataArray Energy axis. + output : str, default='numpy' + 'numpy' returns np.ndarray; 'scipp' returns sc.Variable with y_unit. Returns ------- - np.ndarray + np.ndarray | sc.Variable Evaluated model values. """ - if not self: - return np.zeros_like(x) - return sum(component.evaluate(x) for component in self) + if isinstance(x, (sc.Variable, sc.DataArray)): + values = np.zeros_like(x.values, dtype=float) + dim = x.dims[0] if x.dims else 'x' + else: + values = np.zeros_like(x, dtype=float) + dim = 'x' + if output == 'scipp': + return sc.array(dims=[dim], values=values, unit=self.y_unit) + return values + # This is needed to handle both scipp and numpy output - a normal call to sum does not work + gen = (component.evaluate(x, output=output) for component in self) + first = next(gen) + return sum(gen, first) def evaluate_component( self, x: Numeric | list | np.ndarray | sc.Variable | sc.DataArray, name: str, - ) -> np.ndarray: + output: str = 'numpy', + ) -> np.ndarray | sc.Variable: """ Evaluate a single component by name. @@ -302,6 +385,8 @@ def evaluate_component( Energy axis. name : str Component name. + output : str, default='numpy' + 'numpy' returns np.ndarray; 'scipp' returns sc.Variable with y_unit. Raises ------ @@ -314,22 +399,17 @@ def evaluate_component( Returns ------- - np.ndarray + np.ndarray | sc.Variable Evaluated values for the specified component. """ if not self: raise ValueError('No components in the model to evaluate.') - if not isinstance(name, str): raise TypeError(f'Component name must be a string, got {type(name)} instead.') - matches = [comp for comp in self if comp.name == name] if not matches: raise KeyError(f"No component named '{name}' exists.") - - component = matches[0] - - return component.evaluate(x) + return matches[0].evaluate(x, output=output) def fix_all_parameters(self) -> None: """Fix all free parameters in the model.""" @@ -376,11 +456,10 @@ def __repr__(self) -> str: String representation of the ComponentCollection. """ comp_names = ', '.join(c.name for c in self) or 'No components' - return ( - f'{self.__class__.__name__}(' - f'name={self.name!r}, unit={self.unit},\n' - f' components=[{comp_names}])' + f"{self.__class__.__name__}(name='{self.name}', " + f"x_unit='{self.x_unit}', y_unit='{self.y_unit}',\n" + f'Components: {comp_names})' ) def to_dict(self) -> dict: @@ -395,7 +474,8 @@ def to_dict(self) -> dict: return { '@module': self.__class__.__module__, '@class': self.__class__.__name__, - 'unit': str(self.unit), + 'x_unit': str(self.x_unit), + 'y_unit': str(self.y_unit), 'name': self.name, 'display_name': self.display_name, 'components': [c.to_dict() for c in self._data], @@ -433,13 +513,14 @@ def deserialise_component(d: dict) -> ModelComponent: cls = getattr(module, d['@class']) return cls.from_dict(d) - components = [deserialise_component(c) for c in obj_dict.get('components', [])] + components = [deserialise_component(c) for c in obj_dict['components']] return cls( components=components, - unit=obj_dict.get('unit', 'meV'), - name=obj_dict.get('name', 'ComponentCollection'), - display_name=obj_dict.get('display_name'), + x_unit=obj_dict['x_unit'], + y_unit=obj_dict['y_unit'], + name=obj_dict['name'], + display_name=obj_dict['display_name'], ) def __copy__(self) -> ComponentCollection: @@ -451,5 +532,4 @@ def __copy__(self) -> ComponentCollection: ComponentCollection A deep copy of the ComponentCollection. """ - return self.from_dict(self.to_dict()) diff --git a/src/easydynamics/sample_model/components/damped_harmonic_oscillator.py b/src/easydynamics/sample_model/components/damped_harmonic_oscillator.py index 9d4d1ed75..90a63562f 100644 --- a/src/easydynamics/sample_model/components/damped_harmonic_oscillator.py +++ b/src/easydynamics/sample_model/components/damped_harmonic_oscillator.py @@ -20,8 +20,11 @@ class DampedHarmonicOscillator(CreateParametersMixin, ModelComponent): r""" Model of a Damped Harmonic Oscillator (DHO). - The intensity is given by $$ I(x) = \frac{2 A x_0^2 \gamma}{\pi \left( (x^2 - x_0^2)^2 + (2 - \gamma x)^2 \right)}, $$ where $A$ is the area, $x_0$ is the center, and $\gamma$ is the width. + $$ I(x) = \frac{2 A x_0^2 \gamma}{\pi \left( (x^2 - x_0^2)^2 + (2\gamma x)^2 \right)} $$ + + where $A$ is the area (``area``), $x_0$ is the center (``center``), and $\gamma$ is the half + width at half max (``width``). area has unit = x_unit * y_unit; center and width have unit = + x_unit. Examples -------- @@ -55,56 +58,57 @@ def __init__( area: Numeric = 1.0, center: Numeric = 1.0, width: Numeric = 1.0, - unit: str | sc.Unit = 'meV', + x_unit: str | sc.Unit = 'meV', + y_unit: str | sc.Unit = 'dimensionless', name: str = 'DampedHarmonicOscillator', display_name: str | None = None, unique_name: str | None = None, ) -> None: """ - Initialize the Damped Harmonic Oscillator. + Initialize the Damped Harmonic Oscillator component. Parameters ---------- area : Numeric, default=1.0 - Area under the curve. + Integrated area under the DHO profile. Unit is ``x_unit * y_unit``. center : Numeric, default=1.0 - Resonance frequency, approximately the peak position. + Resonance frequency (x_0) in x_unit; approximately the peak position. Must be strictly + positive; a minimum of ``DHO_MINIMUM_CENTER`` (1e-10) is enforced. width : Numeric, default=1.0 - Damping constant, approximately the half width at half max (HWHM) of the peaks. By - default, 1.0. - unit : str | sc.Unit, default='meV' - Unit of the parameters. + Damping coefficient (gamma) in x_unit. Must be strictly positive. Approximately equal + to the HWHM of each peak. + x_unit : str | sc.Unit, default='meV' + Unit of the x-axis. center and width are stored in this unit. area_unit = x_unit * + y_unit. + y_unit : str | sc.Unit, default='dimensionless' + Unit of the y-axis (output). name : str, default='DampedHarmonicOscillator' - Name of the component for indexing. + Name of the component. display_name : str | None, default=None - Display name of the component. + Display name shown when plotting. Falls back to *name* if None. unique_name : str | None, default=None - Unique name of the component. If None, a unique_name is automatically generated. By - default, None. + Globally unique identifier. Auto-generated if None. """ - super().__init__( name=name, display_name=display_name, unique_name=unique_name, - unit=unit, + x_unit=x_unit, + y_unit=y_unit, ) - # These methods live in ValidationMixin - area = self._create_area_parameter(area=area, name=name, unit=self._unit) - center = self._create_center_parameter( + # These methods live in CreateParametersMixin + self._area = self._create_area_parameter( + area=area, name=name, x_unit=self.x_unit, y_unit=self.y_unit + ) + self._center = self._create_center_parameter( center=center, name=name, fix_if_none=False, - unit=self._unit, + x_unit=self.x_unit, enforce_minimum_center=True, ) - - width = self._create_width_parameter(width=width, name=name, unit=self._unit) - - self._area = area - self._center = center - self._width = width + self._width = self._create_width_parameter(width=width, name=name, x_unit=self.x_unit) @property def area(self) -> Parameter: @@ -114,24 +118,22 @@ def area(self) -> Parameter: Returns ------- Parameter - The area parameter. + The area Parameter with unit ``x_unit * y_unit``. """ return self._area @area.setter def area(self, value: Numeric) -> None: """ - Set the value of the area parameter. - Parameters ---------- value : Numeric - The new value for the area parameter. + New area value (in current area unit = x_unit * y_unit). Raises ------ TypeError - If the value is not a number. + If *value* is not a numeric type. """ if not isinstance(value, Numeric): raise TypeError('area must be a number') @@ -140,35 +142,32 @@ def area(self, value: Numeric) -> None: @property def center(self) -> Parameter: """ - Get the center parameter. + Get the center parameter (resonance frequency). Returns ------- Parameter - The center parameter. + The resonance frequency (x_0) Parameter with unit ``x_unit``. """ return self._center @center.setter def center(self, value: Numeric) -> None: """ - Set the value of the center parameter. - Parameters ---------- value : Numeric - The new value for the center parameter. + New resonance frequency in x_unit. Must be strictly positive. Raises ------ TypeError - If the value is not a number. + If *value* is not a numeric type. ValueError - If the value is not positive. + If *value* is not positive. """ if not isinstance(value, Numeric): raise TypeError('center must be a number') - if float(value) <= 0: raise ValueError('center must be positive') self._center.value = value @@ -176,66 +175,94 @@ def center(self, value: Numeric) -> None: @property def width(self) -> Parameter: """ - Get the width parameter. + Get the width parameter (damping coefficient). Returns ------- Parameter - The width parameter. + The damping coefficient (gamma) Parameter with unit ``x_unit``. """ return self._width @width.setter def width(self, value: Numeric) -> None: """ - Set the value of the width parameter. - Parameters ---------- value : Numeric - The new value for the width parameter. + New damping coefficient in x_unit. Must be strictly positive. Raises ------ TypeError - If the value is not a number. + If *value* is not a numeric type. ValueError - If the value is not positive. + If *value* is not positive. """ if not isinstance(value, Numeric): raise TypeError('width must be a number') - if float(value) <= 0: raise ValueError('width must be positive') - self._width.value = value - def evaluate(self, x: Numeric | list | np.ndarray | sc.Variable | sc.DataArray) -> np.ndarray: + def _evaluate_values(self, x_vals: np.ndarray, eval_unit: str | None) -> np.ndarray: r""" - Evaluate the Damped Harmonic Oscillator at the given x values. + Evaluate the DHO at x_vals. + + $$ I(x) = \frac{2 A x_0^2 \gamma}{\pi \left( (x^2 - x_0^2)^2 + (2\gamma x)^2 \right)} $$ - If x is a scipp Variable, the unit of the DHO will be converted to match x. The intensity - is given by $$ I(x) = \frac{2 A x_0^2 \gamma}{\pi \left( (x^2 - x_0^2)^2 + (2 \gamma x)^2 - \right)}, $$ where $A$ is the area, $x_0$ is the center, and $\gamma$ is the width. + where *A* is ``area``, *x*₀ is ``center`` (resonance frequency), and *gamma* is ``width`` + (damping coefficient). Here *I* is the scattered intensity. Parameters in the model's own + units are temporarily converted to eval_unit for the computation. Parameters ---------- - x : Numeric | list | np.ndarray | sc.Variable | sc.DataArray - The x values at which to evaluate the DHO. + x_vals : np.ndarray + Raw x values expressed in eval_unit. + eval_unit : str | None + The unit of x_vals. Returns ------- np.ndarray - The intensity of the DHO at the given x values. + Evaluated DHO values at x_vals. """ + center = self._resolve_param_value(self._center, eval_unit) + width = self._resolve_param_value(self._width, eval_unit) + area = self._resolve_param_value(self._area, self._eval_area_unit(eval_unit)) - x = self._prepare_x_for_evaluate(x) + normalization = 2 * center**2 * width / np.pi + denominator = (x_vals**2 - center**2) ** 2 + (2 * width * x_vals) ** 2 + # denominator cannot reach zero: center > 0 enforced by DHO_MINIMUM_CENTER + return area * normalization / denominator - normalization = 2 * self.center.value**2 * self.width.value / np.pi - # No division by zero here, width>0 enforced in setter - denominator = (x**2 - self.center.value**2) ** 2 + (2 * self.width.value * x) ** 2 + def convert_x_unit(self, new_x_unit: str | sc.Unit) -> None: + """ + Convert x-axis parameters (center, width) and area to new_x_unit. + + Parameters + ---------- + new_x_unit : str | sc.Unit + Target x-axis unit. Must be dimensionally compatible with the current x_unit. + """ + self._convert_x_unit_area_based( + new_x_unit=new_x_unit, + x_params=[self._center, self._width], + area_param=self._area, + ) - return self.area.value * normalization / (denominator) + def convert_y_unit(self, new_y_unit: str | sc.Unit) -> None: + """ + Convert the y-axis unit by rescaling the area parameter. + + The area is rescaled from ``x_unit * old_y_unit`` to ``x_unit * new_y_unit``. + + Parameters + ---------- + new_y_unit : str | sc.Unit + Target y-axis unit. + """ + self._convert_y_unit_area_based(new_y_unit=new_y_unit, area_param=self._area) def __repr__(self) -> str: """ @@ -247,10 +274,9 @@ def __repr__(self) -> str: A string representation of the Damped Harmonic Oscillator. """ return ( - f'{self.__class__.__name__}(' - f'name={self.name!r}, display_name={self.display_name!r}, ' - f'unit={self._unit},\n' - f' area={self.area},\n' - f' center={self.center},\n' - f' width={self.width})' + f'{self.__class__.__name__}(name = {self.name}, display_name = {self.display_name}, ' + f'x_unit = {self.x_unit}, y_unit = {self.y_unit},\n ' + f' area = {self.area},\n ' + f' center = {self.center},\n ' + f' width = {self.width})' ) diff --git a/src/easydynamics/sample_model/components/delta_function.py b/src/easydynamics/sample_model/components/delta_function.py index bca8c4239..60c343a3d 100644 --- a/src/easydynamics/sample_model/components/delta_function.py +++ b/src/easydynamics/sample_model/components/delta_function.py @@ -11,8 +11,7 @@ from easydynamics.sample_model.components.model_component import ModelComponent from easydynamics.utils.utils import Numeric -EPSILON = 1e-8 # small number to avoid floating point issues - +EPSILON = 1e-8 # tolerance for bin-edge comparisons if TYPE_CHECKING: import scipp as sc @@ -23,9 +22,12 @@ class DeltaFunction(CreateParametersMixin, ModelComponent): """ Delta function. - Evaluates to zero everywhere, except in convolutions, where it acts as an identity. This is - handled by the Convolution method. If the center is not provided, it will be centered at 0 and - fixed, which is typically what you want in QENS. + When called directly, returns zero everywhere except at the bin nearest to ``center``, where it + returns ``area / bin_width``. In convolutions it acts as an identity element (handled by the + ``Convolution`` class). area has unit = x_unit * y_unit; center has unit = x_unit. + + If the center is not provided, it will be centered at 0 and fixed, which is typically what you + want in QENS. Examples -------- @@ -57,7 +59,8 @@ def __init__( self, center: Numeric | None = None, area: Numeric = 1.0, - unit: str | sc.Unit = 'meV', + x_unit: str | sc.Unit = 'meV', + y_unit: str | sc.Unit = 'dimensionless', name: str = 'DeltaFunction', display_name: str | None = None, unique_name: str | None = None, @@ -68,35 +71,35 @@ def __init__( Parameters ---------- center : Numeric | None, default=None - Center of the delta function. If None, it will be centered at 0 and fixed. + Position of the delta function in x_unit. If None, defaults to 0 and the center + parameter is fixed. area : Numeric, default=1.0 - Total area under the curve. - unit : str | sc.Unit, default='meV' - Unit of the parameters. + Integrated area (weight) of the delta function. Unit is ``x_unit * y_unit``. + x_unit : str | sc.Unit, default='meV' + Unit of the x-axis. center is stored in this unit. area_unit = x_unit * y_unit. + y_unit : str | sc.Unit, default='dimensionless' + Unit of the y-axis (output). name : str, default='DeltaFunction' - Name of the component for indexing. + Name of the component. display_name : str | None, default=None - Display name of the component. + Display name of the component, shown when plotting. Falls back to *name* if None. unique_name : str | None, default=None - Unique name of the component. If None, a unique_name is automatically generated. By - default, None. + Globally unique identifier. Auto-generated if None. """ - # Validate inputs and create Parameters if not given super().__init__( - unit=unit, + x_unit=x_unit, + y_unit=y_unit, name=name, display_name=display_name, unique_name=unique_name, ) - # These methods live in ValidationMixin - area = self._create_area_parameter(area=area, name=name, unit=self._unit) - center = self._create_center_parameter( - center=center, name=name, fix_if_none=True, unit=self._unit + self._area = self._create_area_parameter( + area=area, name=name, x_unit=self.x_unit, y_unit=self.y_unit + ) + self._center = self._create_center_parameter( + center=center, name=name, fix_if_none=True, x_unit=self.x_unit ) - - self._area = area - self._center = center @property def area(self) -> Parameter: @@ -106,27 +109,23 @@ def area(self) -> Parameter: Returns ------- Parameter - The area parameter. + The area Parameter with unit ``x_unit * y_unit``. """ - return self._area @area.setter def area(self, value: Numeric) -> None: """ - Set the value of the area parameter. - Parameters ---------- value : Numeric - The new value for the area parameter. + New area value (in current area unit = x_unit * y_unit). Raises ------ TypeError - If the value is not a number. + If *value* is not a numeric type. """ - if not isinstance(value, Numeric): raise TypeError('area must be a number') self._area.value = value @@ -139,27 +138,24 @@ def center(self) -> Parameter: Returns ------- Parameter - The center parameter. + The center Parameter with unit ``x_unit``. """ - return self._center @center.setter def center(self, value: Numeric | None) -> None: """ - Set the center parameter value. - Parameters ---------- value : Numeric | None - The new value for the center parameter. If None, defaults to 0 and is fixed. + New center value in x_unit. If None, the center is set to 0 and the parameter is + fixed. Raises ------ TypeError - If the value is not a number or None. + If *value* is not None and not a numeric type. """ - if value is None: value = 0.0 self._center.fixed = True @@ -167,53 +163,93 @@ def center(self, value: Numeric | None) -> None: raise TypeError('center must be a number') self._center.value = value - def evaluate(self, x: Numeric | list | np.ndarray | sc.Variable | sc.DataArray) -> np.ndarray: + def _evaluate_values(self, x_vals: np.ndarray, eval_unit: str | None) -> np.ndarray: """ - Evaluate the Delta function at the given x values. + Evaluate the Delta function at x_vals. - The Delta function evaluates to zero everywhere, except at the center. Its numerical - integral is equal to the area. It acts as an identity in convolutions. + Parameters in the model's own units are temporarily converted to eval_unit for the + computation. Parameters ---------- - x : Numeric | list | np.ndarray | sc.Variable | sc.DataArray - The x values at which to evaluate the Delta function. + x_vals : np.ndarray + Raw x values expressed in eval_unit. May be in any order; bin widths are computed on + the sorted values. + eval_unit : str | None + The unit of x_vals. Returns ------- np.ndarray - The evaluated Delta function at the given x values. + Zero everywhere, with a single non-zero bin nearest the center when center falls within + the x range. + + Notes + ----- + When ``center`` falls within the x range, the bin nearest to ``center`` receives ``area / + bin_width`` rather than zero. In convolutions, the DeltaFunction acts as an identity + element (handled by the Convolution class). """ + center = self._resolve_param_value(self._center, eval_unit) + area = self._resolve_param_value(self._area, self._eval_area_unit(eval_unit)) + + model = np.zeros_like(x_vals, dtype=float) - # x assumed sorted, 1D numpy array - x = self._prepare_x_for_evaluate(x) - model = np.zeros_like(x, dtype=float) - center = self.center.value - area = self.area.value + if x_vals.min() - EPSILON <= center <= x_vals.max() + EPSILON: + # Bin widths only make sense on a sorted grid; compute there and map the spike back + # to the original position of the nearest x value. + order = np.argsort(x_vals) + x_sorted = x_vals[order] - if x.min() - EPSILON <= center <= x.max() + EPSILON: - # nearest index - i = np.argmin(np.abs(x - center)) + # nearest index in the sorted grid + i = np.argmin(np.abs(x_sorted - center)) # left half-width - if i == 0: # noqa: SIM108 - left = x[1] - x[0] if x.size > 1 else 0.5 + if i == 0: + left = x_sorted[1] - x_sorted[0] if x_sorted.size > 1 else 0.5 else: - left = x[i] - x[i - 1] + left = x_sorted[i] - x_sorted[i - 1] # right half-width - if i == x.size - 1: # noqa: SIM108 - right = x[-1] - x[-2] if x.size > 1 else 0.5 + if i == x_sorted.size - 1: + right = x_sorted[-1] - x_sorted[-2] if x_sorted.size > 1 else 0.5 else: - right = x[i + 1] - x[i] + right = x_sorted[i + 1] - x_sorted[i] # effective bin width: half left + half right bin_width = 0.5 * (left + right) - - model[i] = area / bin_width + model[order[i]] = area / bin_width return model + def convert_x_unit(self, new_x_unit: str | sc.Unit) -> None: + """ + Convert x-axis parameters (center) and area to new_x_unit. + + Parameters + ---------- + new_x_unit : str | sc.Unit + Target x-axis unit. Must be dimensionally compatible with the current x_unit. + """ + self._convert_x_unit_area_based( + new_x_unit=new_x_unit, + x_params=[self._center], + area_param=self._area, + ) + + def convert_y_unit(self, new_y_unit: str | sc.Unit) -> None: + """ + Convert the y-axis unit by rescaling the area parameter. + + The area is rescaled from ``x_unit * old_y_unit`` to ``x_unit * new_y_unit``. + + Parameters + ---------- + new_y_unit : str | sc.Unit + Target y-axis unit. + """ + self._convert_y_unit_area_based(new_y_unit=new_y_unit, area_param=self._area) + def __repr__(self) -> str: """ Return a string representation of the Delta function. @@ -223,11 +259,9 @@ def __repr__(self) -> str: str A string representation of the Delta function. """ - return ( - f'{self.__class__.__name__}(' - f'name={self.name!r}, display_name={self.display_name!r}, ' - f'unit={self.unit},\n' - f' area={self.area},\n' - f' center={self.center})' + f'{self.__class__.__name__}(name = {self.name}, display_name = {self.display_name}, ' + f'x_unit = {self.x_unit}, y_unit = {self.y_unit},\n' + f' area = {self.area},\n' + f' center = {self.center})' ) diff --git a/src/easydynamics/sample_model/components/exponential.py b/src/easydynamics/sample_model/components/exponential.py index 8b7e3241a..08dd3b437 100644 --- a/src/easydynamics/sample_model/components/exponential.py +++ b/src/easydynamics/sample_model/components/exponential.py @@ -16,11 +16,10 @@ class Exponential(CreateParametersMixin, ModelComponent): r""" Model of an exponential function. - The intensity is given by + $$ I(x) = A e^{B (x-x_0)} $$ - $$ I(x) = A e^{B (x-x_0)}, $$ - - where $A$ is the amplitude, $x_0$ is the center, and $B$ describes the rate of decay or growth. + where $A$ is the amplitude, $x_0$ is the center, and $B$ is the rate. amplitude has unit = + y_unit; center has unit = x_unit; rate has unit = 1/x_unit. Examples -------- @@ -53,7 +52,8 @@ def __init__( amplitude: Numeric = 1.0, center: Numeric | None = None, rate: Numeric = 1.0, - unit: str | sc.Unit = 'meV', + x_unit: str | sc.Unit = 'meV', + y_unit: str | sc.Unit = 'dimensionless', name: str = 'Exponential', display_name: str | None = None, unique_name: str | None = None, @@ -64,61 +64,57 @@ def __init__( Parameters ---------- amplitude : Numeric, default=1.0 - Amplitude of the Exponential. + Pre-exponential factor A. Unit is ``y_unit``. center : Numeric | None, default=None - Center of the Exponential. If None, the center is fixed at 0. + Reference point x_0 in x_unit. If None, defaults to 0 and the center parameter is + fixed. rate : Numeric, default=1.0 - Decay or growth constant of the Exponential. - unit : str | sc.Unit, default='meV' - Unit of the parameters. + Exponential rate B in units of ``1/x_unit``. + x_unit : str | sc.Unit, default='meV' + Unit of the x-axis. center is stored in this unit; rate is stored in ``1/x_unit``. + y_unit : str | sc.Unit, default='dimensionless' + Unit of the y-axis (output). amplitude is stored in this unit. name : str, default='Exponential' - Name of the component for indexing. + Name of the component. display_name : str | None, default=None - Display name of the component. + Display name shown when plotting. Falls back to *name* if None. unique_name : str | None, default=None - Unique name of the component. If None, a unique_name is automatically generated. By - default, None. + Globally unique identifier. Auto-generated if None. Raises ------ TypeError - If amplitude, center, or rate are not numbers or Parameters. + If *amplitude* or *rate* is not numeric. ValueError - If amplitude, center or rate are not finite numbers. + If *amplitude* or *rate* is not finite. """ - # Validate inputs and create Parameters if not given super().__init__( - unit=unit, + x_unit=x_unit, + y_unit=y_unit, name=name, display_name=display_name, unique_name=unique_name, ) - if not isinstance(amplitude, (Parameter, Numeric)): - raise TypeError('amplitude must be a number or a Parameter.') - - if isinstance(amplitude, Numeric): - if not np.isfinite(amplitude): - raise ValueError('amplitude must be a finite number or a Parameter') + x_unit_str = str(x_unit) if isinstance(x_unit, sc.Unit) else x_unit - amplitude = Parameter(name=name + ' amplitude', value=float(amplitude), unit=unit) - - center = self._create_center_parameter( - center=center, name=name, fix_if_none=True, unit=self._unit + if not isinstance(amplitude, Numeric): + raise TypeError('amplitude must be a number.') + if not np.isfinite(amplitude): + raise ValueError('amplitude must be finite.') + self._amplitude = Parameter( + name=name + ' amplitude', value=float(amplitude), unit=self.y_unit ) - if not isinstance(rate, (Parameter, Numeric)): - raise TypeError('rate must be a number or a Parameter.') - - if isinstance(rate, Numeric): - if not np.isfinite(rate): - raise ValueError('rate must be a finite number or a Parameter') - - rate = Parameter(name=name + ' rate', value=float(rate), unit='1/' + str(unit)) + self._center = self._create_center_parameter( + center=center, name=name, fix_if_none=True, x_unit=self.x_unit + ) - self._amplitude = amplitude - self._center = center - self._rate = rate + if not isinstance(rate, Numeric): + raise TypeError('rate must be a number.') + if not np.isfinite(rate): + raise ValueError('rate must be finite.') + self._rate = Parameter(name=name + ' rate', value=float(rate), unit='1/' + x_unit_str) @property def amplitude(self) -> Parameter: @@ -128,27 +124,23 @@ def amplitude(self) -> Parameter: Returns ------- Parameter - The amplitude parameter. + The amplitude Parameter with unit ``y_unit``. """ - return self._amplitude @amplitude.setter def amplitude(self, value: Numeric) -> None: """ - Set the value of the amplitude parameter. - Parameters ---------- value : Numeric - The new value for the amplitude parameter. + New amplitude value (in current amplitude unit = y_unit). Raises ------ TypeError - If the value is not a number. + If *value* is not a numeric type. """ - if not isinstance(value, Numeric): raise TypeError('amplitude must be a number') self._amplitude.value = value @@ -161,31 +153,27 @@ def center(self) -> Parameter: Returns ------- Parameter - The center parameter. + The center (x_0) Parameter with unit ``x_unit``. """ - return self._center @center.setter def center(self, value: Numeric | None) -> None: """ - Set the center parameter value. - Parameters ---------- value : Numeric | None - The new value for the center parameter. + New center value in x_unit. If None, the center is set to 0 and the parameter is + fixed. Raises ------ TypeError - If the value is not a number. + If *value* is not None and not a numeric type. """ - if value is None: value = 0.0 self._center.fixed = True - if not isinstance(value, Numeric): raise TypeError('center must be a number') self._center.value = value @@ -198,94 +186,86 @@ def rate(self) -> Parameter: Returns ------- Parameter - The rate parameter. + The exponential rate (B) Parameter with unit ``1/x_unit``. """ return self._rate @rate.setter def rate(self, value: Numeric) -> None: """ - Set the rate parameter value. - Parameters ---------- value : Numeric - The new value for the rate parameter. + New exponential rate in ``1/x_unit``. Raises ------ TypeError - If the value is not a number. + If *value* is not a numeric type. """ if not isinstance(value, Numeric): raise TypeError('rate must be a number') - self._rate.value = value - def evaluate( - self, - x: Numeric | list | np.ndarray | sc.Variable | sc.DataArray, - ) -> np.ndarray: + def _evaluate_values(self, x_vals: np.ndarray, eval_unit: str | None) -> np.ndarray: r""" - Evaluate the Exponential at the given x values. + Evaluate the Exponential at x_vals. - If x is a scipp Variable, the unit of the Exponential will be converted to match x. The - intensity is given by $$ I(x) = A \exp\left( r (x - x_0) \right) $$ - - where $A$ is the amplitude, $x_0$ is the center, and $r$ is the rate. + Parameters in the model's own units are temporarily converted to eval_unit for the + computation. Parameters ---------- - x : Numeric | list | np.ndarray | sc.Variable | sc.DataArray - The x values at which to evaluate the Exponential. + x_vals : np.ndarray + Raw x values expressed in eval_unit. + eval_unit : str | None + The unit of x_vals. Returns ------- np.ndarray - The intensity of the Exponential at the given x values. + Evaluated exponential values at x_vals. """ + eval_rate_unit = None if eval_unit is None else '1/' + str(eval_unit) - x = self._prepare_x_for_evaluate(x) - exponent = self.rate.value * (x - self.center.value) + center = self._resolve_param_value(self._center, eval_unit) + rate = self._resolve_param_value(self._rate, eval_rate_unit) + # The amplitude carries y_unit only, so it is unaffected by the x evaluation unit. + amplitude = self._amplitude.value - return self.amplitude.value * np.exp(exponent) + exponent = rate * (x_vals - center) + return amplitude * np.exp(exponent) - def convert_unit(self, unit: str | sc.Unit) -> None: + def convert_x_unit(self, new_x_unit: str | sc.Unit) -> None: """ - Convert the unit of the Parameters in the component. + Convert center to new_x_unit and rate to 1/new_x_unit. + + The amplitude carries ``y_unit`` only and is unaffected. Parameters ---------- - unit : str | sc.Unit - The new unit to convert to. + new_x_unit : str | sc.Unit + Target x-axis unit. Must be dimensionally compatible with the current x_unit. The + rate unit is set to ``1/new_x_unit``. + """ + self._convert_x_unit_area_based( + new_x_unit=new_x_unit, + x_params=[self._center], + inverse_params=[self._rate], + ) - Raises - ------ - TypeError - If unit is not a string or sc.Unit. - Exception - If conversion fails for any parameter. + def convert_y_unit(self, new_y_unit: str | sc.Unit) -> None: """ + Convert the y-axis unit by rescaling the amplitude parameter. - if not isinstance(unit, (str, sc.Unit)): - raise TypeError('unit must be a string or sc.Unit') - - old_unit = self._unit - pars = [self.amplitude, self.center] - try: - for p in pars: - p.convert_unit(unit) - self.rate.convert_unit('1/' + str(unit)) - self._unit = unit - except Exception as e: - # Attempt to rollback on failure - try: - for p in pars: - p.convert_unit(old_unit) - self.rate.convert_unit('1/' + str(old_unit)) - except Exception: # noqa: S110 - pass # Best effort rollback - raise e + The amplitude is rescaled from ``old_y_unit`` to ``new_y_unit``. + + Parameters + ---------- + new_y_unit : str | sc.Unit + Target y-axis unit. + """ + self._convert_y_unit_area_based(new_y_unit=new_y_unit, y_params=[self._amplitude]) def __repr__(self) -> str: """ @@ -296,12 +276,10 @@ def __repr__(self) -> str: str A string representation of the Exponential. """ - return ( - f'{self.__class__.__name__}(' - f'name={self.name!r}, display_name={self.display_name!r}, ' - f'unit={self._unit},\n' - f' amplitude={self.amplitude},\n' - f' center={self.center},\n' - f' rate={self.rate})' + f'{self.__class__.__name__}(name = {self.name}, display_name = {self.display_name}, ' + f'x_unit = {self.x_unit}, y_unit = {self.y_unit},\n ' + f' amplitude = {self.amplitude},\n ' + f' center = {self.center},\n ' + f' rate = {self.rate})' ) diff --git a/src/easydynamics/sample_model/components/expression_component.py b/src/easydynamics/sample_model/components/expression_component.py index feda61c6f..eef67ff66 100644 --- a/src/easydynamics/sample_model/components/expression_component.py +++ b/src/easydynamics/sample_model/components/expression_component.py @@ -3,6 +3,7 @@ from __future__ import annotations +import warnings from typing import TYPE_CHECKING from typing import ClassVar @@ -10,13 +11,13 @@ from easyscience.variable import Parameter from scipy.special import erf -from easydynamics.sample_model.components.model_component import ModelComponent -from easydynamics.utils.utils import Numeric - if TYPE_CHECKING: import numpy as np import scipp as sc +from easydynamics.sample_model.components.model_component import ModelComponent +from easydynamics.utils.utils import Numeric + class ExpressionComponent(ModelComponent): """ @@ -40,7 +41,7 @@ class ExpressionComponent(ModelComponent): expr = sm.ExpressionComponent( 'A * exp(-(x - x0)**2 / (2*sigma**2))', parameters={'A': 10, 'x0': 0, 'sigma': 1}, - unit='meV', + x_unit='meV', display_name='Gaussian Peak', ) x = np.linspace(-3, 3, 100) @@ -56,16 +57,13 @@ class ExpressionComponent(ModelComponent): ``` """ - # ------------------------- - # Allowed symbolic functions - # ------------------------- _ALLOWED_FUNCS: ClassVar[dict[str, object]] = { - # Exponentials & logs + # exponential / logarithmic 'exp': sp.exp, 'log': sp.log, 'ln': sp.log, 'sqrt': sp.sqrt, - # Trigonometric + # trigonometric 'sin': sp.sin, 'cos': sp.cos, 'tan': sp.tan, @@ -73,25 +71,23 @@ class ExpressionComponent(ModelComponent): 'cot': sp.cot, 'sec': sp.sec, 'csc': sp.csc, + # inverse trigonometric 'asin': sp.asin, 'acos': sp.acos, 'atan': sp.atan, - # Hyperbolic + # hyperbolic 'sinh': sp.sinh, 'cosh': sp.cosh, 'tanh': sp.tanh, - # Misc + # rounding / sign 'abs': sp.Abs, 'sign': sp.sign, 'floor': sp.floor, 'ceil': sp.ceiling, - # Special functions + # special functions 'erf': sp.erf, } - # ------------------------- - # Allowed constants - # ------------------------- _ALLOWED_CONSTANTS: ClassVar[dict[str, object]] = { 'pi': sp.pi, 'E': sp.E, @@ -103,7 +99,8 @@ def __init__( self, expression: str, parameters: dict[str, Numeric] | None = None, - unit: str | sc.Unit = 'meV', + x_unit: str | sc.Unit = 'meV', + y_unit: str | sc.Unit = 'dimensionless', name: str = 'Expression', display_name: str | None = None, unique_name: str | None = None, @@ -117,12 +114,14 @@ def __init__( The symbolic expression as a string. Must contain 'x' as the independent variable. parameters : dict[str, Numeric] | None, default=None Dictionary of parameter names and their initial values. - unit : str | sc.Unit, default='meV' - Unit of the output. + x_unit : str | sc.Unit, default='meV' + Unit of the x-axis. + y_unit : str | sc.Unit, default='dimensionless' + Unit of the y-axis (output). name : str, default='Expression' - Name of the component for indexing. + Name of the component. display_name : str | None, default=None - Display name for the component. + Display name shown when plotting. Falls back to *name* if None. unique_name : str | None, default=None Unique name for the component. @@ -133,7 +132,13 @@ def __init__( TypeError If any parameter value is not numeric. """ - super().__init__(unit=unit, name=name, display_name=display_name, unique_name=unique_name) + super().__init__( + x_unit=x_unit, + y_unit=y_unit, + name=name, + display_name=display_name, + unique_name=unique_name, + ) if 'np.' in expression: raise ValueError( @@ -158,15 +163,14 @@ def __init__( if 'x' not in symbol_names: raise ValueError("Expression must contain 'x' as independent variable") - # Reject unknown functions early so invalid expressions fail at init, # not later during numerical evaluation. allowed_function_names = set(self._ALLOWED_FUNCS) | { func.__name__ for func in self._ALLOWED_FUNCS.values() } - # Walk all function-call nodes in the parsed expression (e.g. sin(x), foo(x)). # Keep only function names that are not in our allowlist. + unknown_function_names: set[str] = set() function_atoms = self._expr.atoms(sp.Function) for function_atom in function_atoms: @@ -175,12 +179,10 @@ def __init__( unknown_function_names.add(function_name) unknown_functions = sorted(unknown_function_names) - if unknown_functions: raise ValueError( f'Unsupported function(s) in expression: {", ".join(unknown_functions)}' ) - # Create parameters if parameters is not None and not isinstance(parameters, dict): raise TypeError( @@ -205,19 +207,17 @@ def __init__( value = parameters.get(name, 1.0) if isinstance(value, Parameter): self._parameters[name] = value - elif isinstance(value, dict) and value.get('@class') == 'Parameter': self._parameters[name] = Parameter.from_dict(value) else: self._parameters[name] = Parameter( name=name, value=value, - unit=self._unit, + unit=self.x_unit, ) # Create numerical function ordered_symbols = [sp.Symbol(name) for name in self._symbol_names] - self._func = sp.lambdify( ordered_symbols, self._expr, @@ -255,31 +255,42 @@ def expression(self, _new_expr: str) -> None: AttributeError Always raised to prevent changing the expression. """ + raise AttributeError('Expression cannot be changed after initialization') - def evaluate( - self, - x: Numeric | list | np.ndarray | sc.Variable | sc.DataArray, - ) -> np.ndarray: + def _evaluate_values(self, x_vals: np.ndarray, eval_unit: str | None) -> np.ndarray: """ - Evaluate the expression for given x values. + Evaluate the expression for the given x values. + + Unit conversion of parameters is not supported for ExpressionComponent. If x_vals is + expressed in a different unit than x_unit, a warning is issued and the values are used + as-is. Parameters ---------- - x : Numeric | list | np.ndarray | sc.Variable | sc.DataArray - Input values for the independent variable. + x_vals : np.ndarray + Raw x values expressed in eval_unit. + eval_unit : str | None + The unit of x_vals. Returns ------- np.ndarray Evaluated results. """ - x = self._prepare_x_for_evaluate(x) + if eval_unit is not None and self.x_unit is not None and eval_unit != self.x_unit: + warnings.warn( + f'Input x has unit {eval_unit} but {self.__class__.__name__} has ' + f'x_unit {self.x_unit}. ExpressionComponent cannot auto-convert parameters. ' + 'x values are used as-is.', + UserWarning, + stacklevel=3, + ) args = [] for name in self._symbol_names: if name == 'x': - args.append(x) + args.append(x_vals) else: args.append(self._parameters[name].value) @@ -296,9 +307,9 @@ def get_all_variables(self) -> list[Parameter]: """ return list(self._parameters.values()) - def convert_unit(self, _new_unit: str | sc.Unit) -> None: + def convert_x_unit(self, _new_unit: str | sc.Unit) -> None: """ - Convert the unit of the expression. + Convert the x-axis unit of the expression. Unit conversion is not implemented for ExpressionComponent. @@ -312,7 +323,26 @@ def convert_unit(self, _new_unit: str | sc.Unit) -> None: NotImplementedError Always raised to indicate unit conversion is not supported. """ + # TODO: Generalize x_unit conversion for ExpressionComponent. Not tackled in this PR. # noqa: FIX002 TD002 TD003 + raise NotImplementedError('Unit conversion is not implemented for ExpressionComponent') + + def convert_y_unit(self, _new_unit: str | sc.Unit) -> None: + """ + Convert the y-axis unit of the expression. + Unit conversion is not implemented for ExpressionComponent. + + Parameters + ---------- + _new_unit : str | sc.Unit + The new unit to convert to (ignored). + + Raises + ------ + NotImplementedError + Always raised to indicate unit conversion is not supported. + """ + # TODO: Generalize y_unit conversion for ExpressionComponent. Not tackled in this PR. # noqa: FIX002 TD002 TD003 raise NotImplementedError('Unit conversion is not implemented for ExpressionComponent') # ------------------------- @@ -360,13 +390,10 @@ def __setattr__(self, name: str, value: Numeric) -> None: """ if '_parameters' in self.__dict__ and name in self._parameters: param = self._parameters[name] - if not isinstance(value, Numeric): raise TypeError(f'{name} must be numeric') - param.value = value else: - # For other attributes, use default behavior super().__setattr__(name, value) def __dir__(self) -> list[str]: @@ -391,9 +418,8 @@ def __repr__(self) -> str: """ param_str = ', '.join(f'{k}={v.value}' for k, v in self._parameters.items()) return ( - f'{self.__class__.__name__}(' - f'name={self.name!r}, display_name={self.display_name!r}, ' - f'unit={self._unit},\n' - f' expr={self._expression_str!r},\n' - f' parameters={{{param_str}}})' + f'{self.__class__.__name__}(name={self.name}, display_name={self.display_name}, ' + f'x_unit={self.x_unit}, y_unit={self.y_unit},\n' + f" expr='{self._expression_str}',\n" + f' parameters={{ {param_str} }} )' ) diff --git a/src/easydynamics/sample_model/components/gaussian.py b/src/easydynamics/sample_model/components/gaussian.py index 6a1805e13..364e89aba 100644 --- a/src/easydynamics/sample_model/components/gaussian.py +++ b/src/easydynamics/sample_model/components/gaussian.py @@ -20,12 +20,11 @@ class Gaussian(CreateParametersMixin, ModelComponent): r""" Model of a Gaussian function. - The intensity is given by - $$ I(x) = \frac{A}{\sigma \sqrt{2\pi}} \exp\left( -\frac{1}{2} \left(\frac{x - x_0}{\sigma}\right)^2 \right) $$ - where $A$ is the area, $x_0$ is the center, and $\sigma$ is the width. + where $A$ is the area, $x_0$ is the center, and $\sigma$ is the width. area has unit = x_unit * + y_unit; center and width have unit = x_unit. If the center is not provided, it will be centered at 0 and fixed, which is typically what you want in QENS. @@ -62,7 +61,8 @@ def __init__( area: Numeric = 1.0, center: Numeric | None = None, width: Numeric = 1.0, - unit: str | sc.Unit = 'meV', + x_unit: str | sc.Unit = 'meV', + y_unit: str | sc.Unit = 'dimensionless', name: str = 'Gaussian', display_name: str | None = None, unique_name: str | None = None, @@ -73,39 +73,38 @@ def __init__( Parameters ---------- area : Numeric, default=1.0 - Area of the Gaussian. + Integrated area under the Gaussian. Unit is ``x_unit * y_unit``. center : Numeric | None, default=None - Center of the Gaussian. If None, defaults to 0 and is fixed. + Peak position in x_unit. If None, defaults to 0 and the center parameter is fixed. width : Numeric, default=1.0 - Standard deviation. - unit : str | sc.Unit, default='meV' - Unit of the parameters. + Standard deviation (sigma) in x_unit. Must be strictly positive. + x_unit : str | sc.Unit, default='meV' + Unit of the x-axis. center and width are stored in this unit. area_unit = x_unit * + y_unit. + y_unit : str | sc.Unit, default='dimensionless' + Unit of the y-axis (output). name : str, default='Gaussian' - Name of the component for indexing. - display_name : str | None, default=None Name of the component. + display_name : str | None, default=None + Display name shown when plotting. Falls back to *name* if None. unique_name : str | None, default=None - Unique name of the component. if None, a unique_name is automatically generated. By - default, None. + Globally unique identifier. Auto-generated if None. """ - # Validate inputs and create Parameters if not given super().__init__( - unit=unit, + x_unit=x_unit, + y_unit=y_unit, name=name, display_name=display_name, unique_name=unique_name, ) - # These methods live in ValidationMixin - area = self._create_area_parameter(area=area, name=name, unit=self._unit) - center = self._create_center_parameter( - center=center, name=name, fix_if_none=True, unit=self._unit + self._area = self._create_area_parameter( + area=area, name=name, x_unit=self.x_unit, y_unit=self.y_unit ) - width = self._create_width_parameter(width=width, name=name, unit=self._unit) - - self._area = area - self._center = center - self._width = width + self._center = self._create_center_parameter( + center=center, name=name, fix_if_none=True, x_unit=self.x_unit + ) + self._width = self._create_width_parameter(width=width, name=name, x_unit=self.x_unit) @property def area(self) -> Parameter: @@ -115,27 +114,23 @@ def area(self) -> Parameter: Returns ------- Parameter - The area parameter. + The area Parameter with unit ``x_unit * y_unit``. """ - return self._area @area.setter def area(self, value: Numeric) -> None: """ - Set the value of the area parameter. - Parameters ---------- value : Numeric - The new value for the area parameter. + New area value (in current area unit = x_unit * y_unit). Raises ------ TypeError - If the value is not a number. + If *value* is not a numeric type. """ - if not isinstance(value, Numeric): raise TypeError('area must be a number') self._area.value = value @@ -148,27 +143,24 @@ def center(self) -> Parameter: Returns ------- Parameter - The center parameter. + The center Parameter with unit ``x_unit``. """ - return self._center @center.setter def center(self, value: Numeric | None) -> None: """ - Set the center parameter value. - Parameters ---------- value : Numeric | None - The new value for the center parameter. If None, defaults to 0 and is fixed. + New center value in x_unit. If None, the center is set to 0 and the parameter is + fixed. Raises ------ TypeError - If the value is not a number or None. + If *value* is not None and not a numeric type. """ - if value is None: value = 0.0 self._center.fixed = True @@ -179,48 +171,43 @@ def center(self, value: Numeric | None) -> None: @property def width(self) -> Parameter: """ - Get the width parameter (standard deviation). + Get the width parameter (sigma). Returns ------- Parameter - The width parameter. + The width (sigma) Parameter with unit ``x_unit``. """ return self._width @width.setter def width(self, value: Numeric) -> None: """ - Set the width parameter value. - Parameters ---------- value : Numeric - The new value for the width parameter. + New width value in x_unit. Must be strictly positive. Raises ------ TypeError - If the value is not a number or None. + If *value* is not a numeric type. ValueError - If the value is not positive. + If *value* is not positive. """ if not isinstance(value, Numeric): raise TypeError('width must be a number') - if float(value) <= 0: raise ValueError('width must be positive') - self._width.value = value - def evaluate( - self, - x: Numeric | list | np.ndarray | sc.Variable | sc.DataArray, - ) -> np.ndarray: + def _evaluate_values(self, x_vals: np.ndarray, eval_unit: str | None) -> np.ndarray: r""" - Evaluate the Gaussian at the given x values. + Evaluate the Gaussian at x_vals. + + Parameters in the model's own units are temporarily converted to eval_unit for the + computation. - If x is a scipp Variable, the unit of the Gaussian will be converted to match x. The intensity is given by $$ I(x) = \frac{A}{\sigma \sqrt{2\pi}} \exp\left( -\frac{1}{2} \left(\frac{x - x_0}{\sigma}\right)^2 \right) $$ @@ -228,21 +215,51 @@ def evaluate( Parameters ---------- - x : Numeric | list | np.ndarray | sc.Variable | sc.DataArray - The x values at which to evaluate the Gaussian. + x_vals : np.ndarray + Raw x values expressed in eval_unit. + eval_unit : str | None + The unit of x_vals. Returns ------- np.ndarray - The intensity of the Gaussian at the given x values. + Evaluated Gaussian values at x_vals. + """ + center = self._resolve_param_value(self._center, eval_unit) + width = self._resolve_param_value(self._width, eval_unit) + area = self._resolve_param_value(self._area, self._eval_area_unit(eval_unit)) + + normalization = 1 / (np.sqrt(2 * np.pi) * width) + exponent = -0.5 * ((x_vals - center) / width) ** 2 + return area * normalization * np.exp(exponent) + + def convert_x_unit(self, new_x_unit: str | sc.Unit) -> None: + """ + Convert x-axis parameters (center, width) and area to new_x_unit. + + Parameters + ---------- + new_x_unit : str | sc.Unit + Target x-axis unit. Must be dimensionally compatible with the current x_unit. """ + self._convert_x_unit_area_based( + new_x_unit=new_x_unit, + x_params=[self._center, self._width], + area_param=self._area, + ) - x = self._prepare_x_for_evaluate(x) + def convert_y_unit(self, new_y_unit: str | sc.Unit) -> None: + """ + Convert the y-axis (output) unit by rescaling the area parameter. - normalization = 1 / (np.sqrt(2 * np.pi) * self.width.value) - exponent = -0.5 * ((x - self.center.value) / self.width.value) ** 2 + The area is rescaled from ``x_unit * old_y_unit`` to ``x_unit * new_y_unit``. - return self.area.value * normalization * np.exp(exponent) + Parameters + ---------- + new_y_unit : str | sc.Unit + Target y-axis unit. + """ + self._convert_y_unit_area_based(new_y_unit=new_y_unit, area_param=self._area) def __repr__(self) -> str: """ @@ -253,12 +270,10 @@ def __repr__(self) -> str: str A string representation of the Gaussian. """ - return ( - f'{self.__class__.__name__}(' - f'name={self.name!r}, display_name={self.display_name!r}, ' - f'unit={self._unit},\n' - f' area={self.area},\n' - f' center={self.center},\n' - f' width={self.width})' + f'{self.__class__.__name__}(name = {self.name}, display_name = {self.display_name}, ' + f'x_unit = {self.x_unit}, y_unit = {self.y_unit},\n' + f' area = {self.area},\n' + f' center = {self.center},\n' + f' width = {self.width})' ) diff --git a/src/easydynamics/sample_model/components/lorentzian.py b/src/easydynamics/sample_model/components/lorentzian.py index f2da78c84..fe36340fc 100644 --- a/src/easydynamics/sample_model/components/lorentzian.py +++ b/src/easydynamics/sample_model/components/lorentzian.py @@ -20,9 +20,10 @@ class Lorentzian(CreateParametersMixin, ModelComponent): r""" Model of a Lorentzian function. - The intensity is given by $$ I(x) = \frac{A}{\pi} \frac{\Gamma}{(x - x_0)^2 + \Gamma^2}, $$ - where $A$ is the area, $x_0$ is the center, and $\Gamma$ is the half width at half maximum - (HWHM). + $$ I(x) = \frac{A}{\pi} \frac{\Gamma}{(x - x_0)^2 + \Gamma^2} $$ + + where $A$ is the area, $x_0$ is the center, and $\Gamma$ is the hald width at half max (HWHM). + area has unit = x_unit * y_unit; center and width have unit = x_unit. If the center is not provided, it will be centered at 0 and fixed, which is typically what you want in QENS. @@ -58,7 +59,8 @@ def __init__( area: Numeric = 1.0, center: Numeric | None = None, width: Numeric = 1.0, - unit: str | sc.Unit = 'meV', + x_unit: str | sc.Unit = 'meV', + y_unit: str | sc.Unit = 'dimensionless', name: str = 'Lorentzian', display_name: str | None = None, unique_name: str | None = None, @@ -69,39 +71,38 @@ def __init__( Parameters ---------- area : Numeric, default=1.0 - Area of the Lorentzian. + Integrated area under the Lorentzian. Unit is ``x_unit * y_unit``. center : Numeric | None, default=None - Center of the Lorentzian. If None, defaults to 0 and is fixed. + Peak position in x_unit. If None, defaults to 0 and the center parameter is fixed. width : Numeric, default=1.0 - Half width at half maximum (HWHM). - unit : str | sc.Unit, default='meV' - Unit of the parameters. + Half-width at half-maximum (HWHM, gamma) in x_unit. Must be strictly positive. + x_unit : str | sc.Unit, default='meV' + Unit of the x-axis. center and width are stored in this unit. area_unit = x_unit * + y_unit. + y_unit : str | sc.Unit, default='dimensionless' + Unit of the y-axis (output). name : str, default='Lorentzian' - Name of the component for indexing. + Name of the component. display_name : str | None, default=None - Display name for the component. + Display name shown when plotting. Falls back to *name* if None. unique_name : str | None, default=None - Unique name of the component. If None, a unique_name is automatically generated. By - default, None. + Globally unique identifier. Auto-generated if None. """ - super().__init__( - unit=unit, + x_unit=x_unit, + y_unit=y_unit, name=name, display_name=display_name, unique_name=unique_name, ) - # These methods live in ValidationMixin - area = self._create_area_parameter(area=area, name=name, unit=self._unit) - center = self._create_center_parameter( - center=center, name=name, fix_if_none=True, unit=self._unit + self._area = self._create_area_parameter( + area=area, name=name, x_unit=self.x_unit, y_unit=self.y_unit ) - width = self._create_width_parameter(width=width, name=name, unit=self._unit) - - self._area = area - self._center = center - self._width = width + self._center = self._create_center_parameter( + center=center, name=name, fix_if_none=True, x_unit=self.x_unit + ) + self._width = self._create_width_parameter(width=width, name=name, x_unit=self.x_unit) @property def area(self) -> Parameter: @@ -111,24 +112,22 @@ def area(self) -> Parameter: Returns ------- Parameter - The area parameter. + The area Parameter with unit ``x_unit * y_unit``. """ return self._area @area.setter def area(self, value: Numeric) -> None: """ - Set the value of the area parameter. - Parameters ---------- value : Numeric - The new value for the area parameter. + New area value (in current area unit = x_unit * y_unit). Raises ------ TypeError - If the value is not a number. + If *value* is not a numeric type. """ if not isinstance(value, Numeric): raise TypeError('area must be a number') @@ -142,26 +141,24 @@ def center(self) -> Parameter: Returns ------- Parameter - The center parameter. + The center Parameter with unit ``x_unit``. """ return self._center @center.setter def center(self, value: Numeric | None) -> None: """ - Set the value of the center parameter. - Parameters ---------- value : Numeric | None - The new value for the center parameter. If None, defaults to 0 and is fixed. + New center value in x_unit. If None, the center is set to 0 and the parameter is + fixed. Raises ------ TypeError - If the value is not a number or None. + If *value* is not None and not a numeric type. """ - if value is None: value = 0.0 self._center.fixed = True @@ -177,63 +174,85 @@ def width(self) -> Parameter: Returns ------- Parameter - The width parameter. + The HWHM (gamma) Parameter with unit ``x_unit``. """ return self._width @width.setter def width(self, value: Numeric) -> None: """ - Set the width parameter value (HWHM). - Parameters ---------- value : Numeric - The new value for the width parameter. + New HWHM value in x_unit. Must be strictly positive. Raises ------ TypeError - If the value is not a number. + If *value* is not a numeric type. ValueError - If the value is not positive. + If *value* is not positive. """ if not isinstance(value, Numeric): raise TypeError('width must be a number') - if float(value) <= 0: raise ValueError('width must be positive') self._width.value = value - def evaluate(self, x: Numeric | list | np.ndarray | sc.Variable | sc.DataArray) -> np.ndarray: + def _evaluate_values(self, x_vals: np.ndarray, eval_unit: str | None) -> np.ndarray: r""" - Evaluate the Lorentzian at the given x values. + Evaluate the Lorentzian at x_vals. - If x is a scipp Variable, the unit of the Lorentzian will be converted to match x. The - intensity is given by - - $$ I(x) = \frac{A}{\pi} \frac{\Gamma}{(x - x_0)^2 + \Gamma^2}, $$ - - where $A$ is the area, $x_0$ is the center, and $\Gamma$ is the half width at half maximum - (HWHM). + Parameters in the model's own units are temporarily converted to eval_unit for the + computation. Parameters ---------- - x : Numeric | list | np.ndarray | sc.Variable | sc.DataArray - The x values at which to evaluate the Lorentzian. + x_vals : np.ndarray + Raw x values expressed in eval_unit. + eval_unit : str | None + The unit of x_vals. Returns ------- np.ndarray - The intensity of the Lorentzian at the given x values. + Evaluated Lorentzian values at x_vals. """ + center = self._resolve_param_value(self._center, eval_unit) + width = self._resolve_param_value(self._width, eval_unit) + area = self._resolve_param_value(self._area, self._eval_area_unit(eval_unit)) - x = self._prepare_x_for_evaluate(x) + normalization = width / np.pi + denominator = (x_vals - center) ** 2 + width**2 + return area * normalization / denominator - normalization = self.width.value / np.pi - denominator = (x - self.center.value) ** 2 + self.width.value**2 + def convert_x_unit(self, new_x_unit: str | sc.Unit) -> None: + """ + Convert x-axis parameters (center, width) and area to new_x_unit. - return self.area.value * normalization / denominator + Parameters + ---------- + new_x_unit : str | sc.Unit + Target x-axis unit. Must be dimensionally compatible with the current x_unit. + """ + self._convert_x_unit_area_based( + new_x_unit=new_x_unit, + x_params=[self._center, self._width], + area_param=self._area, + ) + + def convert_y_unit(self, new_y_unit: str | sc.Unit) -> None: + """ + Convert the y-axis (output) unit by rescaling the area parameter. + + The area is rescaled from ``x_unit * old_y_unit`` to ``x_unit * new_y_unit``. + + Parameters + ---------- + new_y_unit : str | sc.Unit + Target y-axis unit. + """ + self._convert_y_unit_area_based(new_y_unit=new_y_unit, area_param=self._area) def __repr__(self) -> str: """ @@ -245,10 +264,9 @@ def __repr__(self) -> str: A string representation of the Lorentzian. """ return ( - f'{self.__class__.__name__}(' - f'name={self.name!r}, display_name={self.display_name!r}, ' - f'unit={self._unit},\n' - f' area={self.area},\n' - f' center={self.center},\n' - f' width={self.width})' + f'{self.__class__.__name__}(name = {self.name}, display_name = {self.display_name}, ' + f'x_unit = {self.x_unit}, y_unit = {self.y_unit},\n' + f' area = {self.area},\n' + f' center = {self.center},\n' + f' width = {self.width})' ) diff --git a/src/easydynamics/sample_model/components/mixins.py b/src/easydynamics/sample_model/components/mixins.py index 7552d2e80..2fc0b8071 100644 --- a/src/easydynamics/sample_model/components/mixins.py +++ b/src/easydynamics/sample_model/components/mixins.py @@ -18,52 +18,54 @@ class CreateParametersMixin: """ Provides parameter creation and validation methods for model components. - This mixin provides methods to create and validate common physics parameters (area, center, - width) with appropriate bounds and type checking. + area_unit = x_unit * y_unit, so when y_unit='dimensionless', area_unit = x_unit. """ def _create_area_parameter( self, area: Numeric, name: str, - unit: str | sc.Unit = 'meV', + x_unit: str | sc.Unit = 'meV', + y_unit: str | sc.Unit = 'dimensionless', minimum_area: float = MINIMUM_AREA, ) -> Parameter: """ - Validate and convert a number to a Parameter describing the area of a function. - - If the area is negative, a warning is raised. If the area is non-negative, its minimum is - set to 0 to avoid it accidentally becoming negative during fitting. + Create a Parameter for the area with unit = x_unit * y_unit. Parameters ---------- area : Numeric - The area value. + Initial area value. name : str - The name of the model component. - unit : str | sc.Unit, default='meV' - The unit of the area Parameter. + Base name used to label the Parameter (``name + ' area'``). + x_unit : str | sc.Unit, default='meV' + X-axis unit. The resulting area unit is ``x_unit * y_unit``. + y_unit : str | sc.Unit, default='dimensionless' + Y-axis unit. The resulting area unit is ``x_unit * y_unit``. minimum_area : float, default=MINIMUM_AREA - The minimum allowed area. + Lower bound applied to the Parameter when the area is non-negative. When *area* is + negative no lower bound is set and a :class:`UserWarning` is issued. + + Returns + ------- + Parameter + Configured area Parameter with ``unit = x_unit * y_unit``. Raises ------ TypeError - If area is not a number. + If *area* is not a numeric type. ValueError - If area is not a finite number. - - Returns - ------- - Parameter - The validated area Parameter. + If *area* is not finite. """ if not isinstance(area, Numeric): raise TypeError('area must be a number.') if not np.isfinite(area): raise ValueError('area must be a finite number.') - area_param = Parameter(name=name + ' area', value=float(area), unit=unit) + + area_unit = str(sc.Unit(x_unit) * sc.Unit(y_unit)) + area_param = Parameter(name=name + ' area', value=float(area), unit=area_unit) if area_param.value < 0: warnings.warn( @@ -81,36 +83,38 @@ def _create_center_parameter( center: Numeric | None, name: str, fix_if_none: bool, - unit: str | sc.Unit = 'meV', + x_unit: str | sc.Unit = 'meV', enforce_minimum_center: bool = False, ) -> Parameter: """ - Validate and convert a number to a Parameter describing the center of a function. + Create a Parameter for the center with unit = x_unit. Parameters ---------- center : Numeric | None - The center value. + Initial center value. If None, the center is set to 0.0 and ``fixed`` is controlled by + *fix_if_none*. name : str - The name of the model component. + Base name used to label the Parameter (``name + ' center'``). fix_if_none : bool - Whether to fix the center Parameter if center is None. - unit : str | sc.Unit, default='meV' - The unit of the center Parameter. + Whether to fix the Parameter when *center* is None. + x_unit : str | sc.Unit, default='meV' + X-axis unit, applied to the center Parameter. enforce_minimum_center : bool, default=False - Whether to enforce a minimum center value to avoid zero center in DHO. + If True, the Parameter's lower bound is raised to ``DHO_MINIMUM_CENTER`` (1e-10) to + prevent a zero center. + + Returns + ------- + Parameter + Configured center Parameter with ``unit = x_unit``. Raises ------ TypeError - If center is not None or a number. + If *center* is not None and not a numeric type. ValueError - If center is a number but not finite. - - Returns - ------- - Parameter - The validated center Parameter. + If *center* is not None and not finite. """ if center is not None and not isinstance(center, Numeric): raise TypeError('center must be None or a number.') @@ -119,16 +123,21 @@ def _create_center_parameter( center_param = Parameter( name=name + ' center', value=0.0, - unit=unit, + unit=x_unit, fixed=fix_if_none, ) else: if not np.isfinite(center): raise ValueError('center must be None or a finite number.') - - center_param = Parameter(name=name + ' center', value=float(center), unit=unit) - if enforce_minimum_center and center_param.min < DHO_MINIMUM_CENTER: - center_param.min = DHO_MINIMUM_CENTER + center_param = Parameter(name=name + ' center', value=float(center), unit=x_unit) + + if enforce_minimum_center: + # Clamp the value before raising the bound: Parameter.min rejects a new minimum + # that is larger than the current value. + if center_param.value < DHO_MINIMUM_CENTER: + center_param.value = DHO_MINIMUM_CENTER + if center_param.min < DHO_MINIMUM_CENTER: + center_param.min = DHO_MINIMUM_CENTER return center_param def _create_width_parameter( @@ -136,36 +145,37 @@ def _create_width_parameter( width: Numeric, name: str, param_name: str = 'width', - unit: str | sc.Unit = 'meV', + x_unit: str | sc.Unit = 'meV', minimum_width: float = MINIMUM_WIDTH, ) -> Parameter: """ - Validate and convert a number to a Parameter describing the width of a function. + Create a Parameter for the width with unit = x_unit. Parameters ---------- width : Numeric - The width value. + Initial width value. Must be strictly positive (>= *minimum_width*). name : str - The name of the model component. + Base name used to label the Parameter (``name + ' ' + param_name``). param_name : str, default='width' - The name of the width parameter. - unit : str | sc.Unit, default='meV' - The unit of the width Parameter. + Logical name of the parameter used in the label and error messages (e.g. + ``'gaussian_width'``, ``'lorentzian_width'``). + x_unit : str | sc.Unit, default='meV' + X-axis unit, applied to the width Parameter. minimum_width : float, default=MINIMUM_WIDTH - The minimum allowed width. + Absolute lower bound for the width to prevent division-by-zero. + + Returns + ------- + Parameter + Configured width Parameter with ``unit = x_unit`` and ``min = minimum_width``. Raises ------ TypeError - If width is not a number. + If *width* is not a numeric type. ValueError - If width is non-positive. - - Returns - ------- - Parameter - The validated width Parameter. + If *width* is not finite or is smaller than *minimum_width*. """ if not isinstance(width, Numeric): raise TypeError(f'{param_name} must be a number.') @@ -180,6 +190,6 @@ def _create_width_parameter( return Parameter( name=name + ' ' + param_name, value=float(width), - unit=unit, + unit=x_unit, min=minimum_width, ) diff --git a/src/easydynamics/sample_model/components/model_component.py b/src/easydynamics/sample_model/components/model_component.py index 878f501fa..43a10cbad 100644 --- a/src/easydynamics/sample_model/components/model_component.py +++ b/src/easydynamics/sample_model/components/model_component.py @@ -3,15 +3,23 @@ from __future__ import annotations -import warnings from abc import abstractmethod +from functools import partial +from typing import TYPE_CHECKING import numpy as np import scipp as sc from scipp import UnitError from easydynamics.base_classes.easydynamics_modelbase import EasyDynamicsModelBase +from easydynamics.utils.fit_target import FitTarget from easydynamics.utils.utils import Numeric +from easydynamics.utils.utils import convert_parameter_unit +from easydynamics.utils.utils import convert_units_with_rollback +from easydynamics.utils.utils import convert_value_unit + +if TYPE_CHECKING: + from easyscience.variable import Parameter class ModelComponent(EasyDynamicsModelBase): @@ -19,107 +27,111 @@ class ModelComponent(EasyDynamicsModelBase): def __init__( self, - unit: str | sc.Unit = 'meV', + x_unit: str | sc.Unit = 'meV', + y_unit: str | sc.Unit = 'dimensionless', name: str = 'ModelComponent', display_name: str | None = None, unique_name: str | None = None, ) -> None: """ - Initialize the ModelComponent. - Parameters ---------- - unit : str | sc.Unit, default='meV' - The unit of the model component. + x_unit : str | sc.Unit, default='meV' + Unit for the x-axis (independent variable) of this component. + y_unit : str | sc.Unit, default='dimensionless' + Unit for the y-axis (dependent variable / output) of this component. name : str, default='ModelComponent' - The name of the model component for indexing. + Internal name used for parameter labelling and logging. display_name : str | None, default=None - A human-readable name for the component. + Human-readable name shown in plots and reports. Falls back to *name* if None. unique_name : str | None, default=None - A unique identifier for the component. + Globally unique identifier. Auto-generated if None. """ super().__init__( - unit=unit, + x_unit=x_unit, + y_unit=y_unit, name=name, display_name=display_name, unique_name=unique_name, ) - @property - def unit(self) -> str: + def get_fit_targets(self) -> list[FitTarget]: """ - Get the unit. + Get the fittable predictions of this component as FitTargets. + + Component models have a single prediction — their ``evaluate`` — named ``'value'`` with no + default dataset key; ``FitBinding`` supplies the dataset key to fit against. The target is + a snapshot: its units reflect the component's x_unit/y_unit at call time (None means raw + values are fitted without unit conversion). Returns ------- - str - The unit of the model component. + list[FitTarget] + A single FitTarget wrapping this component's evaluate. """ - return str(self._unit) + return [ + FitTarget( + name='value', + dataset_key=None, + function=lambda x, model=self, **_: model.evaluate(x), + label=self.display_name, + x_unit=self.x_unit, + y_unit=self.y_unit, + ) + ] - @unit.setter - def unit(self, _unit_str: str) -> None: + def fix_all_parameters(self) -> None: """ - Unit is read-only. - - Use convert_unit to change the unit between allowed types or create a new ModelComponent - with the desired unit. - - Parameters - ---------- - _unit_str : str - The new unit to set. + Fix all parameters in the model component. - Raises - ------ - AttributeError - Always raised since unit is read-only. + Sets ``fixed=True`` on every fittable parameter returned by + :meth:`get_fittable_parameters`. """ - raise AttributeError( - f'Unit is read-only. Use convert_unit to change the unit between allowed types ' - f'or create a new {self.__class__.__name__} with the desired unit.' - ) - - def fix_all_parameters(self) -> None: - """Fix all parameters in the model component.""" - - pars = self.get_fittable_parameters() - for p in pars: + for p in self.get_fittable_parameters(): p.fixed = True def free_all_parameters(self) -> None: - """Free all parameters in the model component.""" + """ + Free all parameters in the model component. + + Sets ``fixed=False`` on every fittable parameter returned by + :meth:`get_fittable_parameters`. + """ for p in self.get_fittable_parameters(): p.fixed = False def _prepare_x_for_evaluate( self, x: Numeric | list | np.ndarray | sc.Variable | sc.DataArray - ) -> np.ndarray: + ) -> tuple[np.ndarray, str | None, str]: """ - Prepare the input x for evaluation by handling units and converting to a numpy array. + Validate x and extract its values, detected unit, and dimension name. + + x is never converted. When x carries a unit, the caller is responsible for resolving + parameter values to that unit via _resolve_param_value. Parameters ---------- x : Numeric | list | np.ndarray | sc.Variable | sc.DataArray - The input data to prepare. + Input x values to validate and extract. + + Returns + ------- + tuple[np.ndarray, str | None, str] + x_values : np.ndarray of raw float values (no unit conversion) detected_unit : str unit + of x if scipp input, else None dim : scipp dimension name if scipp input, else 'x' Raises ------ - ValueError - If x contains NaN or infinite values, or if a sc.DataArray has more than one - coordinate. UnitError - If x has incompatible units that cannot be converted to the component's unit. - - Returns - ------- - np.ndarray - The prepared input data as a numpy array. + If x has a unit incompatible with the model's x_unit. + ValueError + If x contains NaN or infinite values, or if a DataArray has more than one coordinate. """ + detected_unit: str | None = None + dim: str = 'x' + dim_from_dataarray: bool = False - # Handle units if isinstance(x, sc.DataArray): - # Check that there's exactly one coordinate coords = dict(x.coords) ncoords = len(coords) if ncoords != 1: @@ -128,31 +140,25 @@ def _prepare_x_for_evaluate( f'scipp.DataArray must have exactly one coordinate to be used as input `x`. ' f'Found {ncoords} coordinates: {coord_names}.' ) - # get the coordinate, it's a sc.Variable - _, coord_obj = next(iter(coords.items())) + dim, coord_obj = next(iter(coords.items())) x = coord_obj + dim_from_dataarray = True + if isinstance(x, sc.Variable): - # Need to check if the units are consistent, - # and convert if not. + detected_unit = str(x.unit) + if not dim_from_dataarray: + dim = x.dims[0] if x.dims else 'x' x_in = x.value if x.sizes == {} else x.values - if self._unit is not None and x.unit != self._unit: - self_unit_for_warning = self._unit + + # Validate that x's unit is compatible with model's x_unit + if self.x_unit is not None and detected_unit != self.x_unit: try: - self.convert_unit(x.unit.name) + sc.to_unit(sc.scalar(1.0, unit=detected_unit), self.x_unit) except Exception as e: raise UnitError( - f'Input x has unit {x.unit}, but {self.__class__.__name__} component \ - has unit {self._unit}. \ - Failed to convert {self.__class__.__name__} to {x.unit}.' + f'Input x has unit {detected_unit}, which is incompatible with ' + f'{self.__class__.__name__} x_unit {self.x_unit}.' ) from e - - warnings.warn( - f'Input x has unit {x.unit}, but {self.__class__.__name__} component \ - has unit {self_unit_for_warning}. \ - Converting {self.__class__.__name__} to {x.unit}.', - UserWarning, - stacklevel=3, - ) else: x_in = x @@ -167,60 +173,259 @@ def _prepare_x_for_evaluate( if any(np.isinf(x_in)): raise ValueError('Input x contains infinite values.') - return np.sort(x_in) + return x_in, detected_unit, dim + + def _resolve_param_value(self, param: Parameter, target_unit: str | None) -> float: + """ + Return param's value converted to target_unit without mutating param. + + If target_unit is None or already matches param's unit, returns param.value directly. Uses + a temporary scipp scalar for the conversion. + + Parameters + ---------- + param : Parameter + The parameter whose value should be resolved. + target_unit : str | None + The unit to which the parameter value should be converted. When None (or equal to the + parameter's own unit) the raw value is returned without any conversion. + + Returns + ------- + float + The parameter value expressed in *target_unit*. + """ + if target_unit is None: + return param.value + return convert_value_unit(param.value, param.unit, target_unit) - def convert_unit(self, unit: str | sc.Unit) -> None: + def _convert_x_unit_area_based( + self, + new_x_unit: str | sc.Unit, + x_params: list, + area_param: Parameter | None = None, + inverse_params: list | None = None, + ) -> None: """ - Convert the unit of the Parameters in the component. + Shared convert_x_unit logic for components whose parameters carry mixed x-based units. + + Validates the input type, converts all x-axis parameters, the optional area parameter (area + = x_unit * y_unit), and any reciprocal (``1/x_unit``) parameters to the new unit, and + updates ``_x_unit``. If any step fails, all parameters are rolled back to their original + units and the failing conversion's exception is re-raised. Parameters ---------- - unit : str | sc.Unit - The new unit to convert to. + new_x_unit : str | sc.Unit + Target x-axis unit. + x_params : list + Parameters whose unit equals *x_unit* (e.g. center, width). + area_param : Parameter | None, default=None + The parameter whose unit equals ``x_unit * y_unit``, if the component has one. + inverse_params : list | None, default=None + Parameters whose unit equals ``1/x_unit`` (e.g. an exponential rate). Raises ------ TypeError - If the provided unit is not a str or sc.Unit. - Exception - If the provided unit is invalid or incompatible with the component's parameters. - """ - if not isinstance(unit, (str, sc.Unit)): - raise TypeError(f'Unit must be a string or sc.Unit, got {type(unit).__name__}') - - old_unit = self._unit - pars = self.get_all_parameters() - try: - for p in pars: - p.convert_unit(unit) - self._unit = unit - except Exception as e: - # Attempt to rollback on failure - try: - for p in pars: - if hasattr(p, 'convert_unit'): - p.convert_unit(old_unit) - except Exception: # noqa: S110 - pass # Best effort rollback - raise e + If *new_x_unit* is not a ``str`` or ``sc.Unit``. + """ + if not isinstance(new_x_unit, (str, sc.Unit)): + raise TypeError(f'x_unit must be a string or sc.Unit, got {type(new_x_unit).__name__}') + old_x_unit = self.x_unit + new_x_str = str(new_x_unit) if isinstance(new_x_unit, sc.Unit) else new_x_unit + conversions = [ + (partial(convert_parameter_unit, p), new_x_str, old_x_unit) for p in x_params + ] + if area_param is not None: + new_area_unit = str(sc.Unit(new_x_str) * sc.Unit(self.y_unit)) + old_area_unit = str(sc.Unit(old_x_unit) * sc.Unit(self.y_unit)) + conversions.append(( + partial(convert_parameter_unit, area_param), + new_area_unit, + old_area_unit, + )) + conversions.extend( + (partial(convert_parameter_unit, p), '1/' + new_x_str, '1/' + str(old_x_unit)) + for p in inverse_params or [] + ) + convert_units_with_rollback(conversions) + self._x_unit = new_x_str - @abstractmethod - def evaluate(self, x: Numeric | list | np.ndarray | sc.Variable | sc.DataArray) -> np.ndarray: + def _convert_y_unit_area_based( + self, + new_y_unit: str | sc.Unit, + area_param: Parameter | None = None, + y_params: list | None = None, + ) -> None: """ - Abstract method to evaluate the model component at input x. + Shared convert_y_unit logic for components whose parameters carry y-based units. - Must be implemented by subclasses. + Validates the input type, rescales the optional area parameter from ``x_unit * old_y_unit`` + to ``x_unit * new_y_unit`` and any pure y-unit parameters to the new unit, and updates + ``_y_unit``. If any step fails, the parameters are rolled back to their original units and + the failing conversion's exception is re-raised. + + Parameters + ---------- + new_y_unit : str | sc.Unit + Target y-axis unit. + area_param : Parameter | None, default=None + The parameter whose unit equals ``x_unit * y_unit``, if the component has one. + y_params : list | None, default=None + Parameters whose unit equals *y_unit* (e.g. an amplitude). + + Raises + ------ + TypeError + If *new_y_unit* is not a ``str`` or ``sc.Unit``. + """ + if not isinstance(new_y_unit, (str, sc.Unit)): + raise TypeError(f'y_unit must be a string or sc.Unit, got {type(new_y_unit).__name__}') + old_y_unit = self.y_unit + new_y_str = str(new_y_unit) if isinstance(new_y_unit, sc.Unit) else new_y_unit + conversions = [] + if area_param is not None: + new_area_unit = str(sc.Unit(self.x_unit) * sc.Unit(new_y_str)) + old_area_unit = str(sc.Unit(self.x_unit) * sc.Unit(old_y_unit)) + conversions.append(( + partial(convert_parameter_unit, area_param), + new_area_unit, + old_area_unit, + )) + conversions.extend( + (partial(convert_parameter_unit, p), new_y_str, old_y_unit) for p in y_params or [] + ) + convert_units_with_rollback(conversions) + self._y_unit = new_y_str + + def convert_x_unit(self, new_x_unit: str | sc.Unit) -> None: + """ + Convert the x-axis unit of the component. + + The base implementation converts all parameters. Subclasses with mixed-unit parameters + (e.g. area ≠ x_unit) should override this method. If the conversion between the current + unit and *new_x_unit* fails, the component is rolled back to its original unit and the + failing conversion's exception is re-raised. + + Parameters + ---------- + new_x_unit : str | sc.Unit + Target x-axis unit. Must be dimensionally compatible with the current x_unit. + + Raises + ------ + TypeError + If *new_x_unit* is not a ``str`` or ``sc.Unit``. + """ + if not isinstance(new_x_unit, (str, sc.Unit)): + raise TypeError(f'x_unit must be a string or sc.Unit, got {type(new_x_unit).__name__}') + + old_unit = self.x_unit + convert_units_with_rollback([ + (partial(convert_parameter_unit, p), new_x_unit, old_unit) + for p in self.get_all_parameters() + ]) + self._x_unit = str(new_x_unit) if isinstance(new_x_unit, sc.Unit) else new_x_unit + + def convert_y_unit(self, new_y_unit: str | sc.Unit) -> None: + """ + Convert the y-axis (output) unit. Subclasses with an area parameter should override this. + + Parameters + ---------- + new_y_unit : str | sc.Unit + Target y-axis unit. + + Raises + ------ + NotImplementedError + Always raised in this base implementation. Subclasses that carry an area parameter + (area_unit = x_unit * y_unit) must override this method to rescale the area + appropriately. + """ + raise NotImplementedError(f'{self.__class__.__name__} does not support convert_y_unit.') + + def evaluate( + self, + x: Numeric | list | np.ndarray | sc.Variable | sc.DataArray, + output: str = 'numpy', + ) -> np.ndarray | sc.Variable: + """ + Evaluate the model component at input x. + + When x carries a unit (scipp input), parameter values are temporarily converted to that + unit for the computation without mutating the parameters. Parameters ---------- x : Numeric | list | np.ndarray | sc.Variable | sc.DataArray - The x values at which to evaluate the component. + Input x values. + output : str, default='numpy' + 'numpy' returns np.ndarray; 'scipp' returns sc.Variable with y_unit. + + Raises + ------ + ValueError + If output is not 'numpy' or 'scipp'. + + Returns + ------- + np.ndarray | sc.Variable + Evaluated model values at x. + """ + if output not in ('numpy', 'scipp'): + raise ValueError(f"output must be 'numpy' or 'scipp', got {output!r}") + x_vals, detected_unit, dim = self._prepare_x_for_evaluate(x) + # eval_unit is None when x is already in the component's own x_unit (unitless input is + # assumed to be), letting _evaluate_values skip all unit resolution in the hot path. + eval_unit = detected_unit if detected_unit != self.x_unit else None + values = self._evaluate_values(x_vals, eval_unit) + if output == 'scipp': + return sc.array(dims=[dim], values=values, unit=self.y_unit) + return values + + @abstractmethod + def _evaluate_values(self, x_vals: np.ndarray, eval_unit: str | None) -> np.ndarray: + """ + Compute the component's values for raw x values expressed in eval_unit. + + Implementations must resolve their parameters to *eval_unit* (via + :meth:`_resolve_param_value`) and return plain numpy values; the public :meth:`evaluate` + handles input validation and output wrapping. + + Parameters + ---------- + x_vals : np.ndarray + Raw x values, expressed in *eval_unit*. + eval_unit : str | None + The unit of *x_vals* when it differs from the component's own x_unit, or None when + x_vals is already expressed in the component's x_unit (no resolution needed). Returns ------- np.ndarray - Evaluated function values. + Evaluated model values at x_vals. + """ + + def _eval_area_unit(self, eval_unit: str | None) -> str | None: """ + Get the area unit (``eval_unit * y_unit``) matching an evaluation unit. + + Parameters + ---------- + eval_unit : str | None + The unit x values are expressed in during evaluation. + + Returns + ------- + str | None + The corresponding area unit, or None when either unit is unknown (in which case + parameter values are used unconverted). + """ + if eval_unit is None or self.y_unit is None: + return None + return str(sc.Unit(eval_unit) * sc.Unit(self.y_unit)) def __repr__(self) -> str: """ @@ -231,5 +436,7 @@ def __repr__(self) -> str: str A string representation of the ModelComponent. """ - - return f'{self.__class__.__name__}(unique_name={self.unique_name!r}, unit={self._unit})' + return ( + f'{self.__class__.__name__}(unique_name={self.unique_name}, ' + f'x_unit={self.x_unit}, y_unit={self.y_unit})' + ) diff --git a/src/easydynamics/sample_model/components/polynomial.py b/src/easydynamics/sample_model/components/polynomial.py index a36700dff..683af8d9f 100644 --- a/src/easydynamics/sample_model/components/polynomial.py +++ b/src/easydynamics/sample_model/components/polynomial.py @@ -23,8 +23,10 @@ class Polynomial(ModelComponent): r""" Polynomial function component. - The intensity is given by $$ I(x) = c_0 + c_1 x + c_2 x^2 + ... + c_N x^N, $$ where $C_i$ are - the coefficients. + $$ I(x) = c_0 + c_1 x + c_2 x^2 + ... + c_N x^N $$ + + Coefficients are stored as dimensionless Parameters. When x_unit changes, the coefficient + values are rescaled so the evaluated result stays the same. The output unit is y_unit. Examples -------- @@ -53,39 +55,46 @@ class Polynomial(ModelComponent): def __init__( self, coefficients: Sequence[Numeric | Parameter] = (0.0,), - unit: str | sc.Unit = 'meV', + x_unit: str | sc.Unit = 'meV', + y_unit: str | sc.Unit = 'dimensionless', name: str = 'Polynomial', display_name: str | None = None, unique_name: str | None = None, + suppress_warnings: bool = False, ) -> None: """ - Initialize the Polynomial component. - Parameters ---------- coefficients : Sequence[Numeric | Parameter], default=(0.0,) - Coefficients c0, c1, ..., cN. - unit : str | sc.Unit, default='meV' - Unit of the Polynomial component. + Ordered list of polynomial coefficients ``[c0, c1, ..., cN]`` where the polynomial is + ``c0 + c1*x + c2*x^2 + ... + cN*x^N``. Each element may be a plain numeric value + (wrapped into a dimensionless :class:`Parameter`) or an existing :class:`Parameter` + instance. Must contain at least one element. + x_unit : str | sc.Unit, default='meV' + Unit of the x-axis. When the x_unit is changed via :meth:`convert_x_unit`, coefficient + values are rescaled by power-law factors so the evaluated output remains unchanged. + y_unit : str | sc.Unit, default='dimensionless' + Unit of the y-axis (output). name : str, default='Polynomial' - Name of the component for indexing. + Name of the component. display_name : str | None, default=None - Display name of the Polynomial component. + Display name shown when plotting. Falls back to *name* if None. unique_name : str | None, default=None - Unique name of the component. If None, a unique_name is automatically generated. By - default, None. + Globally unique identifier. Auto-generated if None. + suppress_warnings : bool, default=False + Whether to suppress warnings Raises ------ TypeError - If coefficients is not a sequence of numbers or Parameters or if any item in - coefficients is not a number or Parameter. + If *coefficients* is not a list, tuple, or ndarray, or if any element is neither + numeric nor a :class:`Parameter`. ValueError - If coefficients is an empty sequence. + If *coefficients* is empty. """ - super().__init__( - unit=unit, + x_unit=x_unit, + y_unit=y_unit, name=name, display_name=display_name, unique_name=unique_name, @@ -93,17 +102,15 @@ def __init__( if not isinstance(coefficients, (list, tuple, np.ndarray)): raise TypeError( - 'coefficients must be a sequence (list/tuple/ndarray) \ - of numbers or Parameter objects.' + 'coefficients must be a sequence (list/tuple/ndarray) ' + 'of numbers or Parameter objects.' ) if len(coefficients) == 0: raise ValueError('At least one coefficient must be provided.') - # Internal storage of Parameter objects self._coefficients: list[Parameter] = [] - # Coefficients are treated as dimensionless Parameters for i, coef in enumerate(coefficients): if isinstance(coef, Parameter): param = coef @@ -113,19 +120,20 @@ def __init__( raise TypeError('Each coefficient must be either a numeric value or a Parameter.') self._coefficients.append(param) - # Helper scipp scalar to track unit conversions - # (value initialized to 1 with provided unit) - self._unit_conversion_helper = sc.scalar(value=1.0, unit=unit) + # Tracks the current x_unit scale for convert_x_unit power-law rescaling + self._x_unit_helper = sc.scalar(value=1.0, unit=x_unit) + + self.suppress_warnings = suppress_warnings @property def coefficients(self) -> list[Parameter]: """ Get the coefficients of the polynomial as a list of Parameters. - Returns ------- list[Parameter] - The coefficients of the polynomial. + A shallow copy of the internal coefficient list ``[c0, c1, ..., cN]``. Modifying the + returned list does not affect the model; use the setter to replace values. """ return list(self._coefficients) @@ -133,25 +141,24 @@ def coefficients(self) -> list[Parameter]: def coefficients(self, coeffs: Sequence[Numeric | Parameter]) -> None: """ Set the coefficients of the polynomial. - - Length must match current number of coefficients. - Parameters ---------- coeffs : Sequence[Numeric | Parameter] - New coefficients as a sequence of numbers or Parameters. + New coefficient values. Must be a list, tuple, or ndarray and must have the same + length as the current number of coefficients. Numeric values update the existing + Parameter's ``.value``; a Parameter instance replaces the stored Parameter entirely. Raises ------ TypeError - If coeffs is not a sequence of numbers or Parameters or if any item in coeffs is not a - number or Parameter. + If *coeffs* is not a list, tuple, or ndarray, or if any element is neither numeric nor + a Parameter. ValueError - If the length of coeffs does not match the existing number of coefficients. + If the length of *coeffs* does not match the current number of coefficients. """ if not isinstance(coeffs, (list, tuple, np.ndarray)): raise TypeError( - 'coefficients must be a sequence (list/tuple/ndarray) of numbers or Parameter .' + 'coefficients must be a sequence (list/tuple/ndarray) of numbers or Parameter.' ) if len(coeffs) != len(self._coefficients): raise ValueError( @@ -159,7 +166,6 @@ def coefficients(self, coeffs: Sequence[Numeric | Parameter]) -> None: ) for i, coef in enumerate(coeffs): if isinstance(coef, Parameter): - # replace parameter self._coefficients[i] = coef elif isinstance(coef, Numeric): self._coefficients[i].value = float(coef) @@ -169,56 +175,20 @@ def coefficients(self, coeffs: Sequence[Numeric | Parameter]) -> None: def coefficient_values(self) -> list[float]: """ Get the coefficients of the polynomial as a list. - Returns ------- list[float] - The coefficient values of the polynomial. + Current numeric values of all coefficients ``[c0.value, c1.value, ..., cN.value]``. """ return [param.value for param in self._coefficients] - def evaluate(self, x: Numeric | list | np.ndarray | sc.Variable | sc.DataArray) -> np.ndarray: - r""" - Evaluate the Polynomial at the given x values. - - The intensity is given by $$ I(x) = c_0 + c_1 x + c_2 x^2 + ... - + c_N x^N, $$ where $C_i$ are the coefficients. - - Parameters - ---------- - x : Numeric | list | np.ndarray | sc.Variable | sc.DataArray - The x values at which to evaluate the Polynomial. - - Returns - ------- - np.ndarray - The evaluated Polynomial at the given x values. - """ - - x = self._prepare_x_for_evaluate(x) - - result = np.zeros_like(x, dtype=float) - for i, param in enumerate(self._coefficients): - result += param.value * np.power(x, i) - - if any(result < 0): - warnings.warn( - f'The Polynomial with unique_name {self.unique_name} has negative values, ' - 'which may not be physically meaningful.', - UserWarning, - stacklevel=2, - ) - return result - @property def degree(self) -> int: """ - Get the degree of the polynomial. - Returns ------- int - The degree of the polynomial. + Polynomial degree, equal to ``len(coefficients) - 1``. """ return len(self._coefficients) - 1 @@ -230,73 +200,167 @@ def degree(self, _value: int) -> None: Parameters ---------- _value : int - The new degree of the polynomial. + Ignored; this setter always raises :exc:`AttributeError`. Raises ------ AttributeError - Always raised since degree cannot be set directly. + Always raised when this setter is called. """ raise AttributeError( 'The degree of the polynomial is determined by the number of coefficients ' 'and cannot be set directly.' ) - def get_all_variables(self) -> list[DescriptorBase]: + @property + def suppress_warnings(self) -> bool: + """ + Get whether or not to suppress warnings. + """ + return self._suppress_warnings + + @suppress_warnings.setter + def suppress_warnings(self, value: bool) -> None: """ - Get all variables from the model component. + Choose whether or not to suppress warnings. + + Parameters + ---------- + value : bool + Whether or not to suppress warnings + + Raises + ------ + TypeError + If suppress_warnings is not True or False + """ + if not isinstance(value, bool): + raise TypeError('Suppress_warnings must be True or False') + self._suppress_warnings = value + + def _evaluate_values(self, x_vals: np.ndarray, eval_unit: str | None) -> np.ndarray: + r""" + Evaluate the Polynomial at x_vals. + + When x_vals is expressed in a different unit than the stored x_unit, coefficient values are + temporarily rescaled (same power-law logic as convert_x_unit) without mutation. + + Parameters + ---------- + x_vals : np.ndarray + Raw x values expressed in eval_unit. + eval_unit : str | None + The unit of x_vals. + Returns + ------- + np.ndarray + Evaluated polynomial values. + """ + if ( + eval_unit is not None + and self.x_unit is not None + and sc.Unit(eval_unit) != sc.Unit(self.x_unit) + ): + # Temporary coefficient rescaling — no mutation + helper = sc.scalar(1.0, unit=self.x_unit) + helper_in_x = sc.to_unit(helper, eval_unit) + scale = helper.value / helper_in_x.value + coeff_vals = [p.value * scale**i for i, p in enumerate(self._coefficients)] + else: + coeff_vals = [p.value for p in self._coefficients] + + result = np.zeros_like(x_vals, dtype=float) + for i, cv in enumerate(coeff_vals): + result += cv * np.power(x_vals, i) + + if not self._suppress_warnings and any(result < 0): + warnings.warn( + f'The Polynomial with unique_name {self.unique_name} has negative values, ' + 'which may not be physically meaningful.', + UserWarning, + stacklevel=3, + ) + + return result + + def get_all_variables(self) -> list[DescriptorBase]: + """ Returns ------- list[DescriptorBase] - List of variables in the component. + The coefficient Parameters that constitute the fittable variables of this polynomial + component. """ return list(self._coefficients) - def convert_unit(self, unit: str | sc.Unit) -> None: + def convert_x_unit(self, new_x_unit: str | sc.Unit) -> None: """ - Convert the unit of the polynomial. + Convert the x-axis unit by rescaling coefficients with power-law factors. + + Each coefficient ``c_i`` is rescaled by ``(old_scale / new_scale) ** i`` so the evaluated + polynomial output is unchanged after the conversion. Parameters ---------- - unit : str | sc.Unit - The target unit to convert to. + new_x_unit : str | sc.Unit + Target x-axis unit. Must be dimensionally compatible with the current x_unit. Raises ------ UnitError - If the provided unit is not a string or sc.Unit. + If *new_x_unit* is not a valid unit string or ``sc.Unit``, or if the conversion between + the current unit and *new_x_unit* fails. """ + if not isinstance(new_x_unit, (str, sc.Unit)): + raise UnitError('new_x_unit must be a string or a scipp unit.') - if not isinstance(unit, (str, sc.Unit)): - raise UnitError('unit must be a string or a scipp unit.') - - # Find out how much the unit changes - # by converting a helper variable - conversion_value_before = self._unit_conversion_helper.value - self._unit_conversion_helper = sc.to_unit(self._unit_conversion_helper, unit=unit) - conversion_value_after = self._unit_conversion_helper.value + conversion_value_before = self._x_unit_helper.value + self._x_unit_helper = sc.to_unit(self._x_unit_helper, unit=new_x_unit) + conversion_value_after = self._x_unit_helper.value for i, param in enumerate(self._coefficients): - param.value *= ( - conversion_value_before / conversion_value_after - ) ** i # set the values directly to the appropriate power + param.value *= (conversion_value_before / conversion_value_after) ** i - self._unit = unit + self._x_unit = str(new_x_unit) if isinstance(new_x_unit, sc.Unit) else new_x_unit - def __repr__(self) -> str: + def convert_y_unit(self, new_y_unit: str | sc.Unit) -> None: """ - Return a string representation of the Polynomial. + Rescale all coefficients so the evaluated output remains the same physical value. - Returns - ------- - str - A string representation of the Polynomial. + All coefficients are multiplied by the conversion factor from ``old_y_unit`` to + ``new_y_unit`` so that ``I(x) [new_y_unit]`` represents the same physical quantity as + ``I(x) [old_y_unit]``. + + Parameters + ---------- + new_y_unit : str | sc.Unit + Target y-axis unit. Must be dimensionally compatible with the current y_unit. + + Raises + ------ + UnitError + If *new_y_unit* is not a valid unit string or ``sc.Unit``, or if the conversion between + the current y_unit and *new_y_unit* fails. """ + if not isinstance(new_y_unit, (str, sc.Unit)): + raise UnitError('new_y_unit must be a string or a scipp unit.') + old_y_unit = self.y_unit or 'dimensionless' + new_y_str = str(new_y_unit) if isinstance(new_y_unit, sc.Unit) else new_y_unit + + # Compute conversion factor: 1 old_y_unit expressed in new_y_unit + y_helper = sc.scalar(1.0, unit=old_y_unit) + y_helper_new = sc.to_unit(y_helper, new_y_str) + scale = y_helper_new.value / y_helper.value + + for param in self._coefficients: + param.value *= scale + self._y_unit = new_y_str + + def __repr__(self) -> str: coeffs_str = ', '.join(f'{param.name}={param.value}' for param in self._coefficients) return ( - f'{self.__class__.__name__}(' - f'name={self.name!r}, display_name={self.display_name!r}, ' - f'unit={self._unit},\n' - f' coefficients=[{coeffs_str}])' + f'{self.__class__.__name__}(name = {self.name}, display_name = {self.display_name}, ' + f'x_unit = {self.x_unit}, y_unit = {self.y_unit},\n' + f' coefficients = [{coeffs_str}])' ) diff --git a/src/easydynamics/sample_model/components/voigt.py b/src/easydynamics/sample_model/components/voigt.py index 5ca29105c..ee8c29046 100644 --- a/src/easydynamics/sample_model/components/voigt.py +++ b/src/easydynamics/sample_model/components/voigt.py @@ -19,13 +19,14 @@ class Voigt(CreateParametersMixin, ModelComponent): r""" - Voigt profile, a convolution of Gaussian and Lorentzian. + Voigt profile — convolution of Gaussian and Lorentzian. + + Uses ``scipy.special.voigt_profile`` to evaluate the profile. area has unit = x_unit * y_unit; + center, gaussian_width, and lorentzian_width have unit = x_unit. If the center is not provided, it will be centered at 0 and fixed, which is typically what you want in QENS. - Use scipy.special.voigt_profile to evaluate the Voigt profile. - Examples -------- **Creating a Voigt profile with a fixed center (typical QENS use)** @@ -60,7 +61,8 @@ def __init__( center: Numeric | Parameter | None = None, gaussian_width: Numeric | Parameter = 1.0, lorentzian_width: Numeric | Parameter = 1.0, - unit: str | sc.Unit = 'meV', + x_unit: str | sc.Unit = 'meV', + y_unit: str | sc.Unit = 'dimensionless', name: str = 'Voigt', display_name: str | None = None, unique_name: str | None = None, @@ -71,54 +73,52 @@ def __init__( Parameters ---------- area : Numeric | Parameter, default=1.0 - Total area under the curve. + Integrated area under the Voigt profile. Unit is ``x_unit * y_unit``. center : Numeric | Parameter | None, default=None - Center of the Voigt profile. + Peak position in x_unit. If None, defaults to 0 and the center parameter is fixed. gaussian_width : Numeric | Parameter, default=1.0 - Standard deviation of the Gaussian part. + Gaussian component standard deviation (sigma) in x_unit. Must be strictly positive. lorentzian_width : Numeric | Parameter, default=1.0 - Half width at half max (HWHM) of the Lorentzian part. - unit : str | sc.Unit, default='meV' - Unit of the parameters. + Lorentzian component HWHM (gamma) in x_unit. Must be strictly positive. + x_unit : str | sc.Unit, default='meV' + Unit of the x-axis. center, gaussian_width, and lorentzian_width are stored in this + unit. area_unit = x_unit * y_unit. + y_unit : str | sc.Unit, default='dimensionless' + Unit of the y-axis (output). name : str, default='Voigt' - Name of the component for indexing. + Name of the component. display_name : str | None, default=None - Display name of the component. + Display name shown when plotting. Falls back to *name* if None. unique_name : str | None, default=None - Unique name of the component. If None, a unique_name is automatically generated. By - default, None. + Globally unique identifier. Auto-generated if None. """ - super().__init__( - unit=unit, + x_unit=x_unit, + y_unit=y_unit, name=name, display_name=display_name, unique_name=unique_name, ) - # These methods live in ValidationMixin - area = self._create_area_parameter(area=area, name=name, unit=self._unit) - center = self._create_center_parameter( - center=center, name=name, fix_if_none=True, unit=self._unit + self._area = self._create_area_parameter( + area=area, name=name, x_unit=self.x_unit, y_unit=self.y_unit ) - gaussian_width = self._create_width_parameter( + self._center = self._create_center_parameter( + center=center, name=name, fix_if_none=True, x_unit=self.x_unit + ) + self._gaussian_width = self._create_width_parameter( width=gaussian_width, name=name, param_name='gaussian_width', - unit=self._unit, + x_unit=self.x_unit, ) - lorentzian_width = self._create_width_parameter( + self._lorentzian_width = self._create_width_parameter( width=lorentzian_width, name=name, param_name='lorentzian_width', - unit=self._unit, + x_unit=self.x_unit, ) - self._area = area - self._center = center - self._gaussian_width = gaussian_width - self._lorentzian_width = lorentzian_width - @property def area(self) -> Parameter: """ @@ -127,24 +127,22 @@ def area(self) -> Parameter: Returns ------- Parameter - The area parameter. + The area Parameter with unit ``x_unit * y_unit``. """ return self._area @area.setter def area(self, value: Numeric) -> None: """ - Set the value of the area parameter. - Parameters ---------- value : Numeric - The new value for the area parameter. + New area value (in current area unit = x_unit * y_unit). Raises ------ TypeError - If the value is not a number. + If *value* is not a numeric type. """ if not isinstance(value, Numeric): raise TypeError('area must be a number') @@ -158,24 +156,23 @@ def center(self) -> Parameter: Returns ------- Parameter - The center parameter. + The center Parameter with unit ``x_unit``. """ return self._center @center.setter def center(self, value: Numeric | None) -> None: """ - Set the value of the center parameter. - Parameters ---------- value : Numeric | None - The new value for the center parameter. If None, defaults to 0 and is fixed. + New center value in x_unit. If None, the center is set to 0 and the parameter is + fixed. Raises ------ TypeError - If the value is not a number. + If *value* is not None and not a numeric type. """ if value is None: value = 0.0 @@ -187,31 +184,30 @@ def center(self, value: Numeric | None) -> None: @property def gaussian_width(self) -> Parameter: """ - Get the Gaussian width parameter. + Get the Gaussian width parameter (sigma). Returns ------- Parameter - The Gaussian width parameter. + The Gaussian component width (sigma) Parameter with unit ``x_unit``. """ return self._gaussian_width @gaussian_width.setter def gaussian_width(self, value: Numeric) -> None: """ - Set the width parameter value. - + Set the gaussian width parameter value. Parameters ---------- value : Numeric - The new value for the width parameter. + New Gaussian width (sigma) in x_unit. Must be strictly positive. Raises ------ TypeError - If the value is not a number. + If *value* is not a numeric type. ValueError - If the value is not positive. + If *value* is not positive. """ if not isinstance(value, Numeric): raise TypeError('gaussian_width must be a number') @@ -227,7 +223,7 @@ def lorentzian_width(self) -> Parameter: Returns ------- Parameter - The Lorentzian width parameter. + The Lorentzian component HWHM (gamma) Parameter with unit ``x_unit``. """ return self._lorentzian_width @@ -235,18 +231,17 @@ def lorentzian_width(self) -> Parameter: def lorentzian_width(self, value: Numeric) -> None: """ Set the value of the Lorentzian width parameter. - Parameters ---------- value : Numeric - The new value for the Lorentzian width parameter. + New Lorentzian HWHM (gamma) in x_unit. Must be strictly positive. Raises ------ TypeError - If the value is not a number. + If *value* is not a numeric type. ValueError - If the value is not positive. + If *value* is not positive. """ if not isinstance(value, Numeric): raise TypeError('lorentzian_width must be a number') @@ -254,33 +249,60 @@ def lorentzian_width(self, value: Numeric) -> None: raise ValueError('lorentzian_width must be positive') self._lorentzian_width.value = value - def evaluate(self, x: Numeric | list | np.ndarray | sc.Variable | sc.DataArray) -> np.ndarray: - r""" - Evaluate the Voigt at the given x values. + def _evaluate_values(self, x_vals: np.ndarray, eval_unit: str | None) -> np.ndarray: + """ + Evaluate the Voigt at x_vals. - If x is a scipp Variable, the unit of the Voigt will be converted to match x. The Voigt - evaluates to the convolution of a Gaussian with sigma gaussian_width and a Lorentzian with - half width at half max lorentzian_width, centered at center, with area equal to area. + Parameters in the model's own units are temporarily converted to eval_unit for the + computation. Parameters ---------- - x : Numeric | list | np.ndarray | sc.Variable | sc.DataArray - The x values at which to evaluate the Voigt. + x_vals : np.ndarray + Raw x values expressed in eval_unit. + eval_unit : str | None + The unit of x_vals. Returns ------- np.ndarray - The intensity of the Voigt at the given x values. + Evaluated Voigt profile values at x_vals. """ + center = self._resolve_param_value(self._center, eval_unit) + gw = self._resolve_param_value(self._gaussian_width, eval_unit) + lw = self._resolve_param_value(self._lorentzian_width, eval_unit) + area = self._resolve_param_value(self._area, self._eval_area_unit(eval_unit)) + + return area * voigt_profile(x_vals - center, gw, lw) - x = self._prepare_x_for_evaluate(x) + def convert_x_unit(self, new_x_unit: str | sc.Unit) -> None: + """ + Convert x-axis parameters (center, widths) and area to new_x_unit. - return self.area.value * voigt_profile( - x - self.center.value, - self.gaussian_width.value, - self.lorentzian_width.value, + Parameters + ---------- + new_x_unit : str | sc.Unit + Target x-axis unit. Must be dimensionally compatible with the current x_unit. + """ + self._convert_x_unit_area_based( + new_x_unit=new_x_unit, + x_params=[self._center, self._gaussian_width, self._lorentzian_width], + area_param=self._area, ) + def convert_y_unit(self, new_y_unit: str | sc.Unit) -> None: + """ + Convert the y-axis unit by rescaling the area parameter. + + The area is rescaled from ``x_unit * old_y_unit`` to ``x_unit * new_y_unit``. + + Parameters + ---------- + new_y_unit : str | sc.Unit + Target y-axis unit. + """ + self._convert_y_unit_area_based(new_y_unit=new_y_unit, area_param=self._area) + def __repr__(self) -> str: """ Return a string representation of the Voigt. @@ -290,12 +312,11 @@ def __repr__(self) -> str: str A string representation of the Voigt. """ - return ( - f'{self.__class__.__name__}(' - f'name={self.name!r}, display_name={self.display_name!r}, unit={self._unit},\n' - f' area={self.area},\n' - f' center={self.center},\n' - f' gaussian_width={self.gaussian_width},\n' - f' lorentzian_width={self.lorentzian_width})' + f'{self.__class__.__name__}(name = {self.name}, display_name = {self.display_name}, ' + f'x_unit = {self.x_unit}, y_unit = {self.y_unit},\n' + f' area = {self.area},\n' + f' center = {self.center},\n' + f' gaussian_width = {self.gaussian_width},\n' + f' lorentzian_width = {self.lorentzian_width})' ) diff --git a/src/easydynamics/sample_model/diffusion_model/brownian_translational_diffusion.py b/src/easydynamics/sample_model/diffusion_model/brownian_translational_diffusion.py index 04a5bbdda..b15d00120 100644 --- a/src/easydynamics/sample_model/diffusion_model/brownian_translational_diffusion.py +++ b/src/easydynamics/sample_model/diffusion_model/brownian_translational_diffusion.py @@ -52,7 +52,8 @@ def __init__( scale: Numeric = 1.0, diffusion_coefficient: Numeric = 1.0, Q: Q_type | None = None, - unit: str | sc.Unit = 'meV', + x_unit: str | sc.Unit = 'meV', + y_unit: str | sc.Unit = 'dimensionless', name: str = 'BrownianTranslationalDiffusion', display_name: str | None = 'BrownianTranslationalDiffusion', lorentzian_name: str | None = None, @@ -70,8 +71,10 @@ def __init__( Diffusion coefficient D in m^2/s. Q : Q_type | None, default=None Q values for the model. If None, Q is not set. - unit : str | sc.Unit, default='meV' - Unit of the diffusion model. Must be convertible to meV. + x_unit : str | sc.Unit, default='meV' + Unit of the x-axis (energy/frequency). Must be convertible to meV. + y_unit : str | sc.Unit, default='dimensionless' + Unit of the model output (intensity). Determines scale.unit = x_unit * y_unit. name : str, default='BrownianTranslationalDiffusion' Name of the diffusion model. display_name : str | None, default='BrownianTranslationalDiffusion' @@ -96,7 +99,8 @@ def __init__( """ super().__init__( Q=Q, - unit=unit, + x_unit=x_unit, + y_unit=y_unit, scale=scale, name=name, display_name=display_name, @@ -186,7 +190,7 @@ def calculate_width(self, Q: Q_type | None = None) -> np.ndarray: Q = self._ensure_Q(Q) unit_conversion_factor = self._hbar * self.diffusion_coefficient / (self._angstrom**2) - unit_conversion_factor.convert_unit(self.unit) + unit_conversion_factor.convert_unit(self.x_unit) return Q**2 * unit_conversion_factor.value def calculate_EISF(self, Q: Q_type | None = None) -> np.ndarray: @@ -240,12 +244,11 @@ def create_component_collections( Lorentzian has a width given by $D*Q^2$ and an area given by the scale parameter multiplied by the QISF (which is 1 for this model). """ - Q = self.Q - if Q is None: + if self.Q is None: self._component_collections = [] return self._component_collections - Q = Q.values + Q = self.Q.values component_collection_list = [None] * len(Q) # In more complex models, this is used to scale the area of the # Lorentzians and the delta function. @@ -258,31 +261,37 @@ def create_component_collections( component_collection_list[i] = ComponentCollection( name=f'{self.name}_Q{Q_value:.2f}', display_name=f'{self.display_name}_Q{Q_value:.2f}', - unit=self.unit, + x_unit=self.x_unit, + y_unit=self.y_unit, ) lorentzian_component = Lorentzian( name=self.lorentzian_name, display_name=self.lorentzian_display_name, - unit=self.unit, + x_unit=self.x_unit, + y_unit=self.y_unit, ) # Make the width dependent on Q dependency_expression = self._write_width_dependency_expression(Q[i]) dependency_map = self._write_width_dependency_map_expression() - lorentzian_component.width.make_dependent_on( - dependency_expression=dependency_expression, - dependency_map=dependency_map, - desired_unit=self.unit, - ) - - # Make the area dependent on Q - area_dependency_map = self._write_area_dependency_map_expression() - lorentzian_component.area.make_dependent_on( - dependency_expression=self._write_area_dependency_expression(QISF[i]), - dependency_map=area_dependency_map, - ) + # easyscience propagates inf bounds through arithmetic, producing inf/inf=nan + # as a transient intermediate. Python's min/max ignore nan so the final bounds + # are correct; suppress the spurious numpy RuntimeWarning. + with np.errstate(invalid='ignore'): + lorentzian_component.width.make_dependent_on( + dependency_expression=dependency_expression, + dependency_map=dependency_map, + desired_unit=self.x_unit, + ) + + # Make the area dependent on Q + area_dependency_map = self._write_area_dependency_map_expression() + lorentzian_component.area.make_dependent_on( + dependency_expression=self._write_area_dependency_expression(QISF[i]), + dependency_map=area_dependency_map, + ) component_collection_list[i].append_component(lorentzian_component) @@ -340,43 +349,6 @@ def _write_width_dependency_map_expression(self) -> dict[str, DescriptorNumber]: 'angstrom': self._angstrom, } - def _write_area_dependency_expression(self, QISF: float) -> str: - """ - Write the dependency expression for the area to make dependent Parameters. - - Parameters - ---------- - QISF : float - Quasielastic Incoherent Scattering Function. - - Raises - ------ - TypeError - If QISF is not a float. - - Returns - ------- - str - Dependency expression for the area. - """ - if not isinstance(QISF, (float)): - raise TypeError('QISF must be a float.') - - return f'{QISF} * scale' - - def _write_area_dependency_map_expression(self) -> dict[str, DescriptorNumber]: - """ - Write the dependency map expression to make dependent Parameters. - - Returns - ------- - dict[str, DescriptorNumber] - Dependency map for the area. - """ - return { - 'scale': self.scale, - } - # ------------------------------------------------------------------ # dunder methods # ------------------------------------------------------------------ @@ -393,6 +365,7 @@ def __repr__(self) -> str: return ( f'{self.__class__.__name__}(' f'name={self.name!r}, display_name={self.display_name!r},\n' + f'x_unit={self.x_unit}, y_unit={self.y_unit}, \n' f' diffusion_coefficient={self.diffusion_coefficient},\n' f' scale={self.scale})' ) diff --git a/src/easydynamics/sample_model/diffusion_model/delta_lorentz.py b/src/easydynamics/sample_model/diffusion_model/delta_lorentz.py index 0f181481a..de049c4bf 100644 --- a/src/easydynamics/sample_model/diffusion_model/delta_lorentz.py +++ b/src/easydynamics/sample_model/diffusion_model/delta_lorentz.py @@ -11,8 +11,12 @@ from easydynamics.sample_model.components import DeltaFunction from easydynamics.sample_model.components import Lorentzian from easydynamics.sample_model.diffusion_model.diffusion_model_base import DiffusionModelBase +from easydynamics.utils.fit_target import FitTarget +from easydynamics.utils.utils import CANONICAL_Q_UNIT from easydynamics.utils.utils import Numeric from easydynamics.utils.utils import Q_type +from easydynamics.utils.utils import angstrom +from easydynamics.utils.utils import convert_parameter_unit from easydynamics.utils.utils import verify_Q_index MINIMUM_WIDTH = 1e-10 # To avoid division by zero @@ -64,7 +68,8 @@ def __init__( lorentzian_width: Numeric = 1.0, allow_Q_variation: dict | None = None, Q: Q_type | None = None, - unit: str | sc.Unit = 'meV', + x_unit: str | sc.Unit = 'meV', + y_unit: str | sc.Unit = 'dimensionless', name: str = 'DeltaLorentz', display_name: str | None = None, lorentzian_name: str = 'Lorentzian', @@ -93,8 +98,10 @@ def __init__( allowed. Q : Q_type | None, default=None Q values for the model. If None, Q is not set. - unit : str | sc.Unit, default='meV' - Unit of the diffusion model. Must be convertible to meV. + x_unit : str | sc.Unit, default='meV' + Unit of the x-axis (energy/frequency). Must be convertible to meV. + y_unit : str | sc.Unit, default='dimensionless' + Unit of the model output (intensity). Determines scale.unit = x_unit * y_unit. name : str, default='DeltaLorentz' Name of the diffusion model. display_name : str | None, default=None @@ -121,7 +128,8 @@ def __init__( """ super().__init__( scale=scale, - unit=unit, + x_unit=x_unit, + y_unit=y_unit, Q=Q, lorentzian_name=lorentzian_name, lorentzian_display_name=lorentzian_display_name, @@ -135,6 +143,18 @@ def __init__( # -------------------------------------------------------------- self._mean_u_squared = self._create_mean_u_squared_parameter(mean_u_squared) + # Dimensionless /angstrom^2 for use inside exp() in the area dependency + # expressions and the EISF/QISF calculations. Deriving it through the dependency + # graph keeps those quantities correct if mean_u_squared is converted to another + # unit (e.g. nm**2), which a raw `.value` would silently get wrong. + with np.errstate(invalid='ignore'): + self._mean_u_squared_over_angstrom_squared = Parameter.from_dependency( + name='mean_u_squared_over_angstrom_squared', + dependency_expression='mean_u_squared / angstrom**2', + dependency_map={'mean_u_squared': self._mean_u_squared, 'angstrom': angstrom}, + ) + self._mean_u_squared_over_angstrom_squared.set_desired_unit('dimensionless') + self._A_0, self._A_1 = self._create_A0_A1_parameters(A_0) self._lorentzian_width = self._create_lorentzian_width_parameter(lorentzian_width) @@ -387,28 +407,38 @@ def delta_display_name(self, delta_display_name: str | None) -> None: def calculate_width(self, Q: Q_type = None) -> np.ndarray: """ Calculate the half-width at half-maximum (HWHM) for the diffusion model. If the width is - allowed to vary with Q then the Q stored in the model is used and the input is ignored. If - the width is not allowed to vary then the same width is returned for all Q values. + allowed to vary with Q then the requested Q values are matched against the Q stored in the + model and the corresponding per-Q widths are returned. If the width is not allowed to vary + then the same width is returned for all Q values. Parameters ---------- Q : Q_type, default=None - Scattering vector in 1/angstrom. + Scattering vector in 1/angstrom. If None, the Q stored in the model is used. Returns ------- np.ndarray HWHM values in the unit of the model (e.g., meV). - """ - if self._allow_Q_variation['lorentzian_width'] is True: - widths = [lorentzian_width.value for lorentzian_width in self._lorentzian_width_list] - return np.array(widths) + Raises + ------ + ValueError + If Q-variation is enabled but Q has not been set on the model yet, or if the requested + Q values do not match the stored ones. + """ Q = self._ensure_Q(Q) - widths = self.lorentzian_width.value * np.ones_like(Q) + if self._allow_Q_variation['lorentzian_width'] is True: + if not self._lorentzian_width_list: + raise ValueError( + 'Lorentzian width Q-variation list is empty. ' + 'Set Q before calling calculate_width.' + ) + indices = self._match_Q_indices(Q) + return np.array([self._lorentzian_width_list[i].value for i in indices]) - return np.array(widths) + return self.lorentzian_width.value * np.ones_like(Q) def calculate_EISF(self, Q: Q_type = None) -> np.ndarray: """ @@ -425,12 +455,14 @@ def calculate_EISF(self, Q: Q_type = None) -> np.ndarray: EISF values (dimensionless). """ Q = self._ensure_Q(Q) + mean_u_squared = self._mean_u_squared_over_angstrom_squared.value if self._allow_Q_variation['A_0'] is True: - A_0_values = [A_0_.value for A_0_ in self._A_0_list] - return np.exp(-self.mean_u_squared.value * Q**2 / 3) * np.array(A_0_values) + indices = self._match_Q_indices(Q) + A_0_values = [self._A_0_list[i].value for i in indices] + return np.exp(-mean_u_squared * Q**2 / 3) * np.array(A_0_values) A_0_values = [self.A_0.value] * len(Q) - return np.exp(-self.mean_u_squared.value * Q**2 / 3) * np.array(A_0_values) + return np.exp(-mean_u_squared * Q**2 / 3) * np.array(A_0_values) def calculate_QISF(self, Q: Q_type = None) -> np.ndarray: """ @@ -447,12 +479,14 @@ def calculate_QISF(self, Q: Q_type = None) -> np.ndarray: QISF values (dimensionless). """ Q = self._ensure_Q(Q) + mean_u_squared = self._mean_u_squared_over_angstrom_squared.value if self._allow_Q_variation['A_0'] is True: - A_1_values = [A_1_.value for A_1_ in self._A_1_list] - return np.exp(-self.mean_u_squared.value * Q**2 / 3) * np.array(A_1_values) + indices = self._match_Q_indices(Q) + A_1_values = [self._A_1_list[i].value for i in indices] + return np.exp(-mean_u_squared * Q**2 / 3) * np.array(A_1_values) A_1_values = [self.A_1.value] * len(Q) - return np.exp(-self.mean_u_squared.value * Q**2 / 3) * np.array(A_1_values) + return np.exp(-mean_u_squared * Q**2 / 3) * np.array(A_1_values) def create_component_collections( self, @@ -466,10 +500,10 @@ def create_component_collections( List of ComponentCollections with Lorentzian and delta function components for each Q value. """ - Q = self.Q - if Q is None: + if self.Q is None: return [] - Q = Q.values + + Q = self.Q.values if self._allow_Q_variation['A_0'] is True: A_0_list, A_1_list = self._create_A0_A1_parameter_lists(self.A_0) @@ -486,19 +520,21 @@ def create_component_collections( for i, Q_value in enumerate(Q): component_collection_list[i] = ComponentCollection( display_name=f'{self.display_name}_Q{Q_value:.2f}', - unit=self.unit, + x_unit=self.x_unit, + y_unit=self.y_unit, ) # ------------------------------# # Create Lorentzian # ------------------------------# - lorentzian_component = Lorentzian( + lorz_component = Lorentzian( name=self.lorentzian_name, display_name=self.lorentzian_display_name, - unit=self.unit, + x_unit=self.x_unit, + y_unit=self.y_unit, ) if self._allow_Q_variation['lorentzian_width'] is True: - lorentzian_component._width = self._lorentzian_width_list[i] # noqa: SLF001 + lorz_component._width = self._lorentzian_width_list[i] # noqa: SLF001 # If the width is allowed to vary with Q it is independent. # If the width is not allowed to vary with Q it must be made @@ -506,10 +542,10 @@ def create_component_collections( if self._allow_Q_variation['lorentzian_width'] is False: dependency_map = self._write_width_dependency_map_expression() - lorentzian_component.width.make_dependent_on( + lorz_component.width.make_dependent_on( dependency_expression=self._write_lorz_width_dependency_expression(Q_value), dependency_map=dependency_map, - desired_unit=self.unit, + desired_unit=self.x_unit, ) # The area is always a dependent parameter in this model, as # it depends on the scale, mean_u_squared and A_1 parameters @@ -522,12 +558,12 @@ def create_component_collections( else: dependency_map = self._write_lorz_area_dependency_map_expression(None) - lorentzian_component.area.make_dependent_on( + lorz_component.area.make_dependent_on( dependency_expression=self._write_lorz_area_dependency_expression(Q_value), dependency_map=dependency_map, ) - component_collection_list[i].append_component(lorentzian_component) + component_collection_list[i].append_component(lorz_component) # ------------------------------# # Create delta function @@ -536,7 +572,8 @@ def create_component_collections( delta_component = DeltaFunction( name=self.delta_name, display_name=self.delta_display_name, - unit=self.unit, + x_unit=self.x_unit, + y_unit=self.y_unit, ) if self._allow_Q_variation['A_0'] is True: @@ -553,6 +590,32 @@ def create_component_collections( return component_collection_list + def get_fit_targets(self) -> list[FitTarget]: + """ + Get the fittable predictions of the DeltaLorentz model as FitTargets. + + Extends the base ``'area'`` and ``'width'`` predictions with ``'delta_area'`` (``scale * + EISF(Q)``, the delta function's weight), whose default dataset key is derived from the + delta component's name. + + Returns + ------- + list[FitTarget] + The fittable predictions of this model. + """ + targets = super().get_fit_targets() + targets.append( + FitTarget( + name='delta_area', + dataset_key=f'{self.delta_name} area', + function=lambda Q, model=self, **_: model.calculate_EISF(Q) * model.scale.value, + label=f'{self.display_name} delta_area', + x_unit=CANONICAL_Q_UNIT, + y_unit=str(self.scale.unit), + ) + ) + return targets + def get_global_variables(self) -> list[Parameter]: """ Get all global variables from the diffusion model. @@ -790,7 +853,7 @@ def _create_lorentzian_width_parameter(self, lorentzian_width: Numeric) -> Param value=float(lorentzian_width), fixed=False, min=MINIMUM_WIDTH, - unit=self.unit, + unit=self.x_unit, ) def _create_A0_A1_parameter_lists( @@ -857,7 +920,7 @@ def _create_lorentzian_width_parameter_list( value=float(lorentzian_width.value), fixed=False, min=MINIMUM_WIDTH, - unit=self.unit, + unit=self.x_unit, ) for _ in range(len(self.Q)) ] @@ -890,6 +953,20 @@ def _on_Q_change(self) -> None: self._lorentzian_width_list = [] self._component_collections = self.create_component_collections() + def _convert_extra_x_unit_parameters(self, unit_str: str) -> None: + """ + Convert the Lorentzian width template to the new x-axis unit. + + The per-Q width list (when Q-variation is enabled) holds the very Parameter objects used by + the components, so those are converted in place with the collections. + + Parameters + ---------- + unit_str : str + The new x-axis unit as a string. + """ + convert_parameter_unit(self._lorentzian_width, unit_str) + def _write_lorz_width_dependency_expression(self, Q: float) -> str: """ Write the dependency expression for the width as a function of Q to make dependent @@ -952,7 +1029,9 @@ def _write_lorz_area_dependency_expression(self, Q: float) -> str: if not isinstance(Q, (float)): raise TypeError('Q must be a float.') - return f'scale * exp(-mean_u_squared.value * {Q}**2 / 3) * A_1' + # mean_u_squared_ratio is /angstrom^2, kept dimensionless through the dependency + # graph so the expression stays correct if mean_u_squared is converted to another unit. + return f'scale * exp(-mean_u_squared_ratio.value * {Q}**2 / 3) * A_1' def _write_lorz_area_dependency_map_expression( self, Q_index: int | None @@ -974,13 +1053,13 @@ def _write_lorz_area_dependency_map_expression( if Q_index is None: return { 'scale': self.scale, - 'mean_u_squared': self.mean_u_squared, + 'mean_u_squared_ratio': self._mean_u_squared_over_angstrom_squared, 'A_1': self.A_1, } return { 'scale': self.scale, - 'mean_u_squared': self.mean_u_squared, + 'mean_u_squared_ratio': self._mean_u_squared_over_angstrom_squared, 'A_1': self._A_1_list[Q_index], } @@ -1006,7 +1085,9 @@ def _write_delta_area_dependency_expression(self, Q: float) -> str: if not isinstance(Q, (float)): raise TypeError('Q must be a float.') - return f'scale * exp(-mean_u_squared.value * {Q}**2 / 3) * A_0' + # mean_u_squared_ratio is /angstrom^2, kept dimensionless through the dependency + # graph so the expression stays correct if mean_u_squared is converted to another unit. + return f'scale * exp(-mean_u_squared_ratio.value * {Q}**2 / 3) * A_0' def _write_delta_area_dependency_map_expression( self, @@ -1029,12 +1110,12 @@ def _write_delta_area_dependency_map_expression( if Q_index is None: return { 'scale': self.scale, - 'mean_u_squared': self.mean_u_squared, + 'mean_u_squared_ratio': self._mean_u_squared_over_angstrom_squared, 'A_0': self.A_0, } return { 'scale': self.scale, - 'mean_u_squared': self.mean_u_squared, + 'mean_u_squared_ratio': self._mean_u_squared_over_angstrom_squared, 'A_0': self._A_0_list[Q_index], } @@ -1052,10 +1133,10 @@ def __repr__(self) -> str: String representation of the DeltaLorentz model. """ return ( - f'{self.__class__.__name__}(' - f'display_name={self.display_name!r}, unit={self.unit},\n' - f' mean_u_squared={self.mean_u_squared},\n' - f' A_0={self.A_0}, A_1={self.A_1},\n' - f' lorentzian_width={self.lorentzian_width},\n' + f'DeltaLorentz(display_name={self.display_name}, ' + f'x_unit={self.x_unit}, y_unit={self.y_unit}, \n' + f' mean_u_squared={self.mean_u_squared}, \n' + f' A_0={self.A_0}, A_1={self.A_1}, \n' + f' lorentzian_width={self.lorentzian_width}, \n' f' scale={self.scale})' ) diff --git a/src/easydynamics/sample_model/diffusion_model/diffusion_model_base.py b/src/easydynamics/sample_model/diffusion_model/diffusion_model_base.py index ab97f8b94..abf071e7b 100644 --- a/src/easydynamics/sample_model/diffusion_model/diffusion_model_base.py +++ b/src/easydynamics/sample_model/diffusion_model/diffusion_model_base.py @@ -1,6 +1,8 @@ # SPDX-FileCopyrightText: 2026 EasyScience contributors # SPDX-License-Identifier: BSD-3-Clause +from functools import partial + import numpy as np import scipp as sc from easyscience.variable import DescriptorNumber @@ -9,9 +11,13 @@ from easydynamics.base_classes.easydynamics_modelbase import EasyDynamicsModelBase from easydynamics.sample_model.component_collection import ComponentCollection +from easydynamics.utils.fit_target import FitTarget +from easydynamics.utils.utils import CANONICAL_Q_UNIT from easydynamics.utils.utils import Numeric from easydynamics.utils.utils import Q_type from easydynamics.utils.utils import _validate_and_convert_Q +from easydynamics.utils.utils import convert_parameter_unit +from easydynamics.utils.utils import convert_units_with_rollback from easydynamics.utils.utils import verify_Q_index @@ -22,7 +28,8 @@ def __init__( self, scale: Numeric = 1.0, Q: Q_type | None = None, - unit: str | sc.Unit = 'meV', + x_unit: str | sc.Unit = 'meV', + y_unit: str | sc.Unit = 'dimensionless', name: str = 'DiffusionModel', display_name: str | None = 'DiffusionModel', lorentzian_name: str | None = None, @@ -32,14 +39,20 @@ def __init__( """ Initialize a new DiffusionModel. + Unit validation raises ``UnitError`` if x_unit is not a string or scipp Unit, or if it + cannot be converted to meV. + Parameters ---------- scale : Numeric, default=1.0 - Scale factor for the diffusion model. Must be a non-negative number. + Scale factor for the diffusion model. Must be a non-negative number. Its unit equals + area_unit = x_unit * y_unit because scale * QISF/EISF (dimensionless) = component area. Q : Q_type | None, default=None Q values for the model. If None, Q is not set. - unit : str | sc.Unit, default='meV' - Unit of the diffusion model. Must be convertible to meV. + x_unit : str | sc.Unit, default='meV' + Unit of the x-axis (energy/frequency). Must be convertible to meV. + y_unit : str | sc.Unit, default='dimensionless' + Unit of the model output (intensity). Together with x_unit determines area_unit. name : str, default='DiffusionModel' Name of the diffusion model. display_name : str | None, default='DiffusionModel' @@ -58,21 +71,13 @@ def __init__( ------ TypeError If scale is not a number. - UnitError - If unit is not a string or scipp Unit, or if it cannot be converted to meV. ValueError If scale is negative. """ self._Q = _validate_and_convert_Q(Q) - try: - test = DescriptorNumber(name='test', value=1, unit=unit) - test.convert_unit('meV') - except Exception as e: - raise UnitError( - f'Invalid unit: {unit}. Unit must be a string or scipp Unit and convertible to meV.' # noqa: E501 - ) from e + self._assert_convertible_to_mev(x_unit) if not isinstance(scale, Numeric): raise TypeError('scale must be a number.') @@ -80,10 +85,18 @@ def __init__( if float(scale) < 0: raise ValueError('scale must be non-negative.') - scale = Parameter(name='scale', value=float(scale), fixed=False, min=0.0, unit=unit) - self._scale = scale + area_unit = str(sc.Unit(str(x_unit)) * sc.Unit(str(y_unit))) + self._scale = Parameter( + name='scale', value=float(scale), fixed=False, min=0.0, unit=area_unit + ) - super().__init__(unit=unit, name=name, display_name=display_name, unique_name=unique_name) + super().__init__( + x_unit=x_unit, + y_unit=y_unit, + name=name, + display_name=display_name, + unique_name=unique_name, + ) if lorentzian_name is None: lorentzian_name = name @@ -103,7 +116,10 @@ def __init__( if self.Q is None: self._component_collections = [] else: - self._component_collections = [ComponentCollection()] * len(self.Q) + self._component_collections = [ + ComponentCollection(x_unit=self.x_unit, y_unit=self.y_unit) + for _ in range(len(self.Q)) + ] # ------------------------------------------------------------------ # Properties @@ -275,6 +291,167 @@ def clear_Q(self, confirm: bool = False) -> None: self._Q = None self._on_Q_change() + # ------------------------------------------------------------------ + # Unit conversion + # ------------------------------------------------------------------ + + @staticmethod + def _assert_convertible_to_mev(unit: str | sc.Unit) -> None: + """ + Assert that the given unit is an energy unit (convertible to meV). + + Frequency axes such as 1/ps are not supported for now. + + Parameters + ---------- + unit : str | sc.Unit + The unit to validate. + + Raises + ------ + UnitError + If unit is not a string or scipp Unit, or if it cannot be converted to meV. + """ + try: + test = DescriptorNumber(name='test', value=1, unit=str(unit)) + test.convert_unit('meV') + except Exception as e: + raise UnitError( + f'Invalid unit: {unit}. Unit must be a string or scipp Unit and convertible to meV.' # noqa: E501 + ) from e + + def convert_x_unit(self, unit: str | sc.Unit) -> None: + """ + Convert the x-axis unit of the diffusion model. + + Converts the scale parameter (unit ``x_unit * y_unit``), any subclass-specific x-unit + parameters, and the existing component collections in place — parameter values and object + identity are preserved, and nothing is scheduled for regeneration. Only energy units are + supported (the unit must be convertible to meV). + + Unit validation raises ``UnitError`` when the unit is not convertible to meV. If any + conversion fails, the already-converted state is rolled back best-effort before the failing + conversion's exception is re-raised. + + Parameters + ---------- + unit : str | sc.Unit + The new x-axis unit. + + Raises + ------ + TypeError + If unit is not a string or sc.Unit. + """ + if not isinstance(unit, (str, sc.Unit)): + raise TypeError(f'x_unit must be a string or sc.Unit, got {type(unit).__name__}') + unit_str = str(unit) + self._assert_convertible_to_mev(unit_str) + + old_x_unit = str(self.x_unit) + new_scale_unit = str(sc.Unit(unit_str) * sc.Unit(str(self.y_unit))) + old_scale_unit = str(sc.Unit(old_x_unit) * sc.Unit(str(self.y_unit))) + conversions = [ + (partial(convert_parameter_unit, self._scale), new_scale_unit, old_scale_unit), + (self._convert_extra_x_unit_parameters, unit_str, old_x_unit), + ] + conversions.extend( + (collection.convert_x_unit, unit_str, old_x_unit) + for collection in self._component_collections + ) + convert_units_with_rollback(conversions) + + self._x_unit = unit_str + + def convert_y_unit(self, unit: str | sc.Unit) -> None: + """ + Convert the y-axis unit of the diffusion model. + + Converts the scale parameter from ``x_unit * old_y_unit`` to ``x_unit * new_y_unit`` and + the existing component collections in place — parameter values and object identity are + preserved, and nothing is scheduled for regeneration. The new y-unit must be dimensionally + compatible with the current one; the scale conversion raises ``UnitError`` otherwise. If + any conversion fails, the already-converted state is rolled back best-effort before the + failing conversion's exception is re-raised. + + Parameters + ---------- + unit : str | sc.Unit + The new y-axis unit. + + Raises + ------ + TypeError + If unit is not a string or sc.Unit. + """ + if not isinstance(unit, (str, sc.Unit)): + raise TypeError(f'y_unit must be a string or sc.Unit, got {type(unit).__name__}') + unit_str = str(unit) + + old_y_unit = str(self.y_unit) + new_scale_unit = str(sc.Unit(str(self.x_unit)) * sc.Unit(unit_str)) + old_scale_unit = str(sc.Unit(str(self.x_unit)) * sc.Unit(old_y_unit)) + conversions = [ + (partial(convert_parameter_unit, self._scale), new_scale_unit, old_scale_unit), + ] + conversions.extend( + (collection.convert_y_unit, unit_str, old_y_unit) + for collection in self._component_collections + ) + convert_units_with_rollback(conversions) + + self._y_unit = unit_str + + def _convert_extra_x_unit_parameters(self, unit_str: str) -> None: + """ + Convert subclass-specific parameters that carry the x-axis unit. + + The base implementation does nothing; subclasses with x-unit parameters (e.g. a Lorentzian + width template) override this method. + + Parameters + ---------- + unit_str : str + The new x-axis unit as a string. + """ + + # ------------------------------------------------------------------ + # Fit targets + # ------------------------------------------------------------------ + + def get_fit_targets(self) -> list[FitTarget]: + """ + Get the fittable predictions of the diffusion model as FitTargets. + + The base implementation declares ``'area'`` (``scale * QISF(Q)``) and ``'width'`` (the HWHM + ``Gamma(Q)``), with default dataset keys derived from the Lorentzian component's name. + Subclasses with additional predictions (e.g. a delta-function weight) extend this list. The + targets are snapshots: units and default keys reflect the model state at call time. + + Returns + ------- + list[FitTarget] + The fittable predictions of this model. + """ + return [ + FitTarget( + name='area', + dataset_key=f'{self.lorentzian_name} area', + function=lambda Q, model=self, **_: model.calculate_QISF(Q) * model.scale.value, + label=f'{self.display_name} area', + x_unit=CANONICAL_Q_UNIT, + y_unit=str(self.scale.unit), + ), + FitTarget( + name='width', + dataset_key=f'{self.lorentzian_name} width', + function=lambda Q, model=self, **_: model.calculate_width(Q), + label=f'{self.display_name} width', + x_unit=CANONICAL_Q_UNIT, + y_unit=str(self.x_unit), + ), + ] + # ------------------------------------------------------------------ # Methods # ------------------------------------------------------------------ @@ -422,7 +599,9 @@ def create_component_collections(self) -> list[ComponentCollection]: self._component_collections = [] return self._component_collections - self._component_collections = [ComponentCollection()] * len(self.Q) + self._component_collections = [ + ComponentCollection(x_unit=self.x_unit, y_unit=self.y_unit) for _ in range(len(self.Q)) + ] return self._component_collections @@ -454,14 +633,52 @@ def get_component_collections( # private methods # ------------------------------------------------------------------ + def _write_area_dependency_expression(self, QISF: float) -> str: + """ + Write the dependency expression for the Lorentzian area. + + Parameters + ---------- + QISF : float + Q-dependent incoherent scattering function value. + + Raises + ------ + TypeError + If QISF is not a float. + + Returns + ------- + str + Dependency expression for the area. + """ + if not isinstance(QISF, float): + raise TypeError('QISF must be a float.') + return f'{QISF} * scale' + + def _write_area_dependency_map_expression(self) -> dict[str, DescriptorNumber]: + """ + Write the dependency map for the Lorentzian area. + + Returns + ------- + dict[str, DescriptorNumber] + Dependency map for the area. + """ + return {'scale': self.scale} + def _on_Q_change(self) -> None: """Handle changes to the Q values.""" self.create_component_collections() def _ensure_Q(self, Q: Q_type) -> np.ndarray: """ - Convert Q to a numpy array, ensuring it is not None. Uses the stored Q if no input is - given. + Convert Q to a numpy array of values in the canonical Q unit (1/angstrom), ensuring it is + not None. Uses the stored Q if no input is given. + + The stored Q and 1-dimensional numpy input are returned directly (the stored Q was + validated when set; raw numpy values are assumed to be in the canonical unit, as in + :func:`_validate_and_convert_Q`). Other inputs go through full validation and conversion. Parameters ---------- @@ -479,12 +696,51 @@ def _ensure_Q(self, Q: Q_type) -> np.ndarray: If the provided Q and self.Q are both None """ if Q is None: - Q = self.Q - if Q is None: - raise ValueError('Q must be provided either as an argument or set in the model.') + if self._Q is None: + raise ValueError('Q must be provided either as an argument or set in the model.') + return self._Q.values + + if isinstance(Q, np.ndarray) and Q.ndim == 1: + return Q return _validate_and_convert_Q(Q).values + def _match_Q_indices(self, Q_values: np.ndarray) -> np.ndarray: + """ + Map Q values (in 1/angstrom) onto indices of the stored Q. + + Predictions backed by per-Q parameters use this to evaluate a subset of the stored Q values + (e.g. when a fit drops rows with missing data), returning one entry per requested Q instead + of one per stored Q. + + Parameters + ---------- + Q_values : np.ndarray + The requested Q values in 1/angstrom. + + Returns + ------- + np.ndarray + For each requested Q value, the index of the matching stored Q value. + + Raises + ------ + ValueError + If Q is not set on the model, or if any requested Q value does not match a stored Q + value. + """ + if self.Q is None: + raise ValueError('Q must be set in the model to match Q values against it.') + + stored = self.Q.values + indices = np.abs(np.subtract.outer(Q_values, stored)).argmin(axis=1) + if not np.allclose(stored[indices], Q_values): + raise ValueError( + 'Requested Q values do not match the Q values stored in the model. ' + 'Per-Q parameters are only defined at the stored Q values.' + ) + return indices + # ------------------------------------------------------------------ # dunder methods # ------------------------------------------------------------------ @@ -499,8 +755,7 @@ def __repr__(self) -> str: String representation of the DiffusionModel. """ return ( - f'{self.__class__.__name__}(' - f'name={self.name!r}, display_name={self.display_name!r}, ' - f'unit={self.unit},\n' + f'{self.__class__.__name__}(name={self.name}, display_name={self.display_name}, ' + f'x_unit={self.x_unit}, y_unit={self.y_unit}, \n' f' scale={self.scale})' ) diff --git a/src/easydynamics/sample_model/diffusion_model/jump_translational_diffusion.py b/src/easydynamics/sample_model/diffusion_model/jump_translational_diffusion.py index 9dd288ca4..67a693205 100644 --- a/src/easydynamics/sample_model/diffusion_model/jump_translational_diffusion.py +++ b/src/easydynamics/sample_model/diffusion_model/jump_translational_diffusion.py @@ -56,7 +56,8 @@ def __init__( diffusion_coefficient: Numeric = 1.0, relaxation_time: Numeric = 1.0, Q: Q_type | None = None, - unit: str | sc.Unit = 'meV', + x_unit: str | sc.Unit = 'meV', + y_unit: str | sc.Unit = 'dimensionless', name: str = 'JumpTranslationalDiffusion', display_name: str | None = 'JumpTranslationalDiffusion', lorentzian_name: str | None = None, @@ -76,8 +77,10 @@ def __init__( Relaxation time t in ps. Q : Q_type | None, default=None Q values for the model. If None, Q is not set. - unit : str | sc.Unit, default='meV' - Unit of the diffusion model. Must be convertible to meV. + x_unit : str | sc.Unit, default='meV' + Unit of the x-axis (energy/frequency). Must be convertible to meV. + y_unit : str | sc.Unit, default='dimensionless' + Unit of the model output (intensity). Determines scale.unit = x_unit * y_unit. name : str, default='JumpTranslationalDiffusion' Name of the diffusion model. display_name : str | None, default='JumpTranslationalDiffusion' @@ -101,7 +104,8 @@ def __init__( """ super().__init__( Q=Q, - unit=unit, + x_unit=x_unit, + y_unit=y_unit, scale=scale, name=name, display_name=display_name, @@ -246,7 +250,7 @@ def calculate_width(self, Q: Q_type | None = None) -> np.ndarray: unit_conversion_factor_numerator = ( self._hbar * self.diffusion_coefficient / (self._angstrom**2) ) - unit_conversion_factor_numerator.convert_unit(self.unit) + unit_conversion_factor_numerator.convert_unit(self.x_unit) numerator = unit_conversion_factor_numerator.value * Q**2 @@ -306,12 +310,11 @@ def create_component_collections( list[ComponentCollection] List of ComponentCollections with Jump Diffusion Lorentzian components. """ - Q = self.Q - if Q is None: + if self.Q is None: self._component_collections = [] return self._component_collections - Q = Q.values + Q = self.Q.values component_collection_list = [None] * len(Q) # In more complex models, this is used to scale the area of the # Lorentzians and the delta function. @@ -324,31 +327,37 @@ def create_component_collections( component_collection_list[i] = ComponentCollection( name=f'{self.name}_Q{Q_value:.2f}', display_name=f'{self.display_name}_Q{Q_value:.2f}', - unit=self.unit, + x_unit=self.x_unit, + y_unit=self.y_unit, ) lorentzian_component = Lorentzian( name=self.lorentzian_name, display_name=self.lorentzian_display_name, - unit=self.unit, + x_unit=self.x_unit, + y_unit=self.y_unit, ) # Make the width dependent on Q dependency_expression = self._write_width_dependency_expression(Q[i]) dependency_map = self._write_width_dependency_map_expression() - lorentzian_component.width.make_dependent_on( - dependency_expression=dependency_expression, - dependency_map=dependency_map, - desired_unit=self.unit, - ) - - # Make the area dependent on Q - area_dependency_map = self._write_area_dependency_map_expression() - lorentzian_component.area.make_dependent_on( - dependency_expression=self._write_area_dependency_expression(QISF[i]), - dependency_map=area_dependency_map, - ) + # easyscience propagates inf bounds through arithmetic, producing inf/inf=nan + # as a transient intermediate. Python's min/max ignore nan so the final bounds + # are correct; suppress the spurious numpy RuntimeWarning. + with np.errstate(invalid='ignore'): + lorentzian_component.width.make_dependent_on( + dependency_expression=dependency_expression, + dependency_map=dependency_map, + desired_unit=self.x_unit, + ) + + # Make the area dependent on Q + area_dependency_map = self._write_area_dependency_map_expression() + lorentzian_component.area.make_dependent_on( + dependency_expression=self._write_area_dependency_expression(QISF[i]), + dependency_map=area_dependency_map, + ) component_collection_list[i].append_component(lorentzian_component) @@ -406,44 +415,6 @@ def _write_width_dependency_map_expression(self) -> dict[str, DescriptorNumber]: 'angstrom': self._angstrom, } - def _write_area_dependency_expression(self, QISF: float) -> str: - """ - Write the dependency expression for the area to make dependent Parameters. - - Parameters - ---------- - QISF : float - Q-dependent intermediate scattering function. - - Raises - ------ - TypeError - If QISF is not a float. - - Returns - ------- - str - Dependency expression for the area. - """ - - if not isinstance(QISF, (float)): - raise TypeError('QISF must be a float.') - - return f'{QISF} * scale' - - def _write_area_dependency_map_expression(self) -> dict[str, DescriptorNumber]: - """ - Write the dependency map expression to make dependent Parameters. - - Returns - ------- - dict[str, DescriptorNumber] - Dependency map for the area. - """ - return { - 'scale': self.scale, - } - ################################ # dunder methods ################################ @@ -460,6 +431,7 @@ def __repr__(self) -> str: return ( f'{self.__class__.__name__}(' f'name={self.name!r}, display_name={self.display_name!r},\n' + f'x_unit={self.x_unit}, y_unit={self.y_unit}, \n' f' diffusion_coefficient={self.diffusion_coefficient},\n' f' scale={self.scale})' ) diff --git a/src/easydynamics/sample_model/instrument_model.py b/src/easydynamics/sample_model/instrument_model.py index 7c2333513..e6d45447a 100644 --- a/src/easydynamics/sample_model/instrument_model.py +++ b/src/easydynamics/sample_model/instrument_model.py @@ -2,6 +2,7 @@ # SPDX-License-Identifier: BSD-3-Clause from copy import copy +from functools import partial import scipp as sc from easyscience.base_classes.new_base import NewBase @@ -14,6 +15,8 @@ from easydynamics.utils.utils import Q_type from easydynamics.utils.utils import _validate_and_convert_Q from easydynamics.utils.utils import _validate_unit +from easydynamics.utils.utils import convert_parameter_unit +from easydynamics.utils.utils import convert_units_with_rollback from easydynamics.utils.utils import verify_Q_index @@ -60,7 +63,7 @@ def __init__( resolution_model: ResolutionModel | SampleModel | None = None, background_model: BackgroundModel | None = None, energy_offset: Numeric | None = None, - unit: str | sc.Unit = 'meV', + x_unit: str | sc.Unit = 'meV', ) -> None: """ Initialize an InstrumentModel. @@ -83,7 +86,7 @@ def __init__( energy_offset : Numeric | None, default=None Template energy offset of the instrument. Will be copied to each Q value. If None, the energy offset will be 0. - unit : str | sc.Unit, default='meV' + x_unit : str | sc.Unit, default='meV' The unit of the energy axis. Raises @@ -97,7 +100,7 @@ def __init__( unique_name=unique_name, ) - self._unit = _validate_unit(unit) + self._x_unit = _validate_unit(x_unit) if resolution_model is None: self._resolution_model = ResolutionModel() @@ -130,7 +133,7 @@ def __init__( self._energy_offset = Parameter( name='energy_offset', value=float(energy_offset), - unit=self.unit, + unit=self.x_unit, fixed=False, ) self._energy_offsets: list = [] @@ -189,7 +192,6 @@ def background_model(self) -> BackgroundModel: BackgroundModel The background model of the instrument. """ - return self._background_model @background_model.setter @@ -207,7 +209,6 @@ def background_model(self, value: BackgroundModel) -> None: TypeError If value is not a BackgroundModel. """ - if not isinstance(value, BackgroundModel): raise TypeError( f'background_model must be a BackgroundModel, got {type(value).__name__}' @@ -263,61 +264,56 @@ def Q(self, value: Q_type | None) -> None: ) @property - def unit(self) -> str | sc.Unit: + def x_unit(self) -> str | sc.Unit | None: """ - Get the unit of the InstrumentModel. + Get the x-axis unit of the InstrumentModel. Returns ------- - str | sc.Unit - The unit of the InstrumentModel. + str | sc.Unit | None + The x-axis unit of the InstrumentModel. """ - return self._unit + return self._x_unit - @unit.setter - def unit(self, _unit_str: str) -> None: + @x_unit.setter + def x_unit(self, _: str) -> None: """ - Set the unit of the InstrumentModel. - - The unit is read-only and cannot be set directly. Use convert_unit to change the unit - between allowed types or create a new InstrumentModel with the desired unit. + x_unit is read-only and cannot be set directly. - Parameters - ---------- - _unit_str : str - The new unit for the InstrumentModel (ignored). + Use convert_x_unit to change the unit between allowed types or create a new InstrumentModel + with the desired unit. Raises ------ AttributeError - Always, as the unit is read-only. + Always, as x_unit is read-only. """ raise AttributeError( - f'Unit is read-only. Use convert_unit to change the unit between allowed types ' + f'x_unit is read-only. Use convert_x_unit to change the unit between allowed types ' f'or create a new {self.__class__.__name__} with the desired unit.' ) @property def energy_offset(self) -> Parameter: """ - Get the energy offset template parameter of the instrument model. + Get the template energy offset of the instrument. Returns ------- Parameter - The energy offset template parameter of the instrument model. + The energy offset Parameter. Each Q value gets its own copy via get_energy_offset(). """ return self._energy_offset @energy_offset.setter def energy_offset(self, value: Numeric) -> None: """ - Set the offset parameter of the instrument model. + Set the template energy offset value, propagating to all Q-specific offsets. Parameters ---------- value : Numeric - The new value for the energy offset parameter. Will be copied to all Q values. + The new energy offset value in x_unit. Raises ------ @@ -327,7 +323,6 @@ def energy_offset(self, value: Numeric) -> None: if not isinstance(value, Numeric): raise TypeError(f'energy_offset must be a number, got {type(value).__name__}') self._energy_offset.value = value - self._on_energy_offset_change() # -------------------------------------------------------------- @@ -358,32 +353,38 @@ def clear_Q(self, confirm: bool = False) -> None: self.resolution_model.clear_Q(confirm=True) self._on_Q_change() - def convert_unit(self, unit_str: str | sc.Unit) -> None: + def convert_x_unit(self, x_unit: str | sc.Unit) -> None: """ Convert the unit of the InstrumentModel. Parameters ---------- - unit_str : str | sc.Unit + x_unit : str | sc.Unit The unit to convert to. Raises ------ ValueError - If unit_str is not a valid unit string or scipp Unit. + If x_unit is not a valid unit string or scipp Unit. """ - unit = _validate_unit(unit_str) + unit = _validate_unit(x_unit) if unit is None: - raise ValueError('unit_str must be a valid unit string or scipp Unit') + raise ValueError('x_unit must be a valid unit string or scipp Unit') - self._background_model.convert_unit(unit) - self._resolution_model.convert_unit(unit) - self._energy_offset.convert_unit(unit) self._ensure_energy_offsets_current() - for offset in self._energy_offsets: - offset.convert_unit(unit) + old_unit = self.x_unit + conversions = [ + (self._background_model.convert_x_unit, unit, old_unit), + (self._resolution_model.convert_x_unit, unit, old_unit), + (partial(convert_parameter_unit, self._energy_offset), unit, old_unit), + ] + conversions.extend( + (partial(convert_parameter_unit, offset), unit, old_unit) + for offset in self._energy_offsets + ) + convert_units_with_rollback(conversions) - self._unit = unit + self._x_unit = unit def get_all_variables(self, Q_index: int | None = None) -> list[Parameter]: """ @@ -514,6 +515,7 @@ def _fix_or_free_energy_offset(self, Q_index: int | None = None, fixed: bool = T self._ensure_energy_offsets_current() verify_Q_index(Q_index=Q_index, Q=self._Q, allow_none=True) if Q_index is None: + self._energy_offset.fixed = fixed for offset in self._energy_offsets: offset.fixed = fixed else: @@ -566,11 +568,10 @@ def __repr__(self) -> str: str A string representation of the InstrumentModel. """ - return ( f'{self.__class__.__name__}(' f'unique_name={self.unique_name!r}, ' - f'unit={self.unit}, ' + f'x_unit={self.x_unit}, ' f'Q_len={None if self._Q is None else len(self._Q)}, ' f'resolution_model={self._resolution_model!r}, ' f'background_model={self._background_model!r})' diff --git a/src/easydynamics/sample_model/model_base.py b/src/easydynamics/sample_model/model_base.py index 12437b7a1..9a20e53fc 100644 --- a/src/easydynamics/sample_model/model_base.py +++ b/src/easydynamics/sample_model/model_base.py @@ -13,6 +13,7 @@ from easydynamics.utils.utils import Numeric from easydynamics.utils.utils import Q_type from easydynamics.utils.utils import _validate_and_convert_Q +from easydynamics.utils.utils import convert_units_with_rollback from easydynamics.utils.utils import verify_Q_index @@ -27,7 +28,8 @@ def __init__( self, display_name: str = 'MyModelBase', unique_name: str | None = None, - unit: str | sc.Unit | None = 'meV', + x_unit: str | sc.Unit | None = 'meV', + y_unit: str | sc.Unit = 'dimensionless', components: ModelComponent | ComponentCollection | None = None, Q: Q_type | None = None, ) -> None: @@ -40,8 +42,10 @@ def __init__( Display name of the model. unique_name : str | None, default=None Unique name of the model. If None, a unique name will be generated. - unit : str | sc.Unit | None, default='meV' - Unit of the model. + x_unit : str | sc.Unit | None, default='meV' + Unit of the x-axis (energy, Q, etc.). + y_unit : str | sc.Unit, default='dimensionless' + Unit of the model output (intensity). components : ModelComponent | ComponentCollection | None, default=None Template components of the model. If None, no components are added. These components are copied into ComponentCollections for each Q value. @@ -54,7 +58,8 @@ def __init__( If components is not a ModelComponent or ComponentCollection. """ super().__init__( - unit=unit, + x_unit=x_unit, + y_unit=y_unit, display_name=display_name, unique_name=unique_name, ) @@ -75,17 +80,19 @@ def __init__( self.append_component(components) def evaluate( - self, x: Numeric | list | np.ndarray | sc.Variable | sc.DataArray - ) -> list[np.ndarray]: + self, + x: Numeric | list | np.ndarray | sc.Variable | sc.DataArray, + output: str = 'numpy', + ) -> list[np.ndarray] | list[sc.Variable]: """ Evaluate the sample model at all Q for the given x values. Parameters ---------- x : Numeric | list | np.ndarray | sc.Variable | sc.DataArray - Energy axis values to evaluate the model at. If a scipp Variable or DataArray is - provided, the unit of the model will be converted to match the unit of x for - evaluation, and the result will be returned in the same unit as x. + Energy axis values to evaluate the model at. + output : str, default='numpy' + 'numpy' returns np.ndarray per Q; 'scipp' returns sc.Variable per Q. Raises ------ @@ -94,15 +101,16 @@ def evaluate( Returns ------- - list[np.ndarray] - A list of numpy arrays containing the evaluated model values for each Q. The length of - the list will match the number of Q values in the model. + list[np.ndarray] | list[sc.Variable] + A list of arrays containing the evaluated model values for each Q. The length of the + list will match the number of Q values in the model. """ - self._ensure_component_collections_current() if not self._component_collections: raise ValueError('No components in the model to evaluate.') - return [collection.evaluate(x) for collection in self._component_collections] + return [ + collection.evaluate(x, output=output) for collection in self._component_collections + ] # ------------------------------------------------------------------ # Component management @@ -258,40 +266,62 @@ def clear_Q(self, confirm: bool = False) -> None: # Other methods # ------------------------------------------------------------------ - def convert_unit(self, unit: str | sc.Unit) -> None: + def convert_x_unit(self, unit: str | sc.Unit) -> None: + """ + Convert the x-axis unit of all components in the model. + + Parameters + ---------- + unit : str | sc.Unit + The new x-axis unit to convert to. + """ + self._convert_axis_unit(unit, axis='x') + + def convert_y_unit(self, unit: str | sc.Unit) -> None: """ - Convert the unit of the ComponentCollection and all its components. + Convert the y-axis unit of all components in the model. + + Parameters + ---------- + unit : str | sc.Unit + The new y-axis unit to convert to. + """ + self._convert_axis_unit(unit, axis='y') + + def _convert_axis_unit(self, unit: str | sc.Unit, axis: str) -> None: + """ + Convert one axis unit on all template components and per-Q collections. + + Converts every child via its ``convert__unit`` method and updates the model's own + unit attribute. On failure, attempts a best-effort rollback of all children to the old unit + before re-raising the failing conversion's exception. Parameters ---------- unit : str | sc.Unit The new unit to convert to. + axis : str + Which axis to convert: ``'x'`` or ``'y'``. Raises ------ TypeError If the provided unit is not a string or sc.Unit. - Exception - If the provided unit is not compatible with the current unit. """ - - old_unit = self._unit - if not isinstance(unit, (str, sc.Unit)): raise TypeError(f'Unit must be a string or sc.Unit, got {type(unit).__name__}') - try: - for component in self.components: - component.convert_unit(unit) - self._unit = unit - except Exception as e: - # Attempt to rollback on failure - try: - for component in self.components: - component.convert_unit(old_unit) - except Exception: # noqa: S110 - pass # Best effort rollback - raise e - self._on_components_change() + + method = f'convert_{axis}_unit' + old_unit = self.x_unit if axis == 'x' else self.y_unit + children = [*self.components, *self._component_collections] + convert_units_with_rollback([ + (getattr(child, method), unit, old_unit) for child in children + ]) + unit_str = str(unit) if isinstance(unit, sc.Unit) else unit + if axis == 'x': + self._x_unit = unit_str + else: + self._y_unit = unit_str def fix_all_parameters(self) -> None: """Fix all Parameters in all ComponentCollections.""" @@ -371,7 +401,6 @@ def _ensure_component_collections_current(self) -> None: def _generate_component_collections(self) -> None: """Generate ComponentCollections for each Q value.""" - if self.Q is None: self._component_collections = [] return @@ -404,7 +433,8 @@ def __repr__(self) -> str: return ( f'{self.__class__.__name__}(' f'unique_name={self.unique_name!r}, ' - f'unit={self.unit}, ' + f'x_unit={self.x_unit}, ' + f'y_unit={self.y_unit}, ' f'Q={None if self.Q is None else self.Q.values}, ' f'components={self.components})' ) diff --git a/src/easydynamics/sample_model/resolution_model.py b/src/easydynamics/sample_model/resolution_model.py index ce5117ff7..a9fc9e1ee 100644 --- a/src/easydynamics/sample_model/resolution_model.py +++ b/src/easydynamics/sample_model/resolution_model.py @@ -51,12 +51,13 @@ def __init__( self, display_name: str = 'MyResolutionModel', unique_name: str | None = None, - unit: str | sc.Unit = 'meV', + x_unit: str | sc.Unit = 'meV', + y_unit: str | sc.Unit = 'dimensionless', components: ModelComponent | ComponentCollection | None = None, Q: Q_type | None = None, ) -> None: """ - Initialize a ResolutionModel. + Initialize the ResolutionModel. Parameters ---------- @@ -64,19 +65,20 @@ def __init__( Display name of the model. unique_name : str | None, default=None Unique name of the model. If None, a unique name will be generated. - unit : str | sc.Unit, default='meV' - Unit of the model. + x_unit : str | sc.Unit, default='meV' + Unit of the x-axis. + y_unit : str | sc.Unit, default='dimensionless' + Unit of the y-axis (output). components : ModelComponent | ComponentCollection | None, default=None - Template components of the model. If None, no components are added. These components - are copied into ComponentCollections for each Q value. + Template components. DeltaFunction, Polynomial, and Exponential are not allowed. Q : Q_type | None, default=None Q values for the model. If None, Q is not set. """ - super().__init__( display_name=display_name, unique_name=unique_name, - unit=unit, + x_unit=x_unit, + y_unit=y_unit, components=components, Q=Q, ) @@ -85,8 +87,8 @@ def append_component(self, component: ModelComponent | ComponentCollection) -> N """ Append a component to the ResolutionModel. - Does not allow DeltaFunction or Polynomial components, as these are not physical resolution - components. + Does not allow DeltaFunction, Polynomial, or Exponential components, as these are not + physical resolution components. Parameters ---------- @@ -96,7 +98,7 @@ def append_component(self, component: ModelComponent | ComponentCollection) -> N Raises ------ TypeError - If the component is a DeltaFunction or Polynomial. + If the component is a DeltaFunction, Polynomial, or Exponential. """ components = component if isinstance(component, ComponentCollection) else (component,) @@ -151,22 +153,27 @@ def from_sample_model( resolution_model = cls( display_name=sample_model.display_name, - unit=sample_model.unit, + x_unit=sample_model.x_unit, + y_unit=sample_model.y_unit, components=sample_model.components, Q=sample_model.Q, ) if sample_model.Q is not None: - resolution_model._ensure_component_collections_current() - for index in range(len(sample_model.Q)): - resolution_model._component_collections[index] = copy( - sample_model.get_component_collection(Q_index=index) - ) - if normalize_area: - resolution_model.normalize_area() - - if fix_parameters: - resolution_model.fix_all_parameters() + # Prepare the per-Q collections detached from the model so no EasyScience + # callback can schedule a rebuild halfway through, then install them and + # clear the dirty flag in one final step. + collections = [ + copy(sample_model.get_component_collection(Q_index=index)) + for index in range(len(sample_model.Q)) + ] + for collection in collections: + if normalize_area: + collection.normalize_area() + if fix_parameters: + collection.fix_all_parameters() + resolution_model._component_collections = collections + resolution_model._component_collections_is_dirty = False return resolution_model @@ -174,7 +181,8 @@ def __repr__(self) -> str: return ( f'{self.__class__.__name__}(' f'unique_name={self.unique_name!r}, ' - f'unit={self.unit}, ' + f'x_unit={self.x_unit}, ' + f'y_unit={self.y_unit}, ' f'Q_len={None if self._Q is None else len(self._Q)}, ' f'components={self.components})' ) diff --git a/src/easydynamics/sample_model/sample_model.py b/src/easydynamics/sample_model/sample_model.py index 3991a10f9..c253590ec 100644 --- a/src/easydynamics/sample_model/sample_model.py +++ b/src/easydynamics/sample_model/sample_model.py @@ -16,6 +16,7 @@ from easydynamics.utils.utils import Numeric from easydynamics.utils.utils import Q_type from easydynamics.utils.utils import _validate_and_convert_Q +from easydynamics.utils.utils import convert_units_with_rollback class SampleModel(ModelBase): @@ -66,7 +67,8 @@ def __init__( self, display_name: str = 'MySampleModel', unique_name: str | None = None, - unit: str | sc.Unit = 'meV', + x_unit: str | sc.Unit = 'meV', + y_unit: str | sc.Unit = 'dimensionless', components: ModelComponent | ComponentCollection | None = None, Q: Q_type | None = None, diffusion_models: DiffusionModelBase | list[DiffusionModelBase] | None = None, @@ -83,33 +85,31 @@ def __init__( Display name of the model. unique_name : str | None, default=None Unique name of the model. If None, a unique name will be generated. - unit : str | sc.Unit, default='meV' - Unit of the model. If None,. + x_unit : str | sc.Unit, default='meV' + Unit of the x-axis. + y_unit : str | sc.Unit, default='dimensionless' + Unit of the y-axis (output). components : ModelComponent | ComponentCollection | None, default=None - Template components of the model. If None, no components are added. These components - are copied into ComponentCollections for each Q value. + Template components copied into each Q's ComponentCollection. Q : Q_type | None, default=None - Q values for the model. If None, Q is not set. + Q values. If None, Q is not set. diffusion_models : DiffusionModelBase | list[DiffusionModelBase] | None, default=None - Diffusion models to include in the SampleModel. If None, no diffusion models are added. + Diffusion models to include. Each must be a DiffusionModelBase. temperature : float | None, default=None - Temperature for detailed balancing. If None, no detailed balancing is applied. By - default, None. + Sample temperature in temperature_unit. If provided, detailed balance is applied. temperature_unit : str | sc.Unit, default='K' - Unit of the temperature. + Unit for the temperature parameter. detailed_balance_settings : DetailedBalanceSettings | None, default=None - Settings for detailed balancing. + Detailed balance settings. If None, default settings are used. Raises ------ TypeError - If diffusion_models is not a DiffusionModelBase, a list of DiffusionModelBase, or None, - or if temperature is not a number or None, or if detailed_balance_settings is not a - DetailedBalanceSettings instance. + If diffusion_models contains non-DiffusionModelBase items, temperature is not numeric, + or detailed_balance_settings is not a DetailedBalanceSettings instance. ValueError If temperature is negative. """ - if diffusion_models is None: self._diffusion_models = [] elif isinstance(diffusion_models, DiffusionModelBase): @@ -131,7 +131,8 @@ def __init__( super().__init__( display_name=display_name, unique_name=unique_name, - unit=unit, + x_unit=x_unit, + y_unit=y_unit, components=components, Q=Q, ) @@ -178,7 +179,6 @@ def append_diffusion_model(self, diffusion_model: DiffusionModelBase) -> None: TypeError If the diffusion_model is not a DiffusionModelBase. """ - if not isinstance(diffusion_model, DiffusionModelBase): raise TypeError( f'diffusion_model must be a DiffusionModelBase, got {type(diffusion_model).__name__}' # noqa: E501 @@ -201,15 +201,19 @@ def remove_diffusion_model(self, name: str) -> None: ValueError If no DiffusionModel with the given name is found. """ - for i, dm in enumerate(self.diffusion_models): - if dm.name == name: - del self.diffusion_models[i] - self._component_collections_is_dirty = True - return - raise ValueError( - f'No DiffusionModel with name {name} found. \n' - f'The available names are: {[dm.name for dm in self.diffusion_models]}' - ) + matches = [i for i, dm in enumerate(self.diffusion_models) if dm.name == name] + if len(matches) == 0: + raise ValueError( + f'No DiffusionModel with name {name!r} found. ' + f'Available names are: {[dm.name for dm in self.diffusion_models]}' + ) + if len(matches) > 1: + raise ValueError( + f'Multiple DiffusionModels share the name {name!r}. ' + f'Rename them to have unique names before removing.' + ) + del self.diffusion_models[matches[0]] + self._component_collections_is_dirty = True def clear_diffusion_models(self) -> None: """Clear all DiffusionModels from the SampleModel.""" @@ -250,7 +254,6 @@ def diffusion_models( TypeError If value is not a DiffusionModelBase, a list of DiffusionModelBase, or None. """ - if value is None: self._diffusion_models = [] self._on_diffusion_models_change() @@ -292,7 +295,7 @@ def temperature(self, value: Numeric | None) -> None: Parameters ---------- value : Numeric | None - The temperature value to set. Can be a number or None to unset the temperature. + The temperature value. If None, temperature is cleared (no detailed balance). Raises ------ @@ -325,12 +328,12 @@ def temperature(self, value: Numeric | None) -> None: @property def temperature_unit(self) -> str | sc.Unit: """ - Get the temperature unit of the SampleModel. + Get the temperature unit. Returns ------- str | sc.Unit - The unit of the temperature Parameter. + The unit of the temperature parameter. """ return self._temperature_unit @@ -351,8 +354,8 @@ def temperature_unit(self, _value: str | sc.Unit) -> None: """ raise AttributeError( - f'Temperature_unit is read-only. Use convert_temperature_unit to change the unit between allowed types ' # noqa: E501 - f'or create a new {self.__class__.__name__} with the desired unit.' + f'Temperature_unit is read-only. Use convert_temperature_unit to change the unit ' + f'between allowed types or create a new {self.__class__.__name__} with the desired unit.' # noqa: E501 ) def convert_temperature_unit(self, unit: str | sc.Unit) -> None: @@ -382,10 +385,50 @@ def convert_temperature_unit(self, unit: str | sc.Unit) -> None: self._temperature_unit = unit except Exception: # Attempt to rollback on failure + with suppress(Exception): self.temperature.convert_unit(old_unit) raise + def _convert_axis_unit(self, unit: str | sc.Unit, axis: str) -> None: + """ + Convert one axis unit on the SampleModel, including any attached diffusion models. + + Extends the ModelBase conversion (template components and per-Q collections) by also + converting each diffusion model, whose regenerated collections would otherwise come back in + the old unit on the next rebuild. + + Parameters + ---------- + unit : str | sc.Unit + The new unit to convert to. + axis : str + Which axis to convert: ``'x'`` or ``'y'``. + + Raises + ------ + Exception + If any conversion fails; the already-converted diffusion models and the ModelBase state + are rolled back before re-raising. + """ + old_unit = self.x_unit if axis == 'x' else self.y_unit + super()._convert_axis_unit(unit, axis) + + method = f'convert_{axis}_unit' + try: + convert_units_with_rollback([ + (getattr(diffusion_model, method), unit, old_unit) + for diffusion_model in self.diffusion_models + ]) + except Exception: + if old_unit is not None: + with suppress(Exception): + super()._convert_axis_unit(old_unit, axis) + raise + # Everything is converted in place (the merged collections share the diffusion models' + # component objects), so nothing is marked dirty: conversion must not discard the + # per-Q state by triggering a rebuild. + @property def normalize_detailed_balance(self) -> bool: """ @@ -420,12 +463,12 @@ def normalize_detailed_balance(self, value: bool) -> None: @property def use_detailed_balance(self) -> bool: """ - Get whether to apply detailed balance to the model. + Get whether detailed balance correction is applied. Returns ------- bool - True if detailed balance is applied, False otherwise. + True if detailed balance is applied during evaluation, False otherwise """ return self.detailed_balance_settings.use_detailed_balance @@ -451,12 +494,12 @@ def use_detailed_balance(self, value: bool) -> None: @property def detailed_balance_settings(self) -> DetailedBalanceSettings: """ - Get the DetailedBalanceSettings of the SampleModel. + Get the detailed balance settings. Returns ------- DetailedBalanceSettings - The DetailedBalanceSettings of the SampleModel. + The detailed balance settings object. """ return self._detailed_balance_settings @@ -484,31 +527,33 @@ def detailed_balance_settings(self, value: DetailedBalanceSettings) -> None: # ------------------------------------------------------------------ def evaluate( - self, x: Numeric | list | np.ndarray | sc.Variable | sc.DataArray - ) -> list[np.ndarray]: + self, + x: Numeric | list | np.ndarray | sc.Variable | sc.DataArray, + output: str = 'numpy', + ) -> list[np.ndarray] | list[sc.Variable]: """ Evaluate the sample model at all Q for the given x values. Parameters ---------- x : Numeric | list | np.ndarray | sc.Variable | sc.DataArray - The x values to evaluate the model at. Can be a number, list, numpy array, scipp - Variable, or scipp DataArray. + The x values to evaluate the model at. + output : str, default='numpy' + 'numpy' returns list of np.ndarray; 'scipp' returns list of sc.Variable. Returns ------- - list[np.ndarray] + list[np.ndarray] | list[sc.Variable] List of evaluated model values for each Q. """ - - y = super().evaluate(x) + y = super().evaluate(x, output=output) if self.temperature is not None and self.detailed_balance_settings.use_detailed_balance: DBF = detailed_balance_factor( energy=x, temperature=self.temperature, divide_by_temperature=self.detailed_balance_settings.normalize_detailed_balance, - energy_unit=self.unit, + energy_unit=self.x_unit, ) y = [yi * DBF for yi in y] @@ -530,10 +575,8 @@ def get_all_variables(self, Q_index: int | None = None) -> list[Parameter]: Returns ------- list[Parameter] - List of all Parameters and Descriptors, including temperature if set and all variables - from diffusion models. + All Parameters and Descriptors in the SampleModel. """ - all_vars = super().get_all_variables(Q_index=Q_index) if self.temperature is not None: all_vars.append(self.temperature) @@ -557,8 +600,7 @@ def _generate_component_collections(self) -> None: if self.Q is None: return - # Generate components from diffusion models - # and add to component collections + # Generate components from diffusion models and add to component collections for diffusion_model in self.diffusion_models: diffusion_collections = diffusion_model.get_component_collections() for target, source in zip( @@ -595,12 +637,11 @@ def __repr__(self) -> str: str A string representation of the SampleModel. """ - return ( - f'{self.__class__.__name__}(' - f'unique_name={self.unique_name!r}, unit={self.unit},\n' - f' Q={self.Q},\n' - f' components={self.components}, diffusion_models={self.diffusion_models},\n' - f' temperature={self.temperature},\n' - f' detailed_balance_settings={self.detailed_balance_settings})' + f'{self.__class__.__name__}(unique_name={self.unique_name}, ' + f'x_unit={self.x_unit}, y_unit={self.y_unit}, ' + f'Q = {None if self.Q is None else self.Q.values}, \n ' + f'components = {self.components}, diffusion_models = {self.diffusion_models}, ' + f'temperature = {self.temperature}, ' + f'detailed_balance_settings = {self.detailed_balance_settings})' ) diff --git a/src/easydynamics/settings/convolution_settings.py b/src/easydynamics/settings/convolution_settings.py index fadc13a1e..1ac059c73 100644 --- a/src/easydynamics/settings/convolution_settings.py +++ b/src/easydynamics/settings/convolution_settings.py @@ -89,7 +89,10 @@ def __init__( raise TypeError('suppress_warnings must be True or False.') self._suppress_warnings = suppress_warnings - self._convolution_plan_is_valid = False + # Plan-invalidation bookkeeping for convolvers sharing this settings object. + # _plan_version is bumped whenever an accuracy knob changes; each convolver records + # the version it last rebuilt against and rebuilds when the versions differ. + self._plan_version = 0 @property def upsample_factor(self) -> Numeric | None: @@ -123,7 +126,7 @@ def upsample_factor(self, factor: Numeric | None) -> None: """ if factor is None: self._upsample_factor = factor - self.convolution_plan_is_valid = False + self._invalidate_plan() return if not isinstance(factor, Numeric): @@ -134,7 +137,7 @@ def upsample_factor(self, factor: Numeric | None) -> None: self._upsample_factor = factor - self.convolution_plan_is_valid = False + self._invalidate_plan() @property def extension_factor(self) -> float: @@ -179,38 +182,32 @@ def extension_factor(self, factor: Numeric) -> None: raise ValueError('Extension factor must be non-negative.') self._extension_factor = float(factor) - self.convolution_plan_is_valid = False + self._invalidate_plan() - @property - def convolution_plan_is_valid(self) -> bool: + def _invalidate_plan(self) -> None: """ - Get whether the convolution plan is valid. + Invalidate the convolution plan for every convolver sharing these settings. - Returns - ------- - bool - Whether the convolution plan is valid. + Bumps the plan version, so every convolver that recorded an earlier version rebuilds its + plan before the next convolution. """ - return self._convolution_plan_is_valid + self._plan_version += 1 - @convolution_plan_is_valid.setter - def convolution_plan_is_valid(self, is_valid: bool) -> None: + def _plan_valid_for(self, seen_version: int) -> bool: """ - Set whether the convolution plan is valid. + Check whether a convolver that last rebuilt at seen_version can skip rebuilding. Parameters ---------- - is_valid : bool - Whether the convolution plan is valid. + seen_version : int + The plan version the convolver recorded when it last rebuilt its plan. - Raises - ------ - TypeError - If is_valid is not a bool. + Returns + ------- + bool + True if no invalidation happened since the convolver's rebuild. """ - if not isinstance(is_valid, bool): - raise TypeError('convolution_plan_is_valid must be True or False.') - self._convolution_plan_is_valid = is_valid + return seen_version == self._plan_version @property def suppress_warnings(self) -> bool: @@ -243,6 +240,22 @@ def suppress_warnings(self, suppress: bool) -> None: raise TypeError('suppress_warnings must be True or False.') self._suppress_warnings = suppress + def __copy__(self) -> 'ConvolutionSettings': + """ + Return a shallow copy of the ConvolutionSettings. + + Returns + ------- + 'ConvolutionSettings' + A new ConvolutionSettings instance with the same parameter values. + """ + return ConvolutionSettings( + upsample_factor=self.upsample_factor, + extension_factor=self.extension_factor, + suppress_warnings=self.suppress_warnings, + display_name=self.display_name, + ) + def __repr__(self) -> str: """ Return a string representation of the ConvolutionSettings. diff --git a/tests/performance_tests/convolution/convolution_width_thresholds.ipynb b/tests/performance_tests/convolution/convolution_width_thresholds.ipynb index fbb5df296..543002d54 100644 --- a/tests/performance_tests/convolution/convolution_width_thresholds.ipynb +++ b/tests/performance_tests/convolution/convolution_width_thresholds.ipynb @@ -48,7 +48,7 @@ ")\n", "numerical_convolver.upsample_factor = None\n", "for gwidth in gaussian_widths:\n", - " sample_components.components[0].width = gwidth\n", + " sample_components[0].width = gwidth\n", " y_analytical = analytical_convolver.convolution()\n", "\n", " y_numerical = numerical_convolver.convolution()\n", @@ -106,8 +106,8 @@ ")\n", "numerical_convolver.upsample_factor = None\n", "for gwidth, gcenter in zip(gaussian_widths, gaussian_centers, strict=True):\n", - " sample_components.components[0].width = gwidth\n", - " sample_components.components[0].center = gcenter\n", + " sample_components[0].width = gwidth\n", + " sample_components[0].center = gcenter\n", " y_analytical = analytical_convolver.convolution()\n", "\n", " y_numerical = numerical_convolver.convolution()\n", @@ -135,7 +135,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "default", "language": "python", "name": "python3" }, @@ -149,7 +149,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.14.4" + "version": "3.14.5" } }, "nbformat": 4, diff --git a/tests/performance_tests/utils/detailed_balance_approximations.ipynb b/tests/performance_tests/utils/detailed_balance_approximations.ipynb index f50de3cf5..7b5a75fa0 100644 --- a/tests/performance_tests/utils/detailed_balance_approximations.ipynb +++ b/tests/performance_tests/utils/detailed_balance_approximations.ipynb @@ -42,8 +42,6 @@ "metadata": {}, "outputs": [], "source": [ - "import numpy as np\n", - "\n", "x = np.linspace(1e-10, 1e-5, 1000)\n", "\n", "y = x / (1 - np.exp(-x))\n", @@ -62,7 +60,7 @@ ], "metadata": { "kernelspec": { - "display_name": "newdynamics", + "display_name": "default", "language": "python", "name": "python3" }, @@ -76,7 +74,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.13" + "version": "3.14.5" } }, "nbformat": 4, diff --git a/tests/unit/easydynamics/analysis/test_analysis.py b/tests/unit/easydynamics/analysis/test_analysis.py index 62e79de72..2a67357ce 100644 --- a/tests/unit/easydynamics/analysis/test_analysis.py +++ b/tests/unit/easydynamics/analysis/test_analysis.py @@ -98,6 +98,24 @@ def test_analysis_list_contains_all_Q_indices(self, analysis): for i in range(3): assert analysis.analysis_list[i].Q_index == i + def test_analysis_list_shares_convolution_settings(self, analysis): + # WHEN THEN EXPECT: every Analysis1d holds the same ConvolutionSettings object, so + # user changes to analysis.convolution_settings reach all Q indices (regression: + # per-Q copies silently detached the settings) + for analysis1d in analysis.analysis_list: + assert analysis1d.convolution_settings is analysis.convolution_settings + + def test_convolution_settings_changes_reach_all_Q(self, analysis): + # WHEN: the analysis list has been built + assert len(analysis.analysis_list) == 3 + + # THEN: mutate the settings on the Analysis after the fact + analysis.convolution_settings.upsample_factor = 20 + + # EXPECT: the per-Q analyses see the new value + for analysis1d in analysis.analysis_list: + assert analysis1d.convolution_settings.upsample_factor == 20 + def test_analysis_list_setter_raises(self, analysis): # WHEN / THEN / EXPECT with pytest.raises( @@ -512,7 +530,7 @@ def test_parameters_to_dataset_different_units(self, analysis): ) # Convert the unit of a component to eV. - analysis.sample_model.get_component_collection(Q_index=1)[0].convert_unit('eV') + analysis.sample_model.get_component_collection(Q_index=1)[0].convert_x_unit('eV') # THEN parameters_dataset = analysis.parameters_to_dataset() @@ -533,12 +551,18 @@ def test_parameters_to_dataset_different_units(self, analysis): assert 'Q' in parameters_dataset[parameter_name].dims def test_parameters_to_dataset_raises_on_duplicate_names(self, analysis): - # Add a second Gaussian with the same parameter names as the first - analysis.sample_model.append_component( - Gaussian(name='GaussianName', display_name='Gaussian2', area=0.5) - ) + # Add a second Gaussian with the same parameter names as the first. Appending and the + # later per-Q copy both warn about the duplicate names; capture them so the test suite + # stays warning-clean. + with pytest.warns(UserWarning, match='Duplicate component names'): + analysis.sample_model.append_component( + Gaussian(name='GaussianName', display_name='Gaussian2', area=0.5) + ) - with pytest.raises(ValueError, match='Duplicate parameter names'): + with ( + pytest.warns(UserWarning, match='Duplicate component names'), + pytest.raises(ValueError, match='Duplicate parameter names'), + ): analysis.parameters_to_dataset() @pytest.mark.parametrize( @@ -732,15 +756,18 @@ def test_on_instrument_model_changed(self, analysis): def test_on_convolution_settings_changed(self, analysis): # WHEN - new_convolution_settings = ConvolutionSettings() + new_convolution_settings = ConvolutionSettings(upsample_factor=7, extension_factor=0.3) # THEN (this calls _on_convolution_settings_changed internally) analysis.convolution_settings = new_convolution_settings - # EXPECT + # EXPECT: the parent holds the new settings object assert analysis.convolution_settings is new_convolution_settings + # Each Analysis1d gets its own copy of the settings (so plan_is_valid is + # tracked independently per Q), but all values are propagated from the parent. for analysis1d in analysis.analysis_list: - assert analysis1d.convolution_settings is new_convolution_settings + assert analysis1d.convolution_settings.upsample_factor == 7 + assert analysis1d.convolution_settings.extension_factor == pytest.approx(0.3) def test_fit_single_Q_valid(self, analysis): # WHEN @@ -824,6 +851,51 @@ def test_fit_all_Q_simultaneously(self, analysis): # And that the result from the fit method is returned assert result == fake_fit_result + def test_fit_all_Q_simultaneously_with_nan_data(self): + # Regression test: energy must be sliced via sc.array(dims=['energy'], values=mask), + # NOT via energy[numpy_bool_array]. The bug: numpy booleans are treated as integer + # indices by scipp (True→1, False→0), so energy[[True,False,True]] returns 3 elements + # with wrong values instead of filtering to the 2 finite points. + + # WHEN: data with a NaN at index 1; finite energies are -1.0 and 1.0 + Q = sc.array(dims=['Q'], values=[1.0], unit='1/Angstrom') + energy = sc.array(dims=['energy'], values=[-1.0, 0.0, 1.0], unit='meV') + values = np.array([[1.0, np.nan, 2.0]]) + variances = np.array([[0.1, 0.1, 0.1]]) + data = sc.array(dims=['Q', 'energy'], values=values, variances=variances) + data_array = sc.DataArray(data=data, coords={'Q': Q, 'energy': energy}) + experiment = Experiment(data=data_array) + + # Set up a sample model and analysis + sample_model = SampleModel(components=Gaussian(name='G')) + analysis = Analysis(experiment=experiment, sample_model=sample_model) + + captured_energy = [] + original_refresh = analysis.analysis_list[0].refresh_convolver + + # Patch the refresh_convolver method to capture the energy passed to it + def capture_refresh(energy, **kwargs): + captured_energy.append(energy) + return original_refresh(energy=energy, **kwargs) + + analysis.analysis_list[0].refresh_convolver = capture_refresh + analysis.get_fit_functions = MagicMock(return_value=['fit_fn']) + + fake_fitter_instance = MagicMock() + fake_fitter_instance.fit.return_value = object() + + # THEN + with patch( + 'easydynamics.analysis.analysis.MultiFitter', + return_value=fake_fitter_instance, + ): + analysis._fit_all_Q_simultaneously() + + # EXPECT: only the 2 finite energy points (-1.0, 1.0) were passed, not all 3 + assert len(captured_energy) == 1 + assert len(captured_energy[0]) == 2 + np.testing.assert_array_equal(captured_energy[0].values, [-1.0, 1.0]) + def test_get_fit_functions(self, analysis): # WHEN @@ -923,9 +995,9 @@ def test_create_components_dataset_single_Q(self, analysis_single_Q): assert components_dataset.sizes['Q'] == 1 assert components_dataset.coords['Q'].ndim == 1 - def test_ensure_analysis_list_current_clears_dirty_when_Q_is_none(self): - # An Analysis with no experiment has Q=None; _ensure_analysis_list_current should still - # clear the dirty flag without attempting to build the list. + def test_ensure_analysis_list_current_stays_dirty_when_Q_is_none(self): + # When Q is None, _ensure_analysis_list_current should NOT clear the dirty flag — + # it must stay dirty so the list is rebuilt as soon as Q becomes available. # WHEN analysis = Analysis(display_name='NoQ') @@ -935,8 +1007,8 @@ def test_ensure_analysis_list_current_clears_dirty_when_Q_is_none(self): # THEN result = analysis.analysis_list - # EXPECT - dirty flag cleared, list stays empty - assert analysis._analysis_list_is_dirty is False + # EXPECT - dirty flag preserved, list stays empty + assert analysis._analysis_list_is_dirty is True assert result == [] def test_rebin_marks_analysis_list_dirty(self, analysis): @@ -1039,3 +1111,9 @@ def test_direct_experiment_rebin_does_not_update_analysis_list(self, analysis): # EXPECT - analysis_list is NOT marked dirty (callers must use Analysis.rebin()) assert analysis._analysis_list_is_dirty is False + + def test_repr(self, analysis): + repr_str = repr(analysis) + assert 'Analysis' in repr_str + assert 'display_name=' in repr_str + assert 'n_analyses=' in repr_str diff --git a/tests/unit/easydynamics/analysis/test_analysis1d.py b/tests/unit/easydynamics/analysis/test_analysis1d.py index 58e090a58..466b16a07 100644 --- a/tests/unit/easydynamics/analysis/test_analysis1d.py +++ b/tests/unit/easydynamics/analysis/test_analysis1d.py @@ -111,10 +111,10 @@ def test_calculate_updates_convolver_and_calls_calculate(self, analysis1d): result = analysis1d.calculate() # EXPECT - analysis1d._create_convolver.assert_called_once() - assert analysis1d._convolver is fake_convolver - analysis1d._calculate.assert_called_once() + # calculate() passes the convolver directly to _calculate without storing it on self + _, call_kwargs = analysis1d._calculate.call_args + assert call_kwargs['convolver'] is fake_convolver np.testing.assert_array_equal(result, expected_result) def test__calculate_adds_sample_and_background(self, analysis1d): @@ -150,7 +150,7 @@ def test_fit_calls_fitter_with_correct_arguments(self, analysis1d): fake_weights = np.array([0.1, 0.2, 0.3]) fake_mask = np.array([True, False, True]) - analysis1d.experiment._extract_x_y_weights_only_finite = MagicMock( + analysis1d.experiment.extract_x_y_weights_only_finite = MagicMock( return_value=(fake_x, fake_y, fake_weights, fake_mask) ) @@ -180,7 +180,7 @@ def test_fit_calls_fitter_with_correct_arguments(self, analysis1d): fit_function='fit_func', ) - analysis1d.experiment._extract_x_y_weights_only_finite.assert_called_once() + analysis1d.experiment.extract_x_y_weights_only_finite.assert_called_once() fake_fitter_instance.fit.assert_called_once_with( x=fake_x, @@ -508,15 +508,19 @@ def test_calculate_energy_with_offset_different_units(self, analysis1d): # WHEN energy = analysis1d.experiment.energy energy_offset = analysis1d.instrument_model.get_energy_offset(Q_index=analysis1d.Q_index) - energy_offset.value = 1.0 # override with a simple value for testing - energy_offset.convert_unit('eV') + energy_offset.value = 1.0 # set to 1.0 in original unit (meV) + energy_offset.convert_unit('eV') # now 0.001 eV, still represents 1 meV # THEN result = analysis1d._calculate_energy_with_offset(energy, energy_offset) - # EXPECT - expected = energy.values - energy_offset.value - np.testing.assert_array_equal(result.values, expected) + # EXPECT: offset must be converted to energy's unit before subtraction + offset_in_energy_unit = sc.to_unit( + sc.scalar(energy_offset.value, unit=str(energy_offset.unit)), + str(energy.unit), + ).value + expected = energy.values - offset_in_energy_unit + np.testing.assert_array_almost_equal(result.values, expected) def test_calculate_energy_with_offset_raises_if_incompatible_units(self, analysis1d): # WHEN @@ -524,9 +528,7 @@ def test_calculate_energy_with_offset_raises_if_incompatible_units(self, analysi energy_offset = Parameter(name='energy_offset', value=1.0, unit='m') # incompatible unit # THEN / EXPECT - with pytest.raises( - sc.UnitError, match='Energy and energy offset must have compatible units' - ): + with pytest.raises(sc.UnitError): analysis1d._calculate_energy_with_offset(energy, energy_offset) ############# @@ -920,7 +922,7 @@ def test_fit_marks_convolver_dirty_when_sample_model_components_change(self, ana 'easydynamics.analysis.analysis1d.EasyScienceFitter', return_value=MagicMock(fit=MagicMock(return_value=MagicMock())), ): - analysis1d.experiment._extract_x_y_weights_only_finite = MagicMock( + analysis1d.experiment.extract_x_y_weights_only_finite = MagicMock( return_value=( np.array([1.0, 2.0, 3.0]), np.array([1.0, 2.0, 3.0]), @@ -946,7 +948,7 @@ def test_fit_does_not_rebuild_convolver_when_nothing_changed(self, analysis1d): 'easydynamics.analysis.analysis1d.EasyScienceFitter', return_value=MagicMock(fit=MagicMock(return_value=MagicMock())), ): - analysis1d.experiment._extract_x_y_weights_only_finite = MagicMock( + analysis1d.experiment.extract_x_y_weights_only_finite = MagicMock( return_value=( np.array([1.0, 2.0, 3.0]), np.array([1.0, 2.0, 3.0]), @@ -1030,7 +1032,7 @@ def test_fit_marks_convolver_dirty_when_resolution_model_components_change(self, 'easydynamics.analysis.analysis1d.EasyScienceFitter', return_value=MagicMock(fit=MagicMock(return_value=MagicMock())), ): - analysis1d.experiment._extract_x_y_weights_only_finite = MagicMock( + analysis1d.experiment.extract_x_y_weights_only_finite = MagicMock( return_value=( np.array([1.0, 2.0, 3.0]), np.array([1.0, 2.0, 3.0]), @@ -1042,3 +1044,67 @@ def test_fit_marks_convolver_dirty_when_resolution_model_components_change(self, # EXPECT analysis1d._create_convolver.assert_called_once() + + # ───── Regression tests ───── + + @pytest.fixture + def analysis1d_with_nan(self): + """analysis1d fixture whose data contains a NaN at the second energy point.""" + Q = sc.array(dims=['Q'], values=[1.0], unit='1/Angstrom') + energy = sc.array(dims=['energy'], values=[10.0, 20.0, 30.0], unit='meV') + data = sc.array( + dims=['Q', 'energy'], + values=[[1.0, float('nan'), 3.0]], + variances=[[0.1, 0.2, 0.3]], + ) + data_array = sc.DataArray(data=data, coords={'Q': Q, 'energy': energy}) + experiment = Experiment(data=data_array) + sample_model = SampleModel(components=Gaussian()) + instrument_model = InstrumentModel() + return Analysis1d( + display_name='TestNaN', + experiment=experiment, + sample_model=sample_model, + instrument_model=instrument_model, + Q_index=0, + ) + + def test_create_residuals_array_with_nan_data_does_not_crash(self, analysis1d_with_nan): + # Before the fix, residuals subtracted a 2-point model from 3-point data + # (including NaN) which caused a dimension mismatch crash. + # WHEN + + # THEN + result = analysis1d_with_nan._create_residuals_array() + + # EXPECT + assert isinstance(result, sc.DataArray) + # Only the 2 finite energy points survive the mask. + assert result.sizes['energy'] == 2 + + def test_data_and_model_to_datagroup_with_nan_excludes_nan_from_data( + self, analysis1d_with_nan + ): + # Before the fix, 'Data' contained the full 3-point grid (including NaN) + # and computing Residuals crashed on the dimension mismatch. + # WHEN + energy = sc.array(dims=['energy'], values=[20.0, 30.0, 40.0], unit='meV') + + # THEN + datagroup = analysis1d_with_nan.data_and_model_to_datagroup( + energy=energy, include_residuals=True + ) + + # EXPECT + assert isinstance(datagroup, sc.DataGroup) + # 'Data' must contain only the 2 finite points. + assert datagroup['Data'].sizes['energy'] == 2 + # Residuals must be present and have matching size. + assert 'Residuals' in datagroup + assert datagroup['Residuals'].sizes['energy'] == 2 + + def test_repr(self, analysis1d): + repr_str = repr(analysis1d) + assert 'Analysis1d' in repr_str + assert 'display_name=' in repr_str + assert 'Q_index=' in repr_str diff --git a/tests/unit/easydynamics/analysis/test_analysis_base.py b/tests/unit/easydynamics/analysis/test_analysis_base.py index 313ad09ee..afddabc83 100644 --- a/tests/unit/easydynamics/analysis/test_analysis_base.py +++ b/tests/unit/easydynamics/analysis/test_analysis_base.py @@ -92,19 +92,28 @@ def test_init_detailed_balance_settings(self): assert analysis.detailed_balance_settings is detailed_balance_settings def test_init_extra_parameter(self): + # WHEN extra_parameter = Parameter(name='param1', value=1.0) + + # THEN analysis = AnalysisBase(extra_parameters=extra_parameter) + # EXPECT assert analysis._extra_parameters == [extra_parameter] def test_init_extra_parameters(self): + # WHEN extra_parameters = [ Parameter(name='param1', value=1.0), Parameter(name='param2', value=2.0), ] + + # THEN analysis = AnalysisBase(extra_parameters=extra_parameters) + # EXPECT assert analysis._extra_parameters == extra_parameters def test_init_calls_on_experiment_changed(self): + # WHEN THEN EXPECT with patch.object(AnalysisBase, '_on_experiment_changed') as mock_on_experiment_changed: AnalysisBase() mock_on_experiment_changed.assert_called_once() @@ -159,74 +168,99 @@ def test_init_calls_on_experiment_changed(self): ], ) def test_init_invalid_inputs(self, kwargs, expected_exception, expected_message): + # WHEN THEN EXPECT with pytest.raises(expected_exception, match=expected_message): AnalysisBase(**kwargs) def test_experiment_setter_calls_on_experiment_changed(self, analysis_base): + # WHEN THEN EXPECT with patch.object(analysis_base, '_on_experiment_changed') as mock_on_experiment_changed: new_experiment = Experiment() analysis_base.experiment = new_experiment mock_on_experiment_changed.assert_called_once() def test_experiment_setter_invalid_type(self, analysis_base): + # WHEN THEN EXPECT with pytest.raises(TypeError, match='experiment must be an instance of Experiment'): analysis_base.experiment = 'not an experiment' def test_experiment_setter_valid(self, analysis_base): + # WHEN new_experiment = Experiment() analysis_base.experiment = new_experiment + # THEN EXPECT assert analysis_base.experiment == new_experiment def test_sample_model_setter_invalid_type(self, analysis_base): + # WHEN THEN EXPECT with pytest.raises(TypeError, match='sample_model must be an instance of SampleModel'): analysis_base.sample_model = 'not a sample model' def test_sample_model_setter_valid(self, analysis_base): + # WHEN new_sample_model = SampleModel() + + # THEN analysis_base.sample_model = new_sample_model + # EXPECT assert analysis_base.sample_model == new_sample_model def test_sample_model_setter_calls_on_sample_model_changed(self, analysis_base): + # WHEN + new_sample_model = SampleModel() with patch.object( analysis_base, '_on_sample_model_changed' ) as mock_on_sample_model_changed: - new_sample_model = SampleModel() + # THEN analysis_base.sample_model = new_sample_model + + # EXPECT mock_on_sample_model_changed.assert_called_once() def test_instrument_model_setter_invalid_type(self, analysis_base): + # WHEN THEN EXPECT with pytest.raises( TypeError, match='instrument_model must be an instance of InstrumentModel' ): analysis_base.instrument_model = 'not an instrument model' def test_instrument_model_setter_valid(self, analysis_base): + # WHEN new_instrument_model = InstrumentModel() + + # THEN analysis_base.instrument_model = new_instrument_model + + # EXPECT assert analysis_base.instrument_model == new_instrument_model def test_instrument_model_setter_calls_on_instrument_model_changed(self, analysis_base): + # WHEN + new_instrument_model = InstrumentModel() with patch.object( analysis_base, '_on_instrument_model_changed' ) as mock_on_instrument_model_changed: - new_instrument_model = InstrumentModel() + # THEN analysis_base.instrument_model = new_instrument_model + + # EXPECT mock_on_instrument_model_changed.assert_called_once() def test_Q_property(self, analysis_base): - # Create a mock Q value + # WHEN fake_Q = [1, 2, 3] - - # Patch the 'experiment' attribute's Q property with patch.object( type(analysis_base.experiment), 'Q', new_callable=PropertyMock ) as mock_Q: mock_Q.return_value = fake_Q - result = analysis_base.Q # Access the property + # THEN + result = analysis_base.Q + # EXPECT assert result == fake_Q mock_Q.assert_called_once() def test_Q_setter_raises(self, analysis_base): + # WHEN THEN EXPECT with pytest.raises( AttributeError, match=r'Q is a read-only property derived from the Experiment.', @@ -234,19 +268,20 @@ def test_Q_setter_raises(self, analysis_base): analysis_base.Q = [1, 2, 3] def test_energy_property(self, analysis_base): - # Create a mock energy value + # WHEN fake_energy = [10, 20, 30] - - # Patch the 'experiment' attribute's energy property with patch.object( type(analysis_base.experiment), 'energy', new_callable=PropertyMock ) as mock_energy: mock_energy.return_value = fake_energy - result = analysis_base.energy # Access the property + # THEN + result = analysis_base.energy + # EXPECT assert result == fake_energy mock_energy.assert_called_once() def test_energy_setter_raises(self, analysis_base): + # WHEN THEN EXPECT with pytest.raises( AttributeError, match=r'energy is a read-only property derived from the Experiment.', @@ -254,30 +289,32 @@ def test_energy_setter_raises(self, analysis_base): analysis_base.energy = [10, 20, 30] def test_temperature_property_no_temperature(self, analysis_base): - # Patch the 'experiment' attribute's temperature property to - # return None + # WHEN with patch.object( type(analysis_base.sample_model), 'temperature', new_callable=PropertyMock ) as mock_temperature: mock_temperature.return_value = None - result = analysis_base.temperature # Access the property + # THEN + result = analysis_base.temperature + # EXPECT assert result is None mock_temperature.assert_called_once() def test_temperature_property(self, analysis_base): - # Create a mock temperature value + # WHEN fake_temperature = 300 - - # Patch the 'sample_model' attribute's temperature property with patch.object( type(analysis_base.sample_model), 'temperature', new_callable=PropertyMock ) as mock_temperature: mock_temperature.return_value = fake_temperature - result = analysis_base.temperature # Access the property + # THEN + result = analysis_base.temperature + # EXPECT assert result == fake_temperature mock_temperature.assert_called_once() def test_temperature_setter_raises(self, analysis_base): + # WHEN THEN EXPECT with pytest.raises( AttributeError, match='temperature is a read-only property', @@ -381,6 +418,7 @@ def test_extra_parameters_property(self, analysis_base, extra_parameters): ], ) def test_extra_parameters_setter_invalid_type(self, analysis_base, invalid_extra_parameters): + # WHEN THEN EXPECT with pytest.raises( TypeError, match='extra_parameters must be', @@ -392,6 +430,7 @@ def test_extra_parameters_setter_invalid_type(self, analysis_base, invalid_extra ############# def test_normalize_resolution_calls_instrument_model(self, analysis_base): + # WHEN THEN EXPECT with patch.object( analysis_base.instrument_model, 'normalize_resolution' ) as mock_normalize_resolution: @@ -458,12 +497,13 @@ def test_get_parameters_near_bounds_with_tolerances(self, analysis_base_with_com def test_get_parameters_near_bounds_errors( self, analysis_base_with_components, rtol, atol, expected_param, expected_error ): + # WHEN THEN with pytest.raises(expected_error) as exc: analysis_base_with_components.get_parameters_near_bounds( rtol=rtol, atol=atol, ) - + # EXPECT assert expected_param in str(exc.value) def test_not_finite_parameters(self, analysis_base_with_components): @@ -499,7 +539,6 @@ def test_on_experiment_changed_updates_Q(self, analysis_base): analysis_base._on_experiment_changed() # EXPECT - # assert that the Q attribute was set np.testing.assert_array_equal(analysis_base.Q, fake_Q) np.testing.assert_array_equal(analysis_base.sample_model.Q.values, fake_Q) np.testing.assert_array_equal(analysis_base.instrument_model.Q.values, fake_Q) @@ -521,15 +560,15 @@ def test_on_sample_model_changed_updates_Q(self, analysis_base): np.testing.assert_array_equal(analysis_base.sample_model.Q.values, fake_Q) def test_on_instrument_model_changed_updates_Q(self, analysis_base): + # WHEN fake_Q = [1, 2, 3] - - # Patch the Q property of analysis_base with patch.object( type(analysis_base.experiment), 'Q', new_callable=PropertyMock ) as mock_Q: mock_Q.return_value = fake_Q - + # THEN analysis_base._on_instrument_model_changed() + # EXPECT np.testing.assert_array_equal(analysis_base.instrument_model.Q.values, fake_Q) def test_repr(self, analysis_base): diff --git a/tests/unit/easydynamics/base_classes/test_easydynamics_modelbase.py b/tests/unit/easydynamics/base_classes/test_easydynamics_modelbase.py index 6767640a4..c205c9959 100644 --- a/tests/unit/easydynamics/base_classes/test_easydynamics_modelbase.py +++ b/tests/unit/easydynamics/base_classes/test_easydynamics_modelbase.py @@ -13,7 +13,7 @@ class TestEasyDynamicsModelBase: def easy_dynamics_modelbase(self): """Fixture for creating an instance of EasyDynamicsModelBase.""" - return EasyDynamicsModelBase(name='TestModel', unit='meV') + return EasyDynamicsModelBase(name='TestModel', x_unit='meV') def test_initialization(self, easy_dynamics_modelbase): """Test that the EasyDynamicsModelBase is initialized correctly.""" @@ -22,6 +22,8 @@ def test_initialization(self, easy_dynamics_modelbase): assert easy_dynamics_modelbase.name == 'TestModel' assert easy_dynamics_modelbase.display_name == 'TestModel' assert easy_dynamics_modelbase.unique_name is not None + assert easy_dynamics_modelbase.x_unit == 'meV' + assert easy_dynamics_modelbase.y_unit == 'dimensionless' def test_init_raises_type_error_for_invalid_name(self): """Test that initializing with an invalid name raises a TypeError.""" @@ -68,9 +70,15 @@ def test_name_setter_invalid_type(self, easy_dynamics_modelbase, invalid_name): def test_unit_property(self, easy_dynamics_modelbase): # WHEN THEN EXPECT - assert easy_dynamics_modelbase.unit == 'meV' + assert easy_dynamics_modelbase.x_unit == 'meV' + assert easy_dynamics_modelbase.y_unit == 'dimensionless' - def test_unit_setter_raises(self, easy_dynamics_modelbase): + def test_x_unit_setter_raises(self, easy_dynamics_modelbase): # WHEN / THEN / EXPECT - with pytest.raises(AttributeError, match='Use convert_unit to change '): - easy_dynamics_modelbase.unit = 'K' + with pytest.raises(AttributeError, match='read-only'): + easy_dynamics_modelbase.x_unit = 'K' + + def test_y_unit_setter_raises(self, easy_dynamics_modelbase): + # WHEN THEN EXPECT + with pytest.raises(AttributeError, match='read-only'): + easy_dynamics_modelbase.y_unit = '1/meV' diff --git a/tests/unit/easydynamics/convolution/test_analytical_convolution.py b/tests/unit/easydynamics/convolution/test_analytical_convolution.py index c9d3f46e2..55c6cc297 100644 --- a/tests/unit/easydynamics/convolution/test_analytical_convolution.py +++ b/tests/unit/easydynamics/convolution/test_analytical_convolution.py @@ -289,7 +289,6 @@ def test_convolute_analytic_pair_delta(self, default_analytical_convolution, fun """ # WHEN THEN delta_function = DeltaFunction(area=2.0, center=0.5) - function1 = Gaussian(area=3.0, center=-1.0, width=1.0) convoluted = default_analytical_convolution._convolute_analytic_pair( delta_function, function1 diff --git a/tests/unit/easydynamics/convolution/test_convolution.py b/tests/unit/easydynamics/convolution/test_convolution.py index dbb4290d4..818767983 100644 --- a/tests/unit/easydynamics/convolution/test_convolution.py +++ b/tests/unit/easydynamics/convolution/test_convolution.py @@ -73,7 +73,8 @@ def test_init(self, default_convolution): assert default_convolution.upsample_factor == 5 assert default_convolution.extension_factor == pytest.approx(0.2) assert default_convolution.temperature is None - assert default_convolution.unit == 'meV' + assert default_convolution.x_unit == 'meV' + assert default_convolution.y_unit == 'dimensionless' assert default_convolution.detailed_balance_settings.normalize_detailed_balance is True assert isinstance(default_convolution._energy_grid, EnergyGrid) @@ -93,7 +94,7 @@ def test_init(self, default_convolution): default_convolution._delta_sample_components[0] is default_convolution.sample_components[2] ) - assert default_convolution.convolution_settings.convolution_plan_is_valid is True + assert default_convolution._convolution_plan_is_current() is True assert default_convolution._reactions_enabled is True def test_init_components(self, convolution_with_components): @@ -107,7 +108,8 @@ def test_init_components(self, convolution_with_components): assert convolution_with_components.upsample_factor == 5 assert convolution_with_components.extension_factor == pytest.approx(0.2) assert convolution_with_components.temperature is None - assert convolution_with_components.unit == 'meV' + assert convolution_with_components.x_unit == 'meV' + assert convolution_with_components.y_unit == 'dimensionless' assert ( convolution_with_components.detailed_balance_settings.normalize_detailed_balance is True @@ -132,7 +134,7 @@ def test_init_components(self, convolution_with_components): convolution_with_components._delta_sample_components, ComponentCollection ) assert convolution_with_components._delta_sample_components.is_empty - assert convolution_with_components.convolution_settings.convolution_plan_is_valid is True + assert convolution_with_components._convolution_plan_is_current() is True assert convolution_with_components._reactions_enabled is True def test_convolution_plan_is_built_when_invalid(self, default_convolution): @@ -141,7 +143,7 @@ def test_convolution_plan_is_built_when_invalid(self, default_convolution): """ # WHEN conv = default_convolution - conv.convolution_settings.convolution_plan_is_valid = False + conv._plan_seen_version = None # THEN EXPECT with patch.object(conv, '_build_convolution_plan') as build_plan: @@ -276,7 +278,9 @@ def test_convolution_calls_correct_methods( patch_numerical as mock_numerical_method, patch_delta as mock_delta_method, ): - conv.convolution_settings._convolution_plan_is_valid = True + # The plan was built above; keep it current so convolution() does not rebuild + # the convolvers and discard the mocks. + conv._mark_convolution_plan_current() conv.convolution() if analytical_component: @@ -403,7 +407,7 @@ def test_check_if_pair_is_analytic_raises_with_delta_in_resolution(self, default ) @pytest.mark.parametrize('delta_component', [True, False], ids=['with_delta', 'without_delta']) @pytest.mark.parametrize( - 'temperature', [None, 100], ids=['with_temperature', 'without_temperature'] + 'temperature', [None, 100], ids=['without_temperature', 'with_temperature'] ) def test_build_convolution_plan( self, @@ -481,7 +485,7 @@ def test_build_convolution_plan( expected_numerical_count += 1 assert len(conv._numerical_sample_components) == expected_numerical_count - assert conv.convolution_settings.convolution_plan_is_valid is True + assert conv._convolution_plan_is_current() is True @pytest.mark.parametrize( 'analytical_component', @@ -547,7 +551,7 @@ def test_setattr_does_not_invalidate_plan_for_non_tracked_attribute( ): # WHEN conv = default_convolution - conv.convolution_settings.convolution_plan_is_valid = True + assert conv._convolution_plan_is_current() is True # Capture current identity of internal state to ensure no rebuild old_plan_id = id(conv._analytical_sample_components) @@ -558,7 +562,7 @@ def test_setattr_does_not_invalidate_plan_for_non_tracked_attribute( conv.display_name = 'new_name' # EXPECT - assert conv.convolution_settings.convolution_plan_is_valid is True + assert conv._convolution_plan_is_current() is True assert id(conv._analytical_sample_components) == old_plan_id assert id(conv._numerical_sample_components) == old_numerical_id assert id(conv._delta_sample_components) == old_delta_id @@ -570,10 +574,61 @@ def test_setattr_invalidates_plan_for_tracked_attribute( ): # WHEN conv = default_convolution - conv.convolution_settings.convolution_plan_is_valid = True + assert conv._convolution_plan_is_current() is True # THEN conv.upsample_factor = 10 # EXPECT - assert conv.convolution_settings.convolution_plan_is_valid is False + assert conv._convolution_plan_is_current() is False + + def test_convert_y_unit_propagates_to_sub_convolvers(self): + # WHEN: Convolution with Gaussian sample and resolution components, + # both with y_unit='1/meV' + energy = np.linspace(-10, 10, 5001) + sample_components = ComponentCollection() + sample_components.append_component( + Gaussian(name='G', area=1.0, center=0.0, width=0.5, x_unit='meV', y_unit='1/meV') + ) + resolution_components = ComponentCollection() + resolution_components.append_component( + Gaussian(name='R', area=1.0, center=0.0, width=0.3, x_unit='meV', y_unit='1/meV') + ) + conv = Convolution( + energy=energy, + sample_components=sample_components, + resolution_components=resolution_components, + ) + + # THEN: convert y_unit to '1/eV' + conv.convert_y_unit('1/eV') + + # EXPECT: y_unit updated and propagated to sub-convolvers via Convolution.convert_y_unit + assert conv.y_unit == '1/eV' + assert conv._analytical_convolver._y_unit == '1/eV' + + def test_convert_y_unit_propagates_to_numerical_convolver(self): + # WHEN: a DHO sample component forces a numerical convolver + energy = np.linspace(-10, 10, 5001) + sample_components = ComponentCollection() + sample_components.append_component( + DampedHarmonicOscillator( + name='DHO', area=1.0, center=1.0, width=0.5, x_unit='meV', y_unit='1/meV' + ) + ) + resolution_components = ComponentCollection() + resolution_components.append_component( + Gaussian(name='R', area=1.0, center=0.0, width=0.3, x_unit='meV', y_unit='1/meV') + ) + conv = Convolution( + energy=energy, + sample_components=sample_components, + resolution_components=resolution_components, + ) + + # THEN + conv.convert_y_unit('1/eV') + + # EXPECT + assert conv.y_unit == '1/eV' + assert conv._numerical_convolver._y_unit == '1/eV' diff --git a/tests/unit/easydynamics/convolution/test_convolution_base.py b/tests/unit/easydynamics/convolution/test_convolution_base.py index fe8ceef62..7bc26fff7 100644 --- a/tests/unit/easydynamics/convolution/test_convolution_base.py +++ b/tests/unit/easydynamics/convolution/test_convolution_base.py @@ -32,6 +32,8 @@ def test_init(self, convolution_base): assert np.allclose(convolution_base.energy.values, np.linspace(-10, 10, 100)) assert isinstance(convolution_base._sample_components, ComponentCollection) assert isinstance(convolution_base._resolution_components, ComponentCollection) + assert convolution_base.x_unit == 'meV' + assert convolution_base.y_unit == 'dimensionless' def test_init_with_model_component(self): # WHEN @@ -78,7 +80,7 @@ def test_init_energy_numerical_none_offset(self): 'energy': 'invalid', 'sample_components': ComponentCollection(), 'resolution_components': ComponentCollection(), - 'unit': 'meV', + 'x_unit': 'meV', 'energy_offset': 0, }, 'Energy must be', @@ -88,7 +90,7 @@ def test_init_energy_numerical_none_offset(self): 'energy': np.linspace(-10, 10, 100), 'sample_components': 'invalid', 'resolution_components': ComponentCollection(), - 'unit': 'meV', + 'x_unit': 'meV', 'energy_offset': 0, }, ( @@ -101,7 +103,7 @@ def test_init_energy_numerical_none_offset(self): 'energy': np.linspace(-10, 10, 100), 'sample_components': ComponentCollection(), 'resolution_components': 'invalid', - 'unit': 'meV', + 'x_unit': 'meV', 'energy_offset': 0, }, ( @@ -114,7 +116,7 @@ def test_init_energy_numerical_none_offset(self): 'energy': np.linspace(-10, 10, 100), 'sample_components': ComponentCollection(), 'resolution_components': ComponentCollection(), - 'unit': 123, + 'x_unit': 123, 'energy_offset': 0, }, 'unit must be ', @@ -124,7 +126,17 @@ def test_init_energy_numerical_none_offset(self): 'energy': np.linspace(-10, 10, 100), 'sample_components': ComponentCollection(), 'resolution_components': ComponentCollection(), - 'unit': 'meV', + 'y_unit': 123, + 'energy_offset': 0, + }, + 'unit must be ', + ), + ( + { + 'energy': np.linspace(-10, 10, 100), + 'sample_components': ComponentCollection(), + 'resolution_components': ComponentCollection(), + 'x_unit': 'meV', 'energy_offset': 'invalid', }, 'Energy_offset must be ', @@ -181,17 +193,17 @@ def test_unit_setter_raises(self, convolution_base): # WHEN THEN EXPECT with pytest.raises( AttributeError, - match=r'Use convert_unit to change the unit between allowed types ', + match=r'read-only', ): - convolution_base.unit = 'K' + convolution_base.x_unit = 'K' def test_convert_unit(self, convolution_base): # WHEN THEN - convolution_base.convert_unit('eV') + convolution_base.convert_x_unit('eV') # EXPECT assert convolution_base.energy.unit == 'eV' - assert convolution_base.unit == 'eV' + assert convolution_base.x_unit == 'eV' assert np.allclose(convolution_base.energy.values, np.linspace(-0.01, 0.01, 100)) def test_convert_unit_invalid_type_raises(self, convolution_base): @@ -200,7 +212,7 @@ def test_convert_unit_invalid_type_raises(self, convolution_base): TypeError, match=r'Energy unit must be a string or scipp unit.', ): - convolution_base.convert_unit(123) + convolution_base.convert_x_unit(123) def test_convert_unit_invalid_unit_rollback(self, convolution_base): # WHEN THEN @@ -208,10 +220,10 @@ def test_convert_unit_invalid_unit_rollback(self, convolution_base): UnitError, match=r'Conversion from `meV` to `s` is not valid.', ): - convolution_base.convert_unit('s') + convolution_base.convert_x_unit('s') # EXPECT - assert convolution_base.unit == 'meV' + assert convolution_base.x_unit == 'meV' assert np.allclose(convolution_base.energy.values, np.linspace(-10, 10, 100)) def test_convert_unit_invalid_offset_unit_rollback(self, convolution_base): @@ -223,10 +235,10 @@ def test_convert_unit_invalid_offset_unit_rollback(self, convolution_base): UnitError, match=r'Conversion from `s` to `meV` is not valid.', ): - convolution_base.convert_unit('meV') + convolution_base.convert_x_unit('meV') # EXPECT - assert convolution_base.unit == 'meV' + assert convolution_base.x_unit == 'meV' assert convolution_base.energy_offset.unit == 's' def test_energy_offset_property(self, convolution_base): @@ -255,6 +267,21 @@ def test_energy_with_offset_setter_raises(self, convolution_base): with pytest.raises(AttributeError): convolution_base.energy_with_offset = 5 + def test_energy_with_offset_unit_conversion(self, convolution_base): + # WHEN: energy is in meV and energy_offset given in eV (0.001 eV = 1 meV) + convolution_base.energy_offset = Parameter( + name='energy_offset', + value=0.001, + unit='eV', # 0.001 eV = 1 meV + ) + + # THEN + result = convolution_base.energy_with_offset + + # EXPECT: offset is converted to meV before subtracting → shifted by -1 meV + expected = convolution_base.energy.values - 1.0 + np.testing.assert_allclose(result.values, expected, rtol=1e-5) + def test_sample_components_property(self, convolution_base): # WHEN THEN EXPECT assert isinstance(convolution_base.sample_components, ComponentCollection) @@ -303,3 +330,76 @@ def test_resolution_components_setter_invalid_type_raises(self, convolution_base ), ): convolution_base.resolution_components = 'invalid' + + def test_y_unit_setter_raises(self, convolution_base): + # WHEN THEN EXPECT + with pytest.raises(AttributeError, match='read-only'): + convolution_base.y_unit = '1/meV' + + def test_convert_y_unit(self, convolution_base): + # WHEN: sample component with y_unit='1/meV' + convolution_base.sample_components.append_component( + Gaussian(area=1.0, x_unit='meV', y_unit='1/meV') + ) + + # THEN: convert y_unit to '1/eV' (same dimension, different scale) + convolution_base.convert_y_unit('1/eV') + + # EXPECT: y_unit updated and propagated to sample components + assert convolution_base.y_unit == '1/eV' + for component in convolution_base.sample_components: + assert component.y_unit == '1/eV' + + def test_convert_y_unit_invalid_type_raises(self, convolution_base): + # WHEN THEN EXPECT + with pytest.raises(TypeError): + convolution_base.convert_y_unit(123) + + def test_convert_y_unit_rollback_on_failure(self, convolution_base): + # WHEN: sample component with default y_unit='dimensionless' + convolution_base.sample_components.append_component(Gaussian(area=1.0, x_unit='meV')) + + # THEN EXPECT: 'K' is dimensionally incompatible → triggers rollback + with pytest.raises(UnitError): + convolution_base.convert_y_unit('K') + + assert convolution_base.y_unit == 'dimensionless' + + def test_convert_x_unit_without_sample_components(self): + # WHEN + cb = ConvolutionBase(energy=np.linspace(-10, 10, 100), sample_components=None) + + # THEN + cb.convert_x_unit('eV') + + # EXPECT + assert cb.energy.unit == 'eV' + assert np.allclose(cb.energy.values, np.linspace(-0.01, 0.01, 100)) + assert cb.x_unit == 'eV' + + def test_convert_x_unit_without_resolution_components(self): + # WHEN + sample = ComponentCollection(display_name='Sample') + cb = ConvolutionBase( + energy=np.linspace(-10, 10, 100), + sample_components=sample, + resolution_components=None, + ) + + # THEN + cb.convert_x_unit('eV') + + # EXPECT + assert cb.energy.unit == 'eV' + assert np.allclose(cb.energy.values, np.linspace(-0.01, 0.01, 100)) + assert cb.x_unit == 'eV' + + def test_convert_y_unit_without_sample_components(self): + # WHEN + cb = ConvolutionBase(energy=np.linspace(-10, 10, 100), sample_components=None) + + # THEN + cb.convert_y_unit('1/meV') + + # EXPECT + assert cb.y_unit == '1/meV' diff --git a/tests/unit/easydynamics/convolution/test_energy_grid.py b/tests/unit/easydynamics/convolution/test_energy_grid.py index 01cf19d40..e0390b3ee 100644 --- a/tests/unit/easydynamics/convolution/test_energy_grid.py +++ b/tests/unit/easydynamics/convolution/test_energy_grid.py @@ -8,12 +8,14 @@ class TestEnergyGrid: def test_energy_grid_attributes(self): + # WHEN energy_dense = np.array([-1.0, 0.0, 1.0]) energy_dense_centered = np.array([-1.0, 0.0, 1.0]) energy_dense_step = 1.0 energy_span_dense = 2.0 energy_even_length_offset = 0.0 + # THEN energy_grid = EnergyGrid( energy_dense=energy_dense, energy_span_dense=energy_span_dense, @@ -22,6 +24,7 @@ def test_energy_grid_attributes(self): energy_dense_step=energy_dense_step, ) + # EXPECT assert np.array_equal(energy_grid.energy_dense, energy_dense) assert np.array_equal(energy_grid.energy_dense_centered, energy_dense_centered) assert energy_grid.energy_dense_step == energy_dense_step diff --git a/tests/unit/easydynamics/convolution/test_numerical_convolution.py b/tests/unit/easydynamics/convolution/test_numerical_convolution.py index 755381c24..5db8bc15d 100644 --- a/tests/unit/easydynamics/convolution/test_numerical_convolution.py +++ b/tests/unit/easydynamics/convolution/test_numerical_convolution.py @@ -4,33 +4,72 @@ import numpy as np import pytest import scipp as sc +from easyscience.variable import Parameter from scipy.signal import fftconvolve from easydynamics.convolution.energy_grid import EnergyGrid from easydynamics.convolution.numerical_convolution import NumericalConvolution from easydynamics.sample_model import Gaussian from easydynamics.sample_model.component_collection import ComponentCollection +from easydynamics.settings.convolution_settings import ConvolutionSettings from easydynamics.utils.detailed_balance import detailed_balance_factor +def _make_numerical_convolution(convolution_settings=None): + energy = np.linspace(-10, 10, 5001) + sample_components = ComponentCollection(display_name='ComponentCollection') + sample_components.append_component(Gaussian(name='Gaussian1', area=2.0, center=0.1, width=0.4)) + resolution_components = ComponentCollection(display_name='ResolutionModel') + resolution_components.append_component( + Gaussian(name='GaussianRes', area=3.0, center=0.2, width=0.5) + ) + + return NumericalConvolution( + energy=energy, + sample_components=sample_components, + resolution_components=resolution_components, + convolution_settings=convolution_settings, + ) + + class TestNumericalConvolution: @pytest.fixture def default_numerical_convolution(self): - energy = np.linspace(-10, 10, 5001) - sample_components = ComponentCollection(display_name='ComponentCollection') - sample_components.append_component( - Gaussian(name='Gaussian1', area=2.0, center=0.1, width=0.4) - ) - resolution_components = ComponentCollection(display_name='ResolutionModel') - resolution_components.append_component( - Gaussian(name='GaussianRes', area=3.0, center=0.2, width=0.5) - ) + return _make_numerical_convolution() + + def test_settings_change_invalidates_all_sharing_convolvers(self): + # WHEN: two convolvers sharing one ConvolutionSettings, and an accuracy knob changes + settings = ConvolutionSettings() + convolver_a = _make_numerical_convolution(settings) + convolver_b = _make_numerical_convolution(settings) + settings.upsample_factor = 10 + + # THEN: A consumes the change by rebuilding its plan + convolver_a.convolution() + + # EXPECT: A is current, but B still sees the stale plan (regression: A's rebuild + # setting the shared flag used to mask the settings change from B) + assert convolver_a._convolution_plan_is_current() is True + assert convolver_b._convolution_plan_is_current() is False + + # and B becomes current after its own rebuild + convolver_b.convolution() + assert convolver_b._convolution_plan_is_current() is True + + def test_invalidate_plan_invalidates_all_sharing_convolvers(self): + # WHEN: two current convolvers sharing one ConvolutionSettings + settings = ConvolutionSettings() + convolver_a = _make_numerical_convolution(settings) + convolver_b = _make_numerical_convolution(settings) + + # THEN: an invalidation affects every convolver, and one convolver rebuilding does + # not mask the invalidation from the other + settings._invalidate_plan() + convolver_a.convolution() - return NumericalConvolution( - energy=energy, - sample_components=sample_components, - resolution_components=resolution_components, - ) + # EXPECT + assert convolver_a._convolution_plan_is_current() is True + assert convolver_b._convolution_plan_is_current() is False def test_init(self, default_numerical_convolution): """ @@ -48,7 +87,8 @@ def test_init(self, default_numerical_convolution): assert default_numerical_convolution.upsample_factor == 5 assert default_numerical_convolution.extension_factor == pytest.approx(0.2) assert default_numerical_convolution.temperature is None - assert default_numerical_convolution.unit == 'meV' + assert default_numerical_convolution.x_unit == 'meV' + assert default_numerical_convolution.y_unit == 'dimensionless' assert ( default_numerical_convolution.detailed_balance_settings.normalize_detailed_balance is True @@ -150,7 +190,10 @@ def test_convolution_branches( conv.upsample_factor = upsample - conv.convolution_settings.convolution_plan_is_valid = plan_valid + if plan_valid: + conv._mark_convolution_plan_current() + else: + conv._plan_seen_version = None # --- Track calls --- create_grid_called = False @@ -233,3 +276,53 @@ def fake_interp(*args, **kwargs): # noqa: ARG001 assert result.shape == conv.energy.values.shape else: assert result.shape == dense.shape + + def test_convolution_with_energy_offset_in_different_unit(self, default_numerical_convolution): + # WHEN: energy grid is in meV, offset given as a Parameter in eV (0.001 eV = 1.0 meV) + conv = default_numerical_convolution + conv.energy_offset = Parameter(name='energy_offset', value=0.001, unit='eV') + result_ev = conv.convolution() + + # THEN: run again with the numerically equivalent offset as an explicit meV Parameter + conv.energy_offset = Parameter(name='energy_offset', value=1.0, unit='meV') + result_mev = conv.convolution() + + # EXPECT: unit conversion is transparent — results are numerically identical + np.testing.assert_allclose(result_ev, result_mev, rtol=1e-6) + + def test_repr(self, default_numerical_convolution): + r = repr(default_numerical_convolution) + assert 'NumericalConvolution' in r + assert 'energy_len=' in r + + # ───── Regression tests ───── + + def test_detailed_balance_energy_includes_even_length_offset( + self, default_numerical_convolution, monkeypatch + ): + # WHEN: even-length energy grid with temperature + nc = default_numerical_convolution + nc.energy = np.linspace(-10, 10, 100) # even-length → non-zero energy_even_length_offset + nc.temperature = 300.0 + + captured = {} + + # spy_dbf wraps detailed_balance_factor: captures the energy argument passed to it, + # then delegates to the real function so the convolution still produces a valid result. + def spy_dbf(**kwargs): + captured['energy'] = kwargs['energy'] + return detailed_balance_factor(**kwargs) + + monkeypatch.setattr( + 'easydynamics.convolution.numerical_convolution.detailed_balance_factor', spy_dbf + ) + + # THEN: run convolution + nc.convolution() + + # EXPECT: DBF receives energy_dense - energy_even_length_offset + # Before the fix, energy_even_length_offset was omitted, causing a half-bin error. + grid = nc._energy_grid + np.testing.assert_allclose( + captured['energy'], grid.energy_dense - grid.energy_even_length_offset, atol=1e-12 + ) diff --git a/tests/unit/easydynamics/convolution/test_numerical_convolution_base.py b/tests/unit/easydynamics/convolution/test_numerical_convolution_base.py index 73bcee0bd..3f4305373 100644 --- a/tests/unit/easydynamics/convolution/test_numerical_convolution_base.py +++ b/tests/unit/easydynamics/convolution/test_numerical_convolution_base.py @@ -48,7 +48,8 @@ def test_init(self, default_numerical_convolution_base): assert default_numerical_convolution_base.upsample_factor == 5 assert default_numerical_convolution_base.extension_factor == pytest.approx(0.2) assert default_numerical_convolution_base.temperature is None - assert default_numerical_convolution_base.unit == 'meV' + assert default_numerical_convolution_base.x_unit == 'meV' + assert default_numerical_convolution_base.y_unit == 'dimensionless' assert ( default_numerical_convolution_base.detailed_balance_settings.normalize_detailed_balance is True @@ -79,7 +80,7 @@ def test_init_with_custom_parameters(self): detailed_balance_settings=detailed_balance_settings, temperature=temperature, temperature_unit=temperature_unit, - unit=unit, + x_unit=unit, ) # EXPECT @@ -87,7 +88,8 @@ def test_init_with_custom_parameters(self): assert numerical_convolution_base.extension_factor == pytest.approx(0.5) assert numerical_convolution_base.temperature.value == temperature assert numerical_convolution_base.temperature.unit == temperature_unit - assert numerical_convolution_base.unit == unit + assert numerical_convolution_base.x_unit == unit + assert numerical_convolution_base.y_unit == 'dimensionless' assert ( numerical_convolution_base.detailed_balance_settings.normalize_detailed_balance is False @@ -161,11 +163,8 @@ def test_energy_setter(self, default_numerical_convolution_base): assert isinstance(default_numerical_convolution_base.energy, sc.Variable) assert np.allclose(default_numerical_convolution_base.energy.values, new_energy) - # EXPECT: plan invalidated - assert ( - default_numerical_convolution_base.convolution_settings.convolution_plan_is_valid - is False - ) + # EXPECT: this convolver's plan is invalidated + assert default_numerical_convolution_base._convolution_plan_is_current() is False # THEN # Force regeneration of energy grid @@ -200,10 +199,7 @@ def test_upsample_factor_setter( default_numerical_convolution_base.upsample_factor = new_upsample_factor # EXPECT: plan invalidated - assert ( - default_numerical_convolution_base.convolution_settings.convolution_plan_is_valid - is False - ) + assert default_numerical_convolution_base._convolution_plan_is_current() is False # Force regeneration of energy grid default_numerical_convolution_base._energy_grid = ( @@ -254,10 +250,7 @@ def test_extension_factor_setter(self, default_numerical_convolution_base): default_numerical_convolution_base.extension_factor = new_extension_factor # EXPECT: plan invalidated - assert ( - default_numerical_convolution_base.convolution_settings.convolution_plan_is_valid - is False - ) + assert default_numerical_convolution_base._convolution_plan_is_current() is False # THEN # Force regeneration of energy grid @@ -409,14 +402,16 @@ def test_convolution_settings_setter_valid( new_settings = ConvolutionSettings() # WHEN - new_settings.convolution_plan_is_valid = True + version_before = new_settings._plan_version # THEN default_numerical_convolution_base.convolution_settings = new_settings - # EXPECT + # EXPECT: the convolver's own plan is invalidated, but the new settings object is + # untouched — other convolvers sharing it are unaffected. assert default_numerical_convolution_base.convolution_settings is new_settings - assert new_settings.convolution_plan_is_valid is False + assert default_numerical_convolution_base._convolution_plan_is_current() is False + assert new_settings._plan_version == version_before @pytest.mark.parametrize( 'value, expected_exception, match', @@ -489,9 +484,11 @@ def test_create_energy_grid_upsample_none_non_uniform_raises( and non-uniform energy raises ValueError (the energy grid must always be uniform). """ - # WHEN + # WHEN: non-uniform energy with upsample_factor=None default_numerical_convolution_base.energy = np.array([0, 1, 3, 6, 10]) default_numerical_convolution_base.upsample_factor = None + + # THEN EXPECT with pytest.raises( ValueError, match='Input array `energy` must be uniformly spaced if upsample_factor is not given', @@ -638,12 +635,12 @@ def test_repr(self, default_numerical_convolution_base): # Sample and resolution models assert 'ComponentCollection' in repr_str - assert 'components=[No components]' in repr_str + assert 'Components: No components' in repr_str assert 'sample_components=' in repr_str assert 'resolution_components=' in repr_str # Important parameters - assert 'unit=meV' in repr_str + assert 'x_unit=meV' in repr_str assert 'upsample_factor=5' in repr_str assert 'extension_factor=0.2' in repr_str assert 'temperature=None' in repr_str diff --git a/tests/unit/easydynamics/experiment/test_experiment.py b/tests/unit/easydynamics/experiment/test_experiment.py index 6201bbc05..21e63d2da 100644 --- a/tests/unit/easydynamics/experiment/test_experiment.py +++ b/tests/unit/easydynamics/experiment/test_experiment.py @@ -142,6 +142,18 @@ def test_load_hdf5_invalid_file_raises(self, experiment): with pytest.raises(OSError): experiment.load_hdf5('non_existent_file.h5') + def test_load_hdf5_invalid_data_type_raises(self, experiment): + "Test that loading a file that returns a non-DataArray raises TypeError" + # WHEN THEN EXPECT + with ( + patch( + 'easydynamics.experiment.experiment.sc_load_hdf5', + return_value=sc.scalar(1.0), + ), + pytest.raises(TypeError, match=r'sc\.DataArray'), + ): + experiment.load_hdf5('fake_file.h5') + def test_save_hdf5(self, tmp_path, experiment): "Test saving data to an HDF5 file. Load the saved file" 'using scipp and compare to the original data.' @@ -307,6 +319,23 @@ def test_get_masked_energy(self, experiment_with_data): assert len(masked_energy) == 1 assert masked_energy.values == pytest.approx(30.0) + def test_get_masked_energy_with_precomputed_mask(self, experiment_with_data): + "Test that passing a precomputed mask gives the same result as computing it" + # WHEN + Q_index = 0 + invalid_data = experiment_with_data._data.copy() + invalid_data.data.values[Q_index][0] = np.inf + + experiment_with_data.data = invalid_data + mask = experiment_with_data.get_finite_energy_mask(Q_index=Q_index) + + # THEN + masked_energy = experiment_with_data.get_masked_energy(Q_index=Q_index, mask=mask) + + # EXPECT: identical to the mask-free call + expected = experiment_with_data.get_masked_energy(Q_index=Q_index) + assert sc.identical(masked_energy, expected) + def test_get_masked_energy_no_data_returns_None(self): "Test getting masked energy returns zero when no data is present" @@ -334,6 +363,40 @@ def test_get_masked_energy_invalid_type_raises(self, experiment_with_data): with pytest.raises(TypeError): experiment_with_data.get_masked_energy(Q_index='not an index') + def test_get_finite_energy_mask_returns_none_without_data(self): + "Test get_finite_energy_mask returns None when no data is loaded" + # WHEN THEN EXPECT + assert Experiment().get_finite_energy_mask(Q_index=0) is None + + def test_get_masked_binned_data_returns_none_without_data(self): + "Test get_masked_binned_data returns None when no data is loaded" + # WHEN THEN EXPECT + assert Experiment().get_masked_binned_data(Q_index=0) is None + + def test_get_finite_energy_mask_with_data(self, experiment_with_data): + "Test get_finite_energy_mask returns a boolean scipp variable when data is loaded" + # WHEN + + # THEN + mask = experiment_with_data.get_finite_energy_mask(Q_index=0) + + # EXPECT + assert mask is not None + assert mask.dims == ('energy',) + assert len(mask) == 3 + + def test_get_masked_binned_data_with_data(self, experiment_with_data): + "Test get_masked_binned_data returns a DataArray with all-finite data loaded" + # WHEN + + # THEN + result = experiment_with_data.get_masked_binned_data(Q_index=0) + + # EXPECT + assert result is not None + assert isinstance(result, sc.DataArray) + assert result.dims == ('energy',) + ############## # test plotting ############## @@ -502,8 +565,8 @@ def test_extract_x_y_var(self, experiment_with_data): experiment_with_data.data.variances[Q_index], ) - def test_extract_x_y_weights_only_finite_zero_variances(self, experiment_with_data): - "Test that _extract_x_y_weights_only_finite raises ValueError when variances contain zeros" + def testextract_x_y_weights_only_finite_zero_variances(self, experiment_with_data): + "Test that extract_x_y_weights_only_finite raises ValueError when variances contain zeros" # WHEN Q_index = 0 invalid_data = experiment_with_data._data.copy() @@ -513,10 +576,10 @@ def test_extract_x_y_weights_only_finite_zero_variances(self, experiment_with_da # THEN EXPECT with pytest.raises(ValueError, match='Cannot compute weights: some variances are zero'): - Experiment(data=invalid_data)._extract_x_y_weights_only_finite(Q_index=Q_index) + Experiment(data=invalid_data).extract_x_y_weights_only_finite(Q_index=Q_index) - def test_extract_x_y_weights_only_finite(self, experiment_with_data): - "Test that _extract_x_y_weights_only_finite only returns finite values" + def testextract_x_y_weights_only_finite(self, experiment_with_data): + "Test that extract_x_y_weights_only_finite only returns finite values" # WHEN Q_index = 0 invalid_data = experiment_with_data._data.copy() @@ -524,7 +587,7 @@ def test_extract_x_y_weights_only_finite(self, experiment_with_data): invalid_data.data.variances[Q_index][1] = np.nan # THEN - x, y, weights, mask = Experiment(data=invalid_data)._extract_x_y_weights_only_finite( + x, y, weights, mask = Experiment(data=invalid_data).extract_x_y_weights_only_finite( Q_index=Q_index ) @@ -539,7 +602,7 @@ def test_extract_x_y_weights_only_finite(self, experiment_with_data): # Mask should indicate which values were removed assert np.array_equal(mask, [False, False, True]) - def test_extract_x_y_weights_only_finite_zero_variance(self, experiment_with_data): + def testextract_x_y_weights_only_finite_zero_variance(self, experiment_with_data): "Test getting x y and weights when variances are None" # WHEN Q_index = 0 @@ -549,9 +612,7 @@ def test_extract_x_y_weights_only_finite_zero_variance(self, experiment_with_dat experiment_with_data.data = data # THEN - x, y, weights, mask = experiment_with_data._extract_x_y_weights_only_finite( - Q_index=Q_index - ) + x, y, weights, mask = experiment_with_data.extract_x_y_weights_only_finite(Q_index=Q_index) # EXPECT assert np.array_equal(x, experiment_with_data.energy.values) diff --git a/tests/unit/easydynamics/sample_model/components/test_damped_harmonic_oscillator.py b/tests/unit/easydynamics/sample_model/components/test_damped_harmonic_oscillator.py index 02fc31dfa..12f73235f 100644 --- a/tests/unit/easydynamics/sample_model/components/test_damped_harmonic_oscillator.py +++ b/tests/unit/easydynamics/sample_model/components/test_damped_harmonic_oscillator.py @@ -5,7 +5,9 @@ import numpy as np import pytest +import scipp as sc from easyscience.variable import Parameter +from scipp import UnitError from scipy.integrate import simpson from easydynamics.sample_model import DampedHarmonicOscillator @@ -20,7 +22,7 @@ def dho(self): area=2.0, center=1.5, width=0.3, - unit='meV', + x_unit='meV', ) def test_init_no_inputs(self): @@ -32,7 +34,8 @@ def test_init_no_inputs(self): assert dho.area.value == pytest.approx(1.0) assert dho.center.value == pytest.approx(1.0) assert dho.width.value == pytest.approx(1.0) - assert dho.unit == 'meV' + assert dho.x_unit == 'meV' + assert dho.y_unit == 'dimensionless' def test_initialization(self, dho: DampedHarmonicOscillator): # WHEN THEN EXPECT @@ -40,26 +43,36 @@ def test_initialization(self, dho: DampedHarmonicOscillator): assert dho.area.value == pytest.approx(2.0) assert dho.center.value == pytest.approx(1.5) assert dho.width.value == pytest.approx(0.3) - assert dho.unit == 'meV' + assert dho.x_unit == 'meV' @pytest.mark.parametrize( 'kwargs, expected_message', [ ( - {'area': 'invalid', 'center': 0.5, 'width': 0.6, 'unit': 'meV'}, + {'area': 'invalid', 'center': 0.5, 'width': 0.6, 'x_unit': 'meV'}, 'area must be a number', ), ( - {'area': 2.0, 'center': 'invalid', 'width': 0.6, 'unit': 'meV'}, + {'area': 2.0, 'center': 'invalid', 'width': 0.6, 'x_unit': 'meV'}, 'center must be ', ), ( - {'area': 2.0, 'center': 0.5, 'width': 'invalid', 'unit': 'meV'}, + {'area': 2.0, 'center': 0.5, 'width': 'invalid', 'x_unit': 'meV'}, 'width must be a number', ), ( - {'area': 2.0, 'center': 0.5, 'width': 0.6, 'unit': 123}, - 'unit must be None', + {'area': 2.0, 'center': 0.5, 'width': 0.6, 'x_unit': 123}, + 'unit must be None, a string', + ), + ( + { + 'area': 2.0, + 'center': 0.5, + 'width': 0.6, + 'x_unit': 'meV', + 'y_unit': 123, + }, + 'unit must be None, a string', ), ], ) @@ -78,7 +91,7 @@ def test_negative_width_raises(self): area=2.0, center=0.5, width=-0.6, - unit='meV', + x_unit='meV', ) def test_negative_area_warns(self): @@ -89,7 +102,7 @@ def test_negative_area_warns(self): area=-2.0, center=0.5, width=0.6, - unit='meV', + x_unit='meV', ) @pytest.mark.parametrize( @@ -108,11 +121,15 @@ def test_property_setters( invalid_value, invalid_message, ): - # set valid + # WHEN + + # THEN : set a valid value setattr(dho, prop, valid_value) + + # EXPECT assert getattr(dho, prop).value == valid_value - # invalid + # WHEN: set an invalid value — THEN EXPECT with pytest.raises(TypeError, match=invalid_message): setattr(dho, prop, invalid_value) @@ -167,12 +184,12 @@ def test_area_matches_parameter(self, dho: DampedHarmonicOscillator): # EXPECT assert numerical_area == pytest.approx(dho.area.value, rel=2e-3) - def test_convert_unit(self, dho: DampedHarmonicOscillator): + def test_convert_x_unit(self, dho: DampedHarmonicOscillator): # WHEN THEN - dho.convert_unit('microeV') + dho.convert_x_unit('microeV') # EXPECT - assert dho.unit == 'microeV' + assert dho.x_unit == 'microeV' assert dho.area.value == pytest.approx(2 * 1e3) assert dho.center.value == pytest.approx(1.5 * 1e3) assert dho.width.value == pytest.approx(0.3 * 1e3) @@ -194,7 +211,7 @@ def test_copy(self, dho: DampedHarmonicOscillator): assert dho_copy.width.value == dho.width.value assert dho_copy.width.fixed == dho.width.fixed - assert dho_copy.unit == dho.unit + assert dho_copy.x_unit == dho.x_unit def test_repr(self, dho: DampedHarmonicOscillator): # WHEN THEN @@ -202,8 +219,91 @@ def test_repr(self, dho: DampedHarmonicOscillator): # EXPECT assert 'DampedHarmonicOscillator' in repr_str - assert "name='TestDHOName'" in repr_str - assert 'unit=meV' in repr_str - assert 'area=' in repr_str - assert 'center=' in repr_str - assert 'width=' in repr_str + assert 'name = TestDHOName' in repr_str + assert 'x_unit = meV' in repr_str + assert 'area =' in repr_str + assert 'center =' in repr_str + assert 'width =' in repr_str + + def test_y_unit_custom(self): + # WHEN THEN + dho = DampedHarmonicOscillator( + area=1.0, center=1.0, width=0.3, x_unit='meV', y_unit='1/meV' + ) + # EXPECT + assert dho.y_unit == '1/meV' + + def test_y_unit_setter_raises(self, dho: DampedHarmonicOscillator): + # WHEN THEN EXPECT + with pytest.raises(AttributeError): + dho.y_unit = '1/meV' + + def test_convert_y_unit(self): + # WHEN: x_unit='meV', y_unit='1/meV' → area_unit='dimensionless' + dho = DampedHarmonicOscillator( + area=1.0, center=1.0, width=0.3, x_unit='meV', y_unit='1/meV' + ) + + # THEN: convert y_unit to '1/eV' (same dimension, different scale) + dho.convert_y_unit('1/eV') + + # EXPECT: y_unit updated and area value rescaled (1e3 factor) + assert dho.y_unit == '1/eV' + assert dho.area.value == pytest.approx(1e3) + + def test_convert_y_unit_invalid_type_raises(self, dho: DampedHarmonicOscillator): + # WHEN THEN EXPECT + with pytest.raises(TypeError): + dho.convert_y_unit(123) + + def test_evaluate_scipp_output(self, dho: DampedHarmonicOscillator): + # WHEN + x = np.linspace(0.5, 5.0, 50) + + # THEN + result = dho.evaluate(x, output='scipp') + + # EXPECT + assert isinstance(result, sc.Variable) + assert result.unit == sc.Unit('dimensionless') + assert len(result.values) == 50 + np.testing.assert_allclose(result.values, dho.evaluate(x, output='numpy')) + + def test_evaluate_scipp_output_with_y_unit(self): + # WHEN + dho = DampedHarmonicOscillator( + area=1.0, center=1.0, width=0.3, x_unit='meV', y_unit='1/meV' + ) + x = np.linspace(0.5, 5.0, 50) + + # THEN + result = dho.evaluate(x, output='scipp') + + # EXPECT + assert isinstance(result, sc.Variable) + assert result.unit == sc.Unit('1/meV') + + def test_convert_x_unit_invalid_type_raises(self, dho: DampedHarmonicOscillator): + # WHEN THEN EXPECT + with pytest.raises(TypeError, match=r'x_unit must be a string or sc\.Unit'): + dho.convert_x_unit(123) + + def test_convert_x_unit_rollback_on_failure(self, dho: DampedHarmonicOscillator): + # WHEN THEN + with pytest.raises(UnitError): + dho.convert_x_unit('m') + # EXPECT: state rolled back + assert dho.x_unit == 'meV' + assert dho.area.value == pytest.approx(2.0) + assert dho.center.value == pytest.approx(1.5) + assert dho.width.value == pytest.approx(0.3) + + def test_convert_y_unit_rollback_on_failure(self): + # WHEN + dho = DampedHarmonicOscillator(area=1.0, center=1.0, width=0.3, x_unit='meV') + # THEN + with pytest.raises(UnitError): + dho.convert_y_unit('K') + # EXPECT: state rolled back + assert dho.y_unit == 'dimensionless' + assert dho.area.value == pytest.approx(1.0) diff --git a/tests/unit/easydynamics/sample_model/components/test_delta_function.py b/tests/unit/easydynamics/sample_model/components/test_delta_function.py index de3148b7d..85fbf1f6f 100644 --- a/tests/unit/easydynamics/sample_model/components/test_delta_function.py +++ b/tests/unit/easydynamics/sample_model/components/test_delta_function.py @@ -20,7 +20,7 @@ def delta_function(self): display_name='TestDeltaFunction', area=2.0, center=0.5, - unit='meV', + x_unit='meV', ) def test_init_no_inputs(self): @@ -31,7 +31,8 @@ def test_init_no_inputs(self): assert delta_function.display_name == 'DeltaFunction' assert delta_function.area.value == pytest.approx(1.0) assert delta_function.center.value == pytest.approx(0.0) - assert delta_function.unit == 'meV' + assert delta_function.x_unit == 'meV' + assert delta_function.y_unit == 'dimensionless' assert delta_function.center.fixed is True def test_initialization(self, delta_function: DeltaFunction): @@ -39,21 +40,25 @@ def test_initialization(self, delta_function: DeltaFunction): assert delta_function.display_name == 'TestDeltaFunction' assert delta_function.area.value == pytest.approx(2.0) assert delta_function.center.value == pytest.approx(0.5) - assert delta_function.unit == 'meV' + assert delta_function.x_unit == 'meV' @pytest.mark.parametrize( 'kwargs, expected_message', [ ( - {'area': 'invalid', 'center': 0.5, 'unit': 'meV'}, + {'area': 'invalid', 'center': 0.5, 'x_unit': 'meV'}, 'area must be a number', ), ( - {'area': 2.0, 'center': 'invalid', 'unit': 'meV'}, + {'area': 2.0, 'center': 'invalid', 'x_unit': 'meV'}, 'center must be ', ), ( - {'area': 2.0, 'center': 0.5, 'unit': 123}, + {'area': 2.0, 'center': 0.5, 'x_unit': 123}, + 'unit must be ', + ), + ( + {'area': 2.0, 'center': 0.5, 'x_unit': 'meV', 'y_unit': 123}, 'unit must be ', ), ], @@ -65,7 +70,7 @@ def test_input_type_validation_raises(self, kwargs, expected_message): def test_negative_area_warns(self): # WHEN THEN EXPECT with pytest.warns(UserWarning, match='may not be physically meaningful'): - DeltaFunction(display_name='TestDeltaFunction', area=-2.0, center=0.5, unit='meV') + DeltaFunction(display_name='TestDeltaFunction', area=-2.0, center=0.5, x_unit='meV') @pytest.mark.parametrize( 'prop, valid_value, invalid_value, invalid_message', @@ -82,11 +87,13 @@ def test_property_setters( invalid_value, invalid_message, ): - # set valid + # WHEN: set a valid value setattr(delta_function, prop, valid_value) + + # THEN EXPECT assert getattr(delta_function, prop).value == valid_value - # invalid + # WHEN: set an invalid value — THEN EXPECT with pytest.raises(TypeError, match=invalid_message): setattr(delta_function, prop, invalid_value) @@ -106,6 +113,29 @@ def test_evaluate(self, delta_function: DeltaFunction): np.testing.assert_allclose(result, expected_result, rtol=1e-5) + def test_evaluate_descending_grid(self): + # WHEN: a descending energy grid (regression: neighbor differences used to produce a + # negative bin width and a negative spike) + delta = DeltaFunction(area=1.0) + x = np.array([2.0, 0.0, -2.0]) + + # THEN + result = delta.evaluate(x) + + # EXPECT: positive spike at the position of the value nearest the center + np.testing.assert_allclose(result, [0.0, 0.5, 0.0]) + + def test_evaluate_unsorted_grid(self): + # WHEN: an unsorted grid; bin widths must come from the sorted values + delta = DeltaFunction(area=1.0) + x = np.array([0.0, 2.0, 1.0]) + + # THEN + result = delta.evaluate(x) + + # EXPECT: spike at x=0 with bin width from the sorted grid [0, 1, 2] -> 1.0 + np.testing.assert_allclose(result, [1.0, 0.0, 0.0]) + def test_evaluate_out_of_bounds(self, delta_function: DeltaFunction): # WHEN x = np.linspace(1, 2, 100) # center is at 0.5, so out of bounds @@ -147,7 +177,7 @@ def test_evaluate_with_incompatible_unit_raises(self, delta_function: DeltaFunct # THEN EXPECT with pytest.raises( UnitError, - match='Input x has unit nm, but DeltaFunction component ', + match='Input x has unit nm', ): delta_function.evaluate(x) @@ -190,12 +220,12 @@ def test_get_all_parameters(self, delta_function: DeltaFunction): actual_names = {param.name for param in params} assert actual_names == expected_names - def test_convert_unit(self, delta_function: DeltaFunction): + def test_convert_x_unit(self, delta_function: DeltaFunction): # WHEN THEN - delta_function.convert_unit('microeV') + delta_function.convert_x_unit('microeV') # EXPECT - assert delta_function.unit == 'microeV' + assert delta_function.x_unit == 'microeV' assert delta_function.area.value == pytest.approx(2 * 1e3) assert delta_function.center.value == pytest.approx(0.5 * 1e3) @@ -213,7 +243,7 @@ def test_copy(self, delta_function: DeltaFunction): assert delta_copy.center.value == delta_function.center.value assert delta_copy.center.fixed == delta_function.center.fixed - assert delta_copy.unit == delta_function.unit + assert delta_copy.x_unit == delta_function.x_unit def test_repr(self, delta_function: DeltaFunction): # WHEN THEN @@ -221,7 +251,103 @@ def test_repr(self, delta_function: DeltaFunction): # EXPECT assert 'DeltaFunction' in repr_str - assert "name='DeltaFunctionName'" in repr_str - assert 'unit=meV' in repr_str - assert 'area=' in repr_str - assert 'center=' in repr_str + assert 'name = DeltaFunctionName' in repr_str + assert 'x_unit = meV' in repr_str + assert 'area =' in repr_str + assert 'center =' in repr_str + + def test_y_unit_custom(self): + # WHEN THEN + delta = DeltaFunction(area=1.0, x_unit='meV', y_unit='1/meV') + + # EXPECT + assert delta.y_unit == '1/meV' + + def test_y_unit_setter_raises(self, delta_function: DeltaFunction): + # WHEN THEN EXPECT + with pytest.raises(AttributeError): + delta_function.y_unit = '1/meV' + + def test_convert_y_unit(self): + # WHEN: x_unit='meV', y_unit='1/meV' → area_unit='dimensionless' + delta = DeltaFunction(area=1.0, x_unit='meV', y_unit='1/meV') + # THEN: convert y_unit to '1/eV' (same dimension, different scale) + delta.convert_y_unit('1/eV') + # EXPECT: y_unit updated and area value rescaled (1e3 factor) + assert delta.y_unit == '1/eV' + assert delta.area.value == pytest.approx(1e3) + + def test_convert_y_unit_invalid_type_raises(self, delta_function: DeltaFunction): + # WHEN THEN EXPECT + with pytest.raises(TypeError): + delta_function.convert_y_unit(123) + + def test_evaluate_scipp_output(self, delta_function: DeltaFunction): + # WHEN + x = np.linspace(-5, 5, 50) + # THEN + result = delta_function.evaluate(x, output='scipp') + # EXPECT + assert isinstance(result, sc.Variable) + assert result.unit == sc.Unit('dimensionless') + assert len(result.values) == 50 + np.testing.assert_allclose(result.values, delta_function.evaluate(x, output='numpy')) + + def test_evaluate_scipp_output_with_y_unit(self): + # WHEN + delta = DeltaFunction(area=1.0, x_unit='meV', y_unit='1/meV') + x = np.linspace(-5, 5, 50) + # THEN + result = delta.evaluate(x, output='scipp') + # EXPECT + assert isinstance(result, sc.Variable) + assert result.unit == sc.Unit('1/meV') + + @pytest.mark.parametrize( + 'x, center, expected_idx', + [ + (np.array([0.5, 1.0, 2.0]), 0.5, 0), # center at first element (line 202) + (np.array([0.0, 1.0, 1.5]), 1.5, 2), # center at last element (line 207) + ], + ids=['center_at_first', 'center_at_last'], + ) + def test_evaluate_center_at_boundary(self, x, center, expected_idx): + # WHEN + area = 1.0 + delta = DeltaFunction(area=area, center=center, x_unit='meV') + + # THEN + result = delta.evaluate(x) + + # EXPECT + # All elements except the boundary one should be zero + assert result[expected_idx] > 0.0 + other_indices = [i for i in range(len(x)) if i != expected_idx] + assert all(result[i] == pytest.approx(0.0) for i in other_indices) + # Boundary bin width: both left and right are set to the single adjacent spacing + bin_width = x[1] - x[0] if expected_idx == 0 else x[-1] - x[-2] + assert np.isclose(result[expected_idx], area / bin_width, rtol=1e-10) + + def test_convert_x_unit_invalid_type_raises(self, delta_function: DeltaFunction): + # WHEN THEN EXPECT + with pytest.raises(TypeError, match=r'x_unit must be a string or sc\.Unit'): + delta_function.convert_x_unit(123) + + def test_convert_x_unit_rollback_on_failure(self, delta_function: DeltaFunction): + # WHEN THEN + with pytest.raises(UnitError): + delta_function.convert_x_unit('m') + # EXPECT: state rolled back + assert delta_function.x_unit == 'meV' + assert delta_function.area.value == pytest.approx(2.0) + assert delta_function.center.value == pytest.approx(0.5) + + def test_convert_y_unit_rollback_on_failure(self): + # WHEN + delta = DeltaFunction(area=1.0, center=0.0, x_unit='meV', y_unit='dimensionless') + # THEN + with pytest.raises(UnitError): + delta.convert_y_unit('K') + # EXPECT: state rolled back + assert delta.y_unit == 'dimensionless' + assert delta.area.value == pytest.approx(1.0) diff --git a/tests/unit/easydynamics/sample_model/components/test_exponential.py b/tests/unit/easydynamics/sample_model/components/test_exponential.py index b7fa55031..1b9de0988 100644 --- a/tests/unit/easydynamics/sample_model/components/test_exponential.py +++ b/tests/unit/easydynamics/sample_model/components/test_exponential.py @@ -5,6 +5,7 @@ import numpy as np import pytest +import scipp as sc from easyscience.variable import Parameter from scipp import UnitError @@ -20,7 +21,7 @@ def exponential(self): amplitude=2.0, center=0.5, rate=1.2, - unit='meV', + x_unit='meV', ) def test_init_no_inputs(self): @@ -32,7 +33,8 @@ def test_init_no_inputs(self): assert exponential.amplitude.value == pytest.approx(1.0) assert exponential.center.value == pytest.approx(0.0) assert exponential.rate.value == pytest.approx(1.0) - assert exponential.unit == 'meV' + assert exponential.x_unit == 'meV' + assert exponential.y_unit == 'dimensionless' def test_initialization(self, exponential: Exponential): # WHEN THEN EXPECT @@ -40,23 +42,33 @@ def test_initialization(self, exponential: Exponential): assert exponential.amplitude.value == pytest.approx(2.0) assert exponential.center.value == pytest.approx(0.5) assert exponential.rate.value == pytest.approx(1.2) - assert exponential.unit == 'meV' + assert exponential.x_unit == 'meV' @pytest.mark.parametrize( 'kwargs, expected_message', [ ( - {'amplitude': 'invalid', 'center': 0.5, 'rate': 1.0, 'unit': 'meV'}, + {'amplitude': 'invalid', 'center': 0.5, 'rate': 1.0, 'x_unit': 'meV'}, 'amplitude must be a number', ), ( - {'amplitude': 2.0, 'center': 'invalid', 'rate': 1.0, 'unit': 'meV'}, + {'amplitude': 2.0, 'center': 'invalid', 'rate': 1.0, 'x_unit': 'meV'}, 'center must be None or a number', ), ( - {'amplitude': 2.0, 'center': 0.5, 'rate': 'invalid', 'unit': 'meV'}, + {'amplitude': 2.0, 'center': 0.5, 'rate': 'invalid', 'x_unit': 'meV'}, 'rate must be a number', ), + ( + { + 'amplitude': 2.0, + 'center': 0.5, + 'rate': 1.0, + 'x_unit': 'meV', + 'y_unit': 123, + }, + 'unit must be None, a string', + ), ], ) def test_input_type_validation_raises(self, kwargs, expected_message): @@ -67,12 +79,12 @@ def test_input_type_validation_raises(self, kwargs, expected_message): 'kwargs, expected_message', [ ( - {'amplitude': np.nan, 'center': 0.5, 'rate': 1.0, 'unit': 'meV'}, - 'amplitude must be a finite number or a Parameter', + {'amplitude': np.nan, 'center': 0.5, 'rate': 1.0, 'x_unit': 'meV'}, + 'amplitude must be finite', ), ( - {'amplitude': 2.0, 'center': 0.5, 'rate': np.nan, 'unit': 'meV'}, - 'rate must be a finite number or a Parameter', + {'amplitude': 2.0, 'center': 0.5, 'rate': np.nan, 'x_unit': 'meV'}, + 'rate must be finite', ), ], ) @@ -96,11 +108,12 @@ def test_property_setters( invalid_value, invalid_message, ): - # set valid + # WHEN: set a valid value setattr(exponential, prop, valid_value) + # THEN EXPECT assert getattr(exponential, prop).value == valid_value - # invalid + # WHEN: set an invalid value — THEN EXPECT with pytest.raises(TypeError, match=invalid_message): setattr(exponential, prop, invalid_value) @@ -144,37 +157,40 @@ def test_get_all_parameters(self, exponential: Exponential): assert actual_names == expected_names - def test_convert_unit(self, exponential: Exponential): + def test_convert_x_unit(self, exponential: Exponential): # WHEN - exponential.convert_unit('microeV') - # THEN EXPECT - assert exponential.unit == 'microeV' + # THEN + exponential.convert_x_unit('microeV') + + # EXPECT + assert exponential.x_unit == 'microeV' - assert exponential.amplitude.value == pytest.approx(2.0 * 1e3) + # amplitude carries y_unit only and is unaffected by x-unit conversion + assert exponential.amplitude.value == pytest.approx(2.0) assert exponential.center.value == pytest.approx(0.5 * 1e3) # rate should scale inversely assert exponential.rate.value == pytest.approx(1.2 / 1e3) assert str(exponential.rate.unit) == '1/ueV' - def test_convert_unit_incorrect_unit_raises(self, exponential: Exponential): + def test_convert_x_unit_incorrect_unit_raises(self, exponential: Exponential): # WHEN THEN EXPECT with pytest.raises(TypeError, match=r'unit must be a string or sc.Unit'): - exponential.convert_unit(123) + exponential.convert_x_unit(123) - def test_convert_unit_rollback(self, exponential: Exponential): - # WHEN + def test_convert_x_unit_rollback(self, exponential: Exponential): + # WHEN THEN with pytest.raises( UnitError, match=r'Failed to convert unit: Conversion from `meV` to `m` is not valid.', ): - exponential.convert_unit('m') + exponential.convert_x_unit('m') - # THEN EXPECT - values should be unchanged - assert exponential.unit == 'meV' + # EXPECT - values should be unchanged + assert exponential.x_unit == 'meV' assert exponential.amplitude.value == pytest.approx(2.0) - assert exponential.amplitude.unit == 'meV' + assert exponential.amplitude.unit == 'dimensionless' assert exponential.center.value == pytest.approx(0.5) assert exponential.center.unit == 'meV' assert exponential.rate.value == pytest.approx(1.2) @@ -182,9 +198,11 @@ def test_convert_unit_rollback(self, exponential: Exponential): def test_copy(self, exponential: Exponential): # WHEN + + # THEN exponential_copy = copy(exponential) - # THEN EXPECT + # EXPECT assert exponential_copy is not exponential assert exponential_copy.display_name == exponential.display_name @@ -197,7 +215,8 @@ def test_copy(self, exponential: Exponential): assert exponential_copy.rate.value == exponential.rate.value assert exponential_copy.rate.fixed == exponential.rate.fixed - assert exponential_copy.unit == exponential.unit + assert exponential_copy.x_unit == exponential.x_unit + assert exponential_copy.y_unit == exponential.y_unit def test_repr(self, exponential: Exponential): # WHEN @@ -205,8 +224,89 @@ def test_repr(self, exponential: Exponential): # THEN EXPECT assert 'Exponential' in repr_str - assert "name='ExponentialName'" in repr_str - assert 'unit=meV' in repr_str - assert 'amplitude=' in repr_str - assert 'center=' in repr_str - assert 'rate=' in repr_str + assert 'name = ExponentialName' in repr_str + assert 'x_unit = meV' in repr_str + assert 'amplitude =' in repr_str + assert 'center =' in repr_str + assert 'rate =' in repr_str + + def test_y_unit_custom(self): + # WHEN THEN + exp = Exponential(amplitude=1.0, center=0.0, rate=1.0, x_unit='meV', y_unit='1/meV') + # EXPECT + assert exp.y_unit == '1/meV' + + def test_y_unit_setter_raises(self, exponential: Exponential): + # WHEN THEN EXPECT + with pytest.raises(AttributeError): + exponential.y_unit = '1/meV' + + def test_convert_y_unit(self): + # WHEN: x_unit='meV', y_unit='1/meV' → amplitude_unit='dimensionless' + exp = Exponential(amplitude=1.0, center=0.0, rate=1.0, x_unit='meV', y_unit='1/meV') + # THEN: convert y_unit to '1/eV' (same dimension, different scale) + exp.convert_y_unit('1/eV') + # EXPECT: y_unit updated and amplitude value rescaled (1e3 factor) + assert exp.y_unit == '1/eV' + assert exp.amplitude.value == pytest.approx(1e3) + + def test_convert_y_unit_invalid_type_raises(self, exponential: Exponential): + # WHEN THEN EXPECT + with pytest.raises(TypeError): + exponential.convert_y_unit(123) + + def test_evaluate_scipp_output(self, exponential: Exponential): + # WHEN + x = np.linspace(-5, 5, 50) + # THEN + result = exponential.evaluate(x, output='scipp') + # EXPECT + assert isinstance(result, sc.Variable) + assert result.unit == sc.Unit('dimensionless') + assert len(result.values) == 50 + np.testing.assert_allclose(result.values, exponential.evaluate(x, output='numpy')) + + def test_evaluate_scipp_output_with_y_unit(self): + # WHEN + exp = Exponential(amplitude=1.0, center=0.0, rate=1.0, x_unit='meV', y_unit='1/meV') + x = np.linspace(-5, 5, 50) + # THEN + result = exp.evaluate(x, output='scipp') + # EXPECT + assert isinstance(result, sc.Variable) + assert result.unit == sc.Unit('1/meV') + + def test_init_rejects_parameter_amplitude(self): + # WHEN THEN EXPECT + amplitude_param = Parameter(name='amp', value=3.0, unit='meV') + with pytest.raises(TypeError, match='amplitude must be a number'): + Exponential(amplitude=amplitude_param, x_unit='meV') + + def test_init_rejects_parameter_rate(self): + # WHEN THEN EXPECT + rate_param = Parameter(name='rate', value=0.5, unit='1/meV') + with pytest.raises(TypeError, match='rate must be a number'): + Exponential(rate=rate_param, x_unit='meV') + + def test_convert_y_unit_rollback_on_failure(self): + # WHEN + exp = Exponential(amplitude=1.0, center=0.0, rate=1.0, x_unit='meV') + # THEN + with pytest.raises(UnitError): + exp.convert_y_unit('K') + # EXPECT: state rolled back + assert exp.y_unit == 'dimensionless' + assert exp.amplitude.value == pytest.approx(1.0) + + def test_evaluate_unchanged_by_convert_x_unit(self): + # WHEN: regression — the amplitude used to carry x_unit * y_unit, so converting the + # x unit rescaled the whole curve by the conversion factor + exp = Exponential(amplitude=2.0, center=0.0, rate=1.0, x_unit='meV') + before = exp.evaluate(np.array([0.0])) + + # THEN: convert the x-axis unit and evaluate at the same physical point + exp.convert_x_unit('ueV') + after = exp.evaluate(np.array([0.0])) + + # EXPECT: the curve is unchanged + np.testing.assert_allclose(after, before) diff --git a/tests/unit/easydynamics/sample_model/components/test_expression_component.py b/tests/unit/easydynamics/sample_model/components/test_expression_component.py index 48fbafe26..b73987901 100644 --- a/tests/unit/easydynamics/sample_model/components/test_expression_component.py +++ b/tests/unit/easydynamics/sample_model/components/test_expression_component.py @@ -5,6 +5,7 @@ import numpy as np import pytest +import scipp as sc from easyscience.variable import Parameter from easydynamics.sample_model import ExpressionComponent @@ -16,14 +17,14 @@ def expr(self): return ExpressionComponent( 'A * exp(-(x - x0)**2 / (2*sigma**2))', parameters={'A': 2.0, 'x0': 0.5, 'sigma': 0.6}, - unit='meV', + x_unit='meV', display_name='TestExpression', ) def test_init_valid(self, expr: ExpressionComponent): # WHEN THEN EXPECT assert expr.display_name == 'TestExpression' - assert expr.unit == 'meV' + assert expr.x_unit == 'meV' assert expr.A.value == pytest.approx(2.0) assert expr.x0.value == pytest.approx(0.5) @@ -131,10 +132,26 @@ def test_expression_is_read_only(self, expr: ExpressionComponent): with pytest.raises(AttributeError, match='cannot be changed'): expr.expression = 'x' - def test_convert_unit_not_implemented(self, expr: ExpressionComponent): + def test_convert_x_unit_not_implemented(self, expr: ExpressionComponent): # WHEN THEN EXPECT with pytest.raises(NotImplementedError, match='not implemented'): - expr.convert_unit('microeV') + expr.convert_x_unit('microeV') + + def test_convert_y_unit_not_implemented(self, expr: ExpressionComponent): + # WHEN THEN EXPECT + with pytest.raises(NotImplementedError, match='not implemented'): + expr.convert_y_unit('1/meV') + + def test_evaluate_scipp_output(self, expr: ExpressionComponent): + # WHEN + x = np.linspace(-2, 2, 30) + # THEN + result = expr.evaluate(x, output='scipp') + # EXPECT + assert isinstance(result, sc.Variable) + assert result.unit == sc.Unit('dimensionless') + assert len(result.values) == 30 + np.testing.assert_allclose(result.values, expr.evaluate(x, output='numpy')) def test_missing_parameter_defaults(self): # WHEN THEN @@ -166,20 +183,19 @@ def test_repr(self, expr: ExpressionComponent): def test_evaluate_scalar_input(self, expr: ExpressionComponent): # WHEN x = 0.5 - result = expr.evaluate(x) - # THEN + result = expr.evaluate(x) + # EXPECT expected = 2.0 * np.exp(-((x - 0.5) ** 2) / (2 * 0.6**2)) assert np.isclose(result, expected) def test_reserved_name_not_parameter(self): # WHEN expr = ExpressionComponent('x + A', parameters={'A': 2.0}) - # THEN params = expr.get_all_variables() names = {p.name for p in params} - + # EXPECT assert 'A' in names assert 'x' not in names # x is reserved @@ -191,7 +207,8 @@ def test_copy(self, expr: ExpressionComponent): assert expr_copy is not expr assert isinstance(expr_copy, ExpressionComponent) assert expr_copy.expression == expr.expression - assert expr_copy.unit == expr.unit + assert expr_copy.x_unit == expr.x_unit + assert expr_copy.y_unit == expr.y_unit assert expr_copy.display_name == expr.display_name assert expr_copy.A.value == pytest.approx(expr.A.value) diff --git a/tests/unit/easydynamics/sample_model/components/test_gaussian.py b/tests/unit/easydynamics/sample_model/components/test_gaussian.py index a370e74fb..3ef9b01b7 100644 --- a/tests/unit/easydynamics/sample_model/components/test_gaussian.py +++ b/tests/unit/easydynamics/sample_model/components/test_gaussian.py @@ -5,7 +5,9 @@ import numpy as np import pytest +import scipp as sc from easyscience.variable import Parameter +from scipp import UnitError from scipy.integrate import simpson from easydynamics.sample_model import Gaussian @@ -20,7 +22,7 @@ def gaussian(self): area=2.0, center=0.5, width=0.6, - unit='meV', + x_unit='meV', ) def test_init_no_inputs(self): @@ -32,7 +34,8 @@ def test_init_no_inputs(self): assert gaussian.area.value == pytest.approx(1.0) assert gaussian.center.value == pytest.approx(0.0) assert gaussian.width.value == pytest.approx(1.0) - assert gaussian.unit == 'meV' + assert gaussian.x_unit == 'meV' + assert gaussian.y_unit == 'dimensionless' assert gaussian.center.fixed is True def test_initialization(self, gaussian: Gaussian): @@ -41,33 +44,38 @@ def test_initialization(self, gaussian: Gaussian): assert gaussian.area.value == pytest.approx(2.0) assert gaussian.center.value == pytest.approx(0.5) assert gaussian.width.value == pytest.approx(0.6) - assert gaussian.unit == 'meV' + assert gaussian.x_unit == 'meV' @pytest.mark.parametrize( 'kwargs, expected_message', [ ( - {'area': 'invalid', 'center': 0.5, 'width': 0.6, 'unit': 'meV'}, + {'area': 'invalid', 'center': 0.5, 'width': 0.6, 'x_unit': 'meV'}, 'area must be a number', ), ( - {'area': 2.0, 'center': 'invalid', 'width': 0.6, 'unit': 'meV'}, + {'area': 2.0, 'center': 'invalid', 'width': 0.6, 'x_unit': 'meV'}, 'center must be None or a number', ), ( - {'area': 2.0, 'center': 0.5, 'width': 'invalid', 'unit': 'meV'}, + {'area': 2.0, 'center': 0.5, 'width': 'invalid', 'x_unit': 'meV'}, 'width must be a number', ), ( - {'area': 2.0, 'center': 0.5, 'width': 0.6, 'unit': 123}, - 'unit must be None', + {'area': 2.0, 'center': 0.5, 'width': 0.6, 'x_unit': 123}, + 'unit must be None, a string', + ), + ( + {'area': 2.0, 'center': 0.5, 'width': 0.6, 'x_unit': 'meV', 'y_unit': 123}, + 'unit must be None, a string', ), ], ids=[ 'invalid area', 'invalid center', 'invalid width', - 'invalid unit', + 'invalid x_unit', + 'invalid y_unit', ], ) def test_input_type_validation_raises(self, kwargs, expected_message): @@ -84,7 +92,7 @@ def test_negative_width_raises(self): area=2.0, center=0.5, width=-0.6, - unit='meV', + x_unit='meV', ) def test_negative_area_warns(self): @@ -95,7 +103,7 @@ def test_negative_area_warns(self): area=-2.0, center=0.5, width=0.6, - unit='meV', + x_unit='meV', ) @pytest.mark.parametrize( @@ -109,11 +117,12 @@ def test_negative_area_warns(self): def test_property_setters( self, gaussian: Gaussian, prop, valid_value, invalid_value, invalid_message ): - # set valid + # WHEN: set a valid value setattr(gaussian, prop, valid_value) + # THEN EXPECT assert getattr(gaussian, prop).value == valid_value - # invalid + # WHEN: set an invalid value — THEN EXPECT with pytest.raises(TypeError, match=invalid_message): setattr(gaussian, prop, invalid_value) @@ -177,12 +186,12 @@ def test_area_matches_parameter(self, gaussian: Gaussian): numerical_area = simpson(y, x) assert np.isclose(numerical_area, gaussian.area.value, rtol=1e-3) - def test_convert_unit(self, gaussian: Gaussian): + def test_convert_x_unit(self, gaussian: Gaussian): # WHEN THEN - gaussian.convert_unit('microeV') + gaussian.convert_x_unit('microeV') # EXPECT - assert gaussian.unit == 'microeV' + assert gaussian.x_unit == 'microeV' assert gaussian.area.value == pytest.approx(2 * 1e3) assert gaussian.center.value == pytest.approx(0.5 * 1e3) assert gaussian.width.value == pytest.approx(0.6 * 1e3) @@ -216,15 +225,91 @@ def test_copy(self, gaussian: Gaussian): assert gaussian_copy.width.min == gaussian.width.min assert gaussian_copy.width.max == gaussian.width.max - assert gaussian_copy.unit == gaussian.unit + assert gaussian_copy.x_unit == gaussian.x_unit def test_repr(self, gaussian: Gaussian): # WHEN THEN repr_str = repr(gaussian) # EXPECT assert 'Gaussian' in repr_str - assert "name='GaussianName'" in repr_str - assert 'unit=meV' in repr_str - assert 'area=' in repr_str - assert 'center=' in repr_str - assert 'width=' in repr_str + assert 'name = GaussianName' in repr_str + assert 'x_unit = meV' in repr_str + assert 'area =' in repr_str + assert 'center =' in repr_str + assert 'width =' in repr_str + + def test_y_unit_custom(self): + # WHEN THEN + gaussian = Gaussian(area=1.0, x_unit='meV', y_unit='1/meV') + # EXPECT + assert gaussian.y_unit == '1/meV' + + def test_y_unit_setter_raises(self, gaussian: Gaussian): + # WHEN THEN EXPECT + with pytest.raises(AttributeError): + gaussian.y_unit = '1/meV' + + def test_convert_y_unit(self): + # WHEN: x_unit='meV', y_unit='1/meV' → area_unit ≈ dimensionless + gaussian = Gaussian(area=1.0, x_unit='meV', y_unit='1/meV') + + # THEN: convert y_unit to '1/eV' (same dimension, different scale) + gaussian.convert_y_unit('1/eV') + + # EXPECT: unit updated and area value rescaled (1/eV = 1e-3/meV, so value x 1e3) + assert gaussian.y_unit == '1/eV' + assert gaussian.area.value == pytest.approx(1e3) + + def test_convert_y_unit_invalid_type_raises(self, gaussian: Gaussian): + # WHEN THEN EXPECT + with pytest.raises(TypeError): + gaussian.convert_y_unit(123) + + def test_evaluate_scipp_output(self, gaussian: Gaussian): + # WHEN + x = np.linspace(-5, 5, 100) + + # THEN + result = gaussian.evaluate(x, output='scipp') + + # EXPECT + assert isinstance(result, sc.Variable) + assert result.unit == sc.Unit('dimensionless') + assert len(result.values) == 100 + np.testing.assert_allclose(result.values, gaussian.evaluate(x, output='numpy')) + + def test_evaluate_scipp_output_with_y_unit(self): + gaussian = Gaussian(area=1.0, x_unit='meV', y_unit='1/meV') + x = np.linspace(-5, 5, 100) + + # WHEN + result = gaussian.evaluate(x, output='scipp') + + # EXPECT + assert isinstance(result, sc.Variable) + assert result.unit == sc.Unit('1/meV') + + def test_convert_x_unit_invalid_type_raises(self, gaussian: Gaussian): + # WHEN THEN EXPECT + with pytest.raises(TypeError, match=r'x_unit must be a string or sc\.Unit'): + gaussian.convert_x_unit(123) + + def test_convert_x_unit_rollback_on_failure(self, gaussian: Gaussian): + # WHEN THEN + with pytest.raises(UnitError): + gaussian.convert_x_unit('m') + # EXPECT: state rolled back + assert gaussian.x_unit == 'meV' + assert gaussian.area.value == pytest.approx(2.0) + assert gaussian.center.value == pytest.approx(0.5) + assert gaussian.width.value == pytest.approx(0.6) + + def test_convert_y_unit_rollback_on_failure(self): + # WHEN + gaussian = Gaussian(area=1.0, center=0.0, width=0.5, x_unit='meV') + # THEN + with pytest.raises(UnitError): + gaussian.convert_y_unit('K') + # EXPECT: state rolled back + assert gaussian.y_unit == 'dimensionless' + assert gaussian.area.value == pytest.approx(1.0) diff --git a/tests/unit/easydynamics/sample_model/components/test_lorentzian.py b/tests/unit/easydynamics/sample_model/components/test_lorentzian.py index 1aefee6a9..97e02aad9 100644 --- a/tests/unit/easydynamics/sample_model/components/test_lorentzian.py +++ b/tests/unit/easydynamics/sample_model/components/test_lorentzian.py @@ -5,7 +5,9 @@ import numpy as np import pytest +import scipp as sc from easyscience.variable import Parameter +from scipp import UnitError from scipy.integrate import simpson from easydynamics.sample_model import Lorentzian @@ -20,7 +22,7 @@ def lorentzian(self): area=2.0, center=0.5, width=0.6, - unit='meV', + x_unit='meV', ) def test_init_no_inputs(self): @@ -32,7 +34,8 @@ def test_init_no_inputs(self): assert lorentzian.area.value == pytest.approx(1.0) assert lorentzian.center.value == pytest.approx(0.0) assert lorentzian.width.value == pytest.approx(1.0) - assert lorentzian.unit == 'meV' + assert lorentzian.x_unit == 'meV' + assert lorentzian.y_unit == 'dimensionless' assert lorentzian.center.fixed is True def test_initialization(self, lorentzian: Lorentzian): @@ -41,26 +44,30 @@ def test_initialization(self, lorentzian: Lorentzian): assert lorentzian.area.value == pytest.approx(2.0) assert lorentzian.center.value == pytest.approx(0.5) assert lorentzian.width.value == pytest.approx(0.6) - assert lorentzian.unit == 'meV' + assert lorentzian.x_unit == 'meV' @pytest.mark.parametrize( 'kwargs, expected_message', [ ( - {'area': 'invalid', 'center': 0.5, 'width': 0.6, 'unit': 'meV'}, + {'area': 'invalid', 'center': 0.5, 'width': 0.6, 'x_unit': 'meV'}, 'area must be a number', ), ( - {'area': 2.0, 'center': 'invalid', 'width': 0.6, 'unit': 'meV'}, - 'center must be None', + {'area': 2.0, 'center': 'invalid', 'width': 0.6, 'x_unit': 'meV'}, + 'center must be None or a number', ), ( - {'area': 2.0, 'center': 0.5, 'width': 'invalid', 'unit': 'meV'}, + {'area': 2.0, 'center': 0.5, 'width': 'invalid', 'x_unit': 'meV'}, 'width must be a number', ), ( - {'area': 2.0, 'center': 0.5, 'width': 0.6, 'unit': 123}, - 'unit must be None', + {'area': 2.0, 'center': 0.5, 'width': 0.6, 'x_unit': 123}, + 'unit must be None, a string', + ), + ( + {'area': 2.0, 'center': 0.5, 'width': 0.6, 'x_unit': 'meV', 'y_unit': 123}, + 'unit must be None, a string', ), ], ) @@ -78,7 +85,7 @@ def test_negative_width_raises(self): area=2.0, center=0.5, width=-0.6, - unit='meV', + x_unit='meV', ) def test_negative_area_warns(self): @@ -89,7 +96,7 @@ def test_negative_area_warns(self): area=-2.0, center=0.5, width=0.6, - unit='meV', + x_unit='meV', ) @pytest.mark.parametrize( @@ -103,11 +110,12 @@ def test_negative_area_warns(self): def test_property_setters( self, lorentzian: Lorentzian, prop, valid_value, invalid_value, invalid_message ): - # set valid + # WHEN: set a valid value setattr(lorentzian, prop, valid_value) + # THEN EXPECT assert getattr(lorentzian, prop).value == valid_value - # invalid + # WHEN: set an invalid value — THEN EXPECT with pytest.raises(TypeError, match=invalid_message): setattr(lorentzian, prop, invalid_value) @@ -166,12 +174,12 @@ def test_area_matches_parameter(self, lorentzian: Lorentzian): # EXPECT assert numerical_area == pytest.approx(lorentzian.area.value, rel=2e-3) - def test_convert_unit(self, lorentzian: Lorentzian): + def test_convert_x_unit(self, lorentzian: Lorentzian): # WHEN THEN - lorentzian.convert_unit('microeV') + lorentzian.convert_x_unit('microeV') # EXPECT - assert lorentzian.unit == 'microeV' + assert lorentzian.x_unit == 'microeV' assert lorentzian.area.value == pytest.approx(2 * 1e3) assert lorentzian.center.value == pytest.approx(0.5 * 1e3) assert lorentzian.width.value == pytest.approx(0.6 * 1e3) @@ -193,7 +201,7 @@ def test_copy(self, lorentzian: Lorentzian): assert lorentzian_copy.width.value == lorentzian.width.value assert lorentzian_copy.width.fixed == lorentzian.width.fixed - assert lorentzian_copy.unit == lorentzian.unit + assert lorentzian_copy.x_unit == lorentzian.x_unit def test_repr(self, lorentzian: Lorentzian): # WHEN THEN @@ -201,8 +209,79 @@ def test_repr(self, lorentzian: Lorentzian): # EXPECT assert 'Lorentzian' in repr_str - assert "name='LorentzianName'" in repr_str - assert 'unit=meV' in repr_str - assert 'area=' in repr_str - assert 'center=' in repr_str - assert 'width=' in repr_str + assert 'name = LorentzianName' in repr_str + assert 'x_unit = meV' in repr_str + assert 'area =' in repr_str + assert 'center =' in repr_str + assert 'width =' in repr_str + + def test_y_unit_custom(self): + # WHEN THEN + lor = Lorentzian(area=1.0, x_unit='meV', y_unit='1/meV') + # EXPECT + assert lor.y_unit == '1/meV' + + def test_y_unit_setter_raises(self, lorentzian: Lorentzian): + # WHEN THEN EXPECT + with pytest.raises(AttributeError): + lorentzian.y_unit = '1/meV' + + def test_convert_y_unit(self): + # WHEN: x_unit='meV', y_unit='1/meV' → area_unit='dimensionless' + lor = Lorentzian(area=1.0, x_unit='meV', y_unit='1/meV') + # THEN: convert y_unit to '1/eV' (same dimension, different scale) + lor.convert_y_unit('1/eV') + # EXPECT: y_unit updated and area value rescaled (1e3 factor) + assert lor.y_unit == '1/eV' + assert lor.area.value == pytest.approx(1e3) + + def test_convert_y_unit_invalid_type_raises(self, lorentzian: Lorentzian): + # WHEN THEN EXPECT + with pytest.raises(TypeError): + lorentzian.convert_y_unit(123) + + def test_evaluate_scipp_output(self, lorentzian: Lorentzian): + # WHEN + x = np.linspace(-5, 5, 50) + # THEN + result = lorentzian.evaluate(x, output='scipp') + # EXPECT + assert isinstance(result, sc.Variable) + assert result.unit == sc.Unit('dimensionless') + assert len(result.values) == 50 + np.testing.assert_allclose(result.values, lorentzian.evaluate(x, output='numpy')) + + def test_evaluate_scipp_output_with_y_unit(self): + # WHEN + lor = Lorentzian(area=1.0, x_unit='meV', y_unit='1/meV') + x = np.linspace(-5, 5, 50) + # THEN + result = lor.evaluate(x, output='scipp') + # EXPECT + assert isinstance(result, sc.Variable) + assert result.unit == sc.Unit('1/meV') + + def test_convert_x_unit_invalid_type_raises(self, lorentzian: Lorentzian): + # WHEN THEN EXPECT + with pytest.raises(TypeError, match=r'x_unit must be a string or sc\.Unit'): + lorentzian.convert_x_unit(123) + + def test_convert_x_unit_rollback_on_failure(self, lorentzian: Lorentzian): + # WHEN THEN + with pytest.raises(UnitError): + lorentzian.convert_x_unit('m') + # EXPECT: state rolled back + assert lorentzian.x_unit == 'meV' + assert lorentzian.area.value == pytest.approx(2.0) + assert lorentzian.center.value == pytest.approx(0.5) + assert lorentzian.width.value == pytest.approx(0.6) + + def test_convert_y_unit_rollback_on_failure(self): + # WHEN + lor = Lorentzian(area=1.0, center=0.0, width=0.5, x_unit='meV') + # THEN + with pytest.raises(UnitError): + lor.convert_y_unit('K') + # EXPECT: state rolled back + assert lor.y_unit == 'dimensionless' + assert lor.area.value == pytest.approx(1.0) diff --git a/tests/unit/easydynamics/sample_model/components/test_mixins.py b/tests/unit/easydynamics/sample_model/components/test_mixins.py index e30f4bdd1..d7a8487ca 100644 --- a/tests/unit/easydynamics/sample_model/components/test_mixins.py +++ b/tests/unit/easydynamics/sample_model/components/test_mixins.py @@ -18,7 +18,7 @@ def dummy_model(self): @pytest.mark.parametrize('area_input', [2, 2.0]) def test_create_area_parameter_from_numeric(self, dummy_model, area_input, unit): # WHEN THEN - area_param = dummy_model._create_area_parameter(area_input, 'TestModel', unit=unit) + area_param = dummy_model._create_area_parameter(area_input, 'TestModel', x_unit=unit) # EXPECT assert isinstance(area_param, Parameter) @@ -59,7 +59,7 @@ def test_negative_area_warns(self, dummy_model): def test_create_center_parameter_from_numeric(self, dummy_model, center_input, unit): # WHEN THEN center_param = dummy_model._create_center_parameter( - center_input, 'TestModel', fix_if_none=False, unit=unit + center_input, 'TestModel', fix_if_none=False, x_unit=unit ) # EXPECT assert isinstance(center_param, Parameter) @@ -86,6 +86,18 @@ def test_create_center_parameter_invalid_type_raises(self, dummy_model): with pytest.raises(TypeError, match='center must be None or a number'): dummy_model._create_center_parameter('invalid', 'TestModel', fix_if_none=False) + @pytest.mark.parametrize('center_input', [None, 0.0, 1e-12]) + def test_create_center_parameter_enforce_minimum_clamps(self, dummy_model, center_input): + # WHEN: a center below the DHO minimum (regression: setting min before clamping the + # value used to raise ValueError from Parameter.min) + center_param = dummy_model._create_center_parameter( + center_input, 'TestModel', fix_if_none=False, enforce_minimum_center=True + ) + + # EXPECT: value clamped up to the minimum, and the bound enforced + assert center_param.value == pytest.approx(1e-10) + assert center_param.min == pytest.approx(1e-10) + @pytest.mark.parametrize( 'non_finite_center', [ @@ -104,7 +116,7 @@ def test_create_center_parameter_invalid_numeric_raises(self, dummy_model, non_f def test_create_width_parameter_from_numeric(self, dummy_model, width_input, unit): # WHEN THEN width_param = dummy_model._create_width_parameter( - width_input, 'TestModel', param_name='width', unit=unit + width_input, 'TestModel', param_name='width', x_unit=unit ) # EXPECT assert isinstance(width_param, Parameter) diff --git a/tests/unit/easydynamics/sample_model/components/test_model_component.py b/tests/unit/easydynamics/sample_model/components/test_model_component.py index 514ced73b..40e05e03a 100644 --- a/tests/unit/easydynamics/sample_model/components/test_model_component.py +++ b/tests/unit/easydynamics/sample_model/components/test_model_component.py @@ -5,7 +5,9 @@ import pytest import scipp as sc from easyscience.variable import Parameter +from scipp import UnitError +from easydynamics.sample_model.components.gaussian import Gaussian from easydynamics.sample_model.components.model_component import ModelComponent @@ -15,13 +17,13 @@ def __init__(self): self.area = Parameter(name='area', value=1.0, unit='meV', fixed=False) self.center = Parameter(name='center', value=2.0, unit='meV', fixed=True) self.width = Parameter(name='width', value=3.0, unit='meV', fixed=True) - self._unit = 'meV' + self._x_unit = 'meV' def get_all_parameters(self): return [self.area, self.center, self.width] - def evaluate(self, x): - return np.zeros_like(x) + def _evaluate_values(self, x_vals, _eval_unit): + return np.zeros_like(x_vals) class TestModelComponent: @@ -31,23 +33,23 @@ def dummy(self): def test_unit_cannot_be_set_directly(self, dummy: ModelComponent): # WHEN THEN EXPECT - with pytest.raises(AttributeError, match='Unit is read-only'): - dummy.unit = 'K' + with pytest.raises(AttributeError, match='read-only'): + dummy.x_unit = 'K' def test_convert_unit(self, dummy: DummyComponent): # WHEN THEN - dummy.convert_unit('microeV') + dummy.convert_x_unit('microeV') # EXPECT - assert dummy.unit == 'microeV' + assert dummy.x_unit == 'microeV' assert dummy.area.value == pytest.approx(1 * 1e3) assert dummy.center.value == pytest.approx(2 * 1e3) assert dummy.width.value == pytest.approx(3 * 1e3) def test_convert_unit_incorrect_unit_raises(self, dummy: DummyComponent): # WHEN THEN EXPECT - with pytest.raises(TypeError, match=r'Unit must be a string or sc.Unit'): - dummy.convert_unit(123) + with pytest.raises(TypeError, match=r'unit must be a string or sc.Unit'): + dummy.convert_x_unit(123) def test_free_and_fix_all_parameters(self, dummy): # WHEN THEN EXPECT @@ -58,6 +60,23 @@ def test_free_and_fix_all_parameters(self, dummy): dummy.fix_all_parameters() assert all(p.fixed for p in dummy.get_all_parameters()) + def test_get_fit_targets(self, dummy: DummyComponent): + # WHEN + targets = dummy.get_fit_targets() + + # EXPECT: a single 'value' prediction wrapping evaluate, stamped with the component's + # units and no default dataset key + assert len(targets) == 1 + target = targets[0] + assert target.name == 'value' + assert target.dataset_key is None + assert target.label == 'Dummy' + assert target.x_unit == dummy.x_unit + assert target.y_unit == dummy.y_unit + np.testing.assert_allclose( + target.function(np.array([1.0, 2.0])), dummy.evaluate(np.array([1.0, 2.0])) + ) + def test_repr(self, dummy): # WHEN THEN EXPECT repr_str = repr(dummy) @@ -92,8 +111,11 @@ def test_repr(self, dummy): ], ) def test_prepare_x_for_evaluate_various_inputs(self, dummy, x_input, expected_array): - x_prepared = dummy._prepare_x_for_evaluate(x_input) + # WHEN THEN + result = dummy._prepare_x_for_evaluate(x_input) + x_prepared, _detected_unit, _dim = result + # EXPECT assert isinstance(x_prepared, np.ndarray) assert x_prepared.shape == expected_array.shape np.testing.assert_array_equal(x_prepared, expected_array) @@ -137,26 +159,126 @@ def test_prepare_x_for_evaluate_with_incompatible_unit_raises(self, dummy): # THEN EXPECT with pytest.raises( Exception, - match='Input x has unit nm, but DummyComponent component ', + match='Input x has unit nm', ): dummy._prepare_x_for_evaluate(x) - def test_prepare_x_for_evaluate_with_different_unit_warns(self, dummy): + def test_prepare_x_for_evaluate_with_different_unit_no_warn(self, dummy): # WHEN x = sc.array(dims=['x'], values=[1.0, 2.0, 3.0], unit='microeV') - # THEN EXPECT - with pytest.warns( - UserWarning, - match='Input x has unit [µμ]eV, but DummyComponent component ', - ): - x_prepared = dummy._prepare_x_for_evaluate(x) + # THEN: compatible units are accepted without warning; + # the component's x_unit is NOT mutated and x values are returned as-is. + x_prepared, _detected_unit, _dim = dummy._prepare_x_for_evaluate(x) # EXPECT assert isinstance(x_prepared, np.ndarray) assert x_prepared.shape == (3,) np.testing.assert_array_equal(x_prepared, [1.0, 2.0, 3.0]) - assert dummy.unit == 'µeV' # noqa: RUF001 - assert dummy.area.value == pytest.approx(1.0 * 1e3) - assert dummy.center.value == pytest.approx(2.0 * 1e3) - assert dummy.width.value == pytest.approx(3.0 * 1e3) + assert dummy.x_unit == 'meV' # component unit unchanged + assert dummy.area.value == pytest.approx(1.0) # parameter values unchanged + assert dummy.center.value == pytest.approx(2.0) + assert dummy.width.value == pytest.approx(3.0) + + def test_resolve_param_value_same_unit_returns_raw_value(self, dummy): + # WHEN: target unit matches parameter unit + + # THEN + result = dummy._resolve_param_value(dummy.area, 'meV') + # EXPECT: raw value returned without conversion + assert result == pytest.approx(dummy.area.value) + + def test_resolve_param_value_none_target_returns_raw_value(self, dummy): + # WHEN: target unit is None + + # THEN + result = dummy._resolve_param_value(dummy.area, None) + + # EXPECT: raw value returned without conversion + assert result == pytest.approx(dummy.area.value) + + def test_resolve_param_value_converts_without_mutating(self, dummy): + # WHEN: target unit differs from parameter unit + + # THEN + result = dummy._resolve_param_value(dummy.area, 'eV') + # EXPECT: converted value (1.0 meV → 0.001 eV) + assert result == pytest.approx(0.001) + # parameter itself is not mutated + assert dummy.area.value == pytest.approx(1.0) + assert str(dummy.area.unit) == 'meV' + + def test_evaluate_with_compatible_unit_gives_correct_result(self): + # WHEN: Gaussian in meV and a physically equivalent Gaussian in eV + g_mev = Gaussian(area=1.0, center=0.0, width=0.5, x_unit='meV') + g_ev = Gaussian(area=0.001, center=0.0, width=0.0005, x_unit='eV') + + x_ev = sc.array( + dims=['energy'], + values=np.array([-0.002, -0.001, 0.0, 0.001, 0.002]), + unit='eV', + ) + x_ev_np = np.array([-0.002, -0.001, 0.0, 0.001, 0.002]) + + # THEN: evaluate meV-Gaussian with x in eV + result_mev = g_mev.evaluate(x_ev) + result_ev = g_ev.evaluate(x_ev_np) + + # EXPECT: physically identical outputs + np.testing.assert_allclose(result_mev, result_ev, rtol=1e-10) + # EXPECT: model state is unchanged + assert g_mev.x_unit == 'meV' + assert g_mev.width.value == pytest.approx(0.5) + assert g_mev.area.value == pytest.approx(1.0) + + # ───── Regression tests ───── + + def test_convert_x_unit_rollback_on_failure(self, dummy: DummyComponent): + # Conversion to 'm' (length) is incompatible with 'meV' (energy) → triggers rollback + with pytest.raises(UnitError): + dummy.convert_x_unit('m') + # Parameters should be restored to original values after rollback + assert dummy.x_unit == 'meV' + assert dummy.area.value == pytest.approx(1.0) + assert dummy.center.value == pytest.approx(2.0) + assert dummy.width.value == pytest.approx(3.0) + + def test_convert_y_unit_not_implemented(self, dummy: DummyComponent): + with pytest.raises(NotImplementedError, match='does not support convert_y_unit'): + dummy.convert_y_unit('1/meV') + + def test_evaluate_invalid_output_raises(self, dummy: DummyComponent): + # WHEN THEN EXPECT + with pytest.raises(ValueError, match="output must be 'numpy' or 'scipp'"): + dummy.evaluate(np.linspace(-1, 1, 5), output='Scipp') + + def test_eval_area_unit(self, dummy: DummyComponent): + # WHEN THEN EXPECT: y_unit is dimensionless, so the area unit equals the eval unit + assert sc.Unit(dummy._eval_area_unit('meV')) == sc.Unit('meV') + + def test_eval_area_unit_none_eval_unit(self, dummy: DummyComponent): + # WHEN THEN EXPECT: without an eval unit there is no area unit + assert dummy._eval_area_unit(None) is None + + def test_eval_area_unit_none_y_unit(self, dummy: DummyComponent): + # WHEN + dummy._y_unit = None + + # THEN EXPECT + assert dummy._eval_area_unit('meV') is None + + def test_evaluate_preserves_dataarray_coord_key_as_dim(self): + # WHEN: a Gaussian and a DataArray where the coord key ('energy') differs + # from the coord Variable's internal dim name ('x'). This is a valid scipp + # non-dimension coordinate: the data's dimension is 'x' and the coord is + # labelled 'energy' but lives on the same 'x' axis. + g = Gaussian(name='G', area=1.0, center=0.0, width=1.0, x_unit='meV') + coord = sc.Variable(dims=['x'], values=np.linspace(-5.0, 5.0, 10), unit='meV') + data = sc.Variable(dims=['x'], values=np.ones(10)) + da = sc.DataArray(data=data, coords={'energy': coord}) + # THEN: evaluate with scipp output + # Before the fix, dim was overwritten with coord.dims[0] = 'x', so the + # output Variable had dim 'x' instead of the coord key 'energy'. + result = g.evaluate(da, output='scipp') + # EXPECT: output dim must be the coord key 'energy', not the Variable dim 'x'. + assert result.dims == ('energy',) diff --git a/tests/unit/easydynamics/sample_model/components/test_polynomial.py b/tests/unit/easydynamics/sample_model/components/test_polynomial.py index 2ba3f5525..8f6550bee 100644 --- a/tests/unit/easydynamics/sample_model/components/test_polynomial.py +++ b/tests/unit/easydynamics/sample_model/components/test_polynomial.py @@ -5,6 +5,7 @@ import numpy as np import pytest +import scipp as sc from easyscience.variable import Parameter from scipp import UnitError @@ -27,7 +28,8 @@ def test_init_no_inputs(self): # EXPECT assert polynomial.display_name == 'Polynomial' assert polynomial.coefficients[0].value == pytest.approx(0.0) - assert polynomial.unit == 'meV' + assert polynomial.x_unit == 'meV' + assert polynomial.y_unit == 'dimensionless' def test_initialization(self, polynomial: Polynomial): # WHEN THEN EXPECT @@ -48,7 +50,11 @@ def test_initialization(self, polynomial: Polynomial): 'Each coefficient must be ', ), ( - {'coefficients': [1.0, -2.0, 3.0], 'unit': 123}, + {'coefficients': [1.0, -2.0, 3.0], 'x_unit': 123}, + 'unit must be ', + ), + ( + {'coefficients': [1.0, -2.0, 3.0], 'x_unit': 'meV', 'y_unit': 123}, 'unit must be ', ), ( @@ -59,6 +65,7 @@ def test_initialization(self, polynomial: Polynomial): ], ) def test_input_type_validation_raises(self, kwargs, expected_message): + # WHEN THEN EXPECT with pytest.raises(TypeError, match=expected_message): Polynomial(display_name='TestPolynomial', **kwargs) @@ -118,13 +125,12 @@ def test_set_coefficients(self, polynomial: Polynomial, values): assert np.isclose(polynomial.coefficients[i].value, expected) def test_set_coefficients_wrong_length_raises(self, polynomial: Polynomial): - """Ensure that setting coefficients with mismatched length - raises an error.""" + # WHEN THEN EXPECT with pytest.raises(ValueError, match='Number of coefficients'): polynomial.coefficients = [1.0, 2.0] # shorter list def test_set_coefficients_invalid_type_raises(self, polynomial: Polynomial): - """Ensure that invalid coefficient types raise a TypeError.""" + # WHEN THEN EXPECT with pytest.raises(TypeError): polynomial.coefficients = [1.0, 'invalid', 3.0] @@ -137,8 +143,11 @@ def test_set_coefficients_invalid_type_raises(self, polynomial: Polynomial): ], ) def test_set_coefficients_raises(self, invalid_coeffs, expected_message): + # WHEN + # THEN + polynomial = Polynomial(display_name='TestPolynomial', coefficients=[1.0, -2.0, 3.0]) with pytest.raises(TypeError, match=expected_message): - polynomial = Polynomial(display_name='TestPolynomial', coefficients=[1.0, -2.0, 3.0]) + # EXPECT polynomial.coefficients = invalid_coeffs def test_coefficient_values(self, polynomial: Polynomial): @@ -161,20 +170,20 @@ def test_get_all_parameters(self, polynomial: Polynomial): actual_names = {param.name for param in params} assert actual_names == expected_names - def test_convert_unit(self, polynomial: Polynomial): + def test_convert_x_unit(self, polynomial: Polynomial): # WHEN - polynomial.convert_unit('microeV') + polynomial.convert_x_unit('microeV') # THEN EXPECT - assert polynomial._unit == 'microeV' + assert polynomial._x_unit == 'microeV' assert np.isclose(polynomial.coefficients[0].value, 1.0) assert np.isclose(polynomial.coefficients[1].value, -2.0 * 1e-3) assert np.isclose(polynomial.coefficients[2].value, 3.0 * 1e-6) - def test_convert_unit_raises_invalid_unit(self, polynomial: Polynomial): + def test_convert_x_unit_raises_invalid_unit(self, polynomial: Polynomial): # WHEN THEN EXPECT - with pytest.raises(UnitError, match='unit must be '): - polynomial.convert_unit(123) + with pytest.raises(Exception, match='unit must be '): + polynomial.convert_x_unit(123) def test_copy(self, polynomial: Polynomial): # WHEN THEN @@ -192,10 +201,101 @@ def test_copy(self, polynomial: Polynomial): assert copied_coeff.value == original_coeff.value assert copied_coeff.fixed == original_coeff.fixed + def test_y_unit_custom(self): + # WHEN THEN + p = Polynomial(coefficients=[1.0, 2.0], x_unit='meV', y_unit='1/meV') + # EXPECT + assert p.y_unit == '1/meV' + + def test_y_unit_setter_raises(self, polynomial: Polynomial): + # WHEN THEN EXPECT + with pytest.raises(AttributeError): + polynomial.y_unit = '1/meV' + + def test_convert_y_unit_scales_all_coefficients(self): + # WHEN: polynomial with two non-zero coefficients and a physical y_unit + p = Polynomial(coefficients=[3.0, 1.0], x_unit='meV', y_unit='meV^-1') + x = np.array([2.0]) + val_before = p.evaluate(x)[0] # 3.0 + 1.0*2.0 = 5.0 [meV^-1] + + # THEN + p.convert_y_unit('eV^-1') + + # EXPECT: both coefficients rescaled by 1000 (1 meV^-1 = 1000 eV^-1) + assert p.y_unit == 'eV^-1' + assert np.isclose(p.coefficients[0].value, 3000.0) + assert np.isclose(p.coefficients[1].value, 1000.0) + assert np.isclose(p.evaluate(x)[0], val_before * 1000.0) + + def test_evaluate_scipp_output(self): + # WHEN + p = Polynomial(coefficients=[1.0, 2.0], x_unit='meV', suppress_warnings=True) + x = np.linspace(-3, 3, 40) + # THEN + result = p.evaluate(x, output='scipp') + # EXPECT + assert isinstance(result, sc.Variable) + assert result.unit == sc.Unit('dimensionless') + assert len(result.values) == 40 + np.testing.assert_allclose(result.values, p.evaluate(x, output='numpy')) + + def test_evaluate_scipp_output_with_y_unit(self): + # WHEN + p = Polynomial( + coefficients=[1.0, 2.0], + x_unit='meV', + y_unit='1/meV', + suppress_warnings=True, + ) + x = np.linspace(-3, 3, 40) + # THEN + result = p.evaluate(x, output='scipp') + # EXPECT + assert isinstance(result, sc.Variable) + assert result.unit == sc.Unit('1/meV') + def test_repr(self, polynomial: Polynomial): # WHEN THEN repr_str = repr(polynomial) # EXPECT - assert "name='PolynomialName'" in repr_str - assert 'coefficients=' in repr_str + assert 'name = PolynomialName' in repr_str + assert 'coefficients =' in repr_str + + def test_evaluate_with_scipp_x_different_compatible_unit(self): + # WHEN: polynomial with x_unit='meV', coefficients [1.0, 1.0] → f(x) = 1 + x + p = Polynomial(coefficients=[1.0, 1.0], x_unit='meV') + # THEN: evaluate with x in eV (compatible unit) — triggers unit-rescaling branch + x_eV = sc.array(dims=['x'], values=np.array([0.001, 0.002]), unit='eV') + result = p.evaluate(x_eV) + # EXPECT: 0.001 eV = 1 meV → f(1)=2, 0.002 eV = 2 meV → f(2)=3; state not mutated + np.testing.assert_allclose(result, [2.0, 3.0], rtol=1e-5) + assert p.x_unit == 'meV' + + def test_evaluate_with_equivalent_unit_spelling_does_not_rescale(self): + # WHEN: 'ueV' and scipp's canonical micro-sign spelling are the same unit + # (regression: a string comparison used to treat them as different and rescale) + p = Polynomial(coefficients=[1.0, 1.0], x_unit='ueV', suppress_warnings=True) + x = sc.array(dims=['x'], values=np.array([1.0, 2.0]), unit='\u00b5eV') + + # THEN + result = p.evaluate(x) + + # EXPECT: f(x) = 1 + x with the raw coefficient values, no rescaling applied + np.testing.assert_allclose(result, [2.0, 3.0]) + + def test_convert_y_unit_invalid_type_raises(self, polynomial: Polynomial): + # WHEN THEN EXPECT + with pytest.raises(UnitError, match='new_y_unit must be a string or a scipp unit'): + polynomial.convert_y_unit(123) + + def test_convert_y_unit_rollback_on_failure(self): + # WHEN + p = Polynomial(coefficients=[1.0, 2.0], x_unit='meV') + # THEN + with pytest.raises(UnitError): + p.convert_y_unit('K') + # EXPECT: state rolled back + assert p.y_unit == 'dimensionless' + assert np.isclose(p.coefficients[0].value, 1.0) + assert np.isclose(p.coefficients[1].value, 2.0) diff --git a/tests/unit/easydynamics/sample_model/components/test_voigt.py b/tests/unit/easydynamics/sample_model/components/test_voigt.py index 8b8d44cf3..42eb5099c 100644 --- a/tests/unit/easydynamics/sample_model/components/test_voigt.py +++ b/tests/unit/easydynamics/sample_model/components/test_voigt.py @@ -5,7 +5,9 @@ import numpy as np import pytest +import scipp as sc from easyscience.variable import Parameter +from scipp import UnitError from scipy.integrate import simpson from scipy.special import voigt_profile @@ -22,7 +24,7 @@ def voigt(self): center=0.5, gaussian_width=0.6, lorentzian_width=0.7, - unit='meV', + x_unit='meV', ) def test_init_no_inputs(self): @@ -35,7 +37,8 @@ def test_init_no_inputs(self): assert voigt.center.value == pytest.approx(0.0) assert voigt.gaussian_width.value == pytest.approx(1.0) assert voigt.lorentzian_width.value == pytest.approx(1.0) - assert voigt.unit == 'meV' + assert voigt.x_unit == 'meV' + assert voigt.y_unit == 'dimensionless' assert voigt.center.fixed is True def test_initialization(self, voigt: Voigt): @@ -45,7 +48,7 @@ def test_initialization(self, voigt: Voigt): assert voigt.center.value == pytest.approx(0.5) assert voigt.gaussian_width.value == pytest.approx(0.6) assert voigt.lorentzian_width.value == pytest.approx(0.7) - assert voigt.unit == 'meV' + assert voigt.x_unit == 'meV' @pytest.mark.parametrize( 'kwargs, expected_message', @@ -56,7 +59,7 @@ def test_initialization(self, voigt: Voigt): 'center': 0.5, 'gaussian_width': 0.6, 'lorentzian_width': 0.7, - 'unit': 'meV', + 'x_unit': 'meV', }, 'area must be a number', ), @@ -66,7 +69,7 @@ def test_initialization(self, voigt: Voigt): 'center': 'invalid', 'gaussian_width': 0.6, 'lorentzian_width': 0.7, - 'unit': 'meV', + 'x_unit': 'meV', }, 'center must be None', ), @@ -76,7 +79,7 @@ def test_initialization(self, voigt: Voigt): 'center': 0.5, 'gaussian_width': 'invalid', 'lorentzian_width': 0.7, - 'unit': 'meV', + 'x_unit': 'meV', }, 'gaussian_width must be a number', ), @@ -86,7 +89,7 @@ def test_initialization(self, voigt: Voigt): 'center': 0.5, 'gaussian_width': 0.6, 'lorentzian_width': 'invalid', - 'unit': 'meV', + 'x_unit': 'meV', }, 'lorentzian_width must be a number', ), @@ -96,13 +99,25 @@ def test_initialization(self, voigt: Voigt): 'center': 0.5, 'gaussian_width': 0.6, 'lorentzian_width': 0.7, - 'unit': 123, + 'x_unit': 123, }, - 'unit must be None,', + 'unit must be None, a string', + ), + ( + { + 'area': 2.0, + 'center': 0.5, + 'gaussian_width': 0.6, + 'lorentzian_width': 0.7, + 'x_unit': 'meV', + 'y_unit': 123, + }, + 'unit must be None, a string', ), ], ) def test_input_type_validation_raises(self, kwargs, expected_message): + # WHEN THEN EXPECT with pytest.raises(TypeError, match=expected_message): Voigt(display_name='TestVoigt', **kwargs) @@ -117,7 +132,7 @@ def test_negative_gaussian_width_raises(self): center=0.5, gaussian_width=-0.6, lorentzian_width=0.7, - unit='meV', + x_unit='meV', ) def test_negative_lorentzian_width_raises(self): @@ -132,7 +147,7 @@ def test_negative_lorentzian_width_raises(self): center=0.5, gaussian_width=0.6, lorentzian_width=-0.7, - unit='meV', + x_unit='meV', ) def test_negative_area_warns(self): @@ -144,7 +159,7 @@ def test_negative_area_warns(self): center=0.5, gaussian_width=0.6, lorentzian_width=0.7, - unit='meV', + x_unit='meV', ) @pytest.mark.parametrize( @@ -164,11 +179,12 @@ def test_negative_area_warns(self): def test_property_setters( self, voigt: Voigt, prop, valid_value, invalid_value, invalid_message ): - # set valid + # WHEN: set a valid value setattr(voigt, prop, valid_value) + # THEN EXPECT assert getattr(voigt, prop).value == valid_value - # invalid + # WHEN: set an invalid value — THEN EXPECT with pytest.raises(TypeError, match=invalid_message): setattr(voigt, prop, invalid_value) @@ -214,19 +230,19 @@ def test_center_is_fixed_if_init_to_None(self): center=None, gaussian_width=0.6, lorentzian_width=0.7, - unit='meV', + x_unit='meV', ) # EXPECT assert test_voigt.center.value == pytest.approx(0.0) assert test_voigt.center.fixed is True - def test_convert_unit(self, voigt: Voigt): + def test_convert_x_unit(self, voigt: Voigt): # WHEN THEN - voigt.convert_unit('microeV') + voigt.convert_x_unit('microeV') # EXPECT - assert voigt.unit == 'microeV' + assert voigt.x_unit == 'microeV' assert voigt.area.value == pytest.approx(2 * 1e3) assert voigt.center.value == pytest.approx(0.5 * 1e3) assert voigt.gaussian_width.value == pytest.approx(0.6 * 1e3) @@ -285,7 +301,7 @@ def test_copy(self, voigt: Voigt): assert voigt_copy.lorentzian_width.value == voigt.lorentzian_width.value assert voigt_copy.lorentzian_width.fixed == voigt.lorentzian_width.fixed - assert voigt_copy.unit == voigt.unit + assert voigt_copy.x_unit == voigt.x_unit def test_repr(self, voigt: Voigt): # WHEN THEN @@ -293,9 +309,102 @@ def test_repr(self, voigt: Voigt): # EXPECT assert 'Voigt' in repr_str - assert "name='VoigtName'" in repr_str - assert 'unit=meV' in repr_str - assert 'area=' in repr_str - assert 'center=' in repr_str - assert 'gaussian_width=' in repr_str - assert 'lorentzian_width=' in repr_str + assert 'name = VoigtName' in repr_str + assert 'x_unit = meV' in repr_str + assert 'area =' in repr_str + assert 'center =' in repr_str + assert 'gaussian_width =' in repr_str + assert 'lorentzian_width =' in repr_str + + def test_y_unit_custom(self): + # WHEN THEN + voigt = Voigt( + area=1.0, + center=0.0, + gaussian_width=0.5, + lorentzian_width=0.3, + x_unit='meV', + y_unit='1/meV', + ) + # EXPECT + assert voigt.y_unit == '1/meV' + + def test_y_unit_setter_raises(self, voigt: Voigt): + # WHEN THEN EXPECT + with pytest.raises(AttributeError): + voigt.y_unit = '1/meV' + + def test_convert_y_unit(self): + # WHEN: x_unit='meV', y_unit='1/meV' → area_unit='dimensionless' + voigt = Voigt( + area=1.0, + center=0.0, + gaussian_width=0.5, + lorentzian_width=0.3, + x_unit='meV', + y_unit='1/meV', + ) + # THEN: convert y_unit to '1/eV' (same dimension, different scale) + voigt.convert_y_unit('1/eV') + # EXPECT: y_unit updated and area value rescaled (1e3 factor) + assert voigt.y_unit == '1/eV' + assert voigt.area.value == pytest.approx(1e3) + + def test_convert_y_unit_invalid_type_raises(self, voigt: Voigt): + # WHEN THEN EXPECT + with pytest.raises(TypeError): + voigt.convert_y_unit(123) + + def test_evaluate_scipp_output(self, voigt: Voigt): + # WHEN + x = np.linspace(-5, 5, 50) + # THEN + result = voigt.evaluate(x, output='scipp') + # EXPECT + assert isinstance(result, sc.Variable) + assert result.unit == sc.Unit('dimensionless') + assert len(result.values) == 50 + np.testing.assert_allclose(result.values, voigt.evaluate(x, output='numpy')) + + def test_evaluate_scipp_output_with_y_unit(self): + # WHEN + voigt = Voigt( + area=1.0, + center=0.0, + gaussian_width=0.5, + lorentzian_width=0.3, + x_unit='meV', + y_unit='1/meV', + ) + x = np.linspace(-5, 5, 50) + # THEN + result = voigt.evaluate(x, output='scipp') + # EXPECT + assert isinstance(result, sc.Variable) + assert result.unit == sc.Unit('1/meV') + + def test_convert_x_unit_invalid_type_raises(self, voigt: Voigt): + # WHEN THEN EXPECT + with pytest.raises(TypeError, match=r'x_unit must be a string or sc\.Unit'): + voigt.convert_x_unit(123) + + def test_convert_x_unit_rollback_on_failure(self, voigt: Voigt): + # WHEN THEN + with pytest.raises(UnitError): + voigt.convert_x_unit('m') + # EXPECT: state rolled back + assert voigt.x_unit == 'meV' + assert voigt.area.value == pytest.approx(2.0) + assert voigt.center.value == pytest.approx(0.5) + assert voigt.gaussian_width.value == pytest.approx(0.6) + assert voigt.lorentzian_width.value == pytest.approx(0.7) + + def test_convert_y_unit_rollback_on_failure(self): + # WHEN + voigt = Voigt(area=1.0, center=0.0, gaussian_width=0.5, lorentzian_width=0.3, x_unit='meV') + # THEN + with pytest.raises(UnitError): + voigt.convert_y_unit('K') + # EXPECT: state rolled back + assert voigt.y_unit == 'dimensionless' + assert voigt.area.value == pytest.approx(1.0) diff --git a/tests/unit/easydynamics/sample_model/diffusion_model/test_brownian_translational_diffusion.py b/tests/unit/easydynamics/sample_model/diffusion_model/test_brownian_translational_diffusion.py index 7941d4068..4b2137540 100644 --- a/tests/unit/easydynamics/sample_model/diffusion_model/test_brownian_translational_diffusion.py +++ b/tests/unit/easydynamics/sample_model/diffusion_model/test_brownian_translational_diffusion.py @@ -25,16 +25,60 @@ def brownian_diffusion_model(self): def test_init_default(self, brownian_diffusion_model): # WHEN THEN EXPECT assert brownian_diffusion_model.display_name == 'BrownianTranslationalDiffusion' - assert brownian_diffusion_model.unit == 'meV' + assert brownian_diffusion_model.x_unit == 'meV' + assert brownian_diffusion_model.y_unit == 'dimensionless' assert brownian_diffusion_model.scale.value == pytest.approx(1.0) + assert brownian_diffusion_model.scale.unit == 'meV' assert brownian_diffusion_model.diffusion_coefficient.value == pytest.approx(1.0) + def test_convert_x_unit_rescales_widths(self): + # WHEN + model = BrownianTranslationalDiffusion(diffusion_coefficient=2.4e-9, Q=np.array([1.0])) + width_mev = model.calculate_width()[0] + + # THEN + model.convert_x_unit('ueV') + + # EXPECT: calculated width and the component width follow the new unit + assert model.calculate_width()[0] == pytest.approx(width_mev * 1000) + collection = model.get_component_collections(0) + assert sc.Unit(str(collection[0].width.unit)) == sc.Unit('ueV') + assert collection[0].width.value == pytest.approx(width_mev * 1000) + assert sc.Unit(str(model.scale.unit)) == sc.Unit('ueV') + + def test_convert_x_unit_converts_collections_in_place(self): + # WHEN + model = BrownianTranslationalDiffusion(diffusion_coefficient=2.4e-9, Q=np.array([1.0])) + collection_before = model.get_component_collections(0) + + # THEN + model.convert_x_unit('ueV') + + # EXPECT: conversion does not regenerate the collections (regression: rebuilding + # replaced the component objects, breaking external references) + assert model.get_component_collections(0) is collection_before + + def test_convert_x_unit_persists_after_dependency_update(self): + # WHEN + model = BrownianTranslationalDiffusion(diffusion_coefficient=2.4e-9, Q=np.array([1.0])) + width = model.get_component_collections(0)[0].width + model.convert_x_unit('ueV') + width_uev = width.value + + # THEN: trigger a dependency-graph recompute + model.diffusion_coefficient = 4.8e-9 + + # EXPECT: the dependent width stays in the new unit (regression: a plain convert_unit + # was reverted to the old desired unit by the next graph update) + assert sc.Unit(str(width.unit)) == sc.Unit('ueV') + assert width.value == pytest.approx(2 * width_uev) + @pytest.mark.parametrize( 'kwargs,expected_exception, expected_message', [ ( { - 'unit': 123, + 'x_unit': 123, 'scale': 1.0, 'diffusion_coefficient': 1.0, }, @@ -43,7 +87,16 @@ def test_init_default(self, brownian_diffusion_model): ), ( { - 'unit': 'meV', + 'y_unit': 123, + 'scale': 1.0, + 'diffusion_coefficient': 1.0, + }, + TypeError, + None, + ), + ( + { + 'x_unit': 'meV', 'scale': 'invalid', 'diffusion_coefficient': 1.0, }, @@ -52,7 +105,7 @@ def test_init_default(self, brownian_diffusion_model): ), ( { - 'unit': 'meV', + 'x_unit': 'meV', 'scale': -123.4, 'diffusion_coefficient': 1.0, }, @@ -61,7 +114,7 @@ def test_init_default(self, brownian_diffusion_model): ), ( { - 'unit': 'meV', + 'x_unit': 'meV', 'scale': 1.0, 'diffusion_coefficient': 'invalid', }, @@ -70,7 +123,7 @@ def test_init_default(self, brownian_diffusion_model): ), ( { - 'unit': 'meV', + 'x_unit': 'meV', 'scale': 1.0, 'diffusion_coefficient': -123.4, }, @@ -78,6 +131,14 @@ def test_init_default(self, brownian_diffusion_model): 'diffusion_coefficient must be non-negative', ), ], + ids=[ + 'invalid_x_unit', + 'invalid_y_unit', + 'invalid_scale_type', + 'invalid_scale_negative', + 'invalid_diffusion_coefficient_type', + 'invalid_diffusion_coefficient_negative', + ], ) def test_input_type_validation_raises(self, kwargs, expected_exception, expected_message): with pytest.raises(expected_exception, match=expected_message): @@ -123,6 +184,17 @@ def test_calculate_width(self, brownian_diffusion_model): expected_widths = 1.0 * unit_conversion_factor.value * (Q_values**2) np.testing.assert_allclose(widths, expected_widths, rtol=1e-5) + def test_calculate_width_scipp_Q_converts_unit(self, brownian_diffusion_model): + # WHEN: the same Q expressed in 1/angstrom (numpy, assumed) and in 1/nm (scipp) + Q_values = np.array([0.1, 0.2, 0.3]) + Q_scipp = sc.Variable(dims=['Q'], values=Q_values * 10, unit='1/nm') + + # THEN EXPECT: scipp input is converted to 1/angstrom before the width calculation + np.testing.assert_allclose( + brownian_diffusion_model.calculate_width(Q_scipp), + brownian_diffusion_model.calculate_width(Q_values), + ) + def test_calculate_EISF(self, brownian_diffusion_model): # WHEN Q_values = np.array([0.1, 0.2, 0.3]) # Example Q values in Å^-1 @@ -180,9 +252,11 @@ def test_create_component_collections(self, brownian_diffusion_model, Q): model = component_collections[model_index] assert len(model) == 1 component = model[0] - assert component.width.unit == brownian_diffusion_model.unit + assert component.width.unit == brownian_diffusion_model.x_unit assert np.isclose(component.width.value, expected_widths[model_index]) assert component.width.independent is False + # area.unit = area_unit = x_unit * y_unit + assert component.area.unit == 'meV' def test_write_width_dependency_expression(self, brownian_diffusion_model): # WHEN THEN @@ -213,6 +287,11 @@ def test_write_area_dependency_expression_raises(self, brownian_diffusion_model) with pytest.raises(TypeError, match='QISF must be a float'): brownian_diffusion_model._write_area_dependency_expression('invalid') + def test_y_unit_setter_raises(self, brownian_diffusion_model): + # WHEN THEN EXPECT + with pytest.raises(AttributeError, match=r'read-only'): + brownian_diffusion_model.y_unit = '1/meV' + def test_repr(self, brownian_diffusion_model): # WHEN THEN repr_str = repr(brownian_diffusion_model) @@ -221,3 +300,5 @@ def test_repr(self, brownian_diffusion_model): assert 'BrownianTranslationalDiffusion' in repr_str assert 'diffusion_coefficient' in repr_str assert 'scale=' in repr_str + # Regression: a stray ')' used to mangle this into 'x_unit=meV), y_unit=...' + assert 'x_unit=meV, y_unit=dimensionless' in repr_str diff --git a/tests/unit/easydynamics/sample_model/diffusion_model/test_delta_lorentz.py b/tests/unit/easydynamics/sample_model/diffusion_model/test_delta_lorentz.py index 5441713cc..86024fd88 100644 --- a/tests/unit/easydynamics/sample_model/diffusion_model/test_delta_lorentz.py +++ b/tests/unit/easydynamics/sample_model/diffusion_model/test_delta_lorentz.py @@ -3,6 +3,7 @@ import numpy as np import pytest +import scipp as sc from easyscience.variable import Parameter from easydynamics.sample_model.components.delta_function import DeltaFunction @@ -15,6 +16,57 @@ class TestDeltaLorentz: def delta_lorentz_model(self): return DeltaLorentz() + def test_mean_u_squared_unit_conversion_leaves_physics_unchanged(self): + # WHEN: a model with a non-zero Debye-Waller factor + model = DeltaLorentz(A_0=0.5, mean_u_squared=1.0, lorentzian_width=0.1, Q=np.array([1.0])) + eisf_before = model.calculate_EISF() + qisf_before = model.calculate_QISF() + delta_area_before = model.get_component_collections(0)[1].area.value + + # THEN: convert mean_u_squared to nm**2 (same physical value, different number) + model.mean_u_squared.convert_unit('nm**2') + + # EXPECT: EISF, QISF, and the dependent delta area are unchanged + np.testing.assert_allclose(model.calculate_EISF(), eisf_before) + np.testing.assert_allclose(model.calculate_QISF(), qisf_before) + assert model.get_component_collections(0)[1].area.value == pytest.approx(delta_area_before) + + def test_convert_x_unit_converts_lorentzian_width(self): + # WHEN + model = DeltaLorentz(lorentzian_width=0.1, Q=np.array([1.0])) + + # THEN + model.convert_x_unit('ueV') + + # EXPECT: the width template is rescaled and the regenerated component follows + assert sc.Unit(str(model.lorentzian_width.unit)) == sc.Unit('ueV') + assert model.lorentzian_width.value == pytest.approx(100.0) + collection = model.get_component_collections(0) + assert sc.Unit(str(collection[0].width.unit)) == sc.Unit('ueV') + assert collection[0].width.value == pytest.approx(100.0) + + def test_convert_x_unit_with_q_varying_width_preserves_state(self): + # WHEN: a model with per-Q widths, one of which has been changed from the template + model = DeltaLorentz( + lorentzian_width=0.1, + Q=np.array([1.0, 2.0]), + allow_Q_variation={'lorentzian_width': True}, + ) + model._lorentzian_width_list[0].value = 0.2 + collection_before = model.get_component_collections(0) + + # THEN + model.convert_x_unit('ueV') + + # EXPECT: conversion happens in place — per-Q values are converted, not reset to the + # template, and the collections are not regenerated (regression: conversion used to + # rebuild the collections, discarding per-Q state) + assert model.get_component_collections(0) is collection_before + assert model._lorentzian_width_list[0].value == pytest.approx(200.0) + assert model._lorentzian_width_list[1].value == pytest.approx(100.0) + for width in model._lorentzian_width_list: + assert sc.Unit(str(width.unit)) == sc.Unit('ueV') + @pytest.fixture def delta_lorentz_model_with_Q(self): Q = np.linspace(0.5, 2, 7) @@ -38,16 +90,22 @@ def delta_lorentz_model_with_Q_no_variation(self): def test_init_default(self, delta_lorentz_model): # WHEN THEN EXPECT assert delta_lorentz_model.display_name == 'DeltaLorentz' - assert delta_lorentz_model.unit == 'meV' + assert delta_lorentz_model.x_unit == 'meV' + assert delta_lorentz_model.y_unit == 'dimensionless' assert delta_lorentz_model.scale.value == pytest.approx(1.0) assert delta_lorentz_model.mean_u_squared.value == pytest.approx(0.0) assert delta_lorentz_model.A_0.value == pytest.approx(1.0) assert delta_lorentz_model.lorentzian_width.value == pytest.approx(1.0) + def test_y_unit_setter_raises(self, delta_lorentz_model): + # WHEN THEN EXPECT + with pytest.raises(AttributeError, match=r'read-only'): + delta_lorentz_model.y_unit = '1/meV' + def test_init_with_Q(self, delta_lorentz_model_with_Q): # WHEN THEN EXPECT assert delta_lorentz_model_with_Q.display_name == 'DeltaLorentz' - assert delta_lorentz_model_with_Q.unit == 'meV' + assert delta_lorentz_model_with_Q.x_unit == 'meV' assert delta_lorentz_model_with_Q.scale.value == pytest.approx(1.0) assert delta_lorentz_model_with_Q.mean_u_squared.value == pytest.approx(0.0) assert delta_lorentz_model_with_Q.A_0.value == pytest.approx(0.5) @@ -459,7 +517,8 @@ def test_create_component_collections_with_Q_variation(self, delta_lorentz_model assert collection[0].width.independent is True assert collection[0].area.independent is False assert ( - 'scale * exp(-mean_u_squared.value *' in collection[0].area.dependency_expression + 'scale * exp(-mean_u_squared_ratio.value *' + in collection[0].area.dependency_expression ) assert 'A_1' in collection[0].area.dependency_expression @@ -467,7 +526,8 @@ def test_create_component_collections_with_Q_variation(self, delta_lorentz_model assert isinstance(collection[1], DeltaFunction) assert collection[1].area.independent is False assert ( - 'scale * exp(-mean_u_squared.value *' in collection[1].area.dependency_expression + 'scale * exp(-mean_u_squared_ratio.value *' + in collection[1].area.dependency_expression ) assert 'A_0' in collection[1].area.dependency_expression @@ -491,7 +551,8 @@ def test_create_component_collections_with_no_Q_variation( assert collection[0].width.dependency_expression == 'lorentzian_width' assert collection[0].area.independent is False assert ( - 'scale * exp(-mean_u_squared.value *' in collection[0].area.dependency_expression + 'scale * exp(-mean_u_squared_ratio.value *' + in collection[0].area.dependency_expression ) assert 'A_1' in collection[0].area.dependency_expression @@ -499,7 +560,8 @@ def test_create_component_collections_with_no_Q_variation( assert isinstance(collection[1], DeltaFunction) assert collection[1].area.independent is False assert ( - 'scale * exp(-mean_u_squared.value *' in collection[1].area.dependency_expression + 'scale * exp(-mean_u_squared_ratio.value *' + in collection[1].area.dependency_expression ) assert 'A_0' in collection[1].area.dependency_expression @@ -858,3 +920,54 @@ def test_repr(self, delta_lorentz_model): assert 'mean_u_squared' in repr_str assert 'A_0' in repr_str assert 'lorentzian_width' in repr_str + # Regression: a stray ')' used to mangle this into 'x_unit=meV), y_unit=...' + assert 'x_unit=meV, y_unit=dimensionless' in repr_str + + # ───── Regression tests ───── + + def test_calculate_width_with_Q_subset(self, delta_lorentz_model_with_Q): + # WHEN: Q-varying widths with distinguishable per-Q values + model = delta_lorentz_model_with_Q + for i, width in enumerate(model._lorentzian_width_list): + width.value = 1.0 + i + + # THEN: request a subset of the stored Q values (as ParameterAnalysis does when it + # drops rows with missing data) + subset = model.Q.values[[1, 3, 5]] + widths = model.calculate_width(subset) + + # EXPECT: one width per requested Q, matching the stored per-Q parameters + np.testing.assert_allclose(widths, [2.0, 4.0, 6.0]) + + def test_calculate_EISF_with_Q_subset(self, delta_lorentz_model_with_Q): + # WHEN: Q-varying A_0 with distinguishable per-Q values + model = delta_lorentz_model_with_Q + for i, A_0 in enumerate(model._A_0_list): + A_0.value = (i + 1) / 10 + + # THEN + subset = model.Q.values[[0, 6]] + eisf = model.calculate_EISF(subset) + + # EXPECT: mean_u_squared is 0, so EISF equals the per-Q A_0 values + np.testing.assert_allclose(eisf, [0.1, 0.7]) + + def test_calculate_width_with_unknown_Q_raises(self, delta_lorentz_model_with_Q): + # WHEN THEN EXPECT: a Q value not stored in the model has no per-Q width + with pytest.raises(ValueError, match='do not match the Q values stored'): + delta_lorentz_model_with_Q.calculate_width(np.array([10.0])) + + def test_calculate_width_raises_after_clear_Q_when_allow_Q_variation( + self, delta_lorentz_model_with_Q + ): + # WHEN: model with Q-variation enabled for lorentzian_width + assert delta_lorentz_model_with_Q._allow_Q_variation['lorentzian_width'] is True + assert len(delta_lorentz_model_with_Q._lorentzian_width_list) > 0 + + # THEN: clear Q (empties _lorentzian_width_list) + delta_lorentz_model_with_Q.clear_Q(confirm=True) + assert len(delta_lorentz_model_with_Q._lorentzian_width_list) == 0 + + # THEN: before the fix, calculate_width() silently returned [] instead of raising. + with pytest.raises(ValueError, match='Q must be provided'): + delta_lorentz_model_with_Q.calculate_width() diff --git a/tests/unit/easydynamics/sample_model/diffusion_model/test_diffusion_model_base.py b/tests/unit/easydynamics/sample_model/diffusion_model/test_diffusion_model_base.py index c92c5fb09..938685f86 100644 --- a/tests/unit/easydynamics/sample_model/diffusion_model/test_diffusion_model_base.py +++ b/tests/unit/easydynamics/sample_model/diffusion_model/test_diffusion_model_base.py @@ -5,6 +5,7 @@ import pytest import scipp as sc from easyscience.variable.parameter import Parameter +from scipp import UnitError from easydynamics.sample_model.diffusion_model.diffusion_model_base import DiffusionModelBase @@ -20,7 +21,10 @@ def test_init_default(self, diffusion_model): assert diffusion_model.name == 'DiffusionModel' assert diffusion_model.lorentzian_name == 'DiffusionModel' assert diffusion_model.lorentzian_display_name == 'DiffusionModel' - assert diffusion_model.unit == 'meV' + assert diffusion_model.x_unit == 'meV' + assert diffusion_model.y_unit == 'dimensionless' + # scale.unit = area_unit = x_unit * y_unit = meV * dimensionless = meV + assert diffusion_model.scale.unit == 'meV' def test_init_raises(self): # WHEN THEN EXPECT @@ -30,13 +34,66 @@ def test_init_raises(self): with pytest.raises(TypeError, match=r'lorentzian_display_name must be a string or None'): DiffusionModelBase(lorentzian_display_name=123) - def test_unit_setter_raises(self, diffusion_model): + def test_x_unit_setter_raises(self, diffusion_model): # WHEN THEN EXPECT with pytest.raises( AttributeError, - match=r'Unit is read-only. Use convert_unit to change the unit between allowed types', + match=r'read-only', ): - diffusion_model.unit = 'eV' + diffusion_model.x_unit = 'eV' + + def test_y_unit_setter_raises(self, diffusion_model): + # WHEN THEN EXPECT + with pytest.raises(AttributeError, match=r'read-only'): + diffusion_model.y_unit = '1/meV' + + def test_init_accepts_scipp_units(self): + # WHEN THEN + model = DiffusionModelBase(x_unit=sc.Unit('meV'), y_unit=sc.Unit('1/meV')) + + # EXPECT: scale.unit = x_unit * y_unit = dimensionless + assert str(model.x_unit) == 'meV' + assert sc.Unit(str(model.scale.unit)) == sc.Unit('dimensionless') + + def test_convert_x_unit(self, diffusion_model): + # WHEN THEN + diffusion_model.convert_x_unit('ueV') + + # EXPECT: x_unit and the scale unit (x_unit * y_unit) follow + assert sc.Unit(diffusion_model.x_unit) == sc.Unit('ueV') + assert sc.Unit(str(diffusion_model.scale.unit)) == sc.Unit('ueV') + + def test_convert_x_unit_invalid_type_raises(self, diffusion_model): + # WHEN THEN EXPECT + with pytest.raises(TypeError, match=r'x_unit must be a string or sc.Unit'): + diffusion_model.convert_x_unit(123) + + @pytest.mark.parametrize('unit', ['m', '1/ps'], ids=['length', 'frequency']) + def test_convert_x_unit_non_energy_raises(self, diffusion_model, unit): + # WHEN THEN EXPECT: only energy axes are supported for now + with pytest.raises(UnitError, match=r'convertible to meV'): + diffusion_model.convert_x_unit(unit) + + def test_convert_y_unit(self): + # WHEN + model = DiffusionModelBase(y_unit='1/meV') + + # THEN + model.convert_y_unit('1/eV') + + # EXPECT: y_unit and the scale unit follow (meV * 1/eV) + assert sc.Unit(model.y_unit) == sc.Unit('1/eV') + assert sc.Unit(str(model.scale.unit)) == sc.Unit('meV/eV') + + def test_convert_y_unit_invalid_type_raises(self, diffusion_model): + # WHEN THEN EXPECT + with pytest.raises(TypeError, match=r'y_unit must be a string or sc.Unit'): + diffusion_model.convert_y_unit(123) + + def test_convert_y_unit_incompatible_raises(self, diffusion_model): + # WHEN THEN EXPECT: dimensionless -> K changes the dimension of the scale unit + with pytest.raises(UnitError): + diffusion_model.convert_y_unit('K') @pytest.mark.parametrize( ('attribute', 'value', 'expected'), @@ -166,7 +223,8 @@ def test_repr(self, diffusion_model): # EXPECT assert 'DiffusionModelBase' in repr_str - assert 'unit=meV' in repr_str + # Regression: a stray ')' used to mangle this into 'x_unit=meV), y_unit=...' + assert 'x_unit=meV, y_unit=dimensionless' in repr_str def test_get_independent_variables(self, diffusion_model): # WHEN THEN EXPECT diff --git a/tests/unit/easydynamics/sample_model/diffusion_model/test_jump_translational_diffusion.py b/tests/unit/easydynamics/sample_model/diffusion_model/test_jump_translational_diffusion.py index 014a221f7..7fcf4dacd 100644 --- a/tests/unit/easydynamics/sample_model/diffusion_model/test_jump_translational_diffusion.py +++ b/tests/unit/easydynamics/sample_model/diffusion_model/test_jump_translational_diffusion.py @@ -25,8 +25,10 @@ def jump_diffusion_model(self): def test_init_default(self, jump_diffusion_model): # WHEN THEN EXPECT assert jump_diffusion_model.display_name == 'JumpTranslationalDiffusion' - assert jump_diffusion_model.unit == 'meV' + assert jump_diffusion_model.x_unit == 'meV' + assert jump_diffusion_model.y_unit == 'dimensionless' assert jump_diffusion_model.scale.value == pytest.approx(1.0) + assert jump_diffusion_model.scale.unit == 'meV' assert jump_diffusion_model.diffusion_coefficient.value == pytest.approx(1.0) assert jump_diffusion_model.relaxation_time.value == pytest.approx(1.0) @@ -35,7 +37,7 @@ def test_init_default(self, jump_diffusion_model): [ ( { - 'unit': 123, + 'x_unit': 123, 'scale': 1.0, 'diffusion_coefficient': 1.0, 'relaxation_time': 1.0, @@ -45,7 +47,17 @@ def test_init_default(self, jump_diffusion_model): ), ( { - 'unit': 'meV', + 'y_unit': 123, + 'scale': 1.0, + 'diffusion_coefficient': 1.0, + 'relaxation_time': 1.0, + }, + TypeError, + None, + ), + ( + { + 'x_unit': 'meV', 'scale': 'invalid', 'diffusion_coefficient': 1.0, 'relaxation_time': 1.0, @@ -55,7 +67,7 @@ def test_init_default(self, jump_diffusion_model): ), ( { - 'unit': 'meV', + 'x_unit': 'meV', 'scale': 1.0, 'diffusion_coefficient': 'invalid', 'relaxation_time': 1.0, @@ -65,7 +77,7 @@ def test_init_default(self, jump_diffusion_model): ), ( { - 'unit': 'meV', + 'x_unit': 'meV', 'scale': 1.0, 'diffusion_coefficient': -1.0, 'relaxation_time': 1.0, @@ -75,7 +87,7 @@ def test_init_default(self, jump_diffusion_model): ), ( { - 'unit': 'meV', + 'x_unit': 'meV', 'scale': 1.0, 'diffusion_coefficient': 1.0, 'relaxation_time': 'invalid', @@ -85,7 +97,7 @@ def test_init_default(self, jump_diffusion_model): ), ( { - 'unit': 'meV', + 'x_unit': 'meV', 'scale': 1.0, 'diffusion_coefficient': 1.0, 'relaxation_time': -1.0, @@ -94,6 +106,15 @@ def test_init_default(self, jump_diffusion_model): 'relaxation_time must be non-negative', ), ], + ids=[ + 'invalid_x_unit', + 'invalid_y_unit', + 'invalid_scale_type', + 'invalid_diffusion_coefficient_type', + 'invalid_diffusion_coefficient_negative', + 'invalid_relaxation_time_type', + 'invalid_relaxation_time_negative', + ], ) def test_input_type_validation_raises(self, kwargs, expected_exception, expected_message): with pytest.raises(expected_exception, match=expected_message): @@ -159,7 +180,7 @@ def test_calculate_width(self, jump_diffusion_model): # EXPECT expected_widths = scipp_hbar * diffusion_coefficient_sc * (Q_values**2) / (1 + denominator) - expected_widths = expected_widths.to(unit=jump_diffusion_model.unit) + expected_widths = expected_widths.to(unit=jump_diffusion_model.x_unit) np.testing.assert_allclose(widths, expected_widths.values, rtol=1e-5) @@ -221,9 +242,11 @@ def test_create_component_collections(self, jump_diffusion_model, Q): model = component_collections[model_index] assert len(model) == 1 component = model[0] - assert component.width.unit == jump_diffusion_model.unit + assert component.width.unit == jump_diffusion_model.x_unit assert np.isclose(component.width.value, expected_widths[model_index]) assert component.width.independent is False + # area.unit = area_unit = x_unit * y_unit + assert component.area.unit == 'meV' def test_write_width_dependency_expression(self, jump_diffusion_model): # WHEN THEN @@ -257,6 +280,11 @@ def test_write_area_dependency_expression_raises(self, jump_diffusion_model): with pytest.raises(TypeError, match='QISF must be a float'): jump_diffusion_model._write_area_dependency_expression('invalid') + def test_y_unit_setter_raises(self, jump_diffusion_model): + # WHEN THEN EXPECT + with pytest.raises(AttributeError, match=r'read-only'): + jump_diffusion_model.y_unit = '1/meV' + def test_repr(self, jump_diffusion_model): # WHEN THEN repr_str = repr(jump_diffusion_model) @@ -265,3 +293,5 @@ def test_repr(self, jump_diffusion_model): assert 'JumpTranslationalDiffusion' in repr_str assert 'diffusion_coefficient' in repr_str assert 'scale=' in repr_str + # Regression: a stray ')' used to mangle this into 'x_unit=meV), y_unit=...' + assert 'x_unit=meV, y_unit=dimensionless' in repr_str diff --git a/tests/unit/easydynamics/sample_model/test_background_model.py b/tests/unit/easydynamics/sample_model/test_background_model.py index 8b08bbd84..ff1233d84 100644 --- a/tests/unit/easydynamics/sample_model/test_background_model.py +++ b/tests/unit/easydynamics/sample_model/test_background_model.py @@ -18,14 +18,14 @@ def background_model(self): area=1.0, center=0.0, width=1.0, - unit='meV', + x_unit='meV', ) component2 = Lorentzian( display_name='TestLorentzian1', area=2.0, center=1.0, width=0.5, - unit='meV', + x_unit='meV', ) component_collection = ComponentCollection() component_collection.append_component(component1) @@ -33,19 +33,19 @@ def background_model(self): return BackgroundModel( display_name='InitModel', components=component_collection, - unit='meV', + x_unit='meV', Q=np.array([1.0, 2.0, 3.0]), ) def test_init(self, background_model): # WHEN THEN - model = background_model # EXPECT - assert model.display_name == 'InitModel' - assert model.unit == 'meV' - assert len(model.components) == 2 - np.testing.assert_array_equal(model.Q.values, np.array([1.0, 2.0, 3.0])) + assert background_model.display_name == 'InitModel' + assert background_model.x_unit == 'meV' + assert background_model.y_unit == 'dimensionless' + assert len(background_model.components) == 2 + np.testing.assert_array_equal(background_model.Q.values, np.array([1.0, 2.0, 3.0])) @pytest.mark.parametrize( 'invalid_component, expected_error_msg', @@ -80,3 +80,19 @@ def test_init_raises_with_invalid_components(self, invalid_component, expected_e collection = ComponentCollection() collection.append_component(invalid_component) BackgroundModel(components=collection) + + def test_y_unit_setter_raises(self, background_model): + # WHEN / THEN / EXPECT + with pytest.raises(AttributeError): + background_model.y_unit = '1/meV' + + def test_convert_y_unit(self): + # WHEN + g = Gaussian(area=1.0, x_unit='meV', y_unit='1/meV') + model = BackgroundModel(components=g, x_unit='meV') + # THEN: convert y_unit to '1/eV' (same dimension, different scale) + model.convert_y_unit('1/eV') + # EXPECT + assert model.y_unit == '1/eV' + assert model.components[0].y_unit == '1/eV' + assert g.area.value == pytest.approx(1e3) diff --git a/tests/unit/easydynamics/sample_model/test_component_collection.py b/tests/unit/easydynamics/sample_model/test_component_collection.py index 7ae15ed65..233117031 100644 --- a/tests/unit/easydynamics/sample_model/test_component_collection.py +++ b/tests/unit/easydynamics/sample_model/test_component_collection.py @@ -5,10 +5,12 @@ import numpy as np import pytest +import scipp as sc from easyscience.variable import Parameter from scipy.integrate import simpson from easydynamics.sample_model import ComponentCollection +from easydynamics.sample_model import ExpressionComponent from easydynamics.sample_model import Gaussian from easydynamics.sample_model import Lorentzian from easydynamics.sample_model import Polynomial @@ -24,7 +26,7 @@ def component_collection(self): area=1.0, center=0.0, width=1.0, - unit='meV', + x_unit='meV', ) component2 = Lorentzian( name='TestLorentzian1Name', @@ -32,7 +34,7 @@ def component_collection(self): area=2.0, center=1.0, width=0.5, - unit='meV', + x_unit='meV', ) model.append_component(component1) model.append_component(component2) @@ -45,10 +47,28 @@ def test_init(self): # EXPECT assert component_collection.display_name == 'InitModel' assert not component_collection + assert component_collection.x_unit == 'meV' + assert component_collection.y_unit == 'dimensionless' + + def test_get_fit_targets(self, component_collection): + # WHEN + targets = component_collection.get_fit_targets() + + # EXPECT: a single 'value' prediction wrapping the summed evaluate, stamped with the + # collection's units and no default dataset key + assert len(targets) == 1 + target = targets[0] + assert target.name == 'value' + assert target.dataset_key is None + assert target.label == 'TestComponentCollection' + assert target.x_unit == component_collection.x_unit + assert target.y_unit == component_collection.y_unit + x = np.linspace(-1, 1, 5) + np.testing.assert_allclose(target.function(x), component_collection.evaluate(x)) def test_init_with_component(self): # WHEN THEN - component1 = Gaussian(name='TestGaussian1', area=1.0, center=0.0, width=1.0, unit='meV') + component1 = Gaussian(name='TestGaussian1', area=1.0, center=0.0, width=1.0, x_unit='meV') component_collection = ComponentCollection(display_name='InitModel', components=component1) # EXPECT @@ -58,9 +78,9 @@ def test_init_with_component(self): def test_init_with_components(self): # WHEN THEN - component1 = Gaussian(name='TestGaussian1', area=1.0, center=0.0, width=1.0, unit='meV') + component1 = Gaussian(name='TestGaussian1', area=1.0, center=0.0, width=1.0, x_unit='meV') component2 = Lorentzian( - name='TestLorentzian1', area=2.0, center=1.0, width=0.5, unit='meV' + name='TestLorentzian1', area=2.0, center=1.0, width=0.5, x_unit='meV' ) component_collection = ComponentCollection( display_name='InitModel', components=[component1, component2] @@ -91,13 +111,13 @@ def test_init_with_invalid_list_of_components_raises(self): def test_init_with_invalid_unit_raises(self): # WHEN THEN EXPECT with pytest.raises(TypeError, match='unit must be'): - ComponentCollection(unit=123) + ComponentCollection(x_unit=123) # ───── Component Management ───── def test_append_component(self, component_collection): # WHEN - component = Gaussian(name='TestComponent', area=1.0, center=0.0, width=1.0, unit='meV') + component = Gaussian(name='TestComponent', area=1.0, center=0.0, width=1.0, x_unit='meV') # THEN component_collection.append_component(component) # EXPECT @@ -105,7 +125,7 @@ def test_append_component(self, component_collection): def test_append_component_collection(self, component_collection): # WHEN - component = Gaussian(name='TestComponent', area=1.0, center=0.0, width=1.0, unit='meV') + component = Gaussian(name='TestComponent', area=1.0, center=0.0, width=1.0, x_unit='meV') component_collection2 = ComponentCollection() component_collection2.append_component(component) # THEN @@ -127,7 +147,7 @@ def test_append_invalid_component_raises(self, component_collection): def test_getitem(self, component_collection): # WHEN - component = Gaussian(name='TestComponent', area=1.0, center=0.0, width=1.0, unit='meV') + component = Gaussian(name='TestComponent', area=1.0, center=0.0, width=1.0, x_unit='meV') # THEN component_collection.append_component(component) # EXPECT @@ -140,7 +160,7 @@ def test_is_empty(self): assert component_collection.is_empty is True # WHEN THEN - component = Gaussian(name='TestComponent', area=1.0, center=0.0, width=1.0, unit='meV') + component = Gaussian(name='TestComponent', area=1.0, center=0.0, width=1.0, x_unit='meV') component_collection.append_component(component) # EXPECT assert component_collection.is_empty is False @@ -158,68 +178,100 @@ def test_list_component_names(self, component_collection): assert components[0] == 'TestGaussian1Name' assert components[1] == 'TestLorentzian1Name' - def test_convert_unit(self, component_collection): + def test_convert_x_unit(self, component_collection): # WHEN THEN - component_collection.convert_unit('eV') + component_collection.convert_x_unit('eV') # EXPECT for component in component_collection: - assert component.unit == 'eV' + assert component.x_unit == 'eV' - def test_convert_unit_incorrect_unit_raises(self, component_collection): + def test_convert_x_unit_incorrect_unit_raises(self, component_collection): # WHEN THEN EXPECT - with pytest.raises(TypeError, match=r'Unit must be a string or sc.Unit'): - component_collection.convert_unit(123) + with pytest.raises(TypeError, match=r'unit must be a string or sc.Unit'): + component_collection.convert_x_unit(123) - def test_convert_unit_failure_rolls_back(self, component_collection): + def test_convert_x_unit_failure_rolls_back(self, component_collection): # WHEN THEN # Introduce a faulty component that will fail conversion class FaultyComponent(Gaussian): - def convert_unit(self, _unit: str) -> None: + def convert_x_unit(self, _unit: str) -> None: raise RuntimeError('Conversion failed.') faulty_component = FaultyComponent( - name='FaultyComponent', area=1.0, center=0.0, width=1.0, unit='meV' + name='FaultyComponent', area=1.0, center=0.0, width=1.0, x_unit='meV' ) component_collection.append_component(faulty_component) - original_units = {component.name: component.unit for component in component_collection} + original_units = {component.name: component.x_unit for component in component_collection} # EXPECT with pytest.raises(RuntimeError, match=r'Conversion failed.'): - component_collection.convert_unit('eV') + component_collection.convert_x_unit('eV') # Check that all components have their original units for component in component_collection: - assert component.unit == original_units[component.name] + assert component.x_unit == original_units[component.name] - def test_set_unit(self, component_collection): + def test_set_x_unit(self, component_collection): # WHEN THEN EXPECT with pytest.raises( AttributeError, - match=r'Unit is read-only. Use convert_unit to change the unit', + match=r'read-only', ): - component_collection.unit = 'eV' + component_collection.x_unit = 'eV' def test_evaluate(self, component_collection): # WHEN x = np.linspace(-5, 5, 100) + + # THEN result = component_collection.evaluate(x) # EXPECT expected_result = component_collection[0].evaluate(x) + component_collection[1].evaluate(x) np.testing.assert_allclose(result, expected_result, rtol=1e-5) def test_evaluate_no_components_returns_zero(self): - # WHEN THEN + # WHEN component_collection = ComponentCollection(display_name='EmptyModel') x = np.linspace(-5, 5, 100) - # EXPECT + # THEN result = component_collection.evaluate(x) + + # EXPECT assert np.all(result == pytest.approx(0.0)) assert result.shape == x.shape + def test_evaluate_no_components_scipp_output(self): + # WHEN + component_collection = ComponentCollection(display_name='EmptyModel', y_unit='1/meV') + x = np.linspace(-5, 5, 100) + + # THEN + result = component_collection.evaluate(x, output='scipp') + + # EXPECT: an sc.Variable of zeros carrying the collection's y_unit + assert isinstance(result, sc.Variable) + assert result.unit == sc.Unit('1/meV') + assert np.all(result.values == pytest.approx(0.0)) + + def test_evaluate_no_components_scipp_input(self): + # WHEN + component_collection = ComponentCollection(display_name='EmptyModel') + x = sc.linspace('energy', -5.0, 5.0, 100, unit='meV') + + # THEN + result = component_collection.evaluate(x, output='scipp') + + # EXPECT: zeros on the input grid, keeping the input's dimension name + assert isinstance(result, sc.Variable) + assert result.dims == ('energy',) + assert np.all(result.values == pytest.approx(0.0)) + def test_evaluate_component(self, component_collection): - # WHEN THEN + # WHEN x = np.linspace(-5, 5, 100) + + # THEN result1 = component_collection.evaluate_component(x, 'TestGaussian1Name') result2 = component_collection.evaluate_component(x, 'TestLorentzian1Name') @@ -290,13 +342,57 @@ def test_normalize_area_not_finite_area_raises(self, component_collection, area_ def test_normalize_area_non_area_component_warns(self, component_collection): # WHEN - component1 = Polynomial(display_name='TestPolynomial', coefficients=[1, 2, 3], unit='meV') + component1 = Polynomial( + display_name='TestPolynomial', coefficients=[1, 2, 3], x_unit='meV' + ) component_collection.append_component(component1) # THEN EXPECT with pytest.warns(UserWarning, match="does not have an 'area' "): component_collection.normalize_area() + def test_convert_x_unit_rollback_skipped_when_old_unit_none(self): + # WHEN: a collection without an x_unit of its own + collection = ComponentCollection( + components=Gaussian(name='G', area=1.0, width=0.5, x_unit='meV'), x_unit=None + ) + + # THEN: an incompatible unit fails; the outer rollback is skipped (no old unit to + # restore) but the component's own atomic rollback keeps it consistent + with pytest.raises(sc.UnitError): + collection.convert_x_unit('m') + + # EXPECT + assert collection[0].x_unit == 'meV' + + def test_normalize_area_only_non_area_components_raises(self): + # WHEN: no component in the collection has an area attribute + collection = ComponentCollection( + components=Polynomial(display_name='OnlyPolynomial', coefficients=[1, 2]) + ) + + # THEN EXPECT + with ( + pytest.warns(UserWarning, match="does not have an 'area' "), + pytest.raises(ValueError, match='No components with an area attribute'), + ): + collection.normalize_area() + + def test_normalize_area_mixed_units(self): + # WHEN: two Gaussians with compatible but different area units (meV and ueV) + gaussian_mev = Gaussian(name='G1', area=1.0, width=1.0, x_unit='meV') + gaussian_uev = Gaussian(name='G2', area=1000.0, width=500.0, x_unit='ueV') + collection = ComponentCollection(components=[gaussian_mev, gaussian_uev]) + + # THEN: both areas are physically 1 meV, so each should end up at half its value + collection.normalize_area() + + # EXPECT: areas sum to 1 in the first component's unit (meV) + total_mev = gaussian_mev.area.value + gaussian_uev.area.value / 1000.0 + assert total_mev == pytest.approx(1.0) + assert gaussian_mev.area.value == pytest.approx(0.5) + assert gaussian_uev.area.value == pytest.approx(500.0) + def test_get_all_parameters(self, component_collection): # WHEN THEN parameters = component_collection.get_all_parameters() @@ -364,6 +460,7 @@ def test_fix_and_free_all_parameters(self, component_collection): assert param.fixed is False def test_contains(self, component_collection): + # WHEN THEN EXPECT: membership by name and by object assert 'TestGaussian1Name' in component_collection assert 'TestLorentzian1Name' in component_collection assert 'NonExistentComponent' not in component_collection @@ -373,9 +470,10 @@ def test_contains(self, component_collection): assert gaussian_component in component_collection assert lorentzian_component in component_collection - # WHEN THEN - fake_component = Gaussian(name='FakeGaussian', area=1.0, center=0.0, width=1.0, unit='meV') - # EXPECT + # WHEN: a component not in the collection — THEN EXPECT + fake_component = Gaussian( + name='FakeGaussian', area=1.0, center=0.0, width=1.0, x_unit='meV' + ) assert fake_component not in component_collection assert 123 not in component_collection # Invalid type @@ -392,13 +490,15 @@ def test_to_dict(self, component_collection): # EXPECT assert model_dict['display_name'] == component_collection.display_name - assert model_dict['unit'] == component_collection.unit + assert model_dict['x_unit'] == component_collection.x_unit + assert model_dict['y_unit'] == component_collection.y_unit assert len(model_dict['components']) == len(component_collection) for comp, comp_dict in zip(component_collection, model_dict['components'], strict=True): assert comp_dict['@class'] == type(comp).__name__ assert comp_dict['display_name'] == comp.display_name - assert comp_dict['unit'] == comp.unit + assert comp_dict['x_unit'] == comp.x_unit + assert comp_dict['y_unit'] == comp.y_unit def test_from_dict(self, component_collection): # WHEN @@ -409,12 +509,15 @@ def test_from_dict(self, component_collection): # EXPECT assert new_model.display_name == component_collection.display_name + assert new_model.x_unit == component_collection.x_unit + assert new_model.y_unit == component_collection.y_unit assert len(new_model) == len(component_collection) for orig_comp, new_comp in zip(component_collection, new_model, strict=True): assert type(new_comp) is type(orig_comp) assert new_comp.display_name == orig_comp.display_name - assert new_comp.unit == orig_comp.unit + assert new_comp.x_unit == orig_comp.x_unit + assert new_comp.y_unit == orig_comp.y_unit orig_params = orig_comp.get_all_parameters() new_params = new_comp.get_all_parameters() @@ -426,6 +529,13 @@ def test_from_dict(self, component_collection): assert param_new.value == param_orig.value assert param_new.fixed == param_orig.fixed + @pytest.mark.parametrize('missing_key', ['x_unit', 'y_unit', 'components', 'name']) + def test_from_dict_requires_all_keys(self, component_collection, missing_key): + model_dict = component_collection.to_dict() + del model_dict[missing_key] + with pytest.raises(KeyError): + ComponentCollection.from_dict(model_dict) + def test_copy(self, component_collection): # WHEN component_collection[0].area.min = 0.5 @@ -451,7 +561,8 @@ def test_copy(self, component_collection): # Same type and display name assert type(copied_comp) is type(orig_comp) assert copied_comp.display_name == orig_comp.display_name - assert copied_comp.unit == orig_comp.unit + assert copied_comp.x_unit == orig_comp.x_unit + assert copied_comp.y_unit == orig_comp.y_unit # Parameters are deep-copied and equivalent orig_params = orig_comp.get_all_parameters() @@ -487,3 +598,95 @@ def test_no_warning_with_unique_names(self, recwarn): ComponentCollection(components=[g1, g2]) user_warnings = [w for w in recwarn.list if issubclass(w.category, UserWarning)] assert not user_warnings + + def test_y_unit_custom(self): + # WHEN THEN + cc = ComponentCollection(y_unit='1/meV') + # EXPECT + assert cc.y_unit == '1/meV' + + def test_y_unit_setter_raises(self, component_collection): + # WHEN THEN EXPECT + with pytest.raises(AttributeError, match=r'read-only'): + component_collection.y_unit = '1/meV' + + def test_convert_y_unit(self): + # WHEN: components with y_unit='1/meV' so area_unit ≈ dimensionless + g = Gaussian(area=1.0, x_unit='meV', y_unit='1/meV') + lor = Lorentzian(area=1.0, x_unit='meV', y_unit='1/meV') + cc = ComponentCollection(components=[g, lor]) + + # THEN: convert y_unit to '1/eV' (same dimension, different scale) + cc.convert_y_unit('1/eV') + + # EXPECT + assert cc.y_unit == '1/eV' + for component in cc: + assert component.y_unit == '1/eV' + assert g.area.value == pytest.approx(1e3) + assert lor.area.value == pytest.approx(1e3) + + def test_convert_y_unit_invalid_type_raises(self, component_collection): + # WHEN THEN EXPECT + with pytest.raises(TypeError): + component_collection.convert_y_unit(123) + + def test_convert_x_unit_rollback_on_failure(self): + # WHEN: collection whose first Gaussian converts fine, but second has an + # ExpressionComponent that raises NotImplementedError for convert_x_unit. + g = Gaussian(area=1.0, x_unit='meV') + expr = ExpressionComponent('A * x', parameters={'A': 1.0}, x_unit='meV') + cc = ComponentCollection(components=[g, expr]) + original_area = g.area.value + + # THEN: attempt a unit conversion that will fail on the ExpressionComponent + with pytest.raises(NotImplementedError): + cc.convert_x_unit('microeV') + + # EXPECT: Gaussian is rolled back to its original state + assert cc.x_unit == 'meV' + assert g.x_unit == 'meV' + assert g.area.value == pytest.approx(original_area) + + def test_convert_y_unit_rollback_on_failure(self): + # WHEN: collection where first Gaussian converts successfully but second + # ExpressionComponent always raises NotImplementedError for convert_y_unit. + g = Gaussian(area=1.0, x_unit='meV', y_unit='1/meV') + expr = ExpressionComponent('A * x', parameters={'A': 1.0}, x_unit='meV') + cc = ComponentCollection(components=[g, expr], y_unit='1/meV') + original_area = g.area.value + + # THEN: attempt y_unit conversion that will fail on the ExpressionComponent + with pytest.raises(NotImplementedError): + cc.convert_y_unit('1/eV') + + # EXPECT: collection y_unit and Gaussian are both rolled back + assert cc.y_unit == '1/meV' + assert g.y_unit == '1/meV' + assert g.area.value == pytest.approx(original_area) + + def test_evaluate_scipp_output_with_y_unit(self): + # WHEN + g = Gaussian(area=1.0, x_unit='meV', y_unit='1/meV') + cc = ComponentCollection(components=[g], y_unit='1/meV') + x = np.linspace(-5, 5, 50) + # THEN + result = cc.evaluate(x, output='scipp') + # EXPECT + assert isinstance(result, sc.Variable) + assert result.unit == sc.Unit('1/meV') + + # ───── Regression tests ───── + + def test_evaluate_scipp_output_multi_component_does_not_raise(self, component_collection): + # WHEN: collection with two components (Gaussian + Lorentzian) + x = sc.Variable(dims=['energy'], values=np.linspace(-5.0, 5.0, 100), unit='meV') + # THEN: evaluate with scipp output + # Before the fix, sum() started from int 0 → '0 + sc.Variable' raised TypeError. + result = component_collection.evaluate(x, output='scipp') + # EXPECT: returns a Variable whose values are the sum of both components + assert isinstance(result, sc.Variable) + expected = component_collection[0].evaluate(x, output='scipp') + component_collection[ + 1 + ].evaluate(x, output='scipp') + assert sc.allclose(result, expected) diff --git a/tests/unit/easydynamics/sample_model/test_instrument_model.py b/tests/unit/easydynamics/sample_model/test_instrument_model.py index 5c04c55e5..a802b1961 100644 --- a/tests/unit/easydynamics/sample_model/test_instrument_model.py +++ b/tests/unit/easydynamics/sample_model/test_instrument_model.py @@ -68,12 +68,13 @@ def test_init(self, instrument_model): # EXPECT assert model.display_name == 'TestInstrumentModel' + assert isinstance(model.Q, sc.Variable) + assert model.Q.unit == sc.Unit('1/angstrom') np.testing.assert_array_equal(model.Q.values, np.array([1.0, 2.0, 3.0])) assert isinstance(model.background_model, BackgroundModel) assert isinstance(model.resolution_model, ResolutionModel) np.testing.assert_array_equal(model.background_model.Q.values, np.array([1.0, 2.0, 3.0])) np.testing.assert_array_equal(model.resolution_model.Q.values, np.array([1.0, 2.0, 3.0])) - np.testing.assert_array_equal(model.Q.values, np.array([1.0, 2.0, 3.0])) def test_init_defaults(self): # WHEN THEN @@ -113,7 +114,7 @@ def test_init_sample_model_as_resolution_model(self, sample_model): 'energy_offset must be a number', ), ( - {'unit': 123}, + {'x_unit': 123}, TypeError, 'unit must be', ), @@ -122,7 +123,7 @@ def test_init_sample_model_as_resolution_model(self, sample_model): 'invalid resolution_model', 'invalid background_model', 'invalid energy_offset', - 'invalid unit', + 'invalid x unit', ], ) def test_instrument_model_init_invalid_inputs( @@ -209,13 +210,10 @@ def test_clear_Q_raises_without_confirm(self, instrument_model): with pytest.raises(ValueError, match='Clearing Q values requires confirmation'): instrument_model.clear_Q() - def test_unit_setter_raises(self, instrument_model): + def test_x_unit_setter_raises(self, instrument_model): # WHEN / THEN / EXPECT - with pytest.raises( - AttributeError, - match=r'Unit is read-only. Use convert_unit to change the unit between allowed types ', - ): - instrument_model.unit = 'meV' + with pytest.raises(AttributeError): + instrument_model.x_unit = 'meV' def test_energy_offset_setter(self, instrument_model): # WHEN @@ -272,16 +270,16 @@ def test_get_energy_offset_no_Q_raises(self, instrument_model): ): instrument_model.get_energy_offset(0) - def test_convert_unit_calls_all_children(self, instrument_model): + def test_convert_x_unit_calls_all_children(self, instrument_model): # WHEN new_unit = 'eV' # THEN # Ensure energy offsets are built before mocking instrument_model._ensure_energy_offsets_current() - # Mock downstream convert_unit calls - instrument_model._background_model.convert_unit = MagicMock() - instrument_model._resolution_model.convert_unit = MagicMock() + # Mock downstream convert_x_unit calls + instrument_model._background_model.convert_x_unit = MagicMock() + instrument_model._resolution_model.convert_x_unit = MagicMock() instrument_model._energy_offset.convert_unit = MagicMock() for offset in instrument_model._energy_offsets: offset.convert_unit = MagicMock() @@ -290,28 +288,28 @@ def test_convert_unit_calls_all_children(self, instrument_model): 'easydynamics.sample_model.instrument_model._validate_unit', return_value=new_unit, ) as mock_validate: - instrument_model.convert_unit(new_unit) + instrument_model.convert_x_unit(new_unit) # EXPECT mock_validate.assert_called_once_with(new_unit) - instrument_model._background_model.convert_unit.assert_called_once_with(new_unit) - instrument_model._resolution_model.convert_unit.assert_called_once_with(new_unit) + instrument_model._background_model.convert_x_unit.assert_called_once_with(new_unit) + instrument_model._resolution_model.convert_x_unit.assert_called_once_with(new_unit) instrument_model._energy_offset.convert_unit.assert_called_once_with(new_unit) for offset in instrument_model._energy_offsets: offset.convert_unit.assert_called_once_with(new_unit) # final state - assert instrument_model.unit == new_unit + assert instrument_model.x_unit == new_unit - def test_convert_unit_None_raises(self, instrument_model): + def test_convert_x_unit_None_raises(self, instrument_model): # WHEN / THEN / EXPECT with pytest.raises( ValueError, match=' must be a valid unit', ): - instrument_model.convert_unit(None) + instrument_model.convert_x_unit(None) def test_fix_resolution_parameters(self, instrument_model): # WHEN @@ -420,7 +418,9 @@ def test_generate_energy_offsets_Q_none(self, instrument_model): def test_generate_energy_offsets(self, instrument_model): # WHEN - instrument_model._Q = np.array([1.0, 2.0, 3.0, 4.0]) + instrument_model._Q = sc.Variable( + dims=['Q'], values=[1.0, 2.0, 3.0, 4.0], unit='1/angstrom' + ) # THEN instrument_model._generate_energy_offsets() @@ -429,7 +429,7 @@ def test_generate_energy_offsets(self, instrument_model): assert len(instrument_model._energy_offsets) == 4 for offset in instrument_model._energy_offsets: assert offset.name == 'energy_offset' - assert offset.unit == instrument_model.unit + assert offset.unit == instrument_model.x_unit assert offset.value == instrument_model.energy_offset.value def test_Q_setter(self, instrument_model_without_Q): @@ -528,13 +528,13 @@ def test_fix_or_free_energy_offset_nonint_Q_index_raises(self, instrument_model) # WHEN / THEN / EXPECT with pytest.raises( TypeError, - match='Q_index must be an int or None, got str', + match='Q_index must be an int', ): instrument_model.fix_energy_offset(Q_index='invalid_index') with pytest.raises( TypeError, - match='Q_index must be an int or None, got str', + match='Q_index must be an int', ): instrument_model.free_energy_offset(Q_index='invalid_index') @@ -579,7 +579,7 @@ def test_repr_contains_expected_fields(self, instrument_model): # EXPECT assert repr_str.startswith('InstrumentModel(') assert f'unique_name={instrument_model.unique_name!r}' in repr_str - assert f'unit={instrument_model.unit}' in repr_str + assert f'x_unit={instrument_model.x_unit}' in repr_str assert 'Q_len=3' in repr_str assert f'resolution_model={instrument_model._resolution_model!r}' in repr_str assert f'background_model={instrument_model._background_model!r}' in repr_str diff --git a/tests/unit/easydynamics/sample_model/test_model_base.py b/tests/unit/easydynamics/sample_model/test_model_base.py index 312dcf7b1..0b19950b8 100644 --- a/tests/unit/easydynamics/sample_model/test_model_base.py +++ b/tests/unit/easydynamics/sample_model/test_model_base.py @@ -23,7 +23,7 @@ def model_base(self): area=1.0, center=0.0, width=1.0, - unit='meV', + x_unit='meV', ) component2 = Lorentzian( name='TestLorentzian1Name', @@ -31,7 +31,7 @@ def model_base(self): area=2.0, center=1.0, width=0.5, - unit='meV', + x_unit='meV', ) component_collection = ComponentCollection() component_collection.append_component(component1) @@ -39,19 +39,22 @@ def model_base(self): return ModelBase( display_name='InitModel', components=component_collection, - unit='meV', + x_unit='meV', Q=np.array([1.0, 2.0, 3.0]), ) def test_init(self, model_base): # WHEN THEN - model = model_base # EXPECT - assert model.display_name == 'InitModel' - assert model.unit == 'meV' - assert len(model.components) == 2 - np.testing.assert_array_equal(model.Q.values, np.array([1.0, 2.0, 3.0])) + assert model_base.display_name == 'InitModel' + assert model_base.x_unit == 'meV' + assert model_base.y_unit == 'dimensionless' + assert len(model_base.components) == 2 + assert isinstance(model_base.Q, sc.Variable) + assert model_base.Q.dims == ('Q',) + assert model_base.Q.unit == sc.Unit('1/angstrom') + np.testing.assert_array_equal(model_base.Q.values, np.array([1.0, 2.0, 3.0])) def test_init_raises_with_invalid_components(self): # WHEN / THEN / EXPECT @@ -78,8 +81,8 @@ def test_evaluate_calls_all_component_collections(self, model_base): result = model_base.evaluate(x) # EXPECT - collection1.evaluate.assert_called_once_with(x) - collection2.evaluate.assert_called_once_with(x) + collection1.evaluate.assert_called_once_with(x, output='numpy') + collection2.evaluate.assert_called_once_with(x, output='numpy') np.testing.assert_allclose(result[0], np.array([1.0, 2.0, 3.0])) np.testing.assert_allclose(result[1], np.array([4.0, 5.0, 6.0])) @@ -128,7 +131,7 @@ def test_get_all_variables(self, model_base): # WHEN all_vars = model_base.get_all_variables() - # THEN + # EXPECT expected_var_display_names = { 'TestGaussian1Name area', 'TestGaussian1Name center', @@ -198,7 +201,7 @@ def test_get_component_collection_invalid_index_raises(self, model_base): # WHEN THEN EXPECT with pytest.raises( IndexError, - match='Q_index 5 is out of bounds for ', + match='Q_index 5 is out of bounds for Q of length 3', ): model_base.get_component_collection(Q_index=5) @@ -246,36 +249,105 @@ def test_append_component_invalid_type_raises(self, model_base): with pytest.raises(TypeError, match=' must be '): model_base.append_component('invalid_component') - def test_unit_property(self, model_base): + def test_x_unit_property(self, model_base): # WHEN - unit = model_base.unit + unit = model_base.x_unit # THEN / EXPECT assert unit == 'meV' - def test_unit_setter_raises(self, model_base): + def test_x_unit_setter_raises(self, model_base): # WHEN / THEN / EXPECT - with pytest.raises(AttributeError, match='Use convert_unit to change '): - model_base.unit = 'K' + with pytest.raises(AttributeError): + model_base.x_unit = 'K' + + def test_convert_x_unit(self, model_base): + # Build collections before conversion so we can verify in-place update + _ = model_base.get_component_collection(0) + assert model_base._component_collections_is_dirty is False + collection_before = model_base._component_collections[0] - def test_convert_unit(self, model_base): # WHEN - model_base.convert_unit('eV') + model_base.convert_x_unit('eV') - # THEN / EXPECT - assert model_base.unit == 'eV' + # THEN / EXPECT: dirty flag NOT set and same collections reused (not rebuilt) + assert model_base._component_collections_is_dirty is False + assert model_base._component_collections[0] is collection_before + + assert model_base.x_unit == 'eV' for component in model_base.components: - assert component.unit == 'eV' + assert component.x_unit == 'eV' + for collection in model_base._component_collections: + for component in collection: + assert component.x_unit == 'eV' - def test_convert_unit_invalid_raises(self, model_base): + def test_convert_x_unit_invalid_raises(self, model_base): # WHEN / THEN / EXPECT with pytest.raises(UnitError): - model_base.convert_unit('invalid_unit') + model_base.convert_x_unit('invalid_unit') - def test_convert_unit_incorrect_unit_raises(self, model_base): + def test_convert_x_unit_incorrect_unit_raises(self, model_base): # WHEN THEN EXPECT with pytest.raises(TypeError, match=r'Unit must be a string or sc.Unit'): - model_base.convert_unit(123) + model_base.convert_x_unit(123) + + def test_components_setter_none(self, model_base): + # WHEN THEN + model_base.components = None + # EXPECT + assert len(model_base.components) == 0 + + def test_convert_x_unit_rollback_when_old_unit_none(self): + # WHEN: model with _x_unit=None (rollback branch is skipped when old_unit is None) + component = Gaussian(name='G', area=1.0, center=0.0, width=0.5, x_unit='meV') + model = ModelBase(display_name='M', x_unit=None, components=component) + model._x_unit = None + # THEN + with pytest.raises(UnitError): + model.convert_x_unit('m') # incompatible unit triggers failure + # EXPECT: Gaussian's own atomic rollback keeps it at 'meV' even though + # ModelBase's outer rollback loop is skipped when old_unit is None + assert component.x_unit == 'meV' + + def test_convert_x_unit_rollback_on_failure(self, model_base): + # WHEN THEN + with pytest.raises(UnitError): + model_base.convert_x_unit('m') + # EXPECT: state rolled back + assert model_base.x_unit == 'meV' + for component in model_base.components: + assert component.x_unit == 'meV' + + def test_convert_y_unit_rollback_on_failure(self, model_base): + # WHEN THEN + with pytest.raises(UnitError): + model_base.convert_y_unit('K') + # EXPECT: state rolled back + assert model_base.y_unit == 'dimensionless' + + def test_convert_x_unit_rollback_restores_collections(self): + # WHEN: a model with built per-Q collections + component = Gaussian(name='G', area=1.0, center=0.0, width=0.5, x_unit='meV') + model = ModelBase(display_name='M', components=component, Q=[1.0, 2.0]) + collection = model.get_component_collection(0) + + # THEN: an incompatible unit fails and triggers the rollback of components and + # collections + with pytest.raises(UnitError): + model.convert_x_unit('m') + + # EXPECT + assert model.x_unit == 'meV' + assert component.x_unit == 'meV' + assert collection[0].x_unit == 'meV' + + def test_component_collections_empty_without_Q(self): + # WHEN: a model without Q regenerates its collections + model = ModelBase(display_name='M', components=Gaussian(name='G')) + + # THEN EXPECT: no per-Q collections and therefore no variables + assert model.get_all_variables() == [] + assert model._component_collections == [] def test_components_setter(self, model_base): # WHEN @@ -320,8 +392,9 @@ def test_Q_setter_raises_if_Q_is_not_similar(self, model_base): [1.0, 2.0, 3.0], np.array([1.0, 2.0, 3.0]), sc.Variable(dims=['Q'], values=[1.0, 2.0, 3.0], unit='1/angstrom'), + sc.Variable(dims=['Q'], values=[10.0, 20.0, 30.0], unit='1/nm'), ], - ids=['list', 'numpy_array', 'scipp_variable'], + ids=['list', 'numpy_array', 'scipp_variable', 'scipp_variable_other_unit'], ) def test_Q_setter_with_similar_Q(self, model_base, new_Q): # WHEN @@ -331,7 +404,7 @@ def test_Q_setter_with_similar_Q(self, model_base, new_Q): model_base.Q = new_Q # EXPECT - np.testing.assert_array_equal(model_base.Q, old_Q) + np.testing.assert_array_equal(model_base.Q.values, old_Q.values) def test_Q_setter_with_none(self, model_base): # WHEN @@ -354,6 +427,19 @@ def test_Q_setter_when_current_Q_is_none(self, model_base): # EXPECT np.testing.assert_array_equal(model_base.Q.values, np.array(new_Q)) + def test_Q_stored_as_scipp_in_inverse_angstrom(self, model_base): + # WHEN: a scipp Q in 1/nm + model_base._Q = None + new_Q = sc.Variable(dims=['Q'], values=[5.0, 10.0], unit='1/nm') + + # THEN + model_base.Q = new_Q + + # EXPECT: stored canonically in 1/angstrom + assert isinstance(model_base.Q, sc.Variable) + assert model_base.Q.unit == sc.Unit('1/angstrom') + np.testing.assert_allclose(model_base.Q.values, [0.5, 1.0]) + def test_clear_Q(self, model_base): # WHEN # @@ -388,3 +474,42 @@ def test_repr(self, model_base): assert 'unit' in repr_str assert 'Q=' in repr_str assert 'components=' in repr_str + + def test_y_unit_setter_raises(self, model_base): + # WHEN / THEN / EXPECT + with pytest.raises(AttributeError): + model_base.y_unit = '1/meV' + + def test_convert_y_unit(self): + # WHEN: model with components where y_unit='1/meV' so area_unit ≈ dimensionless + g = Gaussian(area=1.0, x_unit='meV', y_unit='1/meV') + lor = Lorentzian(area=1.0, x_unit='meV', y_unit='1/meV') + cc = ComponentCollection(components=[g, lor]) + model = ModelBase(components=cc, x_unit='meV', Q=np.array([1.0])) + + # Build collections before conversion so we can verify in-place update + _ = model.get_component_collection(0) + assert model._component_collections_is_dirty is False + collection_before = model._component_collections[0] + + # THEN: convert y_unit to '1/eV' (same dimension, different scale) + model.convert_y_unit('1/eV') + + # EXPECT: dirty flag NOT set and same collections reused (not rebuilt) + assert model._component_collections_is_dirty is False + assert model._component_collections[0] is collection_before + + # EXPECT: model y_unit and template components updated + assert model.y_unit == '1/eV' + for component in model.components: + assert component.y_unit == '1/eV' + assert g.area.value == pytest.approx(1e3) + assert lor.area.value == pytest.approx(1e3) + # EXPECT: component collections updated in-place (not rebuilt from templates) + for component in collection_before: + assert component.y_unit == '1/eV' + + def test_convert_y_unit_invalid_raises(self, model_base): + # WHEN THEN EXPECT + with pytest.raises(TypeError): + model_base.convert_y_unit(123) diff --git a/tests/unit/easydynamics/sample_model/test_resolution_model.py b/tests/unit/easydynamics/sample_model/test_resolution_model.py index a2491c0dd..102363f60 100644 --- a/tests/unit/easydynamics/sample_model/test_resolution_model.py +++ b/tests/unit/easydynamics/sample_model/test_resolution_model.py @@ -21,14 +21,14 @@ def resolution_model(self): area=1.0, center=0.0, width=1.0, - unit='meV', + x_unit='meV', ) component2 = Lorentzian( display_name='TestLorentzian1', area=2.0, center=1.0, width=0.5, - unit='meV', + x_unit='meV', ) component_collection = ComponentCollection() component_collection.append_component(component1) @@ -36,7 +36,7 @@ def resolution_model(self): return ResolutionModel( display_name='InitModel', components=component_collection, - unit='meV', + x_unit='meV', Q=np.array([1.0, 2.0, 3.0]), ) @@ -48,7 +48,7 @@ def sample_model(self): area=1.0, center=0.0, width=1.0, - unit='meV', + x_unit='meV', ) component2 = Lorentzian( name='TestLorentzian1Name', @@ -56,7 +56,7 @@ def sample_model(self): area=2.0, center=1.0, width=0.5, - unit='meV', + x_unit='meV', ) component_collection = ComponentCollection() component_collection.append_component(component1) @@ -65,20 +65,20 @@ def sample_model(self): return SampleModel( display_name='InitModel', components=component_collection, - unit='meV', + x_unit='meV', Q=np.array([1.0, 2.0, 3.0]), temperature=10.0, ) def test_init(self, resolution_model): # WHEN THEN - model = resolution_model # EXPECT - assert model.display_name == 'InitModel' - assert model.unit == 'meV' - assert len(model.components) == 2 - np.testing.assert_array_equal(model.Q.values, np.array([1.0, 2.0, 3.0])) + assert resolution_model.display_name == 'InitModel' + assert resolution_model.x_unit == 'meV' + assert resolution_model.y_unit == 'dimensionless' + assert len(resolution_model.components) == 2 + np.testing.assert_array_equal(resolution_model.Q.values, np.array([1.0, 2.0, 3.0])) @pytest.mark.parametrize( 'invalid_component, expected_error_msg', @@ -215,7 +215,7 @@ def test_from_sample_model( # EXPECT assert resolution_model.display_name == 'InitModel' - assert resolution_model.unit == 'meV' + assert resolution_model.x_unit == 'meV' assert len(resolution_model.components) == 2 np.testing.assert_array_equal( resolution_model.Q.values, @@ -242,6 +242,21 @@ def test_from_sample_model( variables = resolution_model.get_all_variables() assert all(var.fixed for var in variables) is all_fixed + def test_from_sample_model_installed_collections_are_stable(self, sample_model): + # WHEN + resolution_model = ResolutionModel.from_sample_model(sample_model) + + # EXPECT: the installed collections are not scheduled for a rebuild (regression: init + # callbacks used to set the dirty flag, so the next access silently regenerated the + # collections from templates, discarding the normalization) + assert resolution_model._component_collections_is_dirty is False + + # and repeated access returns the same installed, normalized collections + first_access = resolution_model.get_component_collection(0) + second_access = resolution_model.get_component_collection(0) + assert first_access is second_access + assert (first_access[0].area.value + first_access[1].area.value) == pytest.approx(1.0) + def test_from_sample_model_with_no_Q(self, sample_model): # WHEN sample_model_no_Q = SampleModel( @@ -301,3 +316,19 @@ def test_from_sample_model_invalid_components(self, sample_model): match='cannot be a DeltaFunction', ): ResolutionModel.from_sample_model(sample_model) + + def test_y_unit_setter_raises(self, resolution_model): + # WHEN / THEN / EXPECT + with pytest.raises(AttributeError): + resolution_model.y_unit = '1/meV' + + def test_convert_y_unit(self): + # WHEN + g = Gaussian(area=1.0, x_unit='meV', y_unit='1/meV') + model = ResolutionModel(components=g, x_unit='meV') + # THEN: convert y_unit to '1/eV' (same dimension, different scale) + model.convert_y_unit('1/eV') + # EXPECT + assert model.y_unit == '1/eV' + assert model.components[0].y_unit == '1/eV' + assert g.area.value == pytest.approx(1e3) diff --git a/tests/unit/easydynamics/sample_model/test_sample_model.py b/tests/unit/easydynamics/sample_model/test_sample_model.py index a6c7f79f5..424a41f0b 100644 --- a/tests/unit/easydynamics/sample_model/test_sample_model.py +++ b/tests/unit/easydynamics/sample_model/test_sample_model.py @@ -6,6 +6,7 @@ import numpy as np import pytest +import scipp as sc from scipp import UnitError from easydynamics.sample_model import ComponentCollection @@ -28,7 +29,7 @@ def sample_model(self): area=1.0, center=0.0, width=1.0, - unit='meV', + x_unit='meV', ) component2 = Lorentzian( name='TestLorentzian1Name', @@ -36,7 +37,7 @@ def sample_model(self): area=2.0, center=1.0, width=0.5, - unit='meV', + x_unit='meV', ) component_collection = ComponentCollection() component_collection.append_component(component1) @@ -50,7 +51,7 @@ def sample_model(self): display_name='InitModel', components=component_collection, diffusion_models=diffusion_model, - unit='meV', + x_unit='meV', Q=np.array([1.0, 2.0, 3.0]), temperature=10.0, ) @@ -62,7 +63,8 @@ def test_init(self, sample_model): # EXPECT assert model.display_name == 'InitModel' - assert model.unit == 'meV' + assert model.x_unit == 'meV' + assert model.y_unit == 'dimensionless' assert len(model.components) == 2 assert isinstance(model.diffusion_models, list) assert len(model.diffusion_models) == 1 @@ -308,6 +310,62 @@ def test_convert_temperature_unit_raises_with_invalid_unit(self, sample_model): ): model.convert_temperature_unit('invalid_unit') + def test_convert_x_unit_propagates_to_diffusion_models(self): + # WHEN: a SampleModel with an attached diffusion model + Q = np.array([1.0, 2.0]) + brownian = BrownianTranslationalDiffusion(diffusion_coefficient=2.4e-9, Q=Q) + model = SampleModel(Q=Q, diffusion_models=brownian) + width_mev = model.get_component_collection(0)[0].width.value + + # THEN + model.convert_x_unit('ueV') + + # EXPECT: the diffusion model follows the SampleModel's new unit, and the merged + # collections carry rescaled widths in the new unit + assert sc.Unit(str(brownian.x_unit)) == sc.Unit('ueV') + assert sc.Unit(str(brownian.scale.unit)) == sc.Unit('ueV') + collection = model.get_component_collection(0) + assert sc.Unit(str(collection[0].width.unit)) == sc.Unit('ueV') + assert collection[0].width.value == pytest.approx(width_mev * 1000) + + def test_convert_x_unit_does_not_mark_collections_dirty(self): + # WHEN: a SampleModel with an attached diffusion model and built collections + Q = np.array([1.0, 2.0]) + brownian = BrownianTranslationalDiffusion(diffusion_coefficient=2.4e-9, Q=Q) + model = SampleModel(Q=Q, diffusion_models=brownian) + collection_before = model.get_component_collection(0) + width = collection_before[0].width + + # THEN + model.convert_x_unit('ueV') + + # EXPECT: conversion works in place — no dirty flag, no rebuild, and the converted + # dependent width stays in the new unit through later dependency-graph updates + # (regression: conversion used to mark the collections dirty, and the rebuild + # discarded per-Q state and object references) + assert model._component_collections_is_dirty is False + assert model.get_component_collection(0) is collection_before + width_uev = width.value + brownian.diffusion_coefficient = 4.8e-9 + assert sc.Unit(str(width.unit)) == sc.Unit('ueV') + assert width.value == pytest.approx(2 * width_uev) + + def test_convert_y_unit_propagates_to_diffusion_models(self): + # WHEN: SampleModel and diffusion model sharing y_unit='1/meV' + Q = np.array([1.0]) + brownian = BrownianTranslationalDiffusion( + diffusion_coefficient=2.4e-9, Q=Q, y_unit='1/meV' + ) + model = SampleModel(Q=Q, y_unit='1/meV', diffusion_models=brownian) + + # THEN + model.convert_y_unit('1/eV') + + # EXPECT + assert sc.Unit(str(brownian.y_unit)) == sc.Unit('1/eV') + assert sc.Unit(str(brownian.scale.unit)) == sc.Unit('meV/eV') + assert sc.Unit(str(model.y_unit)) == sc.Unit('1/eV') + def test_normalize_detailed_balance_setter(self, sample_model): # WHEN model = sample_model @@ -402,12 +460,12 @@ def test_evaluate_calls_dbf(self, sample_model): energy=x, temperature=sample_model.temperature, divide_by_temperature=sample_model.normalize_detailed_balance, - energy_unit=sample_model.unit, + energy_unit=sample_model.x_unit, ) # Check that evaluate was called on each component - collection1.evaluate.assert_called_once_with(x) - collection2.evaluate.assert_called_once_with(x) + collection1.evaluate.assert_called_once_with(x, output='numpy') + collection2.evaluate.assert_called_once_with(x, output='numpy') # Check that DBF was applied elementwise np.testing.assert_allclose(result[0], np.array([1.0, 2.0, 3.0]) * 10.0) @@ -452,8 +510,8 @@ def test_evaluate_doesnt_call_dbf_when_disabled( mock_dbf.assert_not_called() # Check that evaluate was called on each component - collection1.evaluate.assert_called_once_with(x) - collection2.evaluate.assert_called_once_with(x) + collection1.evaluate.assert_called_once_with(x, output='numpy') + collection2.evaluate.assert_called_once_with(x, output='numpy') # Check that results were not modified by DBF np.testing.assert_allclose(result[0], np.array([1.0, 2.0, 3.0])) @@ -531,9 +589,28 @@ def test_repr(self, sample_model): # THEN / EXPECT assert 'SampleModel' in repr_str - assert 'unit=' in repr_str - assert 'Q=' in repr_str + assert 'Q = ' in repr_str assert 'components' in repr_str assert 'diffusion_models' in repr_str assert 'temperature' in repr_str + # Regression: a stray ')' and a missing separator used to mangle this into + # 'x_unit=meV), y_unit=dimensionlessQ = ...', and the closing ')' was missing + assert 'x_unit=meV, y_unit=dimensionless' in repr_str + assert repr_str.rstrip().endswith(')') assert 'normalize_detailed_balance' in repr_str + + def test_y_unit_setter_raises(self, sample_model): + # WHEN / THEN / EXPECT + with pytest.raises(AttributeError): + sample_model.y_unit = '1/meV' + + def test_convert_y_unit(self): + # WHEN + g = Gaussian(area=1.0, x_unit='meV', y_unit='1/meV') + model = SampleModel(components=g, x_unit='meV') + # THEN: convert y_unit to '1/eV' (same dimension, different scale) + model.convert_y_unit('1/eV') + # EXPECT + assert model.y_unit == '1/eV' + assert model.components[0].y_unit == '1/eV' + assert g.area.value == pytest.approx(1e3) diff --git a/tests/unit/easydynamics/settings/test_convolution_settings.py b/tests/unit/easydynamics/settings/test_convolution_settings.py index 202f5baea..a5c0ceb38 100644 --- a/tests/unit/easydynamics/settings/test_convolution_settings.py +++ b/tests/unit/easydynamics/settings/test_convolution_settings.py @@ -1,6 +1,8 @@ # SPDX-FileCopyrightText: 2026 EasyScience contributors # SPDX-License-Identifier: BSD-3-Clause +from copy import copy + import pytest from easydynamics.settings.convolution_settings import ConvolutionSettings @@ -20,7 +22,21 @@ def test_init(self, default_convolution_settings): assert isinstance(default_convolution_settings, ConvolutionSettings) assert default_convolution_settings.upsample_factor == 5 assert default_convolution_settings.extension_factor == pytest.approx(0.2) - assert default_convolution_settings.convolution_plan_is_valid is False + + def test_copy(self): + # WHEN + settings = ConvolutionSettings( + upsample_factor=10, extension_factor=0.5, suppress_warnings=True + ) + + # THEN + settings_copy = copy(settings) + + # EXPECT: a distinct instance with the same knob values + assert settings_copy is not settings + assert settings_copy.upsample_factor == 10 + assert settings_copy.extension_factor == pytest.approx(0.5) + assert settings_copy.suppress_warnings is True def test_init_with_custom_parameters(self): """ @@ -37,7 +53,6 @@ def test_init_with_custom_parameters(self): # THEN EXPECT assert convolution_settings.upsample_factor == 10 assert convolution_settings.extension_factor == pytest.approx(0.5) - assert convolution_settings.convolution_plan_is_valid is False assert convolution_settings.suppress_warnings is True def test_init_with_None(self): @@ -54,7 +69,6 @@ def test_init_with_None(self): # THEN EXPECT assert convolution_settings.upsample_factor is None assert convolution_settings.extension_factor is None - assert convolution_settings.convolution_plan_is_valid is False assert convolution_settings.suppress_warnings is False @pytest.mark.parametrize( @@ -98,16 +112,15 @@ def test_upsample_factor_setter_valid(self, default_convolution_settings, value) settings = default_convolution_settings # WHEN - # Ensure it's True first so we can test the reset - settings.convolution_plan_is_valid = True + version_before = settings._plan_version # THEN settings.upsample_factor = value - # EXPECT + # EXPECT: value stored and the plan invalidated for all convolvers expected = pytest.approx(float(value)) if value is not None else None assert settings.upsample_factor == expected - assert settings.convolution_plan_is_valid is False + assert settings._plan_version == version_before + 1 @pytest.mark.parametrize( 'value, expected_exception, match', @@ -146,23 +159,25 @@ def test_upsample_factor_setter_invalid( def test_extension_factor_setter_valid(self, default_convolution_settings, value): # WHEN - default_convolution_settings.convolution_plan_is_valid = True + version_before = default_convolution_settings._plan_version # THEN default_convolution_settings.extension_factor = value - # EXPECT + # EXPECT: value stored and the plan invalidated for all convolvers assert default_convolution_settings.extension_factor == pytest.approx(float(value)) - assert default_convolution_settings.convolution_plan_is_valid is False + assert default_convolution_settings._plan_version == version_before + 1 @pytest.mark.parametrize( 'value, expected_exception, match', [ ('0.2', TypeError, 'must be a number'), + (None, TypeError, 'must be a number'), (-0.1, ValueError, 'must be non-negative'), ], ids=[ 'not_numeric', + 'none', 'negative', ], ) @@ -178,51 +193,22 @@ def test_extension_factor_setter_invalid( with pytest.raises(expected_exception, match=match): default_convolution_settings.extension_factor = value - @pytest.mark.parametrize( - 'value', - [True, False], - ids=[ - 'true', - 'false', - ], - ) - def test_convolution_plan_is_valid_setter_valid( - self, - default_convolution_settings, - value, - ): + def test_invalidate_plan_bumps_version(self, default_convolution_settings): # WHEN - default_convolution_settings.convolution_plan_is_valid = not value + version_before = default_convolution_settings._plan_version # THEN - default_convolution_settings.convolution_plan_is_valid = value + default_convolution_settings._invalidate_plan() # EXPECT - assert default_convolution_settings.convolution_plan_is_valid is value - - @pytest.mark.parametrize( - 'value, expected_exception, match', - [ - ('True', TypeError, 'must be True or False'), - (1, TypeError, 'must be True or False'), - (None, TypeError, 'must be True or False'), - ], - ids=[ - 'string', - 'int', - 'none', - ], - ) - def test_convolution_plan_is_valid_setter_invalid( - self, - default_convolution_settings, - value, - expected_exception, - match, - ): - # WHEN / THEN / EXPECT - with pytest.raises(expected_exception, match=match): - default_convolution_settings.convolution_plan_is_valid = value + assert default_convolution_settings._plan_version == version_before + 1 + assert default_convolution_settings._plan_valid_for(version_before) is False + assert ( + default_convolution_settings._plan_valid_for( + default_convolution_settings._plan_version + ) + is True + ) def test_suppress_warnings_setter_valid(self, default_convolution_settings): # WHEN diff --git a/tests/unit/easydynamics/test_exceptions.py b/tests/unit/easydynamics/test_exceptions.py index 494f6f7c9..bc7731a5e 100644 --- a/tests/unit/easydynamics/test_exceptions.py +++ b/tests/unit/easydynamics/test_exceptions.py @@ -7,11 +7,14 @@ class TestAmbiguousNameError: def test_initialization(self): + # WHEN name = 'test' matches = ['test1', 'test2', 'test3'] + # THEN error = AmbiguousNameError(name, matches) + # EXPECT assert error.name == name assert error.matches == matches assert str(error) == ( @@ -19,11 +22,14 @@ def test_initialization(self): ) def test_empty_matches(self): + # WHEN name = 'unknown' matches = [] + # THEN error = AmbiguousNameError(name, matches) + # EXPECT assert error.name == name assert error.matches == matches assert str(error) == ("Ambiguous name 'unknown' matches 0 elements: []") diff --git a/tests/unit/easydynamics/test_import.py b/tests/unit/easydynamics/test_import.py index e062efcbe..d2ffe77ba 100644 --- a/tests/unit/easydynamics/test_import.py +++ b/tests/unit/easydynamics/test_import.py @@ -3,6 +3,5 @@ def test_import_easydynamics(): - import easydynamics - - assert easydynamics is not None + # WHEN THEN EXPECT: importing raises no error + import easydynamics # noqa: F401 diff --git a/tests/unit/easydynamics/utils/test_detailed_balance.py b/tests/unit/easydynamics/utils/test_detailed_balance.py index bebf5407a..2d2284d36 100644 --- a/tests/unit/easydynamics/utils/test_detailed_balance.py +++ b/tests/unit/easydynamics/utils/test_detailed_balance.py @@ -9,6 +9,7 @@ from scipp.constants import Boltzmann as kB from easydynamics.utils import detailed_balance_factor +from easydynamics.utils.detailed_balance import _convert_to_scipp_variable kB_meV_per_K = sc.to_unit(kB, 'meV/K').value @@ -305,3 +306,30 @@ def test_incompatible_temperature_unit_raises(self): energy_unit=energy_unit, temperature_unit=temperature_unit, ) + + +class TestConvertToScippVariable: + """Tests for _convert_to_scipp_variable internal helper.""" + + @pytest.mark.parametrize( + 'name, expected_match', + [ + ('energy', 'energy must be a number'), + ('temperature', 'temperature must be a number'), + ], + ids=['energy_name', 'other_name'], + ) + def test_invalid_type_raises_type_error(self, name, expected_match): + # WHEN THEN EXPECT + with pytest.raises(TypeError, match=expected_match): + _convert_to_scipp_variable({'invalid': 'type'}, name=name, unit='meV') + + def test_invalid_unit_scalar_raises_unit_error(self): + # WHEN THEN EXPECT + with pytest.raises(UnitError, match='Invalid unit string'): + _convert_to_scipp_variable(1.0, name='energy', unit='not_a_real_unit_xyz') + + def test_invalid_unit_array_raises_unit_error(self): + # WHEN THEN EXPECT + with pytest.raises(UnitError, match='Invalid unit string'): + _convert_to_scipp_variable([1.0, 2.0], name='energy', unit='not_a_real_unit_xyz') From 5780e68d24ce520faf9a722104c1f28778f6b71c Mon Sep 17 00:00:00 2001 From: henrikjacobsenfys Date: Tue, 7 Jul 2026 07:06:47 +0200 Subject: [PATCH 2/2] Add tests for x_unit rename edge cases and get_fit_targets (#224 patch coverage) --- docs/docs/tutorials/components.ipynb | 9 ----- docs/docs/tutorials/tutorial0_basics.ipynb | 2 +- .../tutorials/tutorial0_more_advanced.ipynb | 6 +-- docs/docs/tutorials/tutorial1_brownian.ipynb | 29 +++++++++----- .../easydynamics/analysis/test_analysis1d.py | 39 +++++++++++++++++++ .../test_numerical_convolution_base.py | 12 ++++++ .../components/test_expression_component.py | 9 +++++ .../components/test_polynomial.py | 8 ++++ .../diffusion_model/test_delta_lorentz.py | 19 +++++++++ .../test_diffusion_model_base.py | 19 +++++++++ .../sample_model/test_sample_model.py | 31 +++++++++++++++ 11 files changed, 161 insertions(+), 22 deletions(-) diff --git a/docs/docs/tutorials/components.ipynb b/docs/docs/tutorials/components.ipynb index eafa88973..c940c717b 100644 --- a/docs/docs/tutorials/components.ipynb +++ b/docs/docs/tutorials/components.ipynb @@ -151,15 +151,6 @@ "expr = sm.ExpressionComponent(\n", " 'A * exp(-(x - x0)**2 / (2*sigma**2)) +B*sin(2*pi*x/period)',\n", " parameters={'A': 10, 'x0': 0, 'sigma': 1},\n", - " parameter_units={\n", - " 'A': 'dimensionless',\n", - " 'x0': 'meV',\n", - " 'sigma': 'meV',\n", - " 'B': 'dimensionless',\n", - " 'period': 'meV',\n", - " },\n", - " x_unit='meV',\n", - " y_unit='dimensionless',\n", ")\n", "\n", "expr.A = 5\n", diff --git a/docs/docs/tutorials/tutorial0_basics.ipynb b/docs/docs/tutorials/tutorial0_basics.ipynb index 7efb5705f..10ec842f1 100644 --- a/docs/docs/tutorials/tutorial0_basics.ipynb +++ b/docs/docs/tutorials/tutorial0_basics.ipynb @@ -416,7 +416,7 @@ " name='Straight line',\n", ")\n", "\n", - "binding = edyn.FitBinding(model=fit_func, targets='Gaussian area')\n", + "binding = edyn.FitBinding(parameter_name='Gaussian area', model=fit_func)\n", "\n", "parameter_analysis = edyn.ParameterAnalysis(\n", " parameters=analysis,\n", diff --git a/docs/docs/tutorials/tutorial0_more_advanced.ipynb b/docs/docs/tutorials/tutorial0_more_advanced.ipynb index da7469571..6869b2596 100644 --- a/docs/docs/tutorials/tutorial0_more_advanced.ipynb +++ b/docs/docs/tutorials/tutorial0_more_advanced.ipynb @@ -339,11 +339,11 @@ " coefficients=[1.1, 0.2], x_unit='1/angstrom', y_unit='meV', name='DHO center fit'\n", ")\n", "\n", - "binding1 = edyn.FitBinding(model=gauss_fit_func, targets='Gaussian area')\n", + "binding1 = edyn.FitBinding(parameter_name='Gaussian area', model=gauss_fit_func)\n", "\n", - "binding2 = edyn.FitBinding(model=dho_area_fit_func, targets='DHO area')\n", + "binding2 = edyn.FitBinding(parameter_name='DHO area', model=dho_area_fit_func)\n", "\n", - "binding3 = edyn.FitBinding(model=dho_center_fit_func, targets='DHO center')\n", + "binding3 = edyn.FitBinding(parameter_name='DHO center', model=dho_center_fit_func)\n", "\n", "parameter_analysis = edyn.ParameterAnalysis(\n", " parameters=analysis,\n", diff --git a/docs/docs/tutorials/tutorial1_brownian.ipynb b/docs/docs/tutorials/tutorial1_brownian.ipynb index bb6403252..269bb2599 100644 --- a/docs/docs/tutorials/tutorial1_brownian.ipynb +++ b/docs/docs/tutorials/tutorial1_brownian.ipynb @@ -451,7 +451,7 @@ "$$\n", "where $\\Gamma(Q) = D Q^2$ and $D$ is the diffusion coefficient. $S$ is an overall scale.\n", "\n", - "To fit the Brownian translational diffusion model to the data, we use the `ParameterAnalysis`. This time, we wish to fit the `Lorentzian`, and we wish to fit both its area (scale, $S$) and width to the diffusion model. We do this by creating a `FitBinding`. Because the diffusion model's `lorentzian_name` matches the fitted component's name, the default targets automatically fit both the area and the width against the `Lorentzian area` and `Lorentzian width` parameters" + "To fit the Brownian translational diffusion model to the data, we use the `ParameterAnalysis`. This time, we wish to fit the `Lorentzian`, and we wish to fit both its area (scale, $S$) and width to the diffusion model. We do this by creating a `FitBinding`, saying we want to fit both the area an width of the component called `Lorentzian`" ] }, { @@ -462,17 +462,18 @@ "outputs": [], "source": [ "brownian_diffusion_model = sm.BrownianTranslationalDiffusion(\n", - " name='Brownian Translational Diffusion',\n", - " lorentzian_name='Lorentzian',\n", - " diffusion_coefficient=2.4e-9,\n", - " scale=0.5,\n", + " name='Brownian Translational Diffusion', diffusion_coefficient=2.4e-9, scale=0.5\n", ")\n", "\n", - "binding = edyn.FitBinding(model=brownian_diffusion_model)\n", + "binding = edyn.FitBinding(\n", + " parameter_name='Lorentzian',\n", + " model=brownian_diffusion_model,\n", + " modes=['area', 'width'],\n", + ")\n", "\n", "parameter_analysis = edyn.ParameterAnalysis(\n", " parameters=diffusion_analysis,\n", - " bindings=binding,\n", + " bindings=[binding],\n", ")" ] }, @@ -494,6 +495,16 @@ "parameter_analysis.plot()" ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "57b76d06", + "metadata": {}, + "outputs": [], + "source": [ + "parameter_analysis.plot(names=['Polynomial_c0'])" + ] + }, { "cell_type": "markdown", "id": "64babb01", @@ -680,7 +691,7 @@ ], "metadata": { "kernelspec": { - "display_name": "default", + "display_name": "Python 3", "language": "python", "name": "python3" }, @@ -694,7 +705,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.14.6" + "version": "3.14.5" } }, "nbformat": 4, diff --git a/tests/unit/easydynamics/analysis/test_analysis1d.py b/tests/unit/easydynamics/analysis/test_analysis1d.py index 466b16a07..86e35fe8b 100644 --- a/tests/unit/easydynamics/analysis/test_analysis1d.py +++ b/tests/unit/easydynamics/analysis/test_analysis1d.py @@ -1108,3 +1108,42 @@ def test_repr(self, analysis1d): assert 'Analysis1d' in repr_str assert 'display_name=' in repr_str assert 'Q_index=' in repr_str + + +def _coverage_analysis1d(): + Q = sc.array(dims=['Q'], values=[1, 2, 3], unit='1/Angstrom') + energy = sc.array(dims=['energy'], values=[10.0, 20.0, 30.0], unit='meV') + data = sc.array( + dims=['Q', 'energy'], + values=[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]], + variances=[[0.1, 0.2, 0.3], [0.4, 0.5, 0.6], [0.7, 0.8, 0.9]], + ) + data_array = sc.DataArray(data=data, coords={'Q': Q, 'energy': energy}) + return Analysis1d( + display_name='CoverageAnalysis', + experiment=Experiment(data=data_array), + sample_model=SampleModel(components=Gaussian()), + instrument_model=InstrumentModel(), + Q_index=0, + ) + + +def test_on_Q_index_changed_with_none_clears_masked_energy(): + # GIVEN an analysis whose Q_index has been cleared + analysis1d = _coverage_analysis1d() + analysis1d._Q_index = None + # WHEN the Q-index-changed handler runs + analysis1d._on_Q_index_changed() + # EXPECT masked energy cleared and convolver marked dirty + assert analysis1d._masked_energy is None + assert analysis1d._convolver_is_dirty is True + + +def test_on_experiment_changed_refreshes_masked_energy_when_Q_index_set(): + # GIVEN an analysis with a Q_index already set + analysis1d = _coverage_analysis1d() + # WHEN the experiment-changed handler runs + analysis1d._on_experiment_changed() + # EXPECT masked energy refreshed and convolver marked dirty + assert analysis1d._masked_energy is not None + assert analysis1d._convolver_is_dirty is True diff --git a/tests/unit/easydynamics/convolution/test_numerical_convolution_base.py b/tests/unit/easydynamics/convolution/test_numerical_convolution_base.py index 3f4305373..9f90ff98c 100644 --- a/tests/unit/easydynamics/convolution/test_numerical_convolution_base.py +++ b/tests/unit/easydynamics/convolution/test_numerical_convolution_base.py @@ -645,3 +645,15 @@ def test_repr(self, default_numerical_convolution_base): assert 'extension_factor=0.2' in repr_str assert 'temperature=None' in repr_str assert 'normalize_detailed_balance=True' in repr_str + + +def test_create_energy_grid_raises_when_extension_factor_none_with_upsampling(): + # GIVEN upsampling enabled but no extension_factor, the dense energy grid cannot be built + # WHEN THEN EXPECT (the grid is built eagerly during construction) + with pytest.raises(ValueError, match=r'extension_factor must be a number'): + NumericalConvolutionBase( + energy=np.linspace(-10, 10, 101), + sample_components=ComponentCollection(display_name='ComponentCollection'), + resolution_components=ComponentCollection(display_name='ResolutionModel'), + convolution_settings=ConvolutionSettings(upsample_factor=5, extension_factor=None), + ) diff --git a/tests/unit/easydynamics/sample_model/components/test_expression_component.py b/tests/unit/easydynamics/sample_model/components/test_expression_component.py index b73987901..6cf811474 100644 --- a/tests/unit/easydynamics/sample_model/components/test_expression_component.py +++ b/tests/unit/easydynamics/sample_model/components/test_expression_component.py @@ -226,3 +226,12 @@ def test_erf(self): # EXPECT expected = np.array([-0.84270079, 0.0, 0.84270079]) # erf(-1), erf(0), erf(1) np.testing.assert_allclose(result, expected, rtol=1e-5) + + +def test_evaluate_warns_when_input_unit_differs_from_x_unit(): + # GIVEN an ExpressionComponent with x_unit meV + expr = ExpressionComponent('A * x', parameters={'A': 2.0}, x_unit='meV') + x = sc.array(dims=['x'], values=[1.0, 2.0], unit='ueV') + # WHEN evaluating with x in a different unit THEN EXPECT a warning + with pytest.warns(UserWarning, match=r'cannot auto-convert parameters'): + expr.evaluate(x) diff --git a/tests/unit/easydynamics/sample_model/components/test_polynomial.py b/tests/unit/easydynamics/sample_model/components/test_polynomial.py index 8f6550bee..24b382e78 100644 --- a/tests/unit/easydynamics/sample_model/components/test_polynomial.py +++ b/tests/unit/easydynamics/sample_model/components/test_polynomial.py @@ -299,3 +299,11 @@ def test_convert_y_unit_rollback_on_failure(self): assert p.y_unit == 'dimensionless' assert np.isclose(p.coefficients[0].value, 1.0) assert np.isclose(p.coefficients[1].value, 2.0) + + +def test_suppress_warnings_setter_raises_for_non_bool(): + # GIVEN a Polynomial + p = Polynomial(coefficients=[1.0, 2.0], x_unit='meV') + # WHEN THEN EXPECT + with pytest.raises(TypeError, match=r'Suppress_warnings must be True or False'): + p.suppress_warnings = 'yes' diff --git a/tests/unit/easydynamics/sample_model/diffusion_model/test_delta_lorentz.py b/tests/unit/easydynamics/sample_model/diffusion_model/test_delta_lorentz.py index 86024fd88..17074eb95 100644 --- a/tests/unit/easydynamics/sample_model/diffusion_model/test_delta_lorentz.py +++ b/tests/unit/easydynamics/sample_model/diffusion_model/test_delta_lorentz.py @@ -971,3 +971,22 @@ def test_calculate_width_raises_after_clear_Q_when_allow_Q_variation( # THEN: before the fix, calculate_width() silently returned [] instead of raising. with pytest.raises(ValueError, match='Q must be provided'): delta_lorentz_model_with_Q.calculate_width() + + +def test_get_fit_targets_includes_delta_area(): + # GIVEN a DeltaLorentz model + model = DeltaLorentz(delta_name='Delta function', lorentzian_name='Lorentzian') + # WHEN + targets = model.get_fit_targets() + # EXPECT base area/width plus the delta_area prediction + assert [t.name for t in targets] == ['area', 'width', 'delta_area'] + delta_area = next(t for t in targets if t.name == 'delta_area') + assert delta_area.dataset_key == 'Delta function area' + + +def test_calculate_width_raises_when_Q_variation_enabled_but_Q_unset(): + # GIVEN Q-variation enabled for the width but Q never set on the model (empty per-Q list) + model = DeltaLorentz(lorentzian_width=0.1, allow_Q_variation={'lorentzian_width': True}) + # WHEN a Q is requested THEN EXPECT the empty per-Q width list to be reported + with pytest.raises(ValueError, match=r'Lorentzian width Q-variation list is empty'): + model.calculate_width(np.array([1.0])) diff --git a/tests/unit/easydynamics/sample_model/diffusion_model/test_diffusion_model_base.py b/tests/unit/easydynamics/sample_model/diffusion_model/test_diffusion_model_base.py index 938685f86..d323b0ba6 100644 --- a/tests/unit/easydynamics/sample_model/diffusion_model/test_diffusion_model_base.py +++ b/tests/unit/easydynamics/sample_model/diffusion_model/test_diffusion_model_base.py @@ -354,3 +354,22 @@ def test_ensure_Q_uses_argument(self, diffusion_model): # EXPECT np.testing.assert_allclose(Q, [1.0, 2.0]) + + +def test_get_fit_targets_declares_area_and_width(): + # GIVEN a diffusion model + model = DiffusionModelBase(lorentzian_name='Lorentzian') + # WHEN + targets = model.get_fit_targets() + # EXPECT area and width predictions with keys derived from the Lorentzian name + assert [t.name for t in targets] == ['area', 'width'] + assert targets[0].dataset_key == 'Lorentzian area' + assert targets[1].dataset_key == 'Lorentzian width' + + +def test_match_Q_indices_raises_when_Q_not_set(): + # GIVEN a diffusion model with no Q set + model = DiffusionModelBase() + # WHEN THEN EXPECT + with pytest.raises(ValueError, match=r'Q must be set in the model'): + model._match_Q_indices(np.array([1.0])) diff --git a/tests/unit/easydynamics/sample_model/test_sample_model.py b/tests/unit/easydynamics/sample_model/test_sample_model.py index 424a41f0b..36ac3fb72 100644 --- a/tests/unit/easydynamics/sample_model/test_sample_model.py +++ b/tests/unit/easydynamics/sample_model/test_sample_model.py @@ -614,3 +614,34 @@ def test_convert_y_unit(self): assert model.y_unit == '1/eV' assert model.components[0].y_unit == '1/eV' assert g.area.value == pytest.approx(1e3) + + +def test_remove_diffusion_model_raises_with_duplicate_names(): + # GIVEN a SampleModel with two DiffusionModels sharing a name + Q = np.linspace(0.5, 2.0, 3) + model = SampleModel( + Q=Q, + diffusion_models=[ + BrownianTranslationalDiffusion(name='dup'), + BrownianTranslationalDiffusion(name='dup'), + ], + ) + # WHEN THEN EXPECT + with pytest.raises(ValueError, match=r'Multiple DiffusionModels share the name'): + model.remove_diffusion_model('dup') + + +def test_convert_x_unit_rolls_back_when_diffusion_model_conversion_fails(): + # GIVEN a SampleModel whose diffusion model raises during x-unit conversion + Q = np.linspace(0.5, 2.0, 3) + brownian = BrownianTranslationalDiffusion() + model = SampleModel(Q=Q, diffusion_models=brownian) + original_unit = model.x_unit + # WHEN the conversion fails partway through + with ( + patch.object(brownian, 'convert_x_unit', side_effect=RuntimeError('boom')), + pytest.raises(RuntimeError, match='boom'), + ): + model.convert_x_unit('ueV') + # EXPECT the model's own x_unit to be rolled back to the original + assert model.x_unit == original_unit

5JR0vyE+d|&$j4&lDtF{p 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 z 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
<~4@YUE|(S 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 z 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