Project
Loading...
Searching...
No Matches
testSampaCluster.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 MCHRaw SampaCluster
13#define BOOST_TEST_MAIN
14#define BOOST_TEST_DYN_LINK
15
16#include <boost/test/unit_test.hpp>
17#include <iostream>
18#include <fstream>
19#include <fmt/printf.h>
21#include <array>
22
23using namespace o2::mch::raw;
24
25BOOST_AUTO_TEST_SUITE(o2_mch_raw)
26
27BOOST_AUTO_TEST_SUITE(sampacluster)
28
29uint16_t defaultTimestamp{0x3FF};
30uint32_t defaultBunchCrossing{0xFFFFF};
31uint32_t defaultChargeSum{0xFFFFF};
32uint32_t defaultChargeSumSize{0x3FF};
33std::vector<uint16_t> defaultSamples = {0x3FF, 0x3FF, 0x3FF};
34
40
41BOOST_AUTO_TEST_CASE(CtorWithInvalidTimeStampMustThrow)
42{
43 BOOST_CHECK_THROW(SampaCluster sc(1 << 10, defaultBunchCrossing, defaultChargeSum, defaultChargeSumSize), std::invalid_argument);
44 BOOST_CHECK_THROW(SampaCluster sc(1 << 10, defaultBunchCrossing, defaultSamples), std::invalid_argument);
45}
46
47BOOST_AUTO_TEST_CASE(CtorWithInvalidBunchCrossingMustThrow)
48{
49 BOOST_CHECK_THROW(SampaCluster sc(defaultTimestamp, 1 << 20, defaultChargeSum, defaultChargeSumSize), std::invalid_argument);
50 BOOST_CHECK_THROW(SampaCluster sc(defaultTimestamp, 1 << 20, defaultSamples), std::invalid_argument);
51}
52
58
59BOOST_AUTO_TEST_CASE(CtorWithInvalidChargeSumMustThrow)
60{
61 BOOST_CHECK_THROW(SampaCluster sc(defaultTimestamp, defaultBunchCrossing, 0x1FFFFF, defaultChargeSumSize), std::invalid_argument);
62}
63
64BOOST_AUTO_TEST_CASE(CtorWithInvalidChargeSumSizeMustThrow)
65{
66 BOOST_CHECK_THROW(SampaCluster sc(defaultTimestamp, defaultBunchCrossing, defaultChargeSum, 1 << 10), std::invalid_argument);
67}
68
69BOOST_AUTO_TEST_CASE(CtorWithInvalidSamplesMustThrow)
70{
71 std::vector<uint16_t> invalidSamples = {0x3FF, 0x3FF, 0x4FF};
72 BOOST_CHECK_THROW(SampaCluster sc(defaultTimestamp, defaultBunchCrossing, invalidSamples), std::invalid_argument);
73}
74
75BOOST_AUTO_TEST_CASE(CtorWithNoSamplesMustThrow)
76{
77 std::vector<uint16_t> empty;
78 BOOST_CHECK_THROW(SampaCluster sc(defaultTimestamp, defaultBunchCrossing, empty), std::invalid_argument);
79}
80
81BOOST_AUTO_TEST_CASE(AssertNotMixingShouldThrowIfClustersOfMixedSampleType)
82{
83 std::vector<SampaCluster> clusters;
86 BOOST_CHECK_THROW(assertNotMixingClusters<ChargeSumMode>(clusters), std::invalid_argument);
87}
88
89BOOST_AUTO_TEST_CASE(AssertNotMixingShouldThrowIfClustersOfDifferentBunchCrossing)
90{
91 std::vector<SampaCluster> clusters;
94 BOOST_CHECK_THROW(assertNotMixingClusters<ChargeSumMode>(clusters), std::invalid_argument);
95}
96BOOST_AUTO_TEST_SUITE_END()
97BOOST_AUTO_TEST_SUITE_END()
BOOST_AUTO_TEST_CASE(FlatHisto)
void empty(int)
Piece of data for one Sampa channel.
uint16_t nof10BitWords() const
uint32_t defaultBunchCrossing
uint16_t defaultTimestamp
uint32_t defaultChargeSum
uint32_t defaultChargeSumSize
std::vector< uint16_t > defaultSamples
BOOST_CHECK_NO_THROW(algorithm::merge(target, other))
std::vector< Cluster > clusters
BOOST_CHECK_EQUAL(triggersD.size(), triggers.size())