aboutsummaryrefslogtreecommitdiff
path: root/tests/NetworkExecutionUtils/test/NetworkExecutionUtilsTests.cpp
blob: d11fe571b067c98ae8f82773b9aa0fe36ec63b37 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//
// Copyright © 2023 Arm Ltd and Contributors. All rights reserved.
// SPDX-License-Identifier: MIT
//

#include "../NetworkExecutionUtils.hpp"

#include <doctest/doctest.h>

namespace
{

TEST_SUITE("NetworkExecutionUtilsTests")
{

TEST_CASE ("ComputeByteLevelRMSE")
{
    // Bytes.
    const uint8_t expected[] = {1, 128, 255};
    const uint8_t actual[] = {0, 127, 254};

    CHECK(ComputeByteLevelRMSE(expected, expected, 3) == 0);
    CHECK(ComputeByteLevelRMSE(expected, actual, 3) == 1.0);

    // Floats.
    const float expectedFloat[] =
        {55.20419, 24.58061, 67.76520, 47.31617, 55.58102, 44.64565, 105.76307, 54.65538, 80.41088, 66.05208};
    const float actualFloat[] =
        {13.87187, 14.16160, 49.28846, 25.89192, 97.70659, 91.30055, 15.88831, 4.79960, 102.99205, 51.28290};
    const double expectedResult = 74.059098023; // Calculated manually.
    CHECK(ComputeByteLevelRMSE(expectedFloat, expectedFloat, sizeof(float) * 10) == 0);
    CHECK(ComputeByteLevelRMSE(expectedFloat, actualFloat, sizeof(float) * 10) == doctest::Approx(expectedResult));
}

} // End of TEST_SUITE("NetworkExecutionUtilsTests")

} // anonymous namespace