trick/trick_source/sim_services/MonteCarlo/test/MonteCarlo_exceptions.cpp
Alex Lin d3acfa5fc0 Test code does not work with new directory locations.
Adjusted all of the source code to point to the header files in their new
locations.  Adjusted the makefiles for the header locations as well.
Added .gitignore files in the test directories to ignore test object code.
2015-06-22 16:11:08 -05:00

102 lines
2.4 KiB
C++

#define protected public
#include <iostream>
#include <sys/types.h>
#include <signal.h>
#include "gtest/gtest.h"
#include "trick/MonteCarlo.hh"
#include "trick/MonteVar.hh"
#include "trick/MonteVarFile.hh"
#include "trick/MonteVarRandom.hh"
#include "trick/SimObject.hh"
#include "trick/ExecutiveException.hh"
void sig_hand(int sig) ;
void child_handler(int sig) ;
#if (__APPLE__ | __CYGWIN__ | __INTERIX )
void fpe_sig_handler(int sig) ;
#else
void fpe_sig_handler(int sig, siginfo_t * sip, void *uap) ;
#endif
namespace Trick {
class testSimObject : public Trick::SimObject {
public:
testSimObject() {}
} ;
class MonteCarloTest : public ::testing::Test {
protected:
Trick::MonteCarlo exec;
MonteCarloTest() {}
~MonteCarloTest() {}
} ;
TEST_F(MonteCarloTest, MonteVarFile_ColException) {
bool got_exception = false;
try {
Trick::MonteVarFile var("time_to_fire_1", "M_jet_firings_inline", 7) ;
var.get_next_value();
} catch (Trick::ExecutiveException &e) {
std::cout << e.message << std::endl;
got_exception = true;
}
EXPECT_EQ(got_exception, true);
}
TEST_F(MonteCarloTest, MonteVarFile_BadFileException) {
bool got_exception = false;
try {
Trick::MonteVarFile var("time_to_fire_1", "_M_jet_firings_inline", 1) ;
var.get_next_value();
} catch (Trick::ExecutiveException &e) {
std::cout << e.message << std::endl;
got_exception = true;
}
EXPECT_EQ(got_exception, true);
}
TEST_F(MonteCarloTest, MonteVarFile_FileException) {
bool got_exception = false;
try {
Trick::MonteVarFile var("time_to_fire_1", "M_jet_firings_inline", 1) ;
var.get_next_value();
var.input_file_stream->close();
var.get_next_value();
var.get_next_value();
} catch (Trick::ExecutiveException &e) {
std::cout << e.message << std::endl;
got_exception = true;
}
EXPECT_EQ(got_exception, true);
}
TEST_F(MonteCarloTest, TestMonteVarRandom_Exception) {
bool got_exception = false;
try {
Trick::MonteVarRandom var1("time_to_fire_2", Trick::MonteVarRandom::GAUSSIAN) ;
var1.set_mu(4.0) ;
var1.set_min(4.0) ;
var1.set_max(4.000001) ;
exec.add_variable(&var1) ;
var1.get_next_value();
} catch (Trick::ExecutiveException &e) {
std::cout << e.message;
got_exception = true;
}
EXPECT_EQ(got_exception, true);
}
}