commit 4f6e487209b76ef0b11f258f3a26b83a7379686b
parent 50b66a33792008632fbb542ab89b5a1bda5ae125
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Mon, 2 Nov 2020 13:56:00 +0100
Test the loading of arbitrary files
Diffstat:
1 file changed, 51 insertions(+), 0 deletions(-)
diff --git a/src/test_atrck_load.c b/src/test_atrck_load.c
@@ -156,6 +156,56 @@ test_load(struct atrck* atrck)
fclose(fp);
}
+static void
+test_load_files(struct atrck* atrck, int argc, char** argv)
+{
+ int i;
+ CHK(atrck);
+ FOR_EACH(i, 1, argc) {
+ size_t nnodes;
+ size_t nbands;
+ size_t iband;
+
+ printf("Load %s\n", argv[1]);
+
+ CHK(atrck_load(atrck, argv[i]) == RES_OK);
+ nbands = atrck_get_bands_count(atrck);
+ nnodes = atrck_get_nodes_count(atrck);
+ CHK(nbands);
+ CHK(nnodes);
+
+ FOR_EACH(iband, 0, nbands) {
+ struct atrck_band band = ATRCK_BAND_NULL;
+ size_t iqpt;
+
+ CHK(atrck_get_band(atrck, iband, &band) == RES_OK);
+ printf("band %lu in [%g, %g] cm^-1 with %lu quadrature points\n",
+ (unsigned long)band.id,
+ band.lower, band.upper,
+ (unsigned long)band.quad_pts_count);
+
+ CHK(band.lower == band.lower); /* !NaN */
+ CHK(band.upper == band.upper); /* !NaN */
+ CHK(band.lower < band.upper);
+ CHK(band.quad_pts_count);
+
+ FOR_EACH(iqpt, 0, band.quad_pts_count) {
+ struct atrck_quad_pt qpt;
+ size_t inode;
+
+ CHK(atrck_band_get_quad_pt(atrck, &band, iqpt, &qpt) == RES_OK);
+ CHK(qpt.abscissa == qpt.abscissa); /* !NaN */
+ CHK(qpt.weight == qpt.weight); /* !NaN */
+ CHK(qpt.weight > 0);
+
+ FOR_EACH(inode, 0, nnodes) {
+ CHK(qpt.ka_list[inode] == qpt.ka_list[inode]); /* !NaN */
+ }
+ }
+ }
+ }
+}
+
/*******************************************************************************
* Main function
******************************************************************************/
@@ -168,6 +218,7 @@ main(int argc, char** argv)
CHK(atrck_create(NULL, &mem_default_allocator, 1, &atrck) == RES_OK);
test_load(atrck);
+ test_load_files(atrck, argc, argv);
CHK(atrck_ref_put(atrck) == RES_OK);
CHK(mem_allocated_size() == 0);