Functions
test_TpcData.cxx File Reference
#include <string>
#include <iostream>
#include <fstream>
#include <vector>
#include "dunecore/DuneInterface/Data/TpcData.h"
#include <cassert>

Go to the source code of this file.

Functions

int test_TpcData ()
 
int main (int argc, char *argv[])
 

Function Documentation

int main ( int  argc,
char *  argv[] 
)

Definition at line 137 of file test_TpcData.cxx.

137  {
138  if ( argc > 1 ) {
139  cout << "Usage: " << argv[0] << " [ARG]" << endl;
140  return 0;
141  }
142  return test_TpcData();
143 }
int test_TpcData()
QTextStream & endl(QTextStream &s)
int test_TpcData ( )

Definition at line 24 of file test_TpcData.cxx.

24  {
25  const string myname = "test_TpcData: ";
26 #ifdef NDEBUG
27  cout << myname << "NDEBUG must be off." << endl;
28  abort();
29 #endif
30  string line = myname + "-----------------------------";
31 
32  cout << myname << "Checking empty data." << endl;
33  TpcData tpd;
34  assert( tpd.getTpcData("") == &tpd );
35  assert( tpd.getTpcData(".") == &tpd );
36  assert( tpd.getTpcData("sub1") == nullptr );
37  assert( tpd.getParent() == nullptr );
38 
39  cout << myname << "Add sub1" << endl;
40  TpcData* pdat1 = tpd.addTpcData("sub1");
41  assert( pdat1 != nullptr );
42  assert( tpd.addTpcData("sub1") == nullptr );
43  assert( tpd.getTpcData("sub1") == pdat1 );
44  assert( pdat1->getParent() == &tpd );
45  const TpcData* pdat = &tpd;
46  assert( pdat->getTpcData("sub1") == pdat1 );
47  assert( pdat->getParent() == nullptr );
48  const TpcData* pdat1c = pdat1;
49  assert( pdat1c->getParent() == &tpd );
50 
51  cout << myname << "Add sub11" << endl;
52  assert( tpd.getTpcData("sub1/sub11") == nullptr );
53  TpcData* pdat11 = tpd.addTpcData("sub1/sub11");
54  assert( pdat11 != nullptr );
55  assert( tpd.addTpcData("sub1") == nullptr );
56  assert( tpd.addTpcData("sub1/sub11") == nullptr );
57  assert( tpd.getTpcData("sub1") == pdat1 );
58  assert( tpd.getTpcData("sub1/sub11") == pdat11 );
59  assert( pdat11->getParent() == pdat1 );
60  const TpcData* pdat11c = pdat11;
61  assert( pdat11c->getParent() == pdat1 );
62 
63  cout << myname << "Add sub12" << endl;
64  assert( tpd.getTpcData("sub1/sub12") == nullptr );
65  TpcData* pdat12 = tpd.addTpcData("sub1/sub12");
66  assert( pdat12 != nullptr );
67  assert( pdat12 != pdat11 );
68  assert( tpd.addTpcData("sub1") == nullptr );
69  assert( tpd.addTpcData("sub1/sub12") == nullptr );
70  assert( tpd.getTpcData("sub1") == pdat1 );
71  assert( tpd.getTpcData("sub1/sub12") == pdat12 );
72  assert( pdat12->getParent() == pdat1 );
73  const TpcData* pdat12c = pdat12;
74  assert( pdat12c->getParent() == pdat1 );
75 
76  cout << line << endl;
77  cout << myname << "Add ADC data." << endl;
78  assert( tpd.getAdcData().size() == 0 );
79  assert( pdat1->getAdcData().size() == 0 );
80  assert( pdat11->getAdcData().size() == 0 );
81  TpcData::AdcDataPtr pacm0 = tpd.createAdcData();
82  assert( pacm0 );
83  assert( tpd.getAdcData().size() == 1 );
84  assert( pdat1->getAdcData().size() == 0 );
85  TpcData::AdcDataPtr pacm1 = tpd.createAdcData();
86  assert( pacm1 );
87  assert( pacm1 != pacm0 );
88  assert( tpd.getAdcData().size() == 2 );
89  assert( tpd.getAdcData()[0] == pacm0 );
90  assert( pdat1->getAdcData().size() == 0 );
91  assert( pdat11->getAdcData().size() == 0 );
92  assert( pdat1c->getAdcData().size() == 0 );
93  assert( pdat11c->getAdcData().size() == 0 );
94 
95  cout << line << endl;
96  cout << myname << "Check TPC data retrieval." << endl;
97  assert(tpd.getTpcData("") == &tpd );
98  assert(tpd.getTpcData(".") == &tpd );
99  assert(tpd.getTpcData("sub3") == nullptr );
100  assert(tpd.getTpcData("sub1") == pdat1 );
101  assert(tpd.getTpcData("sub1/sub13") == nullptr );
102  assert(tpd.getTpcData("sub1/sub11") == pdat11 );
103  assert(tpd.getTpcData("sub1/sub12") == pdat12 );
105  cout << myname << "...sub1" << endl;
106  assert( tpd.getTpcData("sub1", dats1) == 0 );
107  assert( dats1.size() == 1 );
108  assert( dats1[0] == pdat1 );
109  cout << myname << "...sub1" << endl;
110  TpcData::TpcDataVector dats11;
111  assert( tpd.getTpcData("sub1/sub11", dats11) == 0 );
112  assert( dats11.size() == 1 );
113  assert( dats11[0] == pdat11 );
114  cout << myname << "...sub1/sub12" << endl;
115  TpcData::TpcDataVector dats12;
116  assert( tpd.getTpcData("sub1/sub12", dats12) == 0 );
117  assert( dats12.size() == 1 );
118  assert( dats12[0] == pdat12 );
119  cout << myname << "...sub1/*" << endl;
120  TpcData::TpcDataVector dats1x;
121  assert( tpd.getTpcData("sub1/*", dats1x) == 0 );
122  assert( dats1x.size() == 2 );
123  assert( dats1x[0] == pdat11 );
124  assert( dats1x[1] == pdat12 );
125 
126  cout << line << endl;
127  cout << myname << "Print object." << endl;
128  tpd.print(myname);
129 
130  cout << line << endl;
131  cout << myname << "All tests passed." << endl;
132  return 0;
133 }
std::ostream & print(Name prefix, Index depth=10) const
Definition: TpcData.cxx:119
std::shared_ptr< AdcChannelDataMap > AdcDataPtr
Definition: TpcData.h:35
TpcData * addTpcData(Name nam, bool copyAdcData=true)
Definition: TpcData.cxx:24
TpcData * getParent()
Definition: TpcData.h:51
std::vector< TpcData * > TpcDataVector
Definition: TpcData.h:33
AdcDataVector & getAdcData()
Definition: TpcData.h:55
TpcData * getTpcData(Name nam)
Definition: TpcData.cxx:42
void line(double t, double *p, double &x, double &y, double &z)
AdcDataPtr createAdcData(bool updateParent=true)
Definition: TpcData.cxx:99
QTextStream & endl(QTextStream &s)