ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/dhidas/OSUAnalysis/Tools/test/TestVariableReader.h
Revision: 1.1.1.1 (vendor branch)
Committed: Thu Dec 1 16:28:47 2011 UTC (13 years, 5 months ago) by dhidas
Content type: text/plain
Branch: dhidas, MAIN
CVS Tags: START, HEAD
Changes since 1.1: +0 -0 lines
Log Message:
osu copy modified

File Contents

# User Rev Content
1 dhidas 1.1 #include <vector>
2     #include <string>
3    
4     #include "cute/cute.h"
5     #include "cute/cute_suite.h"
6    
7     #include "TChain.h"
8     #include "TString.h"
9    
10     #include "../interface/Readers/VariableReader.h"
11    
12    
13    
14     using namespace ROOT;
15     using namespace BAT;
16     using namespace std;
17    
18     struct TestVariableReader {
19     private:
20     TString invalidEmptyVariableName, invalidNotAvailableVariableName, runNumber, energyForEachElectron;
21     TChainPointer input;
22     boost::scoped_ptr<VariableReader<unsigned int> > singleVariableReader;
23     boost::scoped_ptr<VariableReader<MultiDoublePointer> > multipleVariableReader;
24     boost::scoped_ptr<VariableReader<int> > invalidEmptyVariableVariableReader, invalidnNotAvailableVariableReader;
25    
26     public:
27     TestVariableReader() :
28     invalidEmptyVariableName(""),
29     invalidNotAvailableVariableName("thisIsNotInTheFile"),
30     runNumber("run"),
31     energyForEachElectron("Electron.Energy"),
32     input(new TChain(NTupleEventReader::EVENT_CHAIN)),
33     singleVariableReader(new VariableReader<unsigned int>::VariableReader(input, runNumber)),
34     multipleVariableReader(new VariableReader<MultiDoublePointer>::VariableReader(input,
35     energyForEachElectron)),
36     invalidEmptyVariableVariableReader(new VariableReader<int>::VariableReader(input, invalidEmptyVariableName)),
37     invalidnNotAvailableVariableReader(new VariableReader<int>::VariableReader(input, invalidNotAvailableVariableName))
38     {
39     input->Add(InputFile::ttbar);
40     input->SetBranchStatus("*", 0);
41     singleVariableReader->initialise();
42     multipleVariableReader->initialise();
43     input->LoadTree(1);
44     input->GetEntry(1);
45     }
46    
47     void testReadSingleVariable() {
48     ASSERT_EQUAL(1, singleVariableReader->getVariable());
49     }
50    
51     void testReadMultipleVariable() {
52     ASSERT_EQUAL_DELTA(108.714, multipleVariableReader->getVariableAt(0), 0.001);
53     ASSERT_EQUAL(singleVariableReader->getVariable(), multipleVariableReader->size());
54     }
55    
56     void testInvalidVariableThrowsException() {
57     ASSERT_THROWS(invalidnNotAvailableVariableReader->initialise(), VariableNotFoundException);
58     }
59    
60     void testInvalidEmptyVariableThrowsException() {
61     ASSERT_THROWS(invalidEmptyVariableVariableReader->initialise(), VariableNotFoundException);
62     }
63    
64     };
65    
66     cute::suite make_suite_TestVariableReader() {
67     cute::suite s;
68    
69     s.push_back(CUTE_SMEMFUN(TestVariableReader,testReadSingleVariable));
70     s.push_back(CUTE_SMEMFUN(TestVariableReader,testReadMultipleVariable));
71     s.push_back(CUTE_SMEMFUN(TestVariableReader,testInvalidVariableThrowsException));
72     s.push_back(CUTE_SMEMFUN(TestVariableReader,testInvalidEmptyVariableThrowsException));
73    
74     return s;
75     }
76