![]() |
Mixed Data Coincidence Analysis Software 1.0
A program to analyze files produced by the EventMixer software.
|
00001 #include "EventHit_TEST.hh" 00002 00003 00004 bool EventHit_TEST::DoubleEquality(double d1, double d2, double eps) const 00005 { 00006 return (abs(d1-d2)<eps); 00007 } 00008 00009 bool EventHit_TEST::EventHit_ClassifiesCorrectly_AssertTrue() const 00010 { 00011 FileEventParser myParser((char*)"test/testdata.txt"); 00012 int eventCount = 0; 00013 EventHit * P; 00014 while(myParser.hasMoreEvents() && (P=myParser.getNextEventHit())!=NULL) 00015 { 00016 HitType H = P->implantationType; 00017 switch(eventCount) 00018 { 00019 case 0: 00020 if(H.wasImplantation || H.wasDecay || !H.wasOther) 00021 return false; 00022 if(H.affectedScintillators.size()!=0) 00023 return false; 00024 if(H.statvar!=6) 00025 return false; 00026 break; 00027 00028 case 1: 00029 if(H.wasImplantation || H.wasDecay || !H.wasOther) 00030 return false; 00031 if(H.affectedScintillators.size()!=0) 00032 return false; 00033 if(H.statvar!=2) 00034 return false; 00035 break; 00036 00037 case 2: 00038 if(H.wasImplantation || H.wasDecay || !H.wasOther) 00039 return false; 00040 if(H.affectedScintillators.size()!=0) 00041 return false; 00042 if(H.statvar!=1) 00043 return false; 00044 break; 00045 00046 case 3: 00047 if(H.wasImplantation || H.wasDecay || !H.wasOther) 00048 return false; 00049 if(H.affectedScintillators.size()!=0) //no affection on passing. 00050 return false; 00051 if(H.statvar!=1) 00052 return false; 00053 break; 00054 00055 case 4: 00056 if(!H.wasImplantation || H.wasDecay || H.wasOther) 00057 return false; 00058 if(H.affectedScintillators.size()!=1) 00059 return false; 00060 if(H.affectedScintillators.front()!=39) 00061 return false; 00062 if(H.statvar!=0) 00063 return false; 00064 break; 00065 00066 case 5: 00067 if(H.wasImplantation || !H.wasDecay || H.wasOther) 00068 return false; 00069 if(H.affectedScintillators.size()!=1) 00070 return false; 00071 if(H.affectedScintillators.front()!=9) 00072 return false; 00073 if(H.statvar!=0) 00074 return false; 00075 break; 00076 00077 case 6: 00078 if(H.wasImplantation || !H.wasDecay || H.wasOther) 00079 return false; 00080 if(H.affectedScintillators.size()!=1) 00081 return false; 00082 if(H.statvar!=0) 00083 return false; 00084 if(H.affectedScintillators.front()!=39) 00085 return false; 00086 break; 00087 00088 case 7: 00089 if(!H.wasImplantation || H.wasDecay || H.wasOther) 00090 return false; 00091 if(H.affectedScintillators.size()!=1) 00092 return false; 00093 if(H.affectedScintillators.front()!=19) 00094 return false; 00095 if(H.statvar!=0) 00096 return false; 00097 break; 00098 00099 case 8: 00100 if(!H.wasImplantation || H.wasDecay || H.wasOther) 00101 return false; 00102 if(H.affectedScintillators.size()!=1) 00103 return false; 00104 if(H.affectedScintillators.front()!=9) 00105 return false; 00106 if(H.statvar!=0) 00107 return false; 00108 break; 00109 00110 case 9: 00111 if(!H.wasImplantation || H.wasDecay || H.wasOther) 00112 return false; 00113 if(H.affectedScintillators.size()!=1) 00114 return false; 00115 if(H.affectedScintillators.front()!=19) 00116 return false; 00117 if(H.statvar!=0) 00118 return false; 00119 break; 00120 00121 case 10: 00122 if(H.wasImplantation || !H.wasDecay || H.wasOther) 00123 return false; 00124 if(H.affectedScintillators.size()!=1) 00125 return false; 00126 if(H.statvar!=0) 00127 return false; 00128 if(H.affectedScintillators.front()!=9) 00129 return false; 00130 break; 00131 00132 case 11: 00133 if(H.wasImplantation || !H.wasDecay || H.wasOther) 00134 return false; 00135 if(H.affectedScintillators.size()!=1) 00136 return false; 00137 if(H.statvar!=0) 00138 return false; 00139 if(H.affectedScintillators.front()!=19) 00140 return false; 00141 break; 00142 00143 } 00144 ++eventCount; 00145 } 00146 return true; 00147 } 00148 00149 00150 int EventHit_TEST::runUnitTests() const 00151 { 00152 cout << "Running unit tests on EventHit... "; 00153 cout.flush(); 00154 if(!EventHit_ClassifiesCorrectly_AssertTrue()) 00155 { 00156 return 1; 00157 } 00158 cout << "done" << endl; 00159 return 0; 00160 }