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 v8 08/10] lib: math_kunit: Add tests for new rounding related macros
Date: Fri, 17 May 2024 23:07:26 +0530 [thread overview]
Message-ID: <20240517173726.803899-1-devarsht@ti.com> (raw)
In-Reply-To: <20240517171532.748684-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->V8 (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 1b00e4195a1a..1955dcd5655d 100644
--- a/lib/math/math_kunit.c
+++ b/lib/math/math_kunit.c
@@ -68,6 +68,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)
{
@@ -93,6 +113,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);
@@ -270,8 +302,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-17 17:37 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-17 17:15 [PATCH v8 00/10] Add V4L2 M2M Driver for E5010 JPEG Encoder Devarsh Thakkar
2024-05-17 17:19 ` [PATCH v8 01/10] media: dt-bindings: Add Imagination " Devarsh Thakkar
2024-05-17 17:28 ` [PATCH v8 02/10] media: imagination: Add E5010 JPEG Encoder driver Devarsh Thakkar
2024-05-17 17:31 ` [PATCH v8 03/10] media: v4l2-jpeg: Export reference quantization and huffman tables Devarsh Thakkar
2024-05-17 17:32 ` [PATCH v8 04/10] media: imagination: Use exported tables from v4l2-jpeg core Devarsh Thakkar
2024-05-17 17:33 ` [PATCH v8 05/10] media: verisilcon : Use exported tables from v4l2-jpeg for hantro codec Devarsh Thakkar
2024-05-17 17:34 ` [PATCH v8 06/10] math.h: Add macros for rounding to closest value Devarsh Thakkar
2024-05-17 17:36 ` [PATCH v8 07/10] lib: add basic KUnit test for lib/math Devarsh Thakkar
2024-05-17 20:14 ` Andy Shevchenko
2024-05-17 20:53 ` Daniel Latypov
2024-05-20 9:26 ` Andy Shevchenko
2024-05-20 11:41 ` Devarsh Thakkar
2024-05-20 12:22 ` Andy Shevchenko
2024-05-20 14:21 ` Devarsh Thakkar
2024-05-20 14:35 ` Andy Shevchenko
2024-05-17 17:37 ` Devarsh Thakkar [this message]
2024-05-17 17:38 ` [PATCH v8 09/10] media: imagination: Round to closest multiple for cropping region Devarsh Thakkar
2024-05-17 17:40 ` [PATCH v8 10/10] 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=20240517173726.803899-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