diff options
Diffstat (limited to 'src/armnn/test/FloatingPointConverterTest.cpp')
-rw-r--r-- | src/armnn/test/FloatingPointConverterTest.cpp | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/armnn/test/FloatingPointConverterTest.cpp b/src/armnn/test/FloatingPointConverterTest.cpp new file mode 100644 index 0000000000..d936e801ef --- /dev/null +++ b/src/armnn/test/FloatingPointConverterTest.cpp @@ -0,0 +1,58 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// See LICENSE file in the project root for full license information. +// + +#include "FloatingPointConverter.hpp" +#include "Half.hpp" + +#include <malloc.h> +#include <iostream> +#include <algorithm> + +#include <boost/test/unit_test.hpp> + +BOOST_AUTO_TEST_SUITE(TestFPConversion) + +BOOST_AUTO_TEST_CASE(TestConvertFp32ToFp16) +{ + using namespace half_float::literal; + + float floatArray[] = { 1.0f, 2.0f, 0.5f, 3.1f, 2.4f, + 5.666f, 6.444f, 7.1f, 432.121f, 12.22f }; + size_t numFloats = sizeof(floatArray) / sizeof(floatArray[0]); + std::vector<armnn::Half> convertedBuffer(numFloats, 0.0_h); + + armnnUtils::FloatingPointConverter::ConvertFloat32To16(floatArray, numFloats, convertedBuffer.data()); + + for (size_t i = 0; i < numFloats; i++) + { + armnn::Half expected(floatArray[i]); + armnn::Half actual = convertedBuffer[i]; + BOOST_CHECK_EQUAL(expected, actual); + + float convertedHalf = actual; + BOOST_CHECK_CLOSE(floatArray[i], convertedHalf, 0.07); + } +} + +BOOST_AUTO_TEST_CASE(TestConvertFp16ToFp32) +{ + using namespace half_float::literal; + + armnn::Half halfArray[] = { 1.0_h, 2.0_h, 0.5_h, 3.1_h, 2.4_h, + 5.666_h, 6.444_h, 7.1_h, 432.121_h, 12.22_h }; + size_t numFloats = sizeof(halfArray) / sizeof(halfArray[0]); + std::vector<float> convertedBuffer(numFloats, 0.0f); + + armnnUtils::FloatingPointConverter::ConvertFloat16To32(halfArray, numFloats, convertedBuffer.data()); + + for (size_t i = 0; i < numFloats; i++) + { + float expected(halfArray[i]); + float actual = convertedBuffer[i]; + BOOST_CHECK_EQUAL(expected, actual); + } +} + +BOOST_AUTO_TEST_SUITE_END() |