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