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 v9 08/10] lib: math_kunit: Add tests for new macros related to rounding to nearest value
Date: Sun, 26 May 2024 23:40:06 +0530 [thread overview]
Message-ID: <20240526181006.1127512-1-devarsht@ti.com> (raw)
In-Reply-To: <20240526175655.1093707-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->V9 (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 16263e30a292..60b66aa41121 100644
--- a/lib/math/math_kunit.c
+++ b/lib/math/math_kunit.c
@@ -67,6 +67,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)
{
@@ -92,6 +112,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);
@@ -269,8 +301,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-26 18:10 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-26 17:56 [PATCH v9 00/10] Add V4L2 M2M Driver for E5010 JPEG Encoder Devarsh Thakkar
2024-05-26 17:56 ` Devarsh Thakkar
2024-05-26 18:05 ` [PATCH v9 01/10] media: dt-bindings: Add Imagination " Devarsh Thakkar
2024-05-26 18:06 ` [PATCH v9 02/10] media: imagination: Add E5010 JPEG Encoder driver Devarsh Thakkar
2024-05-26 18:07 ` [PATCH v9 03/10] media: v4l2-jpeg: Export reference quantization and huffman tables Devarsh Thakkar
2024-05-26 18:07 ` [PATCH v9 04/10] media: imagination: Use exported tables from v4l2-jpeg core Devarsh Thakkar
2024-05-26 18:07 ` Devarsh Thakkar
2024-05-26 18:08 ` [PATCH v9 05/10] media: verisilcon : Use exported tables from v4l2-jpeg for hantro codec Devarsh Thakkar
2024-05-26 18:08 ` Devarsh Thakkar
2024-05-26 18:08 ` [PATCH v9 06/10] math.h: Add macros for rounding to closest value Devarsh Thakkar
2024-05-27 20:32 ` Andy Shevchenko
2024-05-28 10:32 ` Devarsh Thakkar
2024-05-29 13:17 ` Andy Shevchenko
2024-05-26 18:09 ` [PATCH v9 07/10] lib: add basic KUnit test for lib/math Devarsh Thakkar
2024-05-27 20:37 ` Andy Shevchenko
2024-05-27 20:38 ` Andy Shevchenko
2024-05-28 11:31 ` Devarsh Thakkar
2024-05-29 14:35 ` Andy Shevchenko
2024-05-28 11:21 ` Devarsh Thakkar
2024-05-29 14:34 ` Andy Shevchenko
2024-05-26 18:10 ` Devarsh Thakkar [this message]
2024-05-26 18:10 ` [PATCH v9 09/10] media: imagination: Round to closest multiple for cropping region Devarsh Thakkar
2024-05-26 18:11 ` [PATCH v9 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=20240526181006.1127512-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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.