// McTrackState_t.cpp // Test McTrackState. #include "McTrackState.hpp" #include #include #include #include #include "trfbase/SurfTest.h" #ifndef DEFECT_NO_STDLIB_NAMESPACES using std::cout; using std::cerr; using std::endl; using std::string; #endif using namespace trf; //********************************************************************** int main( ) { string component = "McTrackState"; string ok_prefix = component + " (I): "; string error_prefix = component + " test (E): "; cout << ok_prefix << "---------- Testing component " + component + ". ----------" << endl; // Make sure assert is enabled. bool assert_flag = false; assert ( ( assert_flag = true, assert_flag ) ); if ( ! assert_flag ) { cerr << "Assert is disabled" << endl; return 1; } //******************************************************************** cout << ok_prefix << "Construct default state." << endl; { McTrackState state; cout << state << endl; assert( ! state.is_valid() ); } //******************************************************************** cout << ok_prefix << "Construct a valid state." << endl; double s = 2.34; SurfacePtr psrf(new SurfTest(1.0)); TrackVector vec; vec(0) = 1.0; vec(1) = 1.1; vec(2) = 1.2; vec(3) = 1.3; vec(4) = 1.4; VTrack trv(psrf,vec); McTrackState state1(s,trv); cout << state1 << endl; assert( state1.s() == s ); assert( state1.track() == trv ); //******************************************************************** cout << ok_prefix << "Check long constructor." << endl; { McTrackState state2(s,psrf,vec); cout << state2 << endl; assert( state2 == state1 ); } //******************************************************************** cout << ok_prefix << "Check equality." << endl; { McTrackState state2(s,trv); cout << state2 << endl; assert( state2 == state1 ); } { TrackVector vec2 = vec; vec2(0) = 2.0; VTrack trv2(psrf,vec2); McTrackState state2(s,trv2); cout << state2 << endl; assert( ! (state2 == state1) ); } { McTrackState state2(s+1.0,trv); cout << state2 << endl; assert( ! (state2 == state1) ); } //******************************************************************** cout << ok_prefix << "Check ordering." << endl; { McTrackState state2(s+1.0,trv); cout << state2 << endl; assert( state1 < state2 ); } //******************************************************************** cout << ok_prefix << "Check DetectorID." << endl; { McTrackState state2(s+1.0,trv); assert( state2.get_detid() == DetectorID(0) ); state2.set_detid(DetectorID(12)); assert( state2.get_detid() == DetectorID(12) ); McTrackState state3 = state2; assert( state3.get_detid() == DetectorID(12) ); } //******************************************************************** cout << ok_prefix << "------------- All tests passed. -------------" << endl; return 0; //******************************************************************** }