Project
Loading...
Searching...
No Matches
testDCSNamer.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
12#define BOOST_TEST_MODULE Test MIDConditions DCSNamer
13#define BOOST_TEST_MAIN
14#define BOOST_TEST_DYN_LINK
15
16#include <boost/test/unit_test.hpp>
19#include "HVAliases.h"
20#include <algorithm>
21#include <fmt/format.h>
22
23using namespace o2::mid::dcs;
24
25BOOST_AUTO_TEST_SUITE(o2_mid_conditions)
26
27BOOST_AUTO_TEST_SUITE(dcsnamer)
28
29BOOST_AUTO_TEST_CASE(detElemId2DCSMustReturnNothingIfDetElemIdIsNotValid)
30{
31 BOOST_CHECK_EQUAL(detElemId2DCS(72).has_value(), false);
32 BOOST_CHECK_EQUAL(detElemId2DCS(1026).has_value(), false);
33 BOOST_CHECK_EQUAL(detElemId2DCS(-1).has_value(), false);
34}
35
37{
38 BOOST_CHECK(detElemId2DCS(4)->side == Side::Inside);
39}
41{
42 BOOST_CHECK(detElemId2DCS(36)->side == Side::Outside);
43}
44
45BOOST_AUTO_TEST_CASE(detElemId2DCSMustReturnChamberIdAndSideIfDetElemIdIsValid)
46{
47 auto v = detElemId2DCS(24);
48 BOOST_CHECK_EQUAL(v.has_value(), true);
49 BOOST_CHECK_EQUAL(v->chamberId, 21);
50 BOOST_CHECK(v->side == Side::Inside);
51}
52
53BOOST_AUTO_TEST_CASE(NumberOfHVAliasesVoltagesIs72)
54{
55 auto result = aliases({MeasurementType::HV_V});
58 bool permutation = std::is_permutation(begin(result), end(result), begin(expectedHVAliasesVoltages));
59 BOOST_CHECK_EQUAL(permutation, true);
60}
61
62BOOST_AUTO_TEST_CASE(NumberOfHVAliasesCurrentsIs72)
63{
64 auto result = aliases({MeasurementType::HV_I});
67 bool permutation = std::is_permutation(begin(result), end(result), begin(expectedHVAliasesCurrents));
68 BOOST_CHECK_EQUAL(permutation, true);
69}
70
71BOOST_AUTO_TEST_CASE(AliasNameIsShortEnough)
72{
73 auto result = aliases();
74 std::map<size_t, int> sizes;
75 constexpr size_t maxLen{62};
76 for (auto& a : result) {
77 sizes[a.size()]++;
78 if (a.size() > maxLen) {
79 std::cout << fmt::format("Alias is too long : {:2d} characters, while {:2d} max are allowed : {}\n",
80 a.size(), maxLen, a);
81 }
82 }
83 size_t len{0};
84
85 for (auto p : sizes) {
86 std::cout << fmt::format("{:3d} aliases of size {:2d}\n",
87 p.second, p.first);
88 len = std::max(len, p.first);
89 }
90 BOOST_CHECK(len <= 62);
91}
92
93BOOST_AUTO_TEST_SUITE_END()
94BOOST_AUTO_TEST_SUITE_END()
Useful detector parameters for MID.
std::vector< std::string > expectedHVAliasesCurrents
Definition HVAliases.cxx:88
std::vector< std::string > expectedHVAliasesVoltages
Definition HVAliases.cxx:14
uint32_t side
Definition RawData.h:0
GLuint64EXT * result
Definition glcorearb.h:5662
GLuint GLuint end
Definition glcorearb.h:469
const GLdouble * v
Definition glcorearb.h:832
GLuint GLsizei const GLuint const GLintptr const GLsizeiptr * sizes
Definition glcorearb.h:2595
GLenum GLenum GLsizei len
Definition glcorearb.h:4232
GLboolean GLboolean GLboolean GLboolean a
Definition glcorearb.h:1233
std::optional< ID > detElemId2DCS(int deId)
Definition DCSNamer.cxx:92
std::vector< std::string > aliases(std::vector< MeasurementType > types={ MeasurementType::HV_V, MeasurementType::HV_I})
Definition DCSNamer.cxx:127
BOOST_AUTO_TEST_CASE(detElemId2DCSMustReturnNothingIfDetElemIdIsNotValid)
BOOST_CHECK(tree)
BOOST_CHECK_EQUAL(triggersD.size(), triggers.size())