htmie

Optical properties of water droplets
git clone git://git.meso-star.fr/htmie.git
Log | Files | Refs | README | LICENSE

commit 53b53e4a8c3bda3cbaef95a1dc74927682cf6374
parent 81c3c332e7ce4ebeebfce033a80f37ff207309d0
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Thu,  5 Jul 2018 09:44:30 +0200

Push further the "fetch xsections" tests

Diffstat:
Msrc/test_htmie_load.c | 47+++++++++++++++++++++++++----------------------
1 file changed, 25 insertions(+), 22 deletions(-)

diff --git a/src/test_htmie_load.c b/src/test_htmie_load.c @@ -25,6 +25,7 @@ static void test_fetch(struct htmie* htmie) { size_t nwlens; + size_t i; const double* wlens; const double* absor; const double* scatt; @@ -43,28 +44,30 @@ test_fetch(struct htmie* htmie) scatt = htmie_get_xsections_scattering(htmie); absor = htmie_get_xsections_absorption(htmie); - CHK(absor[0] == htmie_fetch_xsection_absorption(htmie, wlens[0], NEAREST)); - CHK(absor[1] == htmie_fetch_xsection_absorption(htmie, wlens[1], NEAREST)); - CHK(scatt[0] == htmie_fetch_xsection_scattering(htmie, wlens[0], NEAREST)); - CHK(scatt[1] == htmie_fetch_xsection_scattering(htmie, wlens[1], NEAREST)); - - u = 0.25; - wlen = wlens[0] + u * (wlens[1] - wlens[0]); - xabs = absor[0] + u * (absor[1] - absor[0]); - xsca = scatt[0] + u * (scatt[1] - scatt[0]); - CHK(absor[0] == htmie_fetch_xsection_absorption(htmie, wlen, NEAREST)); - CHK(scatt[0] == htmie_fetch_xsection_scattering(htmie, wlen, NEAREST)); - CHK(eq_eps(xabs, htmie_fetch_xsection_absorption(htmie, wlen, LINEAR), 1.e-6)); - CHK(eq_eps(xsca, htmie_fetch_xsection_scattering(htmie, wlen, LINEAR), 1.e-6)); - - u = 0.51; - wlen = wlens[0] + u * (wlens[1] - wlens[0]); - xabs = absor[0] + u * (absor[1] - absor[0]); - xsca = scatt[0] + u * (scatt[1] - scatt[0]); - CHK(absor[1] == htmie_fetch_xsection_absorption(htmie, wlen, NEAREST)); - CHK(scatt[1] == htmie_fetch_xsection_scattering(htmie, wlen, NEAREST)); - CHK(eq_eps(xabs, htmie_fetch_xsection_absorption(htmie, wlen, LINEAR), 1.e-6)); - CHK(eq_eps(xsca, htmie_fetch_xsection_scattering(htmie, wlen, LINEAR), 1.e-6)); + FOR_EACH(i, 0, nwlens-1) { + CHK(absor[i+0] == htmie_fetch_xsection_absorption(htmie, wlens[i+0], NEAREST)); + CHK(absor[i+1] == htmie_fetch_xsection_absorption(htmie, wlens[i+1], NEAREST)); + CHK(scatt[i+0] == htmie_fetch_xsection_scattering(htmie, wlens[i+0], NEAREST)); + CHK(scatt[i+1] == htmie_fetch_xsection_scattering(htmie, wlens[i+1], NEAREST)); + + u = 0.25; + wlen = wlens[i+0] + u * (wlens[i+1] - wlens[i+0]); + xabs = absor[i+0] + u * (absor[i+1] - absor[i+0]); + xsca = scatt[i+0] + u * (scatt[i+1] - scatt[i+0]); + CHK(absor[i+0] == htmie_fetch_xsection_absorption(htmie, wlen, NEAREST)); + CHK(scatt[i+0] == htmie_fetch_xsection_scattering(htmie, wlen, NEAREST)); + CHK(eq_eps(xabs, htmie_fetch_xsection_absorption(htmie, wlen, LINEAR), 1.e-6)); + CHK(eq_eps(xsca, htmie_fetch_xsection_scattering(htmie, wlen, LINEAR), 1.e-6)); + + u = 0.51; + wlen = wlens[i+0] + u * (wlens[i+1] - wlens[i+0]); + xabs = absor[i+0] + u * (absor[i+1] - absor[i+0]); + xsca = scatt[i+0] + u * (scatt[i+1] - scatt[i+0]); + CHK(absor[i+1] == htmie_fetch_xsection_absorption(htmie, wlen, NEAREST)); + CHK(scatt[i+1] == htmie_fetch_xsection_scattering(htmie, wlen, NEAREST)); + CHK(eq_eps(xabs, htmie_fetch_xsection_absorption(htmie, wlen, LINEAR), 1.e-6)); + CHK(eq_eps(xsca, htmie_fetch_xsection_scattering(htmie, wlen, LINEAR), 1.e-6)); + } #undef NEAREST #undef LINEAR