LCOV - code coverage report
Current view: top level - fddetdataformats/unittest - DAPHNEFrame_test.cxx (source / functions) Coverage Total Hit
Test: code.result Lines: 100.0 % 20 20
Test Date: 2026-07-12 15:23:06 Functions: 100.0 % 3 3

            Line data    Source code
       1              : /**
       2              :  * @file DAPHNEFrame_test.cxx - Comprehensive unit tests for DAPHNEFrame
       3              :  *
       4              :  * This is part of the DUNE DAQ Application Framework, copyright 2022.
       5              :  * Licensing/copyright details are in the COPYING file that you should have
       6              :  * received with this code.
       7              :  *
       8              :  */
       9              : 
      10              : #include "fddetdataformats/DAPHNEFrame.hpp"
      11              : 
      12              : #define BOOST_TEST_MODULE DAPHNEFrame_test // NOLINT
      13              : 
      14              : #include "boost/test/unit_test.hpp"
      15              : 
      16              : #include <algorithm>
      17              : #include <random>
      18              : #include <vector>
      19              : 
      20              : // NOLINTBEGIN(build/unsigned)
      21              : 
      22              : BOOST_AUTO_TEST_SUITE(DAPHNEFrame_test)
      23              : 
      24            2 : BOOST_AUTO_TEST_CASE(DAPHNEFrame_AllFieldsTest)
      25              : {
      26            1 :   constexpr int n_adcs = 320;
      27              : 
      28            1 :   std::random_device rd;
      29            1 :   std::mt19937 gen(rd());
      30            1 :   std::uniform_int_distribution<uint16_t> adc_dist(1, (1 << 14) - 1);
      31            1 :   std::uniform_int_distribution<uint16_t> u10bit(0, 0x3FF);
      32            1 :   std::uniform_int_distribution<uint16_t> u9bit(0, 0x1FF);
      33            1 :   std::uniform_int_distribution<uint16_t> u4bit(0, 0xF);
      34            1 :   std::uniform_int_distribution<uint32_t> u23bit(0, 0x7FFFFF);
      35            1 :   std::uniform_int_distribution<uint16_t> u14bit(0, 0x3FFF);
      36            1 :   std::uniform_int_distribution<uint8_t> u1bit(0, 1);
      37              : 
      38            1 :   dunedaq::fddetdataformats::DAPHNEFrame frame{};
      39              : 
      40              :   // ─── Test ADC Values ──────────────────────────────────────────────
      41            1 :   std::vector<uint16_t> adcs(n_adcs);
      42          321 :   std::generate(adcs.begin(), adcs.end(), [&]() { return adc_dist(gen); });
      43              : 
      44          321 :   for (int i = 0; i < n_adcs; ++i)
      45          320 :     frame.set_adc(i, adcs[i]);
      46              : 
      47            1 :   frame.set_adc(0, adcs[0]);
      48              : 
      49          321 :   for (int i = 0; i < n_adcs; ++i)
      50          320 :     BOOST_CHECK_EQUAL(frame.get_adc(i), adcs[i]);
      51              : 
      52              : 
      53            1 : }
      54              : 
      55              : BOOST_AUTO_TEST_SUITE_END()
      56              : 
      57              : // NOLINTEND(build/unsigned)
        

Generated by: LCOV version 2.0-1