From 8d5e79d3d31646713135286d709b98cec8bb2d5a Mon Sep 17 00:00:00 2001 From: Giovanni La Mura <giovanni.lamura@inaf.it> Date: Wed, 7 Feb 2024 16:32:10 +0100 Subject: [PATCH] Set up a testing folder --- .gitignore | 1 + build/testing/.gitkeep | 0 src/testing/test_TEDF.cpp | 63 +++++++++++++++++++++++++++++++++++++++ src/testing/test_TTMS.cpp | 44 +++++++++++++++++++++++++++ 4 files changed, 108 insertions(+) create mode 100644 build/testing/.gitkeep create mode 100644 src/testing/test_TEDF.cpp create mode 100644 src/testing/test_TTMS.cpp diff --git a/.gitignore b/.gitignore index 0f5a2cfd..67cb9551 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ build/include build/cluster/* build/sphere/* +build/testing/* build/trapping/* doc/build/* src/objects/* \ No newline at end of file diff --git a/build/testing/.gitkeep b/build/testing/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/src/testing/test_TEDF.cpp b/src/testing/test_TEDF.cpp new file mode 100644 index 00000000..037a7351 --- /dev/null +++ b/src/testing/test_TEDF.cpp @@ -0,0 +1,63 @@ +//! \file test_TEDF.cpp + +#include <complex> +#include <cstdio> +#include <hdf5.h> +#include <string> +#include "../include/List.h" +#include "../include/file_io.h" +#include "../include/Configuration.h" + +using namespace std; + +/*! \brief Main program execution body. + * + * This program executes a test to compare whether three configuration + * instances, loaded respectively from an EDFB configuration file, a + * legacy binary, or a HDF5 binary are actually equivalent. The test + * writes a result message to `stdout` then it returns 0 (OS flag for + * a successful process) or some kind of error code, depending on + * whether the test files were found all equal or not. The test accepts + * three command line arguments: the name of the EDFB configuration + * file, the name of the legacy binary file and the name of the HDF5 + * binary configuration file. + * + * \param argc: `int` Number of command line arguments + * \param argv: `char **` Array of command argument character strings. + * \return result: `int` Can be: 0 (all files equal); 1 (EDFB and + * legacy binary are different); 10 (EDFB and HDF5 are different); + * 100 (legacy and HDF5 are different). In case more differences are + * found, the error codes sum up together (e.g. 111 means all files + * are different). + */ +int main(int argc, char **argv) { + int result = 0; + string dedfb_file = "DEDFB"; + string legacy_file = "c_TEDF"; + string hdf5_file = "c_TEDF.hd5"; + if (argc == 4) { + dedfb_file = string(argv[1]); + legacy_file = string(argv[2]); + hdf5_file = string(argv[3]); + } + ScattererConfiguration *a, *b, *c; + a = ScattererConfiguration::from_dedfb(dedfb_file); + b = ScattererConfiguration::from_binary(legacy_file); + c = ScattererConfiguration::from_binary(hdf5_file, "HDF5"); + if (*a == *b) printf("Configuration objects a and b are equal.\n"); + else { + printf("Configuration objects a and b are different.\n"); + result += 1; + } + if (*a == *c) printf("Configuration objects a and c are equal.\n"); + else { + printf("Configuration objects a and c are different.\n"); + result += 10; + } + if (*c == *b) printf("Configuration objects c and b are equal.\n"); + else { + printf("Configuration objects c and b are different.\n"); + result += 100; + } + return 0; +} diff --git a/src/testing/test_TTMS.cpp b/src/testing/test_TTMS.cpp new file mode 100644 index 00000000..bdf0daae --- /dev/null +++ b/src/testing/test_TTMS.cpp @@ -0,0 +1,44 @@ +//! \file test_TTMS.cpp + +#include <complex> +#include <cstdio> +#include <hdf5.h> +#include <string> +#include "../include/List.h" +#include "../include/file_io.h" +#include "../include/TransitionMatrix.h" + +using namespace std; + +/*! \brief Main program execution body. + * + * This program executes a test to compare whether two transition + * matrix instances, loaded respectively from a legacy and a HDF5 + * binary file are actually equivalent. The test writes a result + * message to `stdout` then it returns 0 (OS flag for a successful + * process) or 1 (OS flag for failing process) depending on whether + * the two instances were considered equivalent or not. + * + * \param argc: `int` Number of command line arguments + * \param argv: `char **` Array of command argument character strings. + * \return result: `int` Can be 0 (files are equal) or 1 (files are + * different). + */ +int main(int argc, char **argv) { + int result = 0; + TransitionMatrix *a, *b; + string legacy_file = "c_TTMS"; + string hdf5_file = "c_TTMS.hd5"; + if (argc == 3) { + legacy_file = string(argv[1]); + hdf5_file = string(argv[2]); + } + a = TransitionMatrix::from_binary(legacy_file); + b = TransitionMatrix::from_binary(hdf5_file, "HDF5"); + if (*a == *b) printf("Transition matrixes a and b are equal.\n"); + else { + printf("Transition matrixes a and b are different.\n"); + result = 1; + } + return result; +} -- GitLab