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 v12 11/13] lib: math_kunit: Add tests for new macros related to rounding to nearest value
Date: Tue, 4 Jun 2024 16:23:11 +0530 [thread overview]
Message-ID: <20240604105311.2256898-1-devarsht@ti.com> (raw)
In-Reply-To: <20240604104001.2235082-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] :
Link: https://gist.github.com/devarsht/3f9042825be3da4e133b8f4eda067876 [1]
Signed-off-by: Devarsh Thakkar <devarsht@ti.com>
Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
V1->V12 (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-06-04 10:53 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-04 10:40 [PATCH v12 00/13] Add V4L2 M2M Driver for E5010 JPEG Encoder Devarsh Thakkar
2024-06-04 10:40 ` Devarsh Thakkar
2024-06-04 10:43 ` [PATCH v12 01/13] media: dt-bindings: Add Imagination " Devarsh Thakkar
2024-06-04 10:47 ` [PATCH v12 02/13] media: imagination: Add E5010 JPEG Encoder driver Devarsh Thakkar
2024-06-06 15:42 ` Sebastian Fricke
2024-06-07 13:42 ` Devarsh Thakkar
2024-06-04 10:48 ` [PATCH v12 03/13] media: v4l2-jpeg: Export reference quantization and huffman tables Devarsh Thakkar
2024-06-04 10:48 ` [PATCH v12 04/13] media: Documentation: Document v4l2-jpeg helper functions Devarsh Thakkar
2024-06-04 10:50 ` [PATCH v12 05/13] media: imagination: Use exported tables from v4l2-jpeg core Devarsh Thakkar
2024-06-04 10:50 ` Devarsh Thakkar
2024-06-04 10:50 ` [PATCH v12 06/13] media: verisilicon : Use exported tables from v4l2-jpeg for hantro codec Devarsh Thakkar
2024-06-04 10:50 ` Devarsh Thakkar
2024-06-04 10:51 ` [PATCH v12 07/13] math.h: Add macros for rounding to closest value Devarsh Thakkar
2024-06-04 10:51 ` [PATCH v12 08/13] math.h: Use kernel-doc syntax for divison macros Devarsh Thakkar
2024-06-04 10:52 ` [PATCH v12 09/13] Documentation: core-api: Add math.h macros and functions Devarsh Thakkar
2024-06-04 10:52 ` [PATCH v12 10/13] lib: add basic KUnit test for lib/math Devarsh Thakkar
2024-06-04 10:53 ` Devarsh Thakkar [this message]
2024-06-04 10:53 ` [PATCH v12 12/13] media: imagination: Round to closest multiple for cropping region Devarsh Thakkar
2024-06-06 11:44 ` Sebastian Fricke
2024-06-06 13:31 ` Devarsh Thakkar
2024-06-06 14:10 ` Andy Shevchenko
2024-06-04 10:54 ` [PATCH v12 13/13] 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=20240604105311.2256898-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.