From: Devarsh Thakkar <devarsht@ti.com>
To: <devarsht@ti.com>, <mchehab@kernel.org>,
<hverkuil-cisco@xs4all.nl>, <linux-media@vger.kernel.org>,
<linux-kernel@vger.kernel.org>, <benjamin.gaignard@collabora.com>,
<sebastian.fricke@collabora.com>, <akpm@linux-foundation.org>,
<gregkh@linuxfoundation.org>, <andriy.shevchenko@linux.intel.com>,
<adobriyan@gmail.com>, <jani.nikula@intel.com>,
<p.zabel@pengutronix.de>, <airlied@gmail.com>, <daniel@ffwll.ch>,
<dri-devel@lists.freedesktop.org>
Cc: <laurent.pinchart@ideasonboard.com>, <praneeth@ti.com>,
<nm@ti.com>, <vigneshr@ti.com>, <a-bhatia1@ti.com>,
<j-luthra@ti.com>, <b-brnich@ti.com>, <detheridge@ti.com>,
<p-mantena@ti.com>, <vijayp@ti.com>, <andrzej.p@collabora.com>,
<nicolas@ndufresne.ca>, <davidgow@google.com>,
<dlatypov@google.com>
Subject: [PATCH v11 09/11] lib: math_kunit: Add tests for new macros related to rounding to nearest value
Date: Fri, 31 May 2024 22:46:28 +0530 [thread overview]
Message-ID: <20240531171628.1306389-1-devarsht@ti.com> (raw)
In-Reply-To: <20240531170229.1270828-1-devarsht@ti.com>
Add tests for round_closest_up/down and roundclosest macros which round
to nearest multiple of specified argument. These are tested with kunit
tool as shared here [1].
[1]: https://gist.github.com/devarsht/3f9042825be3da4e133b8f4eda067876
Signed-off-by: Devarsh Thakkar <devarsht@ti.com>
---
V1->V11 (No change, patch introduced in V8)
---
lib/math/math_kunit.c | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/lib/math/math_kunit.c b/lib/math/math_kunit.c
index be27f2afb8e4..05022f010be6 100644
--- a/lib/math/math_kunit.c
+++ b/lib/math/math_kunit.c
@@ -70,6 +70,26 @@ static void round_down_test(struct kunit *test)
KUNIT_EXPECT_EQ(test, round_down((1 << 30) - 1, 1 << 29), 1 << 29);
}
+static void round_closest_up_test(struct kunit *test)
+{
+ KUNIT_EXPECT_EQ(test, round_closest_up(17, 4), 16);
+ KUNIT_EXPECT_EQ(test, round_closest_up(15, 4), 16);
+ KUNIT_EXPECT_EQ(test, round_closest_up(14, 4), 16);
+ KUNIT_EXPECT_EQ(test, round_closest_up((1 << 30) - 1, 1 << 30), 1 << 30);
+ KUNIT_EXPECT_EQ(test, round_closest_up((1 << 30) + 1, 1 << 30), 1 << 30);
+ KUNIT_EXPECT_EQ(test, round_closest_up((1 << 30) - 1, 2), 1 << 30);
+}
+
+static void round_closest_down_test(struct kunit *test)
+{
+ KUNIT_EXPECT_EQ(test, round_closest_down(17, 4), 16);
+ KUNIT_EXPECT_EQ(test, round_closest_down(15, 4), 16);
+ KUNIT_EXPECT_EQ(test, round_closest_down(14, 4), 12);
+ KUNIT_EXPECT_EQ(test, round_closest_down((1 << 30) - 1, 1 << 30), 1 << 30);
+ KUNIT_EXPECT_EQ(test, round_closest_down((1 << 30) + 1, 1 << 30), 1 << 30);
+ KUNIT_EXPECT_EQ(test, round_closest_down((1 << 30) - 1, 2), (1 << 30) - 2);
+}
+
/* These versions can round to numbers that aren't a power of two */
static void roundup_test(struct kunit *test)
{
@@ -95,6 +115,18 @@ static void rounddown_test(struct kunit *test)
KUNIT_EXPECT_EQ(test, rounddown(4, 3), 3);
}
+static void roundclosest_test(struct kunit *test)
+{
+ KUNIT_EXPECT_EQ(test, roundclosest(21, 5), 20);
+ KUNIT_EXPECT_EQ(test, roundclosest(19, 5), 20);
+ KUNIT_EXPECT_EQ(test, roundclosest(17, 5), 15);
+ KUNIT_EXPECT_EQ(test, roundclosest((1 << 30), 3), (1 << 30) - 1);
+ KUNIT_EXPECT_EQ(test, roundclosest((1 << 30) - 1, 1 << 29), 1 << 30);
+
+ KUNIT_EXPECT_EQ(test, roundclosest(4, 3), 3);
+ KUNIT_EXPECT_EQ(test, roundclosest(5, 3), 6);
+}
+
static void div_round_up_test(struct kunit *test)
{
KUNIT_EXPECT_EQ(test, DIV_ROUND_UP(0, 1), 0);
@@ -272,8 +304,11 @@ static struct kunit_case math_test_cases[] = {
KUNIT_CASE(int_sqrt_test),
KUNIT_CASE(round_up_test),
KUNIT_CASE(round_down_test),
+ KUNIT_CASE(round_closest_up_test),
+ KUNIT_CASE(round_closest_down_test),
KUNIT_CASE(roundup_test),
KUNIT_CASE(rounddown_test),
+ KUNIT_CASE(roundclosest_test),
KUNIT_CASE(div_round_up_test),
KUNIT_CASE(div_round_closest_test),
KUNIT_CASE_PARAM(gcd_test, gcd_gen_params),
--
2.39.1
next prev parent reply other threads:[~2024-05-31 17:16 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-31 17:02 [PATCH v11 00/11] Add V4L2 M2M Driver for E5010 JPEG Encoder Devarsh Thakkar
2024-05-31 17:06 ` [PATCH v11 01/11] media: dt-bindings: Add Imagination " Devarsh Thakkar
2024-05-31 17:08 ` [PATCH v11 02/11] media: imagination: Add E5010 JPEG Encoder driver Devarsh Thakkar
2024-05-31 17:09 ` [PATCH v11 03/11] media: v4l2-jpeg: Export reference quantization and huffman tables Devarsh Thakkar
2024-05-31 17:09 ` [PATCH v11 04/11] media: imagination: Use exported tables from v4l2-jpeg core Devarsh Thakkar
2024-05-31 17:11 ` [PATCH v11 05/11] media: verisilicon : Use exported tables from v4l2-jpeg for hantro codec Devarsh Thakkar
2024-05-31 17:11 ` [PATCH v11 06/11] math.h: Add macros for rounding to closest value Devarsh Thakkar
2024-05-31 17:42 ` Andy Shevchenko
2024-05-31 17:12 ` [PATCH v11 07/11] Documentation: core-api: Add math.h macros and functions Devarsh Thakkar
2024-05-31 17:41 ` Andy Shevchenko
2024-05-31 18:31 ` Randy Dunlap
2024-06-01 16:41 ` Devarsh Thakkar
2024-05-31 17:13 ` [PATCH v11 08/11] lib: add basic KUnit test for lib/math Devarsh Thakkar
2024-05-31 17:39 ` Andy Shevchenko
2024-05-31 17:16 ` Devarsh Thakkar [this message]
2024-05-31 17:43 ` [PATCH v11 09/11] lib: math_kunit: Add tests for new macros related to rounding to nearest value Andy Shevchenko
2024-05-31 17:18 ` [PATCH v11 10/11] media: imagination: Round to closest multiple for cropping region Devarsh Thakkar
2024-05-31 17:20 ` [PATCH v11 11/11] gpu: ipu-v3: Use generic macro for rounding closest to specified value Devarsh Thakkar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240531171628.1306389-1-devarsht@ti.com \
--to=devarsht@ti.com \
--cc=a-bhatia1@ti.com \
--cc=adobriyan@gmail.com \
--cc=airlied@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=andriy.shevchenko@linux.intel.com \
--cc=andrzej.p@collabora.com \
--cc=b-brnich@ti.com \
--cc=benjamin.gaignard@collabora.com \
--cc=daniel@ffwll.ch \
--cc=davidgow@google.com \
--cc=detheridge@ti.com \
--cc=dlatypov@google.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=gregkh@linuxfoundation.org \
--cc=hverkuil-cisco@xs4all.nl \
--cc=j-luthra@ti.com \
--cc=jani.nikula@intel.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=nicolas@ndufresne.ca \
--cc=nm@ti.com \
--cc=p-mantena@ti.com \
--cc=p.zabel@pengutronix.de \
--cc=praneeth@ti.com \
--cc=sebastian.fricke@collabora.com \
--cc=vigneshr@ti.com \
--cc=vijayp@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox