commit cb7d1e3f924e821fdd0a88da97df2fdd1f96336a
parent 1a6ee9136a174b87a847e8c77ae8604d8469ea74
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Fri, 22 Jun 2018 11:29:16 +0200
Small upd of the tests
Make the tests verbose, print the #failures, and check that the
number of failures is small enough.
Diffstat:
13 files changed, 58 insertions(+), 43 deletions(-)
diff --git a/src/test_sdis_conducto_radiative.c b/src/test_sdis_conducto_radiative.c
@@ -389,12 +389,13 @@ main(int argc, char** argv)
double ref, u;
size_t nreals = 0;
size_t nfails = 0;
+ const size_t N = 10000;
pos[0] = ssp_rng_uniform_double(rng, -0.9, 0.9);
pos[1] = ssp_rng_uniform_double(rng, -0.9, 0.9);
pos[2] = ssp_rng_uniform_double(rng, -0.9, 0.9);
- CHK(sdis_solve_probe(scn, 10000, pos, INF, 1, -1, Tref, &estimator) == RES_OK);
+ CHK(sdis_solve_probe(scn, N, pos, INF, 1, -1, Tref, &estimator) == RES_OK);
CHK(sdis_estimator_get_realisation_count(estimator, &nreals) == RES_OK);
CHK(sdis_estimator_get_failure_count(estimator, &nfails) == RES_OK);
CHK(sdis_estimator_get_temperature(estimator, &T) == RES_OK);
@@ -403,7 +404,10 @@ main(int argc, char** argv)
ref = u * Ts1 + (1-u) * Ts0;
printf("Temperature at (%g, %g, %g) = %g ~ %g +/- %g\n",
SPLIT3(pos), ref, T.E, T.SE);
+ printf("#failures = %lu/%lu\n", (unsigned long)nfails, (unsigned long)N);
+ CHK(nfails + nreals == N);
+ CHK(nfails < N/1000);
CHK(eq_eps(T.E, ref, 2*T.SE) == 1);
CHK(sdis_estimator_ref_put(estimator) == RES_OK);
diff --git a/src/test_sdis_conducto_radiative_2d.c b/src/test_sdis_conducto_radiative_2d.c
@@ -393,6 +393,7 @@ main(int argc, char** argv)
double ref, u;
size_t nreals = 0;
size_t nfails = 0;
+ const size_t N = 10000;
pos[0] = ssp_rng_uniform_double(rng, -0.9, 0.9);
pos[1] = ssp_rng_uniform_double(rng, -0.9, 0.9);
@@ -406,7 +407,10 @@ main(int argc, char** argv)
ref = u * Ts1 + (1-u) * Ts0;
printf("Temperature at (%g, %g) = %g ~ %g +/- %g\n",
SPLIT2(pos), ref, T.E, T.SE);
+ printf("#failures = %lu/%lu\n", (unsigned long)nfails, (unsigned long)N);
+ CHK(nfails + nreals == N);
+ CHK(nfails < N/1000);
CHK(eq_eps(T.E, ref, 3*T.SE) == 1);
CHK(sdis_estimator_ref_put(estimator) == RES_OK);
diff --git a/src/test_sdis_flux.c b/src/test_sdis_flux.c
@@ -300,24 +300,26 @@ main(int argc, char** argv)
CHK(sdis_solve_probe(box_scn, N, pos, INF, 1.0, 0, 0, &estimator) == RES_OK);
CHK(sdis_estimator_get_realisation_count(estimator, &nreals) == RES_OK);
CHK(sdis_estimator_get_failure_count(estimator, &nfails) == RES_OK);
- CHK(nfails + nreals == N);
CHK(sdis_estimator_get_temperature(estimator, &T) == RES_OK);
CHK(sdis_estimator_ref_put(estimator) == RES_OK);
printf("Temperature of the box at (%g %g %g) = %g ~ %g +/- %g\n",
SPLIT3(pos), ref, T.E, T.SE);
printf("#failures = %lu/%lu\n", (unsigned long)nfails, (unsigned long)N);
+ CHK(nfails + nreals == N);
+ CHK(nfails < N/1000);
CHK(eq_eps(T.E, ref, T.SE*3));
/* Solve in 2D */
CHK(sdis_solve_probe(square_scn, N, pos, INF, 1.0, 0, 0, &estimator) == RES_OK);
CHK(sdis_estimator_get_realisation_count(estimator, &nreals) == RES_OK);
CHK(sdis_estimator_get_failure_count(estimator, &nfails) == RES_OK);
- CHK(nfails + nreals == N);
CHK(sdis_estimator_get_temperature(estimator, &T) == RES_OK);
CHK(sdis_estimator_ref_put(estimator) == RES_OK);
printf("Temperature of the square at (%g %g) = %g ~ %g +/- %g\n",
SPLIT2(pos), ref, T.E, T.SE);
printf("#failures = %lu/%lu\n", (unsigned long)nfails, (unsigned long)N);
+ CHK(nfails + nreals == N);
+ CHK(nfails < N/1000);
CHK(eq_eps(T.E, ref, T.SE*3));
CHK(sdis_scene_ref_put(box_scn) == RES_OK);
diff --git a/src/test_sdis_solve_probe.c b/src/test_sdis_solve_probe.c
@@ -276,8 +276,6 @@ main(int argc, char** argv)
CHK(sdis_estimator_get_failure_count(NULL, &nfails) == RES_BAD_ARG);
CHK(sdis_estimator_get_failure_count(estimator, &nfails) == RES_OK);
- CHK(nfails + nreals == N);
-
CHK(sdis_estimator_get_temperature(estimator, NULL) == RES_BAD_ARG);
CHK(sdis_estimator_get_temperature(NULL, &T) == RES_BAD_ARG);
CHK(sdis_estimator_get_temperature(estimator, &T) == RES_OK);
@@ -285,6 +283,10 @@ main(int argc, char** argv)
ref = 300;
printf("Temperature at (%g, %g, %g) = %g ~ %g +/- %g\n",
SPLIT3(pos), ref, T.E, T.SE);
+ printf("#failures = %lu/%lu\n", (unsigned long)nfails, (unsigned long)N);
+
+ CHK(nfails + nreals == N);
+ CHK(nfails < N/1000);
CHK(eq_eps(T.E, ref, T.SE));
CHK(sdis_estimator_ref_get(NULL) == RES_BAD_ARG);
diff --git a/src/test_sdis_solve_probe2.c b/src/test_sdis_solve_probe2.c
@@ -171,7 +171,7 @@ main(int argc, char** argv)
CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK);
CHK(sdis_device_create
- (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 0, &dev) == RES_OK);
+ (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev) == RES_OK);
/* Create the fluid medium */
fluid_shader.temperature = temperature_unknown;
@@ -250,11 +250,11 @@ main(int argc, char** argv)
ref = 350 * pos[2] + (1-pos[2]) * 300;
printf("Temperature at (%g, %g, %g) = %g ~ %g +/- %g\n",
SPLIT3(pos), ref, T.E, T.SE);
- printf("#realisations: %lu; #failures: %lu\n",
- (unsigned long)nreals, (unsigned long)nfails);
+ printf("#failures = %lu/%lu\n", (unsigned long)nfails, (unsigned long)N);
/* Check the results */
CHK(nfails + nreals == N);
+ CHK(nfails < N/1000);
CHK(eq_eps(T.E, ref, 3*T.SE));
/* Release data */
diff --git a/src/test_sdis_solve_probe2_2d.c b/src/test_sdis_solve_probe2_2d.c
@@ -168,7 +168,7 @@ main(int argc, char** argv)
CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK);
CHK(sdis_device_create
- (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 0, &dev) == RES_OK);
+ (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev) == RES_OK);
/* Create the fluid medium */
fluid_shader.temperature = temperature_unknown;
@@ -248,11 +248,11 @@ main(int argc, char** argv)
ref = 350 * pos[0] + (1-pos[0]) * 300;
printf("Temperature at (%g, %g) = %g ~ %g +/- %g\n",
SPLIT2(pos), ref, T.E, T.SE);
- printf("#realisations: %lu; #failures: %lu\n",
- (unsigned long)nreals, (unsigned long)nfails);
+ printf("#failures = %lu/%lu\n", (unsigned long)nfails, (unsigned long)N);
/* Check the results */
CHK(nfails + nreals == N);
+ CHK(nfails < N/1000);
CHK(eq_eps(T.E, ref, T.SE*2));
/* Release data */
diff --git a/src/test_sdis_solve_probe3.c b/src/test_sdis_solve_probe3.c
@@ -198,7 +198,7 @@ main(int argc, char** argv)
CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK);
CHK(sdis_device_create
- (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 0, &dev) == RES_OK);
+ (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev) == RES_OK);
/* Create the fluid medium */
fluid_shader.temperature = temperature_unknown;
@@ -306,11 +306,11 @@ main(int argc, char** argv)
ref = 350 * pos[2] + (1-pos[2]) * 300;
printf("Temperature at (%g, %g, %g) = %g ~ %g +/- %g\n",
SPLIT3(pos), ref, T.E, T.SE);
- printf("#realisations: %lu; #failures: %lu\n",
- (unsigned long)nreals, (unsigned long)nfails);
+ printf("#failures = %lu/%lu\n", (unsigned long)nfails, (unsigned long)N);
/* Check the results */
CHK(nfails + nreals == N);
+ CHK(nfails < N/1000);
CHK(eq_eps(T.E, ref, 2*T.SE));
/* Release data */
diff --git a/src/test_sdis_solve_probe3_2d.c b/src/test_sdis_solve_probe3_2d.c
@@ -193,7 +193,7 @@ main(int argc, char** argv)
CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK);
CHK(sdis_device_create
- (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 0, &dev) == RES_OK);
+ (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev) == RES_OK);
/* Create the fluid medium */
fluid_shader.temperature = temperature_unknown;
@@ -299,11 +299,11 @@ main(int argc, char** argv)
ref = 350 * pos[0] + (1-pos[0]) * 300;
printf("Temperature at (%g, %g) = %g ~ %g +/- %g\n",
SPLIT2(pos), ref, T.E, T.SE);
- printf("#realisations: %lu; #failures: %lu\n",
- (unsigned long)nreals, (unsigned long)nfails);
+ printf("#failures = %lu/%lu\n", (unsigned long)nfails, (unsigned long)N);
/* Check the results */
CHK(nfails + nreals == N);
+ CHK(nfails < N/1000);
CHK(eq_eps(T.E, ref, 3*T.SE));
/* Release data */
diff --git a/src/test_sdis_solve_probe_2d.c b/src/test_sdis_solve_probe_2d.c
@@ -151,7 +151,7 @@ main(int argc, char** argv)
CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK);
CHK(sdis_device_create
- (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 0, &dev) == RES_OK);
+ (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev) == RES_OK);
/* Create the fluid medium */
fluid_shader.temperature = fluid_get_temperature;
@@ -193,13 +193,15 @@ main(int argc, char** argv)
CHK(sdis_estimator_get_realisation_count(estimator, &nreals) == RES_OK);
CHK(sdis_estimator_get_failure_count(estimator, &nfails) == RES_OK);
- CHK(nfails + nreals == N);
-
CHK(sdis_estimator_get_temperature(estimator, &T) == RES_OK);
ref = 300;
printf("Temperature at (%g, %g) = %g ~ %g +/- %g\n",
SPLIT2(pos), ref, T.E, T.SE);
+ printf("#failures = %lu/%lu\n", (unsigned long)nfails, (unsigned long)N);
+
+ CHK(nfails + nreals == N);
+ CHK(nfails < N/1000);
CHK(eq_eps(T.E, ref, T.SE));
CHK(sdis_estimator_ref_put(estimator) == RES_OK);
diff --git a/src/test_sdis_solve_probe_boundary.c b/src/test_sdis_solve_probe_boundary.c
@@ -229,7 +229,7 @@ main(int argc, char** argv)
CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK);
CHK(sdis_device_create
- (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 0, &dev) == RES_OK);
+ (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev) == RES_OK);
/* Create the fluid medium */
fluid_shader.temperature = fluid_get_temperature;
@@ -329,17 +329,14 @@ main(int argc, char** argv)
CHK(sdis_estimator_get_realisation_count(estimator, &nreals) == RES_OK);
CHK(sdis_estimator_get_failure_count(estimator, &nfails) == RES_OK);
- CHK(nfails + nreals == N);
-
CHK(sdis_estimator_get_temperature(estimator, &T) == RES_OK);
CHK(sdis_estimator_ref_put(estimator) == RES_OK);
-
CHK(sdis_scene_get_boundary_position(box_scn, iprim, uv, pos) == RES_OK);
-
-
printf("Boundary temperature of the box at (%g %g %g) = %g ~ %g +/- %g\n",
SPLIT3(pos), ref, T.E, T.SE);
printf("#failures = %lu/%lu\n", (unsigned long)nfails, (unsigned long)N);
+ CHK(nfails + nreals == N);
+ CHK(nfails < N/1000);
CHK(eq_eps(T.E, ref, 3*T.SE));
uv[0] = 0.5;
@@ -347,16 +344,14 @@ main(int argc, char** argv)
CHK(SOLVE(square_scn, N, iprim, uv, INF, F, 1.0, 0, 0, &estimator) == RES_OK);
CHK(sdis_estimator_get_realisation_count(estimator, &nreals) == RES_OK);
CHK(sdis_estimator_get_failure_count(estimator, &nfails) == RES_OK);
- CHK(nfails + nreals == N);
-
CHK(sdis_estimator_get_temperature(estimator, &T) == RES_OK);
CHK(sdis_estimator_ref_put(estimator) == RES_OK);
-
CHK(sdis_scene_get_boundary_position(square_scn, iprim, uv, pos) == RES_OK);
-
printf("Boundary temperature of the square at (%g %g) = %g ~ %g +/- %g\n",
SPLIT2(pos), ref, T.E, T.SE);
printf("#failures = %lu/%lu\n", (unsigned long)nfails, (unsigned long)N);
+ CHK(nfails + nreals == N);
+ CHK(nfails < N/1000);
CHK(eq_eps(T.E, ref, 3*T.SE));
#undef SOLVE
diff --git a/src/test_sdis_volumic_power.c b/src/test_sdis_volumic_power.c
@@ -239,7 +239,7 @@ main(int argc, char** argv)
CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK);
CHK(sdis_device_create
- (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 0, &dev) == RES_OK);
+ (NULL, &allocator, SDIS_NTHREADS_DEFAULT, 1, &dev) == RES_OK);
fluid_shader.temperature = fluid_get_temperature;
CHK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid) == RES_OK);
@@ -338,19 +338,22 @@ main(int argc, char** argv)
printf("Temperature of the box at (%g %g %g) = %g ~ %g +/- %g\n",
SPLIT3(pos), ref, T.E, T.SE);
printf("#failures = %lu/%lu\n", (unsigned long)nfails, (unsigned long)N);
+ CHK(nfails + nreals == N);
+ CHK(nfails < N/1000);
CHK(eq_eps(T.E, ref, 3*T.SE));
/* Solve in 2D */
CHK(sdis_solve_probe(square_scn, N, pos, INF, 1.0, 0, 0, &estimator) == RES_OK);
CHK(sdis_estimator_get_realisation_count(estimator, &nreals) == RES_OK);
CHK(sdis_estimator_get_failure_count(estimator, &nfails) == RES_OK);
- CHK(nfails + nreals == N);
CHK(sdis_estimator_get_temperature(estimator, &T) == RES_OK);
CHK(sdis_estimator_ref_put(estimator) == RES_OK);
printf("Temperature of the square at (%g %g) = %g ~ %g +/- %g\n",
SPLIT2(pos), ref, T.E, T.SE);
printf("#failures = %lu/%lu\n", (unsigned long)nfails, (unsigned long)N);
- CHK(eq_eps(T.E, ref, T.SE*3.0));
+ CHK(nfails + nreals == N);
+ CHK(nfails < N/1000);
+ CHK(eq_eps(T.E, ref, 3*T.SE));
CHK(sdis_scene_ref_put(box_scn) == RES_OK);
CHK(sdis_scene_ref_put(square_scn) == RES_OK);
diff --git a/src/test_sdis_volumic_power3_2d.c b/src/test_sdis_volumic_power3_2d.c
@@ -47,12 +47,6 @@
#define Tsolid_solid1 UNKNOWN_TEMPERATURE /*Ta*/
#define Tsolid_solid2 UNKNOWN_TEMPERATURE /*Tb*/
-/* 1D reinjection scheme:
- * - Legacy deltas, 400K realisations: 924.093 ~ 928.405 +/- 0.847232
- * - Deltas / 2, 400K realisations: 924.093 ~ 926.632 +/- 0.844205
- *
- * 2D reinjection scheme:
- * - Legacy deltas, 400K realisations: 924.093 ~ 928.013 +/- 0.847624 */
#define PROBE_POS 1.8
/*
@@ -270,6 +264,8 @@ main(int argc, char** argv)
struct sdis_mc T = SDIS_MC_NULL;
double Tref;
double pos[2];
+ size_t nfails;
+ size_t nreals;
(void)argc, (void)argv;
CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK);
@@ -447,11 +443,17 @@ main(int argc, char** argv)
CHK(sdis_solve_probe(scn, N, pos, INF, 1.f, -1, 0, &estimator) == RES_OK);
CHK(sdis_estimator_get_temperature(estimator, &T) == RES_OK);
+ CHK(sdis_estimator_get_failure_count(estimator, &nfails) == RES_OK);
+ CHK(sdis_estimator_get_realisation_count(estimator, &nreals) == RES_OK);
printf("Temperature at (%g %g) = %g ~ %g +/- %g [%g, %g]\n",
SPLIT2(pos), Tref, T.E, T.SE, T.E-3*T.SE, T.E+3*T.SE);
- CHK(eq_eps(T.E, Tref, T.SE*3));
+ printf("#failures = %lu/%lu\n", (unsigned long)nfails, (unsigned long)N);
CHK(sdis_estimator_ref_put(estimator) == RES_OK);
+ CHK(nfails + nreals == N);
+ CHK(nfails < N/1000);
+ CHK(eq_eps(T.E, Tref, T.SE*3));
+
CHK(sdis_scene_ref_put(scn) == RES_OK);
CHK(sdis_device_ref_put(dev) == RES_OK);
diff --git a/src/test_sdis_volumic_power4_2d.c b/src/test_sdis_volumic_power4_2d.c
@@ -354,10 +354,11 @@ main(int argc, char** argv)
CHK(sdis_estimator_get_failure_count(estimator, &nfails) == RES_OK);
printf("Temperature at (%g %g) = %g ~ %g +/- %g [%g %g]\n",
SPLIT2(pos), Tref, T.E, T.SE, T.E-3*T.SE, T.E+3*T.SE);
- printf("#realisations: %lu; #failures: %lu\n",
- (unsigned long)nreals, (unsigned long)nfails);
- CHK(eq_eps(T.E, Tref, T.SE*3));
+ printf("#failures = %lu/%lu\n", (unsigned long)nfails, (unsigned long)N);
CHK(sdis_estimator_ref_put(estimator) == RES_OK);
+ CHK(nfails + nreals == N);
+ CHK(nfails < N/1000);
+ CHK(eq_eps(T.E, Tref, T.SE*3));
CHK(sdis_scene_ref_put(scn) == RES_OK);
CHK(sdis_device_ref_put(dev) == RES_OK);