diff mbox series

[FFmpeg-devel,v2,3/5] tests/checkasm/vf_gblur.c: add check_verti_slice() for unit test

Message ID 20210804020616.82866-3-jianhua.wu@intel.com
State New
Headers show
Series [FFmpeg-devel,v2,1/5] libavfilter/x86/vf_gblur: add ff_postscale_slice_avx512() | expand

Checks

Context Check Description
andriy/x86_make success Make finished
andriy/x86_make_fate success Make fate finished
andriy/PPC64_make success Make finished
andriy/PPC64_make_fate success Make fate finished

Commit Message

Wu Jianhua Aug. 4, 2021, 2:06 a.m. UTC
Co-authored-by: Cheng Yanfei <yanfei.cheng@intel.com>
Co-authored-by: Jin Jun <jun.i.jin@intel.com>
Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
---
 tests/checkasm/vf_gblur.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)
diff mbox series

Patch

diff --git a/tests/checkasm/vf_gblur.c b/tests/checkasm/vf_gblur.c
index b9fe2f9a36..0fac37b6be 100644
--- a/tests/checkasm/vf_gblur.c
+++ b/tests/checkasm/vf_gblur.c
@@ -49,6 +49,22 @@  static void check_horiz_slice(float *dst_ref, float *dst_new)
     bench_new(dst_new, WIDTH, HEIGHT, 1, nu, bscale);
 }
 
+static void check_verti_slice(float *dst_ref, float *dst_new)
+{
+    int steps = 2;
+    float nu = 0.101f;
+    float bscale = 1.112f;
+
+    declare_func(void, float *buffer, int width, int height, int column_begin,
+                int column_end, int steps, float nu, float bscale);
+    call_ref(dst_ref, WIDTH, HEIGHT, 0, WIDTH, steps, nu, bscale);
+    call_new(dst_new, WIDTH, HEIGHT, 0, WIDTH, steps, nu, bscale);
+    if (!float_near_abs_eps_array(dst_ref, dst_new, 0.01f, PIXELS)) {
+         fail();
+    }
+    bench_new(dst_new, WIDTH, HEIGHT, 0, WIDTH, 1, nu, bscale);
+}
+
 static void check_postscale_slice(float *dst_ref, float *dst_new)
 {
     float postscale = 0.0603f;
@@ -85,6 +101,13 @@  void checkasm_check_vf_gblur(void)
     }
     report("postscale_slice");
 
+    randomize_buffers(dst_ref, PIXELS);
+    memcpy(dst_new, dst_ref, BUF_SIZE);
+    if (check_func(s.verti_slice, "verti_slice")) {
+        check_verti_slice(dst_ref, dst_new);
+    }
+    report("verti_slice");
+
     av_freep(&dst_ref);
     av_freep(&dst_new);
 }