diff options
Diffstat (limited to 'test/ipa/rkisp1')
-rw-r--r-- | test/ipa/rkisp1/meson.build | 15 | ||||
-rw-r--r-- | test/ipa/rkisp1/rkisp1-utils.cpp | 108 |
2 files changed, 0 insertions, 123 deletions
diff --git a/test/ipa/rkisp1/meson.build b/test/ipa/rkisp1/meson.build deleted file mode 100644 index 894523da..00000000 --- a/test/ipa/rkisp1/meson.build +++ /dev/null @@ -1,15 +0,0 @@ -# SPDX-License-Identifier: CC0-1.0 - -rkisp1_ipa_test = [ - {'name': 'rkisp1-utils', 'sources': ['rkisp1-utils.cpp']}, -] - -foreach test : rkisp1_ipa_test - exe = executable(test['name'], test['sources'], - dependencies : [libcamera_private, libipa_dep], - link_with : [test_libraries], - include_directories : [test_includes_internal, - '../../../src/ipa/rkisp1/']) - - test(test['name'], exe, suite : 'ipa') -endforeach diff --git a/test/ipa/rkisp1/rkisp1-utils.cpp b/test/ipa/rkisp1/rkisp1-utils.cpp deleted file mode 100644 index b1863894..00000000 --- a/test/ipa/rkisp1/rkisp1-utils.cpp +++ /dev/null @@ -1,108 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-or-later */ -/* - * Copyright (C) 2024, Paul Elder <paul.elder@ideasonboard.com> - * - * Miscellaneous utility tests - */ - -#include <cmath> -#include <iostream> -#include <map> -#include <stdint.h> - -#include "../src/ipa/rkisp1/utils.h" - -#include "test.h" - -using namespace std; -using namespace libcamera; -using namespace ipa::rkisp1; - -class RkISP1UtilsTest : public Test -{ -protected: - /* R for real, I for integer */ - template<unsigned int IntPrec, unsigned int FracPrec, typename I, typename R> - int testFixedToFloat(I input, R expected) - { - R out = utils::fixedToFloatingPoint<IntPrec, FracPrec, R>(input); - R prec = 1.0 / (1 << FracPrec); - if (std::abs(out - expected) > prec) { - cerr << "Reverse conversion expected " << input - << " to convert to " << expected - << ", got " << out << std::endl; - return TestFail; - } - - return TestPass; - } - - template<unsigned int IntPrec, unsigned int FracPrec, typename T> - int testSingleFixedPoint(double input, T expected) - { - T ret = utils::floatingToFixedPoint<IntPrec, FracPrec, T>(input); - if (ret != expected) { - cerr << "Expected " << input << " to convert to " - << expected << ", got " << ret << std::endl; - return TestFail; - } - - /* - * The precision check is fairly arbitrary but is based on what - * the rkisp1 is capable of in the crosstalk module. - */ - double f = utils::fixedToFloatingPoint<IntPrec, FracPrec, double>(ret); - if (std::abs(f - input) > 0.005) { - cerr << "Reverse conversion expected " << ret - << " to convert to " << input - << ", got " << f << std::endl; - return TestFail; - } - - return TestPass; - } - - int testFixedPoint() - { - /* - * The second 7.992 test is to test that unused bits don't - * affect the result. - */ - std::map<double, uint16_t> testCases = { - { 7.992, 0x3ff }, - { 0.2, 0x01a }, - { -0.2, 0x7e6 }, - { -0.8, 0x79a }, - { -0.4, 0x7cd }, - { -1.4, 0x74d }, - { -8, 0x400 }, - { 0, 0 }, - }; - - int ret; - for (const auto &testCase : testCases) { - ret = testSingleFixedPoint<4, 7, uint16_t>(testCase.first, - testCase.second); - if (ret != TestPass) - return ret; - } - - /* Special case with a superfluous one in the unused bits */ - ret = testFixedToFloat<4, 7, uint16_t, double>(0xbff, 7.992); - if (ret != TestPass) - return ret; - - return TestPass; - } - - int run() - { - /* fixed point conversion test */ - if (testFixedPoint() != TestPass) - return TestFail; - - return TestPass; - } -}; - -TEST_REGISTER(RkISP1UtilsTest) |