summaryrefslogtreecommitdiff
path: root/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests
diff options
context:
space:
mode:
Diffstat (limited to 'fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests')
-rw-r--r--fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/abs_tests.c32
-rw-r--r--fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/add_tests.c33
-rw-r--r--fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/basic_math_test_common_data.c101
-rw-r--r--fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/basic_math_test_group.c17
-rw-r--r--fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/dot_prod_tests.c33
-rw-r--r--fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/mult_tests.c33
-rw-r--r--fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/negate_tests.c32
-rw-r--r--fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/offset_tests.c33
-rw-r--r--fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/scale_tests.c52
-rw-r--r--fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/shift_tests.c31
-rw-r--r--fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/sub_tests.c33
11 files changed, 430 insertions, 0 deletions
diff --git a/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/abs_tests.c b/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/abs_tests.c
new file mode 100644
index 0000000..6e6bedb
--- /dev/null
+++ b/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/abs_tests.c
@@ -0,0 +1,32 @@
+#include "jtest.h"
+#include "basic_math_test_data.h"
+#include "arr_desc.h"
+#include "arm_math.h" /* FUTs */
+#include "ref.h" /* Reference Functions */
+#include "test_templates.h"
+#include "basic_math_templates.h"
+#include "type_abbrev.h"
+
+#define JTEST_ARM_ABS_TEST(suffix) \
+ BASIC_MATH_DEFINE_TEST_TEMPLATE_BUF1_BLK( \
+ abs, \
+ suffix, \
+ TYPE_FROM_ABBREV(suffix), \
+ TYPE_FROM_ABBREV(suffix))
+
+JTEST_ARM_ABS_TEST(f32);
+JTEST_ARM_ABS_TEST(q31);
+JTEST_ARM_ABS_TEST(q15);
+JTEST_ARM_ABS_TEST(q7 );
+
+/*--------------------------------------------------------------------------------*/
+/* Collect all tests in a group. */
+/*--------------------------------------------------------------------------------*/
+
+JTEST_DEFINE_GROUP(abs_tests)
+{
+ JTEST_TEST_CALL(arm_abs_f32_test);
+ JTEST_TEST_CALL(arm_abs_q31_test);
+ JTEST_TEST_CALL(arm_abs_q15_test);
+ JTEST_TEST_CALL(arm_abs_q7_test);
+}
diff --git a/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/add_tests.c b/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/add_tests.c
new file mode 100644
index 0000000..a2d043c
--- /dev/null
+++ b/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/add_tests.c
@@ -0,0 +1,33 @@
+#include "jtest.h"
+#include "basic_math_test_data.h"
+#include "arr_desc.h"
+#include "arm_math.h" /* FUTs */
+#include "ref.h" /* Reference Functions */
+#include "test_templates.h"
+#include "basic_math_templates.h"
+#include "type_abbrev.h"
+
+#define JTEST_ARM_ADD_TEST(suffix) \
+ BASIC_MATH_DEFINE_TEST_TEMPLATE_BUF2_BLK( \
+ add, \
+ suffix, \
+ TYPE_FROM_ABBREV(suffix), \
+ TYPE_FROM_ABBREV(suffix), \
+ BASIC_MATH_COMPARE_INTERFACE)
+
+JTEST_ARM_ADD_TEST(f32);
+JTEST_ARM_ADD_TEST(q31);
+JTEST_ARM_ADD_TEST(q15);
+JTEST_ARM_ADD_TEST(q7);
+
+/*--------------------------------------------------------------------------------*/
+/* Collect all tests in a group. */
+/*--------------------------------------------------------------------------------*/
+
+JTEST_DEFINE_GROUP(add_tests)
+{
+ JTEST_TEST_CALL(arm_add_f32_test);
+ JTEST_TEST_CALL(arm_add_q31_test);
+ JTEST_TEST_CALL(arm_add_q15_test);
+ JTEST_TEST_CALL(arm_add_q7_test);
+}
diff --git a/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/basic_math_test_common_data.c b/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/basic_math_test_common_data.c
new file mode 100644
index 0000000..86728f9
--- /dev/null
+++ b/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/basic_math_test_common_data.c
@@ -0,0 +1,101 @@
+#include "basic_math_test_data.h"
+
+/*--------------------------------------------------------------------------------*/
+/* Input/Output Buffers */
+/*--------------------------------------------------------------------------------*/
+
+ARR_DESC_DEFINE(BASIC_MATH_BIGGEST_INPUT_TYPE,
+ basic_math_output_fut,
+ BASIC_MATH_MAX_INPUT_ELEMENTS,
+ CURLY(0));
+
+ARR_DESC_DEFINE(BASIC_MATH_BIGGEST_INPUT_TYPE,
+ basic_math_output_ref,
+ BASIC_MATH_MAX_INPUT_ELEMENTS,
+ CURLY(0));
+
+BASIC_MATH_BIGGEST_INPUT_TYPE
+basic_math_output_f32_ref[BASIC_MATH_MAX_INPUT_ELEMENTS];
+
+BASIC_MATH_BIGGEST_INPUT_TYPE
+basic_math_output_f32_fut[BASIC_MATH_MAX_INPUT_ELEMENTS];
+
+/*--------------------------------------------------------------------------------*/
+/* Block Sizes */
+/*--------------------------------------------------------------------------------*/
+
+/*
+ To change test parameter values add/remove values inside CURLY and update
+ the preceeding parameter to reflect the number of values inside CURLY.
+*/
+
+ARR_DESC_DEFINE(uint32_t,
+ basic_math_block_sizes,
+ 4,
+ CURLY( 2, 7, 15, 32));
+
+/*--------------------------------------------------------------------------------*/
+/* Numbers */
+/*--------------------------------------------------------------------------------*/
+
+/*
+ To change test parameter values add/remove values inside CURLY and update
+ the preceeding parameter to reflect the number of values inside CURLY.
+*/
+
+ARR_DESC_DEFINE(uint32_t,
+ basic_math_elts,
+ 4,
+ CURLY( 0, 1, 0x80000000, 0x7fffffff));
+
+ARR_DESC_DEFINE(int8_t,
+ basic_math_elts2,
+ 5,
+ CURLY( 0, 3, -3, -7, 7));
+
+ARR_DESC_DEFINE(float32_t,
+ basic_math_eltsf,
+ 6,
+ CURLY( 0.0f, 1.0f, 1.254001, -1.665584, -127.435646, 245.34634267));
+
+/*--------------------------------------------------------------------------------*/
+/* Test Data */
+/*--------------------------------------------------------------------------------*/
+
+ARR_DESC_DEFINE(float32_t,
+ basic_math_f_32,
+ 32,
+ CURLY(
+ -0.432565, -1.665584, 0.125332, 0.287676, -1.146471,
+ 1.190915, 1.189164, -0.037633, 0.327292, 0.174639,
+ -0.186709, 0.725791, -0.588317, 2.183186, -0.136396,
+ 0.113931, 1.066768, 0.059281, -0.095648, -0.832349,
+ 0.294411, -1.336182, 0.714325, 1.623562, -0.691776,
+ 0.857997, 1.254001, -1.593730, -1.440964, 0.571148,
+ -0.399886, 0.689997
+ ));
+
+/* Alias the 32 element array with wrappers that end sooner. */
+ARR_DESC_DEFINE_SUBSET(basic_math_f_15,
+ basic_math_f_32,
+ 15);
+
+ARR_DESC_DEFINE_SUBSET(basic_math_f_2,
+ basic_math_f_32,
+ 2);
+
+ARR_DESC_DEFINE(float32_t,
+ basic_math_zeros,
+ 32,
+ CURLY(0));
+
+/* Aggregate all float datasets. */
+ARR_DESC_DEFINE(ARR_DESC_t *,
+ basic_math_f_all,
+ 4,
+ CURLY(
+ &basic_math_zeros,
+ &basic_math_f_2,
+ &basic_math_f_15,
+ &basic_math_f_32
+ ));
diff --git a/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/basic_math_test_group.c b/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/basic_math_test_group.c
new file mode 100644
index 0000000..7b219fe
--- /dev/null
+++ b/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/basic_math_test_group.c
@@ -0,0 +1,17 @@
+#include "jtest.h"
+#include "basic_math_tests.h"
+
+JTEST_DEFINE_GROUP(basic_math_tests)
+{
+ JTEST_GROUP_CALL(abs_tests);
+ JTEST_GROUP_CALL(add_tests);
+ JTEST_GROUP_CALL(dot_prod_tests);
+ JTEST_GROUP_CALL(mult_tests);
+ JTEST_GROUP_CALL(negate_tests);
+ JTEST_GROUP_CALL(offset_tests);
+ JTEST_GROUP_CALL(scale_tests);
+ JTEST_GROUP_CALL(shift_tests);
+ JTEST_GROUP_CALL(sub_tests);
+
+ return;
+}
diff --git a/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/dot_prod_tests.c b/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/dot_prod_tests.c
new file mode 100644
index 0000000..ed758a1
--- /dev/null
+++ b/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/dot_prod_tests.c
@@ -0,0 +1,33 @@
+#include "jtest.h"
+#include "basic_math_test_data.h"
+#include "arr_desc.h"
+#include "arm_math.h" /* FUTs */
+#include "ref.h" /* Reference Functions */
+#include "test_templates.h"
+#include "basic_math_templates.h"
+#include "type_abbrev.h"
+
+#define JTEST_ARM_DOT_PROD_TEST(suffix) \
+ BASIC_MATH_DEFINE_TEST_TEMPLATE_BUF2_BLK( \
+ dot_prod, \
+ suffix, \
+ TYPE_FROM_ABBREV(suffix), \
+ TYPE_FROM_ABBREV(suffix), \
+ BASIC_MATH_SNR_ELT1_COMPARE_INTERFACE)
+
+JTEST_ARM_DOT_PROD_TEST(f32);
+JTEST_ARM_DOT_PROD_TEST(q31);
+JTEST_ARM_DOT_PROD_TEST(q15);
+JTEST_ARM_DOT_PROD_TEST(q7);
+
+/*--------------------------------------------------------------------------------*/
+/* Collect all tests in a group. */
+/*--------------------------------------------------------------------------------*/
+
+JTEST_DEFINE_GROUP(dot_prod_tests)
+{
+ JTEST_TEST_CALL(arm_dot_prod_f32_test);
+ JTEST_TEST_CALL(arm_dot_prod_q31_test);
+ JTEST_TEST_CALL(arm_dot_prod_q15_test);
+ JTEST_TEST_CALL(arm_dot_prod_q7_test);
+}
diff --git a/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/mult_tests.c b/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/mult_tests.c
new file mode 100644
index 0000000..a94bf68
--- /dev/null
+++ b/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/mult_tests.c
@@ -0,0 +1,33 @@
+#include "jtest.h"
+#include "basic_math_test_data.h"
+#include "arr_desc.h"
+#include "arm_math.h" /* FUTs */
+#include "ref.h" /* Reference Functions */
+#include "test_templates.h"
+#include "basic_math_templates.h"
+#include "type_abbrev.h"
+
+#define JTEST_ARM_MULT_TEST(suffix, compare_interface) \
+ BASIC_MATH_DEFINE_TEST_TEMPLATE_BUF2_BLK( \
+ mult, \
+ suffix, \
+ TYPE_FROM_ABBREV(suffix), \
+ TYPE_FROM_ABBREV(suffix), \
+ compare_interface)
+
+JTEST_ARM_MULT_TEST(f32, BASIC_MATH_COMPARE_INTERFACE);
+JTEST_ARM_MULT_TEST(q31, BASIC_MATH_SNR_COMPARE_INTERFACE);
+JTEST_ARM_MULT_TEST(q15, BASIC_MATH_COMPARE_INTERFACE);
+JTEST_ARM_MULT_TEST(q7 , BASIC_MATH_COMPARE_INTERFACE);
+
+/*--------------------------------------------------------------------------------*/
+/* Collect all tests in a group. */
+/*--------------------------------------------------------------------------------*/
+
+JTEST_DEFINE_GROUP(mult_tests)
+{
+ JTEST_TEST_CALL(arm_mult_f32_test);
+ JTEST_TEST_CALL(arm_mult_q31_test);
+ JTEST_TEST_CALL(arm_mult_q15_test);
+ JTEST_TEST_CALL(arm_mult_q7_test);
+}
diff --git a/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/negate_tests.c b/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/negate_tests.c
new file mode 100644
index 0000000..276cdac
--- /dev/null
+++ b/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/negate_tests.c
@@ -0,0 +1,32 @@
+#include "jtest.h"
+#include "basic_math_test_data.h"
+#include "arr_desc.h"
+#include "arm_math.h" /* FUTs */
+#include "ref.h" /* Reference Functions */
+#include "test_templates.h"
+#include "basic_math_templates.h"
+#include "type_abbrev.h"
+
+#define JTEST_ARM_NEGATE_TEST(suffix) \
+ BASIC_MATH_DEFINE_TEST_TEMPLATE_BUF1_BLK( \
+ negate, \
+ suffix, \
+ TYPE_FROM_ABBREV(suffix), \
+ TYPE_FROM_ABBREV(suffix))
+
+JTEST_ARM_NEGATE_TEST(f32);
+JTEST_ARM_NEGATE_TEST(q31);
+JTEST_ARM_NEGATE_TEST(q15);
+JTEST_ARM_NEGATE_TEST(q7);
+
+/*--------------------------------------------------------------------------------*/
+/* Collect all tests in a group. */
+/*--------------------------------------------------------------------------------*/
+
+JTEST_DEFINE_GROUP(negate_tests)
+{
+ JTEST_TEST_CALL(arm_negate_f32_test);
+ JTEST_TEST_CALL(arm_negate_q31_test);
+ JTEST_TEST_CALL(arm_negate_q15_test);
+ JTEST_TEST_CALL(arm_negate_q7_test);
+}
diff --git a/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/offset_tests.c b/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/offset_tests.c
new file mode 100644
index 0000000..4e10f78
--- /dev/null
+++ b/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/offset_tests.c
@@ -0,0 +1,33 @@
+#include "jtest.h"
+#include "basic_math_test_data.h"
+#include "arr_desc.h"
+#include "arm_math.h" /* FUTs */
+#include "ref.h" /* Reference Functions */
+#include "test_templates.h"
+#include "basic_math_templates.h"
+#include "type_abbrev.h"
+
+#define JTEST_ARM_OFFSET_TEST(suffix) \
+ BASIC_MATH_DEFINE_TEST_TEMPLATE_BUF1_ELT1_BLK( \
+ offset, \
+ suffix, \
+ TYPE_FROM_ABBREV(suffix), \
+ TYPE_FROM_ABBREV(suffix), \
+ TYPE_FROM_ABBREV(suffix))
+
+JTEST_ARM_OFFSET_TEST(f32);
+JTEST_ARM_OFFSET_TEST(q31);
+JTEST_ARM_OFFSET_TEST(q15);
+JTEST_ARM_OFFSET_TEST(q7);
+
+/*--------------------------------------------------------------------------------*/
+/* Collect all tests in a group. */
+/*--------------------------------------------------------------------------------*/
+
+JTEST_DEFINE_GROUP(offset_tests)
+{
+ JTEST_TEST_CALL(arm_offset_f32_test);
+ JTEST_TEST_CALL(arm_offset_q31_test);
+ JTEST_TEST_CALL(arm_offset_q15_test);
+ JTEST_TEST_CALL(arm_offset_q7_test);
+}
diff --git a/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/scale_tests.c b/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/scale_tests.c
new file mode 100644
index 0000000..2839a8f
--- /dev/null
+++ b/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/scale_tests.c
@@ -0,0 +1,52 @@
+#include "jtest.h"
+#include "basic_math_test_data.h"
+#include "arr_desc.h"
+#include "arm_math.h" /* FUTs */
+#include "ref.h" /* Reference Functions */
+#include "test_templates.h"
+#include "basic_math_templates.h"
+#include "type_abbrev.h"
+
+
+#define JTEST_ARM_SCALE_TEST(suffix) \
+ BASIC_MATH_DEFINE_TEST_TEMPLATE_BUF1_ELT2_BLK( \
+ scale, \
+ suffix, \
+ TYPE_FROM_ABBREV(suffix), \
+ TYPE_FROM_ABBREV(suffix), /*elt1_type*/ \
+ int8_t, /*elt2_type*/ \
+ TYPE_FROM_ABBREV(suffix))
+
+/* float32_t defined separately because it has less arguments */
+JTEST_DEFINE_TEST(arm_scale_f32_test,
+ arm_scale_f32)
+{
+ TEST_TEMPLATE_BUF1_ELT1_BLK(
+ basic_math_f_all,
+ basic_math_eltsf,
+ basic_math_block_sizes,
+ float32_t,
+ float32_t,
+ float32_t,
+ arm_scale_f32,
+ ARM_scale_float_INPUT_INTERFACE,
+ ref_scale_f32,
+ REF_scale_float_INPUT_INTERFACE,
+ BASIC_MATH_COMPARE_INTERFACE);
+}
+
+JTEST_ARM_SCALE_TEST(q31);
+JTEST_ARM_SCALE_TEST(q15);
+JTEST_ARM_SCALE_TEST(q7);
+
+/*--------------------------------------------------------------------------------*/
+/* Collect all tests in a group. */
+/*--------------------------------------------------------------------------------*/
+
+JTEST_DEFINE_GROUP(scale_tests)
+{
+ JTEST_TEST_CALL(arm_scale_f32_test);
+ JTEST_TEST_CALL(arm_scale_q31_test);
+ JTEST_TEST_CALL(arm_scale_q15_test);
+ JTEST_TEST_CALL(arm_scale_q7_test);
+}
diff --git a/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/shift_tests.c b/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/shift_tests.c
new file mode 100644
index 0000000..ed83b63
--- /dev/null
+++ b/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/shift_tests.c
@@ -0,0 +1,31 @@
+#include "jtest.h"
+#include "basic_math_test_data.h"
+#include "arr_desc.h"
+#include "arm_math.h" /* FUTs */
+#include "ref.h" /* Reference Functions */
+#include "test_templates.h"
+#include "basic_math_templates.h"
+#include "type_abbrev.h"
+
+#define JTEST_ARM_SHIFT_TEST(suffix) \
+ BASIC_MATH_DEFINE_TEST_TEMPLATE_BUF1_ELT1_BLK( \
+ shift, \
+ suffix, \
+ TYPE_FROM_ABBREV(suffix), \
+ int8_t, /*elt_type*/ \
+ TYPE_FROM_ABBREV(suffix))
+
+JTEST_ARM_SHIFT_TEST(q31);
+JTEST_ARM_SHIFT_TEST(q15);
+JTEST_ARM_SHIFT_TEST(q7);
+
+/*--------------------------------------------------------------------------------*/
+/* Collect all tests in a group. */
+/*--------------------------------------------------------------------------------*/
+
+JTEST_DEFINE_GROUP(shift_tests)
+{
+ JTEST_TEST_CALL(arm_shift_q31_test);
+ JTEST_TEST_CALL(arm_shift_q15_test);
+ JTEST_TEST_CALL(arm_shift_q7_test);
+}
diff --git a/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/sub_tests.c b/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/sub_tests.c
new file mode 100644
index 0000000..a486842
--- /dev/null
+++ b/fw/cdc-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/src/basic_math_tests/sub_tests.c
@@ -0,0 +1,33 @@
+#include "jtest.h"
+#include "basic_math_test_data.h"
+#include "arr_desc.h"
+#include "arm_math.h" /* FUTs */
+#include "ref.h" /* Reference Functions */
+#include "test_templates.h"
+#include "basic_math_templates.h"
+#include "type_abbrev.h"
+
+#define JTEST_ARM_SUB_TEST(suffix) \
+ BASIC_MATH_DEFINE_TEST_TEMPLATE_BUF2_BLK( \
+ sub, \
+ suffix, \
+ TYPE_FROM_ABBREV(suffix), \
+ TYPE_FROM_ABBREV(suffix), \
+ BASIC_MATH_COMPARE_INTERFACE)
+
+JTEST_ARM_SUB_TEST(f32);
+JTEST_ARM_SUB_TEST(q31);
+JTEST_ARM_SUB_TEST(q15);
+JTEST_ARM_SUB_TEST(q7);
+
+/*--------------------------------------------------------------------------------*/
+/* Collect all tests in a group. */
+/*--------------------------------------------------------------------------------*/
+
+JTEST_DEFINE_GROUP(sub_tests)
+{
+ JTEST_TEST_CALL(arm_sub_f32_test);
+ JTEST_TEST_CALL(arm_sub_q31_test);
+ JTEST_TEST_CALL(arm_sub_q15_test);
+ JTEST_TEST_CALL(arm_sub_q7_test);
+}