| Index: third_party/openmax_dl/dl/sp/src/test/test_util.h
|
| diff --git a/third_party/openmax_dl/dl/sp/src/test/test_util.h b/third_party/openmax_dl/dl/sp/src/test/test_util.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..5851e123fba5d0277a2e7e7eac614a856cc0b15f
|
| --- /dev/null
|
| +++ b/third_party/openmax_dl/dl/sp/src/test/test_util.h
|
| @@ -0,0 +1,162 @@
|
| +/*
|
| + * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
|
| + *
|
| + * Use of this source code is governed by a BSD-style license
|
| + * that can be found in the LICENSE file in the root of the source
|
| + * tree. An additional intellectual property rights grant can be found
|
| + * in the file PATENTS. All contributing project authors may
|
| + * be found in the AUTHORS file in the root of the source tree.
|
| + */
|
| +
|
| +#ifndef WEBRTC_ARM_FFT_TEST_UTIL_H_
|
| +#define WEBRTC_ARM_FFT_TEST_UTIL_H_
|
| +
|
| +#include <stdio.h>
|
| +
|
| +#include "dl/sp/src/test/compare.h"
|
| +
|
| +/* Command line options */
|
| +struct Options {
|
| + /*
|
| + * Set to non-zero if test is only for real signals. This is just
|
| + * for printing out the correct usage message.
|
| + */
|
| + int real_only_;
|
| +
|
| + /* Debugging output level, used in test and non-test mode */
|
| + int verbose_;
|
| +
|
| + /* Test mode where all tests are run. */
|
| + int test_mode_;
|
| +
|
| + /* Run forward FFT tests (in test mode) */
|
| + int do_forward_tests_;
|
| +
|
| + /* Run inverse FFT tests (in test mode) */
|
| + int do_inverse_tests_;
|
| +
|
| + /* Minimum FFT order for test mode */
|
| + int min_fft_order_;
|
| +
|
| + /* Maximum FFT order for test mode */
|
| + int max_fft_order_;
|
| +
|
| + /* FFT Order */
|
| + int fft_log_size_;
|
| +
|
| + /* Forward FFT scale factor, only for for fixed-point routines */
|
| + int scale_factor_;
|
| +
|
| + /* Signal type to use for testing */
|
| + int signal_type_;
|
| +
|
| + /* Signal amplitude */
|
| + float signal_value_;
|
| +
|
| + /* Set if the command line options set a value for signalValue */
|
| + int signal_value_given_;
|
| +};
|
| +
|
| +/*
|
| + * Information about a test that is known to fail.
|
| + */
|
| +struct KnownTestFailures {
|
| + /* FFT order of the test */
|
| + int fft_order_;
|
| +
|
| + /* Set to non-zero for inverse FFT case. Otherwise, it's forward FFT */
|
| + int is_inverse_fft_test_;
|
| +
|
| + /* The test signal used */
|
| + int signal_type_;
|
| +};
|
| +
|
| +struct TestInfo {
|
| + /* True if test is for real signals */
|
| + int real_only_;
|
| +
|
| + /* Max FFT order to be tested */
|
| + int max_fft_order_;
|
| +
|
| + /* Min FFT order to be tested */
|
| + int min_fft_order_;
|
| +
|
| + /* True if forward FFT tests should be run */
|
| + int do_forward_tests_;
|
| +
|
| + /* True if inverse FFT tests should be run */
|
| + int do_inverse_tests_;
|
| +
|
| + /* SNR threshold for forward FFT tests */
|
| + float forward_threshold_;
|
| +
|
| + /* SNR threshold for inverse FFT tests */
|
| + float inverse_threshold_;
|
| +
|
| + /*
|
| + * Array of known test failures. Should either be 0 or point to
|
| + * an array of known failures, terminated by a test case with
|
| + * negative fftOrder.
|
| + */
|
| + struct KnownTestFailures* known_failures_;
|
| +};
|
| +
|
| +/*
|
| + * Set default options for the command line options. Must be called
|
| + * before call |processCommandLine|
|
| + */
|
| +void SetDefaultOptions(struct Options* options, int real_only,
|
| + int max_fft_order);
|
| +
|
| +/*
|
| + * Process the command line options
|
| + */
|
| +void ProcessCommandLine(struct Options* options, int argc, char* argv[],
|
| + const char* summary);
|
| +
|
| +/*
|
| + * Print command line options and their values, for debugging.
|
| + */
|
| +void DumpOptions(FILE*, const struct Options* options);
|
| +
|
| +/*
|
| + * Run one forward FFT test of the given size, signal type, and amplitude
|
| + */
|
| +float RunOneForwardTest(int fft_log_size, int signal_type,
|
| + float signal_value, struct SnrResult* snr);
|
| +
|
| +/*
|
| + * Run one inverse FFT test of the given size, signal type, and amplitude
|
| + */
|
| +float RunOneInverseTest(int fft_log_size, int signal_type,
|
| + float signal_value, struct SnrResult* snr);
|
| +
|
| +/*
|
| + * Run all FFT tests, as specified by |info|
|
| + */
|
| +void RunAllTests(const struct TestInfo* info);
|
| +
|
| +/*
|
| + * Returns the program name, for debugging.
|
| + */
|
| +char* ProgramName(char*);
|
| +
|
| +/*
|
| + * Return true if the specified FFT test is a known failure.
|
| + */
|
| +int IsKnownFailure(int fft_order, int is_forward_fft, int signal_type,
|
| + struct KnownTestFailures* known_failures);
|
| +
|
| +/*
|
| + * Neatly print the contents of an array to stdout.
|
| + */
|
| +void DumpArrayReal16(const char* array_name, int count, const OMX_S16* array);
|
| +void DumpArrayReal32(const char* array_name, int count, const OMX_S32* array);
|
| +void DumpArrayComplex16(const char* array_name, int count,
|
| + const OMX_SC16* array);
|
| +void DumpArrayComplex32(const char* array_name, int count,
|
| + const OMX_SC32* array);
|
| +void DumpArrayFloat(const char* array_name, int count, const OMX_F32* array);
|
| +void DumpArrayComplexFloat(const char* array_name, int count,
|
| + const OMX_FC32* array);
|
| +#endif
|
|
|