Project
Loading...
Searching...
No Matches
Edge.cxx
Go to the documentation of this file.
1
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3
// All rights not expressly granted are reserved.
4
//
5
// This software is distributed under the terms of the GNU General Public
6
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7
//
8
// In applying this license CERN does not waive the privileges and immunities
9
// granted to it by virtue of its status as an Intergovernmental Organization
10
// or submit itself to any jurisdiction.
11
14
15
#define BOOST_TEST_MODULE Test MCHContour Edge
16
#define BOOST_TEST_MAIN
17
#define BOOST_TEST_DYN_LINK
18
19
#include <boost/test/unit_test.hpp>
20
#include <iostream>
21
#include "../include/MCHContour/Edge.h"
22
23
using namespace
o2::mch::contour::impl
;
24
using namespace
o2::mch::contour
;
25
26
BOOST_AUTO_TEST_SUITE(o2_mch_contour)
27
28
BOOST_AUTO_TEST_SUITE(edge)
29
30
BOOST_AUTO_TEST_CASE
(AVerticalLeftEdgeIsTopToBottom)
31
{
32
double
dummy{0};
33
VerticalEdge<double>
edge{dummy, 12, 1};
34
BOOST_CHECK
(
isLeftEdge
(edge));
35
BOOST_CHECK
(
isTopToBottom
(edge));
36
}
37
38
BOOST_AUTO_TEST_CASE
(AVerticalRightEdgeIsBottomToTop)
39
{
40
double
dummy{0};
41
VerticalEdge<double>
edge{dummy, 1, 12};
42
BOOST_CHECK
(
isRightEdge
(edge));
43
BOOST_CHECK
(
isBottomToTop
(edge));
44
}
45
46
BOOST_AUTO_TEST_CASE
(ALeftToRightHorizontalEdgeHasEndPointGreaterThanStartPoint)
47
{
48
double
dummy{0};
49
HorizontalEdge<double>
edge{dummy, 1, 12};
50
BOOST_CHECK
(
isLeftToRight
(edge));
51
}
52
53
BOOST_AUTO_TEST_CASE
(ARightToLeftHorizontalEdgeHasEndPointSmallerThanStartPoint)
54
{
55
double
dummy{0};
56
HorizontalEdge<double>
edge{dummy, 12, 1};
57
BOOST_CHECK
(
isRightToLeft
(edge));
58
}
59
60
BOOST_AUTO_TEST_CASE
(AVerticalEdgeWithBeginAboveEndIsALefty)
61
{
62
VerticalEdge<double>
vi{0, 12, 10};
63
BOOST_CHECK_EQUAL
(
isLeftEdge
(vi),
true
);
64
BOOST_CHECK_EQUAL
(
isRightEdge
(vi),
false
);
65
}
66
67
BOOST_AUTO_TEST_CASE
(AVerticalEdgeWithBeginAboveEndIsARighty)
68
{
69
VerticalEdge<double>
vi{0, 10, 12};
70
BOOST_CHECK_EQUAL
(
isRightEdge
(vi),
true
);
71
BOOST_CHECK_EQUAL
(
isLeftEdge
(vi),
false
);
72
}
73
74
BOOST_AUTO_TEST_CASE
(AVerticalEdgeHasATopAndBottom)
75
{
76
VerticalEdge<double>
edge{2, 10, 12};
77
BOOST_CHECK_EQUAL
(
bottom
(edge), 10);
78
BOOST_CHECK_EQUAL
(
top
(edge), 12);
79
}
80
81
BOOST_AUTO_TEST_CASE
(BeginAndEndForALeftEdgeVertical)
82
{
83
VerticalEdge<double>
e{0, 7, 1};
84
85
BOOST_CHECK_EQUAL
(e.begin(), (
Vertex<double>
{0, 7}));
86
BOOST_CHECK_EQUAL
(e.end(), (
Vertex<double>
{0, 1}));
87
BOOST_CHECK_EQUAL
(
top
(e), 7);
88
BOOST_CHECK_EQUAL
(
bottom
(e), 1);
89
}
90
91
BOOST_AUTO_TEST_CASE
(BeginAndEndForARightEdgeVertical)
92
{
93
VerticalEdge<double>
e{0, 1, 7};
94
95
BOOST_CHECK_EQUAL
(e.begin(), (
Vertex<double>
{0, 1}));
96
BOOST_CHECK_EQUAL
(e.end(), (
Vertex<double>
{0, 7}));
97
BOOST_CHECK_EQUAL
(
top
(e), 7);
98
BOOST_CHECK_EQUAL
(
bottom
(e), 1);
99
}
100
101
BOOST_AUTO_TEST_CASE
(BeginAndEndForALeftToRightHorizontal)
102
{
103
HorizontalEdge<double>
e{0, 1, 7};
104
BOOST_CHECK_EQUAL
(e.begin(), (
Vertex<double>
{1, 0}));
105
BOOST_CHECK_EQUAL
(e.end(), (
Vertex<double>
{7, 0}));
106
}
107
108
BOOST_AUTO_TEST_CASE
(BeginAndEndForARightToLeftHorizontal)
109
{
110
HorizontalEdge<double>
e{0, 7, 1};
111
BOOST_CHECK_EQUAL
(e.begin(), (
Vertex<double>
{7, 0}));
112
BOOST_CHECK_EQUAL
(e.end(), (
Vertex<double>
{1, 0}));
113
}
114
115
BOOST_AUTO_TEST_CASE
(VectorOfVerticals)
116
{
117
// clang-format off
118
std::vector<VerticalEdge<double>> testVerticals{{0.0, 7.0, 1.0}, {1.0, 1.0, 0.0}, {3.0, 0.0, 1.0},
119
{5.0, 1.0, 0.0}, {6.0, 0.0, 7.0}, {2.0, 5.0, 3.0},
120
{4.0, 3.0, 5.0}};
121
// clang-format on
122
BOOST_TEST
(testVerticals.size() == 7);
123
}
124
125
BOOST_AUTO_TEST_SUITE_END()
126
BOOST_AUTO_TEST_SUITE_END()
BOOST_AUTO_TEST_CASE
BOOST_AUTO_TEST_CASE(AVerticalLeftEdgeIsTopToBottom)
Definition
Edge.cxx:30
o2::mch::contour::impl::HorizontalEdge
Definition
Edge.h:84
o2::mch::contour::impl::VerticalEdge
Definition
Edge.h:77
top
GLdouble GLdouble GLdouble GLdouble top
Definition
glcorearb.h:4077
bottom
GLint GLint bottom
Definition
glcorearb.h:1979
o2::mch::contour::impl
Definition
ContourCreator.inl:34
o2::mch::contour::impl::isLeftEdge
bool isLeftEdge(const VerticalEdge< T > &edge)
Definition
Edge.h:102
o2::mch::contour::impl::isTopToBottom
bool isTopToBottom(const VerticalEdge< T > &edge)
Definition
Edge.h:114
o2::mch::contour::impl::isBottomToTop
bool isBottomToTop(const VerticalEdge< T > &edge)
Definition
Edge.h:120
o2::mch::contour::impl::isLeftToRight
bool isLeftToRight(const HorizontalEdge< T > &edge)
Definition
Edge.h:138
o2::mch::contour::impl::isRightEdge
bool isRightEdge(const VerticalEdge< T > &edge)
Definition
Edge.h:108
o2::mch::contour::impl::isRightToLeft
bool isRightToLeft(const HorizontalEdge< T > &edge)
Definition
Edge.h:144
o2::mch::contour
Definition
BBox.h:27
o2::mch::contour::Vertex
Definition
Vertex.h:30
BOOST_CHECK
BOOST_CHECK(tree)
BOOST_TEST
BOOST_TEST(digits==digitsD, boost::test_tools::per_element())
BOOST_CHECK_EQUAL
BOOST_CHECK_EQUAL(triggersD.size(), triggers.size())
Detectors
MUON
MCH
Contour
test
Edge.cxx
Generated on Tue Feb 25 2025 23:16:22 for Project by
1.9.8