// FileEvent_t.cxx #include "FileEvent.h" #include #include "hesfile/FileTest.h" using std::cout; using std::endl; using hes::File; using hes::EventId; using hes::FileEvent; namespace { class FilePhysicalTest : public FileTestHeader, public FileTestPhysical, public FileEvent, public FileTestRem { private: // data bool m_valid; public: // functions // Constructor. // Valid object if valid=true. FilePhysicalTest(bool valid) : m_valid(valid) { } // Validity. bool is_valid() const { return m_valid; } void begin_event() { } void end_event() { } }; } // end namespace int main() { string line = "--------------------------------------"; cout << line << endl; { FilePhysicalTest file(false); cout << file << endl; assert( ! file.is_valid() ); cout << line << endl; } { FilePhysicalTest file(true); cout << file << endl; assert( file.is_valid() ); int count = 0; EventId evt1(0xfedcba98L, 0x76543211L); EventId evt2(0xfedcba98L, 0x76543212L); EventId evt3(0xfedcba98L, 0x76543213L); EventId evt4(0xfedcba98L, 0x76543214L); // add event assert( file.add_event_id(evt3) == ++count ); cout << file << endl; assert( file.add_event_id(evt1) == ++count ); cout << file << endl; assert( file.add_event_id(evt2) == ++count ); cout << file << endl; assert( file.event_count() == 3 ); assert( file.min_event() == evt1 ); assert( file.max_event() == evt3 ); // first event assert( file.first_event() == evt3 ); cout << file << endl; // next event assert( file.next_event() == evt1 ); cout << file << endl; assert( file.next_event() == evt2 ); cout << file << endl; assert( ! file.next_event().is_valid() ); cout << file << endl; // last event assert( file.last_event() == evt2 ); cout << file << endl; assert( file.event().is_valid() ); assert( file.event() == evt2 ); // set event assert( file.set_event(evt1).is_valid() ); cout << file << endl; assert( file.event() == evt1 ); assert( file.next_event() == evt2 ); assert( ! file.set_event(evt4).is_valid() ); cout << file << endl; } return 0; }