Files
musrsim/tests/test_musrParameters.cc
T

51 lines
1.3 KiB
C++

#include "musrParameters.hh"
#include <cstdlib>
#include <iostream>
#include <string>
namespace {
bool parseBoolean(const char* value)
{
return std::string(value)=="true";
}
bool checkEqual(const char* name, int actual, int expected)
{
if (actual==expected) return true;
std::cerr<<name<<": expected "<<expected<<", got "<<actual<<'\n';
return false;
}
bool checkEqual(const char* name, bool actual, bool expected)
{
if (actual==expected) return true;
std::cerr<<name<<": expected "<<expected<<", got "<<actual<<'\n';
return false;
}
} // namespace
int main(int argc, char** argv)
{
if (argc<2) {
std::cerr<<"usage: musrParametersTests <macro> [expected values]\n";
return 2;
}
musrParameters parameters(argv[1]);
if (argc!=6) {
std::cerr<<"expected event count, GPS, optical, and optical-unprocess values\n";
return 2;
}
bool passed = true;
passed &= checkEqual("event count",musrParameters::nrOfEventsToBeGenerated,std::atoi(argv[2]));
passed &= checkEqual("GPS enabled",musrParameters::boolG4GeneralParticleSource,parseBoolean(argv[3]));
passed &= checkEqual("optical enabled",musrParameters::boolG4OpticalPhotons,parseBoolean(argv[4]));
passed &= checkEqual("optical unprocess enabled",musrParameters::boolG4OpticalPhotonsUnprocess,parseBoolean(argv[5]));
return passed ? 0 : 1;
}