// VTrackGenerator_t.cpp #include "VTrackGenerator.h" #include #include #include #include #include "ptr/Ptr.h" #include "ptr/AutoPolicy.h" #include "trfbase/SurfTest.h" #include "trfbase/VTrack.h" using std::cout; using std::cerr; using std::endl; using std::string; using std::vector; using trf::VTrack; using trf::VTrackGenerator; typedef Ptr VTPtr; //********************************************************************** int main( ) { string component = "VTrackGenerator"; 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; } //******************************************************************** // Verify that each generated track is different and is in range. cout << ok_prefix << "Test default sequence." << endl; SurfTest stest(1); TrackVector min; TrackVector max; min(0) = 0.0; max(0) = 1.0; min(1) = 1.0; max(1) = 2.0; min(2) = -3.0; max(2) = -2.0; min(3) = 3.0; max(3) = 4.0; min(4) = -4.0; max(4) = 5.0; VTrackGenerator gen(stest,min,max); cout << gen << endl; assert( stest.pure_equal( gen.get_surface() ) ); int ntest = 20; int itest; vector values; vector::const_iterator ival; cout << "************" << endl; for ( itest=0; itestget_surface() ) ); for ( int i=0; i<5; ++i ) { assert( ptrk->get_vector()(i) >= min(i) ); assert( ptrk->get_vector()(i) <= max(i) ); } values.push_back(ptrk); } //******************************************************************** // Verify that two generators starting with the same seed give the // same values. cout << ok_prefix << "Test sequence with seed." << endl; long seed = 246813579L; gen.set_seed(seed); VTrackGenerator gen2(stest,min,max); gen2.set_seed(seed); for ( itest=0; itest