summaryrefslogtreecommitdiff
path: root/tests/use_case/noise_reduction/RNNNoiseUCTests.cc
diff options
context:
space:
mode:
Diffstat (limited to 'tests/use_case/noise_reduction/RNNNoiseUCTests.cc')
-rw-r--r--tests/use_case/noise_reduction/RNNNoiseUCTests.cc85
1 files changed, 46 insertions, 39 deletions
diff --git a/tests/use_case/noise_reduction/RNNNoiseUCTests.cc b/tests/use_case/noise_reduction/RNNNoiseUCTests.cc
index d835c21..7f9ff19 100644
--- a/tests/use_case/noise_reduction/RNNNoiseUCTests.cc
+++ b/tests/use_case/noise_reduction/RNNNoiseUCTests.cc
@@ -1,6 +1,6 @@
/*
- * SPDX-FileCopyrightText: Copyright 2021-2022 Arm Limited and/or its affiliates <open-source-office@arm.com>
- * SPDX-License-Identifier: Apache-2.0
+ * SPDX-FileCopyrightText: Copyright 2021-2022 Arm Limited and/or its affiliates
+ * <open-source-office@arm.com> SPDX-License-Identifier: Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,13 +14,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#include "RNNoiseModel.hpp"
-#include "UseCaseHandler.hpp"
+#include "BufAttributes.hpp"
#include "InputFiles.hpp"
+#include "Profiler.hpp"
#include "RNNUCTestCaseData.hpp"
-#include "BufAttributes.hpp"
+#include "RNNoiseModel.hpp"
+#include "UseCaseHandler.hpp"
#include "hal.h"
-#include "Profiler.hpp"
#include <catch.hpp>
@@ -34,13 +34,13 @@ namespace app {
} /* namespace app */
} /* namespace arm */
-#define PLATFORM hal_platform_init();
+#define PLATFORM hal_platform_init();
-#define CONTEXT \
-arm::app::ApplicationContext caseContext; \
-arm::app::Profiler profiler{"noise_reduction"}; \
-caseContext.Set<arm::app::Profiler&>("profiler", profiler); \
-caseContext.Set<arm::app::RNNoiseModel&>("model", model);
+#define CONTEXT \
+ arm::app::ApplicationContext caseContext; \
+ arm::app::Profiler profiler{"noise_reduction"}; \
+ caseContext.Set<arm::app::Profiler&>("profiler", profiler); \
+ caseContext.Set<arm::app::RNNoiseModel&>("model", model);
TEST_CASE("Verify output tensor memory dump")
{
@@ -56,12 +56,12 @@ TEST_CASE("Verify output tensor memory dump")
/* Populate the output tensors */
const size_t numOutputs = model.GetNumOutputs();
- size_t sizeToWrite = 0;
- size_t lastTensorSize = model.GetOutputTensor(numOutputs - 1)->bytes;
+ size_t sizeToWrite = 0;
+ size_t lastTensorSize = model.GetOutputTensor(numOutputs - 1)->bytes;
for (size_t i = 0; i < numOutputs; ++i) {
TfLiteTensor* tensor = model.GetOutputTensor(i);
- auto* tData = tflite::GetTensorData<uint8_t>(tensor);
+ auto* tData = tflite::GetTensorData<uint8_t>(tensor);
if (tensor->bytes > 0) {
memset(tData, static_cast<uint8_t>(i), tensor->bytes);
@@ -69,7 +69,6 @@ TEST_CASE("Verify output tensor memory dump")
}
}
-
SECTION("Positive use case")
{
/* Run the memory dump */
@@ -80,7 +79,7 @@ TEST_CASE("Verify output tensor memory dump")
size_t k = 0;
for (size_t i = 0; i < numOutputs && k < memPool.size(); ++i) {
TfLiteTensor* tensor = model.GetOutputTensor(i);
- auto* tData = tflite::GetTensorData<uint8_t>(tensor);
+ auto* tData = tflite::GetTensorData<uint8_t>(tensor);
for (size_t j = 0; j < tensor->bytes && k < memPool.size(); ++j) {
REQUIRE(tData[j] == memPool[k++]);
@@ -126,28 +125,31 @@ TEST_CASE("Inference run all clips", "[RNNoise]")
REQUIRE(arm::app::NoiseReductionHandler(caseContext, true));
}
-std::function<uint32_t(const uint32_t)> get_golden_input_p232_208_array_size(const uint32_t numberOfFeatures) {
+std::function<uint32_t(const uint32_t)>
+get_golden_input_p232_208_array_size(const uint32_t numberOfFeatures)
+{
- return [numberOfFeatures](const uint32_t) -> uint32_t{
- return numberOfFeatures;
- };
+ return [numberOfFeatures](const uint32_t) -> uint32_t { return numberOfFeatures; };
}
-const char* get_test_filename(const uint32_t idx) {
- auto name = get_filename(idx);
+const char* get_test_filename(const uint32_t idx)
+{
+ auto name = GetFilename(idx);
REQUIRE(std::string("p232_208.wav") == name);
return "p232_208.wav";
}
-void testInfByIndex(std::vector<uint32_t>& numberOfInferences) {
+void testInfByIndex(std::vector<uint32_t>& numberOfInferences)
+{
PLATFORM
arm::app::RNNoiseModel model;
CONTEXT
- caseContext.Set<std::function<const int16_t*(const uint32_t)>>("features", get_audio_array);
- caseContext.Set<std::function<const char* (const uint32_t)>>("featureFileNames", get_test_filename);
+ caseContext.Set<std::function<const int16_t*(const uint32_t)>>("features", GetAudioArray);
+ caseContext.Set<std::function<const char*(const uint32_t)>>("featureFileNames",
+ get_test_filename);
caseContext.Set<uint32_t>("frameLength", arm::app::rnn::g_FrameLength);
caseContext.Set<uint32_t>("frameStride", arm::app::rnn::g_FrameStride);
caseContext.Set<uint32_t>("numInputFeatures", arm::app::rnn::g_NumInputFeatures);
@@ -160,18 +162,21 @@ void testInfByIndex(std::vector<uint32_t>& numberOfInferences) {
size_t oneInferenceOutSizeBytes = arm::app::rnn::g_FrameLength * sizeof(int16_t);
auto infIndex = 0;
- for (auto numInf: numberOfInferences) {
- DYNAMIC_SECTION("Number of features: "<< numInf) {
- caseContext.Set<uint32_t>("clipIndex", 1); /* Only getting p232_208.wav for tests. */
+ for (auto numInf : numberOfInferences) {
+ DYNAMIC_SECTION("Number of features: " << numInf)
+ {
+ caseContext.Set<uint32_t>("clipIndex", 1); /* Only getting p232_208.wav for tests. */
uint32_t audioSizeInput = numInf * arm::app::rnn::g_FrameLength;
- caseContext.Set<std::function<uint32_t(const uint32_t)>>("featureSizes",
- get_golden_input_p232_208_array_size(audioSizeInput));
+ caseContext.Set<std::function<uint32_t(const uint32_t)>>(
+ "featureSizes", get_golden_input_p232_208_array_size(audioSizeInput));
- size_t headerNumBytes = 4 + 12 + 4; /* Filename length, filename (12 for p232_208.wav), dump size. */
- size_t footerNumBytes = 4; /* Eof value. */
- size_t memDumpMaxLenBytes = headerNumBytes + footerNumBytes + oneInferenceOutSizeBytes * numInf;
+ size_t headerNumBytes =
+ 4 + 12 + 4; /* Filename length, filename (12 for p232_208.wav), dump size. */
+ size_t footerNumBytes = 4; /* Eof value. */
+ size_t memDumpMaxLenBytes =
+ headerNumBytes + footerNumBytes + oneInferenceOutSizeBytes * numInf;
- std::vector<uint8_t > memDump(memDumpMaxLenBytes);
+ std::vector<uint8_t> memDump(memDumpMaxLenBytes);
size_t undefMemDumpBytesWritten = 0;
caseContext.Set<size_t>("MEM_DUMP_LEN", memDumpMaxLenBytes);
caseContext.Set<uint8_t*>("MEM_DUMP_BASE_ADDR", memDump.data());
@@ -199,8 +204,9 @@ void testInfByIndex(std::vector<uint32_t>& numberOfInferences) {
TEST_CASE("Inference by index - one inference", "[RNNoise]")
{
- auto totalAudioSize = get_audio_array_size(1);
- REQUIRE(64757 == totalAudioSize); /* Checking that the input file is as expected and has not changed. */
+ auto totalAudioSize = GetAudioArraySize(1);
+ REQUIRE(64757 ==
+ totalAudioSize); /* Checking that the input file is as expected and has not changed. */
/* Run 1 inference */
std::vector<uint32_t> numberOfInferences = {1};
@@ -209,8 +215,9 @@ TEST_CASE("Inference by index - one inference", "[RNNoise]")
TEST_CASE("Inference by index - several inferences", "[RNNoise]")
{
- auto totalAudioSize = get_audio_array_size(1);
- REQUIRE(64757 == totalAudioSize); /* Checking that the input file is as expected and has not changed. */
+ auto totalAudioSize = GetAudioArraySize(1);
+ REQUIRE(64757 ==
+ totalAudioSize); /* Checking that the input file is as expected and has not changed. */
/* 3 different inference amounts: 1, 2 and all inferences required to cover total feature set */
uint32_t totalInferences = totalAudioSize / arm::app::rnn::g_FrameLength;