From 99ff10d9d4cbf2d83c2b6d7ca1577df61cedab30 Mon Sep 17 00:00:00 2001 From: Denes Tarjan Date: Mon, 19 Feb 2024 15:30:10 +0100 Subject: [PATCH] [test] Increase test coverage on transpose --- test/api/test_transpose.cpp | 39 +++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/test/api/test_transpose.cpp b/test/api/test_transpose.cpp index b1ed4e953..2d3f9f312 100644 --- a/test/api/test_transpose.cpp +++ b/test/api/test_transpose.cpp @@ -19,8 +19,10 @@ class TestTranspose final { inplace ? first_dim : test::Options::vector_lanes() + 1; // Exercise horizontal scalar path test(first_dim, second_dim); - // Exercise vertical scalar path - test(second_dim, first_dim); + if (!inplace) { + // Exercise vertical scalar path + test(second_dim, first_dim); + } } void vector_test() { @@ -32,6 +34,19 @@ class TestTranspose final { test(src_width, src_height); } + // For the 'remaining' part of the outer vector loop of inplace transpose + void vector_plus_scalar_test() { + // Two full vector passes, plus some scalar + size_t first_dim = 3 * test::Options::vector_lanes() - 1; + size_t second_dim = + inplace ? first_dim + : 3 * test::Options::vector_lanes() + 1; + test(first_dim, second_dim); + if (!inplace) { + test(second_dim, first_dim); + } + } + protected: void test(size_t src_width, size_t src_height) const { const size_t dst_width = src_height; @@ -150,6 +165,26 @@ TYPED_TEST(Transpose, VectorInplaceWithPadding) { test.vector_test(); } +TYPED_TEST(Transpose, VectorPlusScalarNoPadding) { + TestTranspose test(0); + test.vector_plus_scalar_test(); +} + +TYPED_TEST(Transpose, VectorPlusScalarWithPadding) { + TestTranspose test(1); + test.vector_plus_scalar_test(); +} + +TYPED_TEST(Transpose, VectorPlusScalarInplaceNoPadding) { + TestTranspose test(0); + test.vector_plus_scalar_test(); +} + +TYPED_TEST(Transpose, VectorPlusScalarInplaceWithPadding) { + TestTranspose test(1); + test.vector_plus_scalar_test(); +} + TYPED_TEST(Transpose, NullPointer) { TypeParam src[1] = {}, dst[1]; test::test_null_args(intrinsiccv_transpose, src, sizeof(TypeParam), dst, -- GitLab