Commit bd1bba53 authored by Giovanni La Mura's avatar Giovanni La Mura
Browse files

Preapere a file_io test program

parent dd093a0e
Loading
Loading
Loading
Loading
+10 −65
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@
   this program in the COPYING file. If not, see: <https://www.gnu.org/licenses/>.
 */

//! \file test_TEDF.cpp
//! \file test_file_io.cpp

#include <cstdio>
#include <exception>
@@ -37,72 +37,17 @@
#include "../include/file_io.h"
#endif

#ifndef INCLUDE_CONFIGURATION_H_
#include "../include/Configuration.h"
#endif

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;
  try { a = ScattererConfiguration::from_dedfb(dedfb_file); }
  catch (...) {
    printf("Failed to open legacy configuration file.\n");
    return 2;
  }
  try { b = ScattererConfiguration::from_binary(legacy_file); }
  catch (...) {
    printf("Failed to open legacy binary file.\n");
    return 20;
  }
  try { c = ScattererConfiguration::from_binary(hdf5_file, "HDF5"); }
  catch (...) {
    printf("Failed to open HDF5 configuration file.\n");
    return 200;
  }
  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 result;
int main() {
  List<string> *parameter_names = new List<string>(1);
  parameter_names->set(0, "Param. zero");
  parameter_names->append("Param. one");
  parameter_names->append("Param. two");
  parameter_names->append("Param. three");

  delete parameter_names;
  return 0;
}