tests: lib: cmsis_dsp: statistics: Update Q31 tests for 1.9.0

This commit updates the statistics Q31 test patterns and
implementations for the CMSIS-DSP 1.9.0.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
This commit is contained in:
Stephanos Ioannidis 2021-08-21 17:09:06 +09:00 committed by Carles Cufí
commit d744019229
2 changed files with 146 additions and 4 deletions

View file

@ -1,6 +1,6 @@
/*
* Copyright (c) 2020 Stephanos Ioannidis <root@stephanos.io>
* Copyright (C) 2010-2020 ARM Limited or its affiliates. All rights reserved.
* Copyright (c) 2021 Stephanos Ioannidis <root@stephanos.io>
* Copyright (C) 2010-2021 ARM Limited or its affiliates. All rights reserved.
*
* SPDX-License-Identifier: Apache-2.0
*/
@ -59,6 +59,48 @@ DEFINE_TEST_VARIANT3(arm_min_q31, 3, in_com1, 0, 3);
DEFINE_TEST_VARIANT3(arm_min_q31, 8, in_com1, 1, 8);
DEFINE_TEST_VARIANT3(arm_min_q31, 11, in_com1, 2, 11);
static void test_arm_absmax_q31(
const q31_t *input1, int ref_index, size_t length)
{
q31_t val;
uint32_t index;
/* Run test function */
arm_absmax_q31(input1, length, &val, &index);
/* Validate output */
zassert_equal(val, ref_absmax_val[ref_index],
ASSERT_MSG_INCORRECT_COMP_RESULT);
zassert_equal(index, ref_absmax_idx[ref_index],
ASSERT_MSG_INCORRECT_COMP_RESULT);
}
DEFINE_TEST_VARIANT3(arm_absmax_q31, 3, in_absminmax, 0, 3);
DEFINE_TEST_VARIANT3(arm_absmax_q31, 8, in_absminmax, 1, 8);
DEFINE_TEST_VARIANT3(arm_absmax_q31, 11, in_absminmax, 2, 11);
static void test_arm_absmin_q31(
const q31_t *input1, int ref_index, size_t length)
{
q31_t val;
uint32_t index;
/* Run test function */
arm_absmin_q31(input1, length, &val, &index);
/* Validate output */
zassert_equal(val, ref_absmin_val[ref_index],
ASSERT_MSG_INCORRECT_COMP_RESULT);
zassert_equal(index, ref_absmin_idx[ref_index],
ASSERT_MSG_INCORRECT_COMP_RESULT);
}
DEFINE_TEST_VARIANT3(arm_absmin_q31, 3, in_absminmax, 0, 3);
DEFINE_TEST_VARIANT3(arm_absmin_q31, 8, in_absminmax, 1, 8);
DEFINE_TEST_VARIANT3(arm_absmin_q31, 11, in_absminmax, 2, 11);
static void test_arm_mean_q31(
const q31_t *input1, int ref_index, size_t length)
{
@ -233,6 +275,12 @@ void test_statistics_q31(void)
ztest_unit_test(test_arm_min_q31_3),
ztest_unit_test(test_arm_min_q31_8),
ztest_unit_test(test_arm_min_q31_11),
ztest_unit_test(test_arm_absmax_q31_3),
ztest_unit_test(test_arm_absmax_q31_8),
ztest_unit_test(test_arm_absmax_q31_11),
ztest_unit_test(test_arm_absmin_q31_3),
ztest_unit_test(test_arm_absmin_q31_8),
ztest_unit_test(test_arm_absmin_q31_11),
ztest_unit_test(test_arm_mean_q31_3),
ztest_unit_test(test_arm_mean_q31_8),
ztest_unit_test(test_arm_mean_q31_11),

View file

@ -154,11 +154,89 @@ static const q31_t in_com2[300] = {
0x235D7B47, 0x2FC7F3E6, 0x144F0C3E, 0x0FA420B1
};
static const q31_t in_absminmax[300] = {
0xD91BCEBD, 0x62CE1E33, 0xEB33E43B, 0x0CE373F6,
0x04B6B41E, 0xDBF8B862, 0x300B2AA8, 0xCA164320,
0x3126FD7F, 0xCCF50F82, 0x2D1FDF30, 0xC9EEFA52,
0x050BFB42, 0x0F977F71, 0xE8E7014B, 0x36369352,
0x07F47FFE, 0xCC1E2A28, 0xAA7A89C1, 0x6057DF08,
0xBF729F27, 0x3D969DDC, 0xFE0CE4CF, 0xE7943556,
0xD0280B07, 0x13DC155D, 0xE3A4E66C, 0x1228EA7E,
0x084FAB71, 0x3A74453F, 0xBE837359, 0x3C48FCA7,
0x4D4495F4, 0x010CBCC0, 0xEA9BEB7B, 0xD507960A,
0x156420D7, 0xDC660428, 0xCD227C15, 0x091428EF,
0x743F1EB7, 0xDF38E217, 0xE25645DF, 0xC5555C63,
0x35E08AC3, 0xB2052092, 0x3671677B, 0x19F6EA02,
0xDA57AC82, 0x3288AB45, 0xF6B43DFC, 0x40580DD2,
0xE27E4925, 0xD14AF3E0, 0x3D86B16E, 0x3C064F65,
0xFF2EAF77, 0xA712EBF1, 0x9E7183A9, 0x293AB09F,
0x1520BF67, 0x2C9336DD, 0xF501B837, 0x5A414FD6,
0x0FFA2E7E, 0xD88CC4FF, 0x3CFA8F9C, 0x3C0F7EC1,
0xC47D45F2, 0xE7AFFD1E, 0x00E49F4A, 0xD1150671,
0x12CD4609, 0xE8D8E257, 0x330FFE7E, 0x023F0D80,
0x0A615AA0, 0x0D9FC9AE, 0xE8BAC301, 0xC52A84C2,
0xFB166F3B, 0xF3D773AD, 0x145A3253, 0xFD074131,
0xEC9A00A1, 0x1FA4EAF5, 0x259ABB05, 0xCE3E2E74,
0x2421D36F, 0x24B2F703, 0x3AEDBE9F, 0xB7CC078B,
0x420ABEB8, 0x22C2EBBD, 0xEEE6B78F, 0x476063BC,
0xE8A99B12, 0xE257DC6A, 0x0C05D1BA, 0x34CECDDC,
0x249FB308, 0x10CA1DC0, 0x49194AC8, 0xCCD332D9,
0x2BCCF239, 0xC6BA0C29, 0xFC825185, 0x0FBBD385,
0xF0709940, 0x383D713A, 0xC85D722F, 0xBBD501AD,
0x80000000, 0xE91D9859, 0xE3924A8D, 0xBEB83E7E,
0x0B1A20C4, 0xBDB28F6B, 0xED165AB3, 0xC9463F5F,
0x0EA223CD, 0x042CC48A, 0x1463A642, 0x22371902,
0xFCCEA5D7, 0xE33BC127, 0xDAEB4AA6, 0x49A78B23,
0x2606AF14, 0xCC592CD4, 0x221EE022, 0x06607C55,
0x30809757, 0xC41AE0F6, 0xF0512289, 0x140C89A7,
0x48D49C0D, 0xF3FF4EAE, 0x05F6963E, 0x3169AC36,
0x0AE1615A, 0xE0FFA685, 0x1ABFDBF8, 0xD656427E,
0xBCD5F0AA, 0x0D560B62, 0x4A1EDC5B, 0xFA6DDFEF,
0x301BB2BB, 0xC43023A9, 0xF950E33D, 0xE993E290,
0x4C93882F, 0xE2B1C911, 0xF508F85D, 0xF5D14379,
0x0EA13DC2, 0x0CBEE8FE, 0xD538AEDB, 0x17FCEE49,
0xEC8F81DB, 0xEBE5677B, 0x350EA4CB, 0xDA8ED01E,
0xBB3D8C03, 0x0C6AAAF6, 0xD94AFAF5, 0xC83F040C,
0x50418783, 0xDF9E3CBC, 0x128132DA, 0x04585B19,
0xD401C744, 0xE3519D6B, 0x1942152F, 0x069E6FB0,
0xEE543768, 0xFA6E1E38, 0x558AEB12, 0x108ADC6F,
0xF57ECD2D, 0x3B8AE964, 0xDE23EAC6, 0x079A113C,
0x28EA8B9A, 0x14CCFFFC, 0xFC7F0E78, 0x03601BA5,
0x1A32160C, 0x3AEE02BB, 0xC06E3824, 0x017F0E8D,
0xCC5D5DB0, 0x1E7D5AEA, 0xFC19EE2A, 0xD5401579,
0xE5B59039, 0xF5FF070F, 0x41D0AE1F, 0x31C605A8,
0x3E7EE5F8, 0x78869570, 0x8D326DF1, 0x4E5C1A8E,
0x2558BC01, 0xFF94718D, 0x1FC709C3, 0xDD30B19E,
0x21E91012, 0x1500BBCD, 0xFA2D33E0, 0x094D7520,
0x10ED6681, 0x1CC7E18B, 0x02D43336, 0x384253B2,
0xE7C36635, 0xE22EB06B, 0x2934BB10, 0xE53A4215,
0xDA932CF2, 0x1B3B16EF, 0x0CB5CC11, 0xF441B97D,
0xF9D451FB, 0x2DC68CFC, 0xD561A1E1, 0xE25A01B0,
0x9088FFB0, 0xF1888C4D, 0x29C29496, 0x0B01DAEB,
0xF186E57F, 0x99831889, 0xC29EF089, 0x06BEE2A1,
0x198BEB21, 0x52E2E547, 0x12E4AF92, 0x26403572,
0x141AD6D7, 0xF7CA12BC, 0x0AB08B15, 0xFABDB636,
0x09CED512, 0x14C4DB14, 0x2A060FEA, 0xF1413BA7,
0x3D09FEB1, 0x010F2C24, 0xFBD12420, 0xBDB6E8F7,
0x08A067F2, 0xF4FF15F0, 0xDE436608, 0x0F57E811,
0xF556A6CD, 0x3F2E54D0, 0xCFB87547, 0x2703720A,
0x21F10211, 0x617338A3, 0xBF71EBA5, 0x06145E9B,
0x3034940D, 0x2C65E68A, 0x60C81120, 0x10199231,
0xED8CCF13, 0x14551870, 0x2FDB97E0, 0x252DF482,
0xDFD8ABD7, 0x00D97AE9, 0x023D9795, 0xEC708325,
0xD09DA1E3, 0xF790A802, 0x21009225, 0x2ED179C7,
0x64AF52E4, 0x11BA1569, 0xEF2A9DDE, 0x0BCFFEA8,
0xFA198840, 0xAB20DAAF, 0x2DE1BB5C, 0x4AD7DBB0,
0xEE618C62, 0x1DFA0618, 0xB3D77D96, 0x013187EF,
0x44C313D6, 0xECA29DA9, 0x21A3158D, 0x14B5CD02,
0x4D5C76DB, 0x03D2417B, 0xEFF94305, 0x18120BD2
};
static const q31_t ref_max_val[3] = {
0x105553F0, 0x29C5F709, 0x38377595
};
static const q15_t ref_max_idx[3] = {
static const uint16_t ref_max_idx[3] = {
0x0000, 0x0003, 0x000A
};
@ -166,10 +244,26 @@ static const q31_t ref_min_val[3] = {
0xD9F3A4C5, 0xCD8EA20C, 0xCD8EA20C
};
static const q15_t ref_min_idx[3] = {
static const uint16_t ref_min_idx[3] = {
0x0001, 0x0005, 0x0005
};
static const q31_t ref_absmax_val[3] = {
0x62CE1E33, 0x62CE1E33, 0x62CE1E33
};
static const uint16_t ref_absmax_idx[3] = {
0x0001, 0x0001, 0x0001
};
static const q31_t ref_absmin_val[3] = {
0x14CC1BC5, 0x04B6B41E, 0x04B6B41E
};
static const uint16_t ref_absmin_idx[3] = {
0x0002, 0x0004, 0x0004
};
static const q31_t ref_mean[4] = {
0x14B59370, 0x1F68C070, 0x1E9F29E6, 0x1BD8CBD2
};