Mixed Data Coincidence Analysis Software 1.0
A program to analyze files produced by the EventMixer software.
EventHit_TEST.cc
Go to the documentation of this file.
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 }
 All Classes Files Functions Variables Defines

Back to the main page of the Precalibrated Ion Beam Identification Detector project

Created by Rikard Lundmark