Files
openairinterface5g/openair1/PHY/TOOLS/tests/test_signal_energy.cpp
T
2024-10-11 11:12:21 +01:00

32 lines
784 B
C++

#include <gtest/gtest.h>
extern "C" {
#include "openair1/PHY/TOOLS/tools_defs.h"
extern uint32_t signal_energy_nodc(const c16_t *input, uint32_t length);
}
#include <vector>
#include <algorithm>
int32_t signal_energy_nodc_ref(const c16_t *input, uint32_t length)
{
float sum = 0;
for (auto i = 0U; i < length; i++) {
sum += input[i].r * input[i].r + input[i].i * input[i].i;
}
return sum / length;
}
TEST(signal_energy_nodc, size_6)
{
std::vector<c16_t> input;
input.resize(6);
std::fill(input.begin(), input.end(), (c16_t){42, 42});
EXPECT_EQ(signal_energy_nodc(input.data(), input.size()),
signal_energy_nodc_ref(input.data(), input.size()));
}
int main(int argc, char **argv)
{
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}