From 6b88106cce17cb25375401010082c336dc841c20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ne=C4=8Dada?= Date: Thu, 29 Nov 2018 15:59:45 +0200 Subject: [PATCH] Lattice generator tests. ... there are bugs to be fixed Former-commit-id: 2437fc3c1dd76ba5bbe83d082b036758c5ba8ba7 --- qpms/lattices.h | 2 +- tests/test_latticegens.c | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 tests/test_latticegens.c diff --git a/qpms/lattices.h b/qpms/lattices.h index dd6f547..ac00348 100644 --- a/qpms/lattices.h +++ b/qpms/lattices.h @@ -106,7 +106,7 @@ typedef struct PGenSphClassInfo { // static PGenSph info // TOP DATA STRUCTURE DEFINITION HERE typedef struct PGenSph { - const PGenSphClassInfo * const c; + const PGenSphClassInfo * /*const*/ c; void *stateData; // shall be NULL if invalid (destroyed) } PGenSph; diff --git a/tests/test_latticegens.c b/tests/test_latticegens.c new file mode 100644 index 0000000..e9750ec --- /dev/null +++ b/tests/test_latticegens.c @@ -0,0 +1,38 @@ +//c99 -o test_latticegens -ggdb -Wall -I ../ test_latticegens.c ../qpms/latticegens.c -lm + +#include +#include + +void print_PGenSphReturnData(PGenSphReturnData d) { + sph_t s = d.point_sph; + cart3_t c = sph2cart(s); + printf("sph: (%g, %g π, %g π), cart: (%g, %g, %g), flags: %#xd\n", + s.r, s.theta / M_PI, s.phi / M_PI, c.x, c.y, c.z, d.flags); +} + +void dump_PGenSph(PGenSph *g) { + PGenSphReturnData d; + do { + d = PGenSph_next(g); + print_PGenSphReturnData(d); + } while (d.flags & PGEN_NOTDONE); +} + +#define DO_AND_PRINT(label, s) printf(#label ":\n" #s "\n"); s ; + +int main(int argc, char **argv) { + PGenSph g; + DO_AND_PRINT(test1a, g = PGenSph_zAxis_new_minMaxR(0.2, 0.14, 5, true, 7, true, PGENSPH_ZAXIS_INC_FROM_ORIGIN)) + dump_PGenSph(&g); + DO_AND_PRINT(test1b, g = PGenSph_zAxis_new_minMaxR(0.2, 0.14, 5, true, 7, true, PGENSPH_ZAXIS_INC_TOWARDS_ORIGIN)) + dump_PGenSph(&g); + DO_AND_PRINT(test2a, g = PGenSph_zAxis_new_minMaxR(0.2, 0.05, 5.05, true, 7.05, true, PGENSPH_ZAXIS_INC_FROM_ORIGIN)) + dump_PGenSph(&g); + DO_AND_PRINT(test2b, g = PGenSph_zAxis_new_minMaxR(0.2, 0.05, 5.05, true, 7.05, true, PGENSPH_ZAXIS_INC_TOWARDS_ORIGIN)) + dump_PGenSph(&g); + DO_AND_PRINT(test3a, g = PGenSph_zAxis_new_minMaxR(0.2, 0.05, 5.05, false, 7.05, false, PGENSPH_ZAXIS_INC_FROM_ORIGIN)) + dump_PGenSph(&g); + DO_AND_PRINT(test3b, g = PGenSph_zAxis_new_minMaxR(0.2, 0.05, 5.05, false, 7.05, false, PGENSPH_ZAXIS_INC_TOWARDS_ORIGIN)) + dump_PGenSph(&g); +} +