From a855ec67ff0b7ae743c2c8693cd61f98e39c230f Mon Sep 17 00:00:00 2001 From: Stefan Klug Date: Fri, 13 Jun 2025 12:09:36 +0200 Subject: [PATCH] test: ipa: Add basic Pwl test Add a basic test for the Pwl class. Signed-off-by: Stefan Klug Reviewed-by: Kieran Bingham --- test/ipa/libipa/meson.build | 1 + test/ipa/libipa/pwl.cpp | 50 +++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 test/ipa/libipa/pwl.cpp diff --git a/test/ipa/libipa/meson.build b/test/ipa/libipa/meson.build index 8c63ebd8..b2cc4b74 100644 --- a/test/ipa/libipa/meson.build +++ b/test/ipa/libipa/meson.build @@ -4,6 +4,7 @@ libipa_test = [ {'name': 'fixedpoint', 'sources': ['fixedpoint.cpp']}, {'name': 'histogram', 'sources': ['histogram.cpp']}, {'name': 'interpolator', 'sources': ['interpolator.cpp']}, + {'name': 'pwl', 'sources': ['pwl.cpp']}, ] foreach test : libipa_test diff --git a/test/ipa/libipa/pwl.cpp b/test/ipa/libipa/pwl.cpp new file mode 100644 index 00000000..d41a290a --- /dev/null +++ b/test/ipa/libipa/pwl.cpp @@ -0,0 +1,50 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * Copyright (C) 2025, Ideas on Board Oy + * + * PWL tests + */ + +#include "../src/ipa/libipa/pwl.h" + +#include +#include +#include +#include +#include + +#include "test.h" + +using namespace std; +using namespace libcamera; +using namespace ipa; + +#define ASSERT_EQ(a, b) \ + if ((a) != (b)) { \ + std::cout << #a " != " #b " (" << a << " ," << b << ")" \ + << std::endl; \ + return TestFail; \ + } + +class PwlTest : public Test +{ +protected: + int run() + { + Pwl pwl; + pwl.append(0, 0); + pwl.append(1, 1); + + ASSERT_EQ(pwl.eval(-1), -1); + ASSERT_EQ(pwl.eval(0), 0); + ASSERT_EQ(pwl.eval(0.5), 0.5); + ASSERT_EQ(pwl.eval(1), 1); + ASSERT_EQ(pwl.eval(2), 2); + + ASSERT_EQ(pwl.size(), 2); + + return TestPass; + } +}; + +TEST_REGISTER(PwlTest)