/*
 * 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
 */

#include <ztest.h>
#include <zephyr/zephyr.h>
#include <stdlib.h>
#include <arm_math.h>
#include "../../common/test_common.h"

#include "misc_q7.pat"

#define SNR_ERROR_THRESH	((float32_t)15)
#define ABS_ERROR_THRESH_Q7	((q7_t)5)

static void test_arm_correlate_q7(
	size_t in1_length, size_t in2_length, const q7_t *ref,
	size_t ref_length)
{
	q7_t *output;

	/* Allocate output buffer */
	output = calloc(ref_length, sizeof(q7_t));

	/* Run test function */
	arm_correlate_q7(in_com1, in1_length, in_com2, in2_length, output);

	/* Validate output */
	zassert_true(
		test_snr_error_q7(ref_length, ref, output, SNR_ERROR_THRESH),
		ASSERT_MSG_SNR_LIMIT_EXCEED);

	zassert_true(
		test_near_equal_q7(ref_length, ref, output,
			ABS_ERROR_THRESH_Q7),
		ASSERT_MSG_ABS_ERROR_LIMIT_EXCEED);

	/* Free output buffer */
	free(output);
}

#define DEFINE_CORRELATE_TEST(a, b) \
	DEFINE_TEST_VARIANT4( \
		arm_correlate_q7, a##_##b, a, b, \
		ref_correlate_##a##_##b, ARRAY_SIZE(ref_correlate_##a##_##b))

DEFINE_CORRELATE_TEST(30, 31);
DEFINE_CORRELATE_TEST(30, 32);
DEFINE_CORRELATE_TEST(30, 33);
DEFINE_CORRELATE_TEST(30, 34);
DEFINE_CORRELATE_TEST(30, 49);
DEFINE_CORRELATE_TEST(31, 31);
DEFINE_CORRELATE_TEST(31, 32);
DEFINE_CORRELATE_TEST(31, 33);
DEFINE_CORRELATE_TEST(31, 34);
DEFINE_CORRELATE_TEST(31, 49);
DEFINE_CORRELATE_TEST(32, 31);
DEFINE_CORRELATE_TEST(32, 32);
DEFINE_CORRELATE_TEST(32, 33);
DEFINE_CORRELATE_TEST(32, 34);
DEFINE_CORRELATE_TEST(32, 49);
DEFINE_CORRELATE_TEST(33, 31);
DEFINE_CORRELATE_TEST(33, 32);
DEFINE_CORRELATE_TEST(33, 33);
DEFINE_CORRELATE_TEST(33, 34);
DEFINE_CORRELATE_TEST(33, 49);
DEFINE_CORRELATE_TEST(48, 31);
DEFINE_CORRELATE_TEST(48, 32);
DEFINE_CORRELATE_TEST(48, 33);
DEFINE_CORRELATE_TEST(48, 34);
DEFINE_CORRELATE_TEST(48, 49);

static void test_arm_conv_q7(
	size_t in1_length, size_t in2_length, const q7_t *ref,
	size_t ref_length)
{
	q7_t *output;

	/* Allocate output buffer */
	output = calloc(ref_length, sizeof(q7_t));

	/* Run test function */
	arm_conv_q7(in_com1, in1_length, in_com2, in2_length, output);

	/* Validate output */
	zassert_true(
		test_snr_error_q7(ref_length, ref, output, SNR_ERROR_THRESH),
		ASSERT_MSG_SNR_LIMIT_EXCEED);

	zassert_true(
		test_near_equal_q7(ref_length, ref, output,
			ABS_ERROR_THRESH_Q7),
		ASSERT_MSG_ABS_ERROR_LIMIT_EXCEED);

	/* Free output buffer */
	free(output);
}

#define DEFINE_CONV_TEST(a, b) \
	DEFINE_TEST_VARIANT4( \
		arm_conv_q7, a##_##b, a, b, \
		ref_conv_##a##_##b, ARRAY_SIZE(ref_conv_##a##_##b))

DEFINE_CONV_TEST(30, 31);
DEFINE_CONV_TEST(30, 32);
DEFINE_CONV_TEST(30, 33);
DEFINE_CONV_TEST(30, 34);
DEFINE_CONV_TEST(30, 49);
DEFINE_CONV_TEST(31, 31);
DEFINE_CONV_TEST(31, 32);
DEFINE_CONV_TEST(31, 33);
DEFINE_CONV_TEST(31, 34);
DEFINE_CONV_TEST(31, 49);
DEFINE_CONV_TEST(32, 31);
DEFINE_CONV_TEST(32, 32);
DEFINE_CONV_TEST(32, 33);
DEFINE_CONV_TEST(32, 34);
DEFINE_CONV_TEST(32, 49);
DEFINE_CONV_TEST(33, 31);
DEFINE_CONV_TEST(33, 32);
DEFINE_CONV_TEST(33, 33);
DEFINE_CONV_TEST(33, 34);
DEFINE_CONV_TEST(33, 49);
DEFINE_CONV_TEST(48, 31);
DEFINE_CONV_TEST(48, 32);
DEFINE_CONV_TEST(48, 33);
DEFINE_CONV_TEST(48, 34);
DEFINE_CONV_TEST(48, 49);

#ifdef CONFIG_CMSIS_DSP_TEST_FILTERING_MISC_CONV_PARTIAL
static void test_arm_conv_partial_q7(
	size_t first, size_t in1_length, size_t in2_length, const q7_t *ref,
	size_t ref_length)
{
	q7_t *output;
	q7_t *temp;
	arm_status status;

	/* Allocate output buffer */
	output = calloc(first + ref_length, sizeof(q7_t));
	temp = calloc(ref_length, sizeof(q7_t));

	/* Run test function */
	status = arm_conv_partial_q7(
			in_partial1, in1_length, in_partial2, in2_length,
			output, first, ref_length);

	zassert_equal(status, ARM_MATH_SUCCESS,
		      ASSERT_MSG_INCORRECT_COMP_RESULT);

	memcpy(temp, &output[first], ref_length * sizeof(q7_t));

	/* Validate output */
	zassert_true(
		test_snr_error_q7(ref_length, ref, temp, SNR_ERROR_THRESH),
		ASSERT_MSG_SNR_LIMIT_EXCEED);

	zassert_true(
		test_near_equal_q7(ref_length, ref, temp,
			ABS_ERROR_THRESH_Q7),
		ASSERT_MSG_ABS_ERROR_LIMIT_EXCEED);

	/* Free output buffer */
	free(output);
	free(temp);
}

static void test_arm_conv_partial_opt_q7(
	size_t first, size_t in1_length, size_t in2_length, const q7_t *ref,
	size_t ref_length)
{
	q7_t *output;
	q7_t *temp;
	q15_t *scratch1, *scratch2;
	arm_status status;

	/* Allocate output buffer */
	output = calloc(first + ref_length, sizeof(q7_t));
	temp = calloc(ref_length, sizeof(q7_t));
	scratch1 = calloc(24, sizeof(q15_t));
	scratch2 = calloc(24, sizeof(q15_t));

	/* Run test function */
	status = arm_conv_partial_opt_q7(
			in_partial1, in1_length, in_partial2, in2_length,
			output, first, ref_length,
			scratch1, scratch2);

	zassert_equal(status, ARM_MATH_SUCCESS,
		      ASSERT_MSG_INCORRECT_COMP_RESULT);

	memcpy(temp, &output[first], ref_length * sizeof(q7_t));

	/* Validate output */
	zassert_true(
		test_snr_error_q7(ref_length, ref, temp, SNR_ERROR_THRESH),
		ASSERT_MSG_SNR_LIMIT_EXCEED);

	zassert_true(
		test_near_equal_q7(ref_length, ref, temp,
			ABS_ERROR_THRESH_Q7),
		ASSERT_MSG_ABS_ERROR_LIMIT_EXCEED);

	/* Free output buffer */
	free(output);
	free(temp);
	free(scratch1);
	free(scratch2);
}
#else
static void test_arm_conv_partial_q7(
	size_t first, size_t in1_length, size_t in2_length, const q7_t *ref,
	size_t ref_length)
{
	ztest_test_skip();
}

static void test_arm_conv_partial_opt_q7(
	size_t first, size_t in1_length, size_t in2_length, const q7_t *ref,
	size_t ref_length)
{
	ztest_test_skip();
}
#endif /* CONFIG_CMSIS_DSP_TEST_FILTERING_MISC_CONV_PARTIAL */

#define DEFINE_CONV_PARTIAL_TEST(a, b, c) \
	DEFINE_TEST_VARIANT5( \
		arm_conv_partial_q7, a##_##b##_##c, a, b, c, \
		ref_conv_partial_##a##_##b##_##c, \
		ARRAY_SIZE(ref_conv_partial_##a##_##b##_##c)) \
	DEFINE_TEST_VARIANT5( \
		arm_conv_partial_opt_q7, a##_##b##_##c, a, b, c, \
		ref_conv_partial_##a##_##b##_##c, \
		ARRAY_SIZE(ref_conv_partial_##a##_##b##_##c))

DEFINE_CONV_PARTIAL_TEST(3, 6, 8);
DEFINE_CONV_PARTIAL_TEST(9, 6, 8);
DEFINE_CONV_PARTIAL_TEST(7, 6, 8);

void test_filtering_misc_q7(void)
{
	ztest_test_suite(filtering_misc_q7,
		ztest_unit_test(test_arm_correlate_q7_30_31),
		ztest_unit_test(test_arm_correlate_q7_30_32),
		ztest_unit_test(test_arm_correlate_q7_30_33),
		ztest_unit_test(test_arm_correlate_q7_30_34),
		ztest_unit_test(test_arm_correlate_q7_30_49),
		ztest_unit_test(test_arm_correlate_q7_31_31),
		ztest_unit_test(test_arm_correlate_q7_31_32),
		ztest_unit_test(test_arm_correlate_q7_31_33),
		ztest_unit_test(test_arm_correlate_q7_31_34),
		ztest_unit_test(test_arm_correlate_q7_31_49),
		ztest_unit_test(test_arm_correlate_q7_32_31),
		ztest_unit_test(test_arm_correlate_q7_32_32),
		ztest_unit_test(test_arm_correlate_q7_32_33),
		ztest_unit_test(test_arm_correlate_q7_32_34),
		ztest_unit_test(test_arm_correlate_q7_32_49),
		ztest_unit_test(test_arm_correlate_q7_33_31),
		ztest_unit_test(test_arm_correlate_q7_33_32),
		ztest_unit_test(test_arm_correlate_q7_33_33),
		ztest_unit_test(test_arm_correlate_q7_33_34),
		ztest_unit_test(test_arm_correlate_q7_33_49),
		ztest_unit_test(test_arm_correlate_q7_48_31),
		ztest_unit_test(test_arm_correlate_q7_48_32),
		ztest_unit_test(test_arm_correlate_q7_48_33),
		ztest_unit_test(test_arm_correlate_q7_48_34),
		ztest_unit_test(test_arm_correlate_q7_48_49),
		ztest_unit_test(test_arm_conv_q7_30_31),
		ztest_unit_test(test_arm_conv_q7_30_32),
		ztest_unit_test(test_arm_conv_q7_30_33),
		ztest_unit_test(test_arm_conv_q7_30_34),
		ztest_unit_test(test_arm_conv_q7_30_49),
		ztest_unit_test(test_arm_conv_q7_31_31),
		ztest_unit_test(test_arm_conv_q7_31_32),
		ztest_unit_test(test_arm_conv_q7_31_33),
		ztest_unit_test(test_arm_conv_q7_31_34),
		ztest_unit_test(test_arm_conv_q7_31_49),
		ztest_unit_test(test_arm_conv_q7_32_31),
		ztest_unit_test(test_arm_conv_q7_32_32),
		ztest_unit_test(test_arm_conv_q7_32_33),
		ztest_unit_test(test_arm_conv_q7_32_34),
		ztest_unit_test(test_arm_conv_q7_32_49),
		ztest_unit_test(test_arm_conv_q7_33_31),
		ztest_unit_test(test_arm_conv_q7_33_32),
		ztest_unit_test(test_arm_conv_q7_33_33),
		ztest_unit_test(test_arm_conv_q7_33_34),
		ztest_unit_test(test_arm_conv_q7_33_49),
		ztest_unit_test(test_arm_conv_q7_48_31),
		ztest_unit_test(test_arm_conv_q7_48_32),
		ztest_unit_test(test_arm_conv_q7_48_33),
		ztest_unit_test(test_arm_conv_q7_48_34),
		ztest_unit_test(test_arm_conv_q7_48_49),
		ztest_unit_test(test_arm_conv_partial_q7_3_6_8),
		ztest_unit_test(test_arm_conv_partial_q7_9_6_8),
		ztest_unit_test(test_arm_conv_partial_q7_7_6_8),
		ztest_unit_test(test_arm_conv_partial_opt_q7_3_6_8),
		ztest_unit_test(test_arm_conv_partial_opt_q7_9_6_8),
		ztest_unit_test(test_arm_conv_partial_opt_q7_7_6_8)
		);

	ztest_run_test_suite(filtering_misc_q7);
}
