1
/* This file is part of MAUS: http://micewww.pp.rl.ac.uk:8080/projects/maus
3
* MAUS is free software: you can redistribute it and/or modify
4
* it under the terms of the GNU General Public License as published by
5
* the Free Software Foundation, either version 3 of the License, or
6
* (at your option) any later version.
8
* MAUS is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU General Public License for more details.
13
* You should have received a copy of the GNU General Public License
14
* along with MAUS. If not, see <http://www.gnu.org/licenses/>.
21
// Google test headers
22
#include "gtest/gtest.h"
23
#include "gtest/gtest_prod.h"
26
#include "src/common_cpp/Recon/SciFi/TrackerDataPlotterInfoBox.hh"
30
class TrackerDataPlotterInfoBoxTest : public ::testing::Test {
32
TrackerDataPlotterInfoBoxTest() {}
33
virtual ~TrackerDataPlotterInfoBoxTest() {}
34
virtual void SetUp() {}
35
virtual void TearDown() {}
38
TEST_F(TrackerDataPlotterInfoBoxTest, TestConstructor) {
40
// Test the default contructor
41
TrackerDataPlotterInfoBox* infoBox = new TrackerDataPlotterInfoBox();
42
EXPECT_FALSE(infoBox->_setup_true);
43
EXPECT_EQ(0, infoBox->_tot_digits_t1);
44
EXPECT_EQ(0, infoBox->_tot_clusters_t1);
45
EXPECT_EQ(0, infoBox->_tot_spoints_t1);
46
EXPECT_EQ(0, infoBox->_tot_5htracks_t1);
47
EXPECT_EQ(0, infoBox->_tot_4htracks_t1);
48
EXPECT_EQ(0, infoBox->_tot_3htracks_t1);
49
EXPECT_EQ(0, infoBox->_tot_5stracks_t1);
50
EXPECT_EQ(0, infoBox->_tot_4stracks_t1);
51
EXPECT_EQ(0, infoBox->_tot_3stracks_t1);
52
EXPECT_EQ(0, infoBox->_tot_digits_t2);
53
EXPECT_EQ(0, infoBox->_tot_clusters_t2);
54
EXPECT_EQ(0, infoBox->_tot_spoints_t2);
55
EXPECT_EQ(0, infoBox->_tot_5htracks_t2);
56
EXPECT_EQ(0, infoBox->_tot_4htracks_t2);
57
EXPECT_EQ(0, infoBox->_tot_3htracks_t2);
58
EXPECT_EQ(0, infoBox->_tot_5stracks_t2);
59
EXPECT_EQ(0, infoBox->_tot_4stracks_t2);
60
EXPECT_EQ(0, infoBox->_tot_3stracks_t2);
61
EXPECT_EQ(275, infoBox->_canvas_width);
62
EXPECT_EQ(600, infoBox->_canvas_height);
63
EXPECT_EQ(0.585, infoBox->_line1_pos);
64
EXPECT_EQ(0.93, infoBox->_line2_pos);
67
// Test the copy constructor
69
int canvas_height = 2;
70
double line1_pos = 0.1;
71
double line2_pos = 0.2;
72
infoBox = new TrackerDataPlotterInfoBox(canvas_width, canvas_height, line1_pos, line2_pos);
73
EXPECT_FALSE(infoBox->_setup_true);
74
EXPECT_EQ(0, infoBox->_tot_digits_t1);
75
EXPECT_EQ(0, infoBox->_tot_clusters_t1);
76
EXPECT_EQ(0, infoBox->_tot_spoints_t1);
77
EXPECT_EQ(0, infoBox->_tot_5htracks_t1);
78
EXPECT_EQ(0, infoBox->_tot_4htracks_t1);
79
EXPECT_EQ(0, infoBox->_tot_3htracks_t1);
80
EXPECT_EQ(0, infoBox->_tot_5stracks_t1);
81
EXPECT_EQ(0, infoBox->_tot_4stracks_t1);
82
EXPECT_EQ(0, infoBox->_tot_3stracks_t1);
83
EXPECT_EQ(0, infoBox->_tot_digits_t2);
84
EXPECT_EQ(0, infoBox->_tot_clusters_t2);
85
EXPECT_EQ(0, infoBox->_tot_spoints_t2);
86
EXPECT_EQ(0, infoBox->_tot_5htracks_t2);
87
EXPECT_EQ(0, infoBox->_tot_4htracks_t2);
88
EXPECT_EQ(0, infoBox->_tot_3htracks_t2);
89
EXPECT_EQ(0, infoBox->_tot_5stracks_t2);
90
EXPECT_EQ(0, infoBox->_tot_4stracks_t2);
91
EXPECT_EQ(0, infoBox->_tot_3stracks_t2);
92
EXPECT_EQ(canvas_width, infoBox->_canvas_width);
93
EXPECT_EQ(canvas_height, infoBox->_canvas_height);
94
EXPECT_EQ(line1_pos, infoBox->_line1_pos);
95
EXPECT_EQ(line2_pos, infoBox->_line2_pos);
99
TEST_F(TrackerDataPlotterInfoBoxTest, TestBrackets) {
100
TrackerDataPlotterInfoBox* infoBox = new TrackerDataPlotterInfoBox();
102
// Set up some mock data
106
t1._num_clusters = 1;
109
t1._num_stracks_5pt = 1;
110
t1._num_stracks_4pt = 1;
111
t1._num_stracks_3pt = 1;
112
t1._num_htracks_5pt = 1;
113
t1._num_htracks_4pt = 1;
114
t1._num_htracks_3pt = 1;
116
t2._num_clusters = 2;
119
t2._num_stracks_5pt = 2;
120
t2._num_stracks_4pt = 2;
121
t2._num_stracks_3pt = 2;
122
t2._num_htracks_5pt = 2;
123
t2._num_htracks_4pt = 2;
124
t2._num_htracks_3pt = 2;
126
// Send data to infoBox twice to check accumulates, and check Canvases assigned properly
127
TCanvas* c1 = new TCanvas();
128
TCanvas* c2 = (*infoBox)(t1, t2, c1);
129
EXPECT_TRUE(c1 == c2);
130
TCanvas* c3 = (*infoBox)(t1, t2); // No canvas passed so should switch to internal canvas
131
EXPECT_TRUE(c3 == infoBox->_Canvas);
136
// Check infoBox internal state (not bothering to check internal state of root TPaveTexts etc)
137
EXPECT_EQ(2, infoBox->_tot_digits_t1);
138
EXPECT_EQ(2, infoBox->_tot_clusters_t1);
139
EXPECT_EQ(2, infoBox->_tot_spoints_t1);
140
EXPECT_EQ(2, infoBox->_tot_5stracks_t1);
141
EXPECT_EQ(2, infoBox->_tot_4stracks_t1);
142
EXPECT_EQ(2, infoBox->_tot_3stracks_t1);
143
EXPECT_EQ(2, infoBox->_tot_5htracks_t1);
144
EXPECT_EQ(2, infoBox->_tot_4htracks_t1);
145
EXPECT_EQ(2, infoBox->_tot_3htracks_t1);
146
EXPECT_EQ(4, infoBox->_tot_digits_t2);
147
EXPECT_EQ(4, infoBox->_tot_clusters_t2);
148
EXPECT_EQ(4, infoBox->_tot_spoints_t2);
149
EXPECT_EQ(4, infoBox->_tot_5stracks_t2);
150
EXPECT_EQ(4, infoBox->_tot_4stracks_t2);
151
EXPECT_EQ(4, infoBox->_tot_3stracks_t2);
152
EXPECT_EQ(4, infoBox->_tot_5htracks_t2);
153
EXPECT_EQ(4, infoBox->_tot_4htracks_t2);
154
EXPECT_EQ(4, infoBox->_tot_3htracks_t2);
155
delete infoBox; // Deletes the current canvas too