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

# Content
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