xref: /aosp_15_r20/external/armnn/tests/NetworkExecutionUtils/test/NetworkExecutionUtilsTests.cpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1 //
2 // Copyright © 2023 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #include "../NetworkExecutionUtils.hpp"
7 
8 #include <doctest/doctest.h>
9 
10 namespace
11 {
12 
13 TEST_SUITE("NetworkExecutionUtilsTests")
14 {
15 
16 TEST_CASE ("ComputeByteLevelRMSE")
17 {
18     // Bytes.
19     const uint8_t expected[] = {1, 128, 255};
20     const uint8_t actual[] = {0, 127, 254};
21 
22     CHECK(ComputeByteLevelRMSE(expected, expected, 3) == 0);
23     CHECK(ComputeByteLevelRMSE(expected, actual, 3) == 1.0);
24 
25     // Floats.
26     const float expectedFloat[] =
27         {55.20419f, 24.58061f, 67.76520f, 47.31617f, 55.58102f, 44.64565f, 105.76307f, 54.65538f, 80.41088f, 66.05208f};
28     const float actualFloat[] =
29         {13.87187f, 14.16160f, 49.28846f, 25.89192f, 97.70659f, 91.30055f, 15.88831f, 4.79960f, 102.99205f, 51.28290f};
30     const double expectedResult = 74.059098023; // Calculated manually.
31     CHECK(ComputeByteLevelRMSE(expectedFloat, expectedFloat, sizeof(float) * 10) == 0);
32     CHECK(ComputeByteLevelRMSE(expectedFloat, actualFloat, sizeof(float) * 10) == doctest::Approx(expectedResult));
33 }
34 
35 } // End of TEST_SUITE("NetworkExecutionUtilsTests")
36 
37 } // anonymous namespace