diff --git a/tests/common/AppContextTest.cc b/tests/common/AppContextTest.cc
new file mode 100644
index 0000000..42b142d
--- /dev/null
+++ b/tests/common/AppContextTest.cc
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "AppContext.hpp"
+
+#include <catch.hpp>
+
+TEST_CASE("Common: Application context")
+{
+    SECTION("Add primitive type Parameter")
+    {
+        arm::app::ApplicationContext context;
+        context.Set<uint32_t>("imgIndex", 0);
+        auto data = context.Get<uint32_t>("imgIndex");
+
+        REQUIRE(0 == data);
+
+    }
+
+    SECTION("Add object parameter")
+    {
+        arm::app::ApplicationContext context;
+        std::vector <std::string> vect{"a"};
+        context.Set<std::vector <std::string>>("vect", vect);
+        auto data = context.Get<std::vector <std::string>>("vect");
+
+        REQUIRE(vect == data);
+    }
+
+    SECTION("Add reference object parameter")
+    {
+        arm::app::ApplicationContext context;
+        std::vector <std::string> vect{"a"};
+        context.Set<std::vector <std::string>&>("vect", vect);
+        auto data = context.Get<std::vector <std::string>&>("vect");
+
+        REQUIRE(vect == data);
+    }
+
+    SECTION("Add object pointer parameter")
+    {
+        arm::app::ApplicationContext context;
+        std::vector <std::string>* vect = new std::vector <std::string>{"a"};
+        context.Set<std::vector <std::string>*>("vect", vect);
+        auto data = context.Get<std::vector <std::string>*>("vect");
+
+        REQUIRE(vect == data);
+        delete(vect);
+    }
+}
\ No newline at end of file
diff --git a/tests/common/ClassifierTests.cc b/tests/common/ClassifierTests.cc
new file mode 100644
index 0000000..f08a09a
--- /dev/null
+++ b/tests/common/ClassifierTests.cc
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "Classifier.hpp"
+
+#include <catch.hpp>
+
+TEST_CASE("Common classifier")
+{
+    SECTION("Test invalid classifier")
+    {
+        TfLiteTensor* outputTens = nullptr;
+        std::vector <arm::app::ClassificationResult> resultVec;
+        arm::app::Classifier classifier;
+        REQUIRE(!classifier.GetClassificationResults(outputTens, resultVec, {}, 5));
+    }
+
+    SECTION("Test valid classifier UINT8")
+    {
+        const int dimArray[] = {1, 1001};
+        std::vector <std::string> labels(1001);
+        std::vector <uint8_t> outputVec(1001);
+        TfLiteIntArray* dims= tflite::testing::IntArrayFromInts(dimArray);
+        TfLiteTensor tfTensor = tflite::testing::CreateQuantizedTensor(
+                outputVec.data(), dims, 1, 0, "test");
+        TfLiteTensor* outputTensor = &tfTensor;
+        std::vector <arm::app::ClassificationResult> resultVec;
+        arm::app::Classifier classifier;
+        REQUIRE(classifier.GetClassificationResults(outputTensor, resultVec, labels, 5));
+        REQUIRE(5 == resultVec.size());
+    }
+
+    SECTION("Get classification results")
+    {
+        const int dimArray[] = {1, 1001};
+        std::vector <std::string> labels(1001);
+        std::vector<uint8_t> outputVec(1001, static_cast<uint8_t>(5));
+        TfLiteIntArray* dims= tflite::testing::IntArrayFromInts(dimArray);
+        TfLiteTensor tfTensor = tflite::testing::CreateQuantizedTensor(
+                outputVec.data(), dims, 1, 0, "test");
+        TfLiteTensor* outputTensor = &tfTensor;
+
+        std::vector <arm::app::ClassificationResult> resultVec;
+
+        /* Set the top five results. */
+        std::vector<std::pair<uint32_t, uint8_t>> selectedResults {
+                {0, 8}, {20, 7}, {10, 7}, {15, 9}, {1000, 10}};
+
+        for (size_t i = 0; i < selectedResults.size(); ++i) {
+            outputVec[selectedResults[i].first] = selectedResults[i].second;
+        }
+
+        arm::app::Classifier classifier;
+        REQUIRE(classifier.GetClassificationResults(outputTensor, resultVec, labels, 5));
+        REQUIRE(5 == resultVec.size());
+
+        REQUIRE(resultVec[0].m_labelIdx == 1000);
+        REQUIRE(resultVec[1].m_labelIdx == 15);
+        REQUIRE(resultVec[2].m_labelIdx == 0);
+        REQUIRE(resultVec[3].m_labelIdx == 20);
+        REQUIRE(resultVec[4].m_labelIdx == 10);
+    }
+}
diff --git a/tests/common/ProfilerTests.cc b/tests/common/ProfilerTests.cc
new file mode 100644
index 0000000..caf492b
--- /dev/null
+++ b/tests/common/ProfilerTests.cc
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "Profiler.hpp"
+
+#include "AppContext.hpp"
+#include "TensorFlowLiteMicro.hpp"
+
+#include <catch.hpp>
+#include <iostream>
+
+
+TEST_CASE("Common: Test Profiler")
+{
+    hal_platform    platform;
+    data_acq_module data_acq {};
+    data_psn_module data_psn {};
+    platform_timer  timer {};
+
+    /* Initialise the HAL and platform. */
+    hal_init(&platform, &data_acq, &data_psn, &timer);
+    hal_platform_init(&platform);
+
+    /* An invalid profiler shouldn't be of much use. */
+    arm::app::Profiler profilerInvalid {nullptr, "test_invalid"};
+    REQUIRE(false == profilerInvalid.StartProfiling());
+    REQUIRE(false == profilerInvalid.StopProfiling());
+
+    arm::app::Profiler profilerValid{&platform, "test_valid"};
+    REQUIRE(true == profilerValid.StartProfiling());
+    REQUIRE(true == profilerValid.StopProfiling());
+
+    std::string strProfile = profilerValid.GetResultsAndReset();
+    REQUIRE(std::string::npos != strProfile.find("test_valid"));
+
+#if defined(CPU_PROFILE_ENABLED)
+    /* We should have milliseconds elapsed. */
+    REQUIRE(std::string::npos != strProfile.find("ms"));
+#endif /* defined(CPU_PROFILE_ENABLED) */
+
+    /* Abuse should fail: */
+    REQUIRE(false == profilerValid.StopProfiling());  /* We need to start it first. */
+    REQUIRE(true == profilerValid.StartProfiling());  /* Should be able to start it fine. */
+    REQUIRE(false == profilerValid.StartProfiling()); /* Can't restart it without resetting. */
+    profilerValid.Reset();                            /* Reset. */
+    REQUIRE(true == profilerValid.StartProfiling());  /* Can start it again now. */
+    REQUIRE(true == profilerValid.StopProfiling());   /* Can start it again now. */
+}
diff --git a/tests/common/SlidingWindowTests.cc b/tests/common/SlidingWindowTests.cc
new file mode 100644
index 0000000..bfdb5b7
--- /dev/null
+++ b/tests/common/SlidingWindowTests.cc
@@ -0,0 +1,266 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "AudioUtils.hpp"
+#include "catch.hpp"
+
+TEST_CASE("Common: Slide long data")
+{
+    std::vector<int> test{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
+
+    SECTION("Fit the data")
+    {
+        auto slider = arm::app::audio::SlidingWindow<int>(test.data(), test.size(), 1, 1);
+
+        for (int i = 0 ; i < 10; ++i) {
+            REQUIRE(slider.HasNext());
+            REQUIRE(*slider.Next() == i + 1);
+        }
+
+        REQUIRE(!slider.HasNext());
+        REQUIRE(nullptr == slider.Next());
+    }
+
+    SECTION("Fit the data stride> window")
+    {
+        auto slider = arm::app::audio::SlidingWindow<int>(test.data(), test.size(), 2, 3);
+
+        REQUIRE(slider.HasNext());
+        REQUIRE(*slider.Next() == 1);
+
+        REQUIRE(slider.HasNext());
+        REQUIRE(*slider.Next() == 4);
+
+        REQUIRE(slider.HasNext());
+        REQUIRE(*slider.Next() == 7);
+
+        REQUIRE(!slider.HasNext());
+        REQUIRE(nullptr == slider.Next());
+    }
+
+    SECTION("Fit the data stride < window")
+    {
+        auto slider = arm::app::audio::SlidingWindow<int>(test.data(), test.size(), 5, 1);
+
+        for (int i = 0 ; i < 6; i++) {
+            REQUIRE(slider.HasNext());
+            REQUIRE(*slider.Next() == i + 1);
+        }
+
+        REQUIRE(!slider.HasNext());
+        REQUIRE(nullptr == slider.Next());
+    }
+}
+
+
+TEST_CASE("Common: Slide data size 1")
+{
+    std::vector<int> test{1};
+
+    SECTION("Fit the data")
+    {
+        auto slider = arm::app::audio::SlidingWindow<int>(test.data(), test.size(), 1, 1);
+
+        REQUIRE(slider.HasNext());
+        REQUIRE(*slider.Next() == 1);
+        REQUIRE(!slider.HasNext());
+        REQUIRE(nullptr == slider.Next());
+    }
+
+    SECTION("Does not Fit the data because of big window")
+    {
+        auto slider = arm::app::audio::SlidingWindow<int>(test.data(), test.size(), 2, 1);
+
+        REQUIRE(!slider.HasNext());
+        REQUIRE(nullptr == slider.Next());
+    }
+
+    SECTION("Does not Fit the data because of big stride")
+    {
+        auto slider = arm::app::audio::SlidingWindow<int>(test.data(), test.size(), 1, 2);
+
+        REQUIRE(slider.HasNext());
+        REQUIRE(*slider.Next() == 1);
+        REQUIRE(!slider.HasNext());
+        REQUIRE(nullptr == slider.Next());
+    }
+
+}
+
+
+TEST_CASE("Common: Slide reset")
+{
+    SECTION("current range")
+    {
+        std::vector<int> test{1};
+        auto slider = arm::app::audio::SlidingWindow<int>(test.data(), test.size(), 1, 1);
+        int *saved = slider.Next();
+        slider.Reset();
+
+        REQUIRE(slider.Next() == saved);
+    }
+
+    SECTION("new range")
+    {
+        std::vector<int> test{1};
+        std::vector<int> test2{100};
+        auto slider = arm::app::audio::SlidingWindow<int>(test.data(), test.size(), 1, 1);
+        slider.Next();
+        slider.Reset(test2.data());
+
+        REQUIRE(*slider.Next() == 100);
+    }
+}
+
+
+TEST_CASE("Common: Slide fast forward")
+{
+    std::vector<int> test{1, 2, 3, 4, 5};
+
+    auto slider = arm::app::audio::SlidingWindow<int>(test.data(), test.size(), 1, 1);
+    SECTION("at the beginning") {
+        slider.FastForward(3);
+
+        REQUIRE(slider.HasNext());
+        REQUIRE(*slider.Next() == 4);
+    }
+
+    SECTION("in the middle")
+    {
+        slider.Next();
+        slider.FastForward(3);
+
+        REQUIRE(slider.HasNext());
+        REQUIRE(*slider.Next() == 4);
+    }
+
+    SECTION("at the end")
+    {
+        while(slider.HasNext()) {
+            slider.Next();
+        }
+        slider.FastForward(3);
+
+        REQUIRE(slider.HasNext());
+        REQUIRE(*slider.Next() == 4);
+    }
+
+    SECTION("out of the range")
+    {
+        slider.FastForward(100);
+
+        REQUIRE(!slider.HasNext());
+        REQUIRE(slider.Next() == nullptr);
+    }
+}
+
+
+TEST_CASE("Common: Slide Index")
+{
+    std::vector<int> test{1, 2, 3, 4, 5};
+    auto slider = arm::app::audio::SlidingWindow<int>(test.data(), test.size(), 1, 1);
+    REQUIRE(slider.Index() == 0);
+    for (int i = 0; i < 5; i++) {
+        slider.Next();
+        REQUIRE(slider.Index() == i);
+    }
+}
+
+
+TEST_CASE("Common: Total strides") 
+{
+    std::vector<int> test{1, 2, 3, 4, 5};
+
+    SECTION("Element by element")
+    {
+        auto slider = arm::app::audio::SlidingWindow<int>(test.data(), test.size(), 1, 1);
+        REQUIRE(slider.TotalStrides() == 4 );
+    }
+
+    SECTION("Step through element")
+    {
+        auto slider = arm::app::audio::SlidingWindow<int>(test.data(), test.size(), 1, 2);
+        REQUIRE(slider.TotalStrides() == 2 );
+    }
+
+    SECTION("Window = data")
+    {
+        auto slider = arm::app::audio::SlidingWindow<int>(test.data(), test.size(), 5, 2);
+        REQUIRE(slider.TotalStrides() == 0 );
+    }
+
+    SECTION("Window > data")
+    {
+        auto slider = arm::app::audio::SlidingWindow<int>(test.data(), test.size(), 6, 2);
+        REQUIRE(slider.TotalStrides() == 0 );
+    }
+
+    SECTION("Window < data, not enough for the next stride")
+    {
+        auto slider = arm::app::audio::SlidingWindow<int>(test.data(), test.size(), 4, 2);
+        REQUIRE(slider.TotalStrides() == 0 );
+    }
+}
+
+
+TEST_CASE("Common: Next window data index")
+{
+    std::vector<int> test{1, 2, 3, 4, 5};
+
+    /* Check we get the correct index returned */
+    SECTION("Stride 1")
+    {
+        auto slider = arm::app::audio::ASRSlidingWindow<int>(test.data(), test.size(), 1, 1);
+        REQUIRE(slider.NextWindowStartIndex() == 0);
+        slider.Next();
+        REQUIRE(slider.NextWindowStartIndex() == 1);
+        slider.Next();
+        REQUIRE(slider.NextWindowStartIndex() == 2);
+        slider.Next();
+        REQUIRE(slider.NextWindowStartIndex() == 3);
+        slider.Next();
+        REQUIRE(slider.NextWindowStartIndex() == 4);
+        slider.Next();
+        REQUIRE(slider.NextWindowStartIndex() == 5);
+        slider.Next();
+        REQUIRE(slider.NextWindowStartIndex() == 5);
+    }
+
+    SECTION("Stride 2")
+    {
+        auto slider = arm::app::audio::ASRSlidingWindow<int>(test.data(), test.size(), 1, 2);
+        REQUIRE(slider.NextWindowStartIndex() == 0);
+        slider.Next();
+        REQUIRE(slider.NextWindowStartIndex() == 2);
+        REQUIRE(slider.NextWindowStartIndex() == 2);
+        slider.Next();
+        REQUIRE(slider.NextWindowStartIndex() == 4);
+    }
+
+    SECTION("Stride 3")
+    {
+        auto slider = arm::app::audio::ASRSlidingWindow<int>(test.data(), test.size(), 1, 3);
+        REQUIRE(slider.NextWindowStartIndex() == 0);
+        slider.Next();
+        REQUIRE(slider.NextWindowStartIndex() == 3);
+        REQUIRE(slider.NextWindowStartIndex() == 3);
+        slider.Next();
+        REQUIRE(slider.NextWindowStartIndex() == 6);
+        REQUIRE(!slider.HasNext());
+        REQUIRE(slider.Next() == nullptr);
+        REQUIRE(slider.NextWindowStartIndex() == 6);
+    }
+}
diff --git a/tests/resources/golden_fv/AdGoldenInput.hpp b/tests/resources/golden_fv/AdGoldenInput.hpp
new file mode 100644
index 0000000..41d1a89
--- /dev/null
+++ b/tests/resources/golden_fv/AdGoldenInput.hpp
@@ -0,0 +1,132 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef AD_GOLDEN_OUTPUTS_HPP
+#define AD_GOLDEN_OUTPUTS_HPP
+
+#include "Model.hpp"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
+#ifndef AD_FEATURE_VEC_DATA_SIZE
+#define AD_IN_FEATURE_VEC_DATA_SIZE       (1024)
+#define AD_OUT_FEATURE_VEC_DATA_SIZE       (8)
+#endif /* AD_FEATURE_VEC_DATA_SIZE */
+
+/* Golden input. */
+uint8_t ad_golden_input[AD_IN_FEATURE_VEC_DATA_SIZE] = {
+  0x7a, 0x7c, 0x7f, 0x7c, 0x7b, 0x61, 0x7f, 0x75, 0x7f, 0x6b, 0x6d, 0x71,
+  0x7f, 0x6e, 0x7a, 0x76, 0x7f, 0x7f, 0x65, 0x7f, 0x7f, 0x6f, 0x5d, 0x67,
+  0x7f, 0x5b, 0x7a, 0x43, 0x65, 0x69, 0x4e, 0x63, 0x5f, 0x56, 0x4e, 0x64,
+  0x36, 0x4a, 0x3c, 0x56, 0x3a, 0x61, 0x71, 0x74, 0x72, 0x6f, 0x71, 0x71,
+  0x66, 0x7b, 0x68, 0x62, 0x44, 0x5f, 0x2f, 0x3d, 0x56, 0x5b, 0x5b, 0x4d,
+  0x5f, 0x59, 0x58, 0x6e, 0x4f, 0x3d, 0x48, 0x5f, 0x46, 0x38, 0x48, 0x4f,
+  0x46, 0x74, 0x6d, 0x61, 0x60, 0x63, 0x6a, 0x68, 0x62, 0x69, 0x63, 0x5c,
+  0x6e, 0x4d, 0x4c, 0x3c, 0x5a, 0x55, 0x4a, 0x5d, 0x59, 0x66, 0x67, 0x6c,
+  0x55, 0x40, 0x49, 0x47, 0x56, 0x61, 0x48, 0x4d, 0x64, 0x61, 0x77, 0x7e,
+  0x37, 0x63, 0x52, 0x3e, 0x57, 0x4d, 0x54, 0x4f, 0x3b, 0x4c, 0x54, 0x50,
+  0x55, 0x4c, 0x57, 0x58, 0x45, 0x7b, 0x74, 0x58, 0x39, 0x34, 0x3c, 0x38,
+  0x3e, 0x1e, 0x22, 0x46, 0x2c, 0x7a, 0x6e, 0x74, 0x72, 0x70, 0x61, 0x7d,
+  0x69, 0x79, 0x66, 0x3c, 0x33, 0x20, 0x3a, 0x20, 0x34, 0x29, 0x3c, 0x4e,
+  0x47, 0x5b, 0x78, 0x47, 0x36, 0x30, 0x18, 0x45, 0x24, 0x25, 0x2c, 0x75,
+  0x71, 0x70, 0x7f, 0x73, 0x6c, 0x6c, 0x77, 0x6a, 0x6d, 0x6b, 0x6d, 0x5b,
+  0x36, 0x43, 0x34, 0x2b, 0x2e, 0x3b, 0x32, 0x67, 0x2a, 0x5b, 0x7f, 0x66,
+  0x32, 0x24, 0x28, 0x29, 0x2d, 0x31, 0x2b, 0x1d, 0x0d, 0x40, 0x3a, 0x49,
+  0x3b, 0x42, 0x37, 0x43, 0x40, 0x44, 0x4f, 0x40, 0x25, 0x1b, 0x33, 0x32,
+  0x15, 0x3b, 0x22, 0x33, 0x45, 0x4e, 0x45, 0x3a, 0x2a, 0x10, 0x19, 0x3a,
+  0x27, 0x25, 0x18, 0x0d, 0x0d, 0x3a, 0x36, 0x2d, 0x21, 0x34, 0x25, 0x38,
+  0x26, 0x33, 0x2f, 0x33, 0x2a, 0x21, 0x36, 0x1e, 0x2b, 0x28, 0x29, 0x31,
+  0x25, 0x2e, 0x4d, 0x32, 0x42, 0x1b, 0x37, 0x1a, 0x34, 0x36, 0x23, 0x25,
+  0x2b, 0x3f, 0x46, 0x41, 0x4c, 0x35, 0x39, 0x2d, 0x37, 0x4d, 0x42, 0x46,
+  0x27, 0x36, 0x20, 0x34, 0x10, 0x32, 0x19, 0x21, 0x33, 0x3b, 0x39, 0x46,
+  0x10, 0xf3, 0x26, 0x13, 0x24, 0x1f, 0x28, 0x18, 0x29, 0x20, 0x20, 0x14,
+  0x1f, 0x17, 0x27, 0x34, 0x38, 0x3e, 0x26, 0x37, 0x20, 0x33, 0x16, 0x26,
+  0x0e, 0x1c, 0x31, 0x1d, 0x23, 0x2e, 0x44, 0x38, 0x25, 0x2f, 0x27, 0x39,
+  0x3b, 0x2b, 0x36, 0x3c, 0x35, 0x3f, 0x2d, 0x3f, 0x42, 0x32, 0x43, 0x4e,
+  0x55, 0x3d, 0x17, 0x2e, 0x39, 0x20, 0x31, 0x41, 0x38, 0x2b, 0x31, 0x38,
+  0x46, 0x3f, 0x1e, 0x2d, 0x0a, 0x07, 0x18, 0xfc, 0x1a, 0x14, 0xec, 0x25,
+  0x1e, 0x30, 0x3c, 0x37, 0x2a, 0x47, 0x3c, 0x3b, 0x3b, 0x37, 0x2b, 0x22,
+  0x18, 0x1b, 0x31, 0x1e, 0x0e, 0x22, 0x13, 0x11, 0x10, 0x10, 0x14, 0x22,
+  0x0c, 0x0e, 0x18, 0x03, 0x0e, 0x03, 0x03, 0x08, 0x26, 0x0c, 0x1a, 0x0a,
+  0x06, 0x2d, 0x1e, 0x1e, 0x14, 0x1a, 0x26, 0x1d, 0x06, 0x06, 0x1c, 0x0e,
+  0x16, 0x06, 0x09, 0x13, 0x1c, 0x21, 0x25, 0x0d, 0x1c, 0x00, 0xfa, 0xfd,
+  0x13, 0xfa, 0x18, 0xff, 0x0d, 0x08, 0x23, 0x2e, 0x26, 0x1d, 0x14, 0x10,
+  0x14, 0x28, 0x14, 0x1b, 0x05, 0x0a, 0xff, 0xfa, 0x1a, 0x18, 0x11, 0x13,
+  0x16, 0x0f, 0x07, 0x12, 0x05, 0x00, 0x13, 0xf3, 0x05, 0x01, 0x01, 0x01,
+  0x1a, 0x16, 0x2b, 0x26, 0x1e, 0x21, 0x15, 0x13, 0x12, 0x28, 0x19, 0x1c,
+  0xff, 0xf8, 0xf0, 0x02, 0x01, 0x05, 0x04, 0x19, 0x11, 0x14, 0x1b, 0x15,
+  0xea, 0x19, 0x12, 0x02, 0x0f, 0x11, 0xee, 0xfe, 0x1c, 0x2f, 0x19, 0x38,
+  0x2a, 0x30, 0x26, 0x1e, 0x28, 0x29, 0x24, 0x12, 0x01, 0x12, 0xff, 0x0c,
+  0x09, 0x0b, 0x26, 0x24, 0x21, 0x24, 0x11, 0x21, 0x13, 0x17, 0xf8, 0x0c,
+  0xfd, 0x03, 0xf9, 0xfc, 0x03, 0x20, 0x14, 0x34, 0x1e, 0x30, 0x2e, 0x25,
+  0x23, 0x29, 0x16, 0x01, 0xf4, 0x05, 0x15, 0x05, 0xf9, 0x02, 0xea, 0x32,
+  0x38, 0x28, 0x28, 0x18, 0xf6, 0xfa, 0xfb, 0xff, 0xf9, 0xee, 0xff, 0x01,
+  0xfc, 0x41, 0x40, 0x2b, 0x2f, 0x1f, 0x1c, 0x20, 0x21, 0x28, 0x2b, 0x17,
+  0xfd, 0xf9, 0x07, 0xf5, 0x01, 0xf8, 0xfe, 0xfe, 0x11, 0x14, 0x27, 0x0e,
+  0xf5, 0xfd, 0xe7, 0x05, 0xef, 0xee, 0xe9, 0xf6, 0xff, 0x10, 0x0c, 0x16,
+  0x15, 0x16, 0x0d, 0x1c, 0x15, 0x1c, 0x09, 0xf6, 0x00, 0xfe, 0xf4, 0xf8,
+  0xe1, 0x0a, 0xfa, 0x05, 0x0b, 0x1b, 0x19, 0x05, 0xf0, 0xec, 0xec, 0x02,
+  0xf0, 0xec, 0xf4, 0xec, 0xe7, 0x30, 0x47, 0x2d, 0x31, 0x2a, 0x24, 0x31,
+  0x1f, 0x31, 0x2c, 0x07, 0xe4, 0xfa, 0xef, 0xee, 0xfe, 0xf5, 0xf1, 0x1a,
+  0x18, 0x33, 0x1c, 0x10, 0xf5, 0xce, 0xeb, 0xe3, 0xf1, 0xec, 0xe7, 0xed,
+  0xde, 0x19, 0x2e, 0x11, 0x1f, 0x17, 0x19, 0x23, 0x17, 0x1d, 0x1b, 0x01,
+  0xef, 0xed, 0xeb, 0xf8, 0xe9, 0xf0, 0xf3, 0x1c, 0x19, 0x2a, 0x0d, 0x19,
+  0xe3, 0xe1, 0xee, 0xe0, 0xe7, 0xee, 0xe7, 0xee, 0xea, 0x30, 0x2e, 0x2f,
+  0x32, 0x11, 0x29, 0x38, 0x0f, 0x1a, 0x29, 0x24, 0xe6, 0xfa, 0xfc, 0xf0,
+  0xed, 0xec, 0xe1, 0x2e, 0x13, 0x29, 0x22, 0x16, 0xd4, 0xee, 0xeb, 0xee,
+  0xd3, 0xe4, 0xe4, 0xe5, 0xee, 0x23, 0x08, 0x10, 0x15, 0x17, 0x1b, 0x2b,
+  0x1b, 0x1d, 0x17, 0x03, 0xf8, 0xdd, 0xe3, 0xe8, 0xe5, 0xd8, 0xdb, 0x09,
+  0xf5, 0x10, 0x16, 0x14, 0xd9, 0xde, 0xd0, 0xd7, 0xd7, 0xda, 0xe0, 0xe1,
+  0xe4, 0x0f, 0x17, 0x04, 0x10, 0x0c, 0x14, 0x1d, 0x1d, 0x17, 0x15, 0xfa,
+  0xd9, 0xd6, 0xe1, 0xdf, 0xd7, 0xdf, 0xd5, 0x18, 0xf5, 0x14, 0x08, 0x0b,
+  0xd0, 0xd6, 0xd4, 0xd7, 0xc6, 0xda, 0xc5, 0xda, 0xdc, 0x14, 0x26, 0x15,
+  0x19, 0x0d, 0x0b, 0x0f, 0x07, 0x09, 0x1b, 0x03, 0xdc, 0xda, 0xd6, 0xd8,
+  0xc0, 0xc5, 0xdc, 0x08, 0xfb, 0x10, 0x0d, 0x13, 0xd8, 0xde, 0xcb, 0xd6,
+  0xd0, 0xc7, 0xcd, 0xdc, 0xc3, 0x0c, 0x0f, 0x08, 0x13, 0x13, 0x25, 0x25,
+  0x13, 0x1f, 0x11, 0xee, 0xd0, 0xd0, 0xd2, 0xcd, 0xbf, 0xca, 0xd2, 0x0a,
+  0xeb, 0x04, 0x03, 0x10, 0xd0, 0xcd, 0xb1, 0xc7, 0xca, 0xbf, 0xe1, 0xdd,
+  0xce, 0x2b, 0x19, 0x20, 0x20, 0x14, 0x24, 0x34, 0x27, 0x2c, 0x25, 0xf8,
+  0xd5, 0xc7, 0xcb, 0xba, 0xc0, 0xcf, 0xc4, 0x14, 0x06, 0x1f, 0x28, 0x10,
+  0xc9, 0xc9, 0xc3, 0xbf, 0xc4, 0xcd, 0xd2, 0xcc, 0xd4, 0x15, 0x27, 0x1e,
+  0x19, 0x05, 0x18, 0x1d, 0x24, 0x1a, 0x1f, 0xf9, 0xcc, 0xd3, 0xc3, 0xcd,
+  0xcc, 0xc1, 0xd5, 0x10, 0xe7, 0x1d, 0x12, 0x04, 0xb4, 0xb9, 0xb0, 0xb9,
+  0xb1, 0xb1, 0xbb, 0xd2, 0xb0, 0xff, 0x22, 0x06, 0xff, 0xf7, 0xfb, 0x07,
+  0xf8, 0xfa, 0x03, 0xef, 0xc2, 0xc7, 0xb9, 0xbb, 0xb4, 0xb2, 0xb5, 0xf2,
+  0xcc, 0x05, 0xf1, 0xea, 0xb0, 0xb1, 0xa7, 0xab, 0xa9, 0xa6, 0xb2, 0xbf,
+  0xb4, 0x04, 0x0f, 0x02, 0x0e, 0x0a, 0x05, 0x07, 0xff, 0x04, 0x0a, 0xe2,
+  0xac, 0xad, 0xa9, 0xa0, 0xa8, 0xa3, 0x9a, 0xef, 0xd3, 0xf5, 0x03, 0xfd,
+  0x9c, 0x99, 0x99, 0x9c, 0x96, 0x99, 0xaf, 0xa8, 0xaa, 0xfd, 0x09, 0x0e,
+  0xf5, 0xed, 0xe7, 0xf4, 0xec, 0xf4, 0xf1, 0xd5, 0xa5, 0x9a, 0x9e, 0x98,
+  0xa7, 0x99, 0xa2, 0xd9, 0xc2, 0xf1, 0xee, 0xec, 0x8a, 0x86, 0x8c, 0x8d,
+  0x84, 0x88, 0xa0, 0xad, 0xa2, 0xe5, 0x02, 0xff, 0xf5, 0xe4, 0xee, 0xf1,
+  0xf2, 0xec, 0xf0, 0xc9, 0x9e, 0x97, 0x98, 0x89, 0x8f, 0x88, 0x93, 0xd9,
+  0xd1, 0xf8, 0xeb, 0xde
+};
+
+/* Golden output */
+uint8_t ad_golden_out[AD_OUT_FEATURE_VEC_DATA_SIZE] = {
+        0x3a, 0x7f, 0x36, 0x76, 0x80, 0x80, 0x80, 0x80
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* AD_GOLDEN_OUTPUTS_HPP */
diff --git a/tests/resources/golden_fv/AsrGoldenFeatures.hpp b/tests/resources/golden_fv/AsrGoldenFeatures.hpp
new file mode 100644
index 0000000..a230a52
--- /dev/null
+++ b/tests/resources/golden_fv/AsrGoldenFeatures.hpp
@@ -0,0 +1,931 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef ASR_F_GOLDEN_HPP
+#define ASR_F_GOLDEN_HPP
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include <stdint.h>
+
+size_t golden_asr_mfcc_len = 13U * 296U;
+size_t golden_diff1_len = golden_asr_mfcc_len;
+size_t golden_diff2_len = golden_asr_mfcc_len;
+
+static const float golden_asr_mfcc[] = {
+/* 13 features, 296 time samples */
+-739.77203,    4.43339,    4.14916,    3.94062,    3.75471,    3.36722,    2.75536,    2.15424,    1.70661,    1.26036,    0.63381,   -0.07275,   -0.61404,
+-741.22699,    2.43739,    2.19547,    1.81668,    1.33471,    0.79128,    0.23156,   -0.30073,   -0.76779,   -1.14135,   -1.40496,   -1.55474,   -1.59852,
+-740.28369,    3.77706,    3.55944,    3.23880,    2.85630,    2.43850,    1.98858,    1.49232,    0.93505,    0.31964,   -0.32507,   -0.95050,   -1.50613,
+-737.92542,    7.08773,    6.79751,    6.36016,    5.82753,    5.24427,    4.63403,    3.99524,    3.30806,    2.54938,    1.70949,    0.80348,   -0.12769,
+-737.88190,    7.17392,    6.94397,    6.56755,    6.05465,    5.41886,    4.67691,    3.84815,    2.95400,    2.01727,    1.06150,    0.11023,   -0.81362,
+-740.40613,    3.61488,    3.41837,    3.10070,    2.67607,    2.16330,    1.58483,    0.96553,    0.33144,   -0.29155,   -0.87899,   -1.40899,   -1.86323,
+-738.04297,    6.88258,    6.47138,    5.82175,    4.98088,    4.00386,    2.94619,    1.85797,    0.78088,   -0.25189,   -1.21348,   -2.08038,   -2.83026,
+-739.10394,    5.01142,    4.08197,    3.61993,    3.46862,    2.79344,    1.53009,    0.59595,    0.51155,    0.61026,    0.09230,   -0.73804,   -0.99980,
+-738.93628,    5.04577,    3.92978,    3.86487,    4.45355,    4.15855,    2.83126,    1.97671,    2.32735,    2.63497,    1.63883,    0.06747,   -0.52301,
+-742.09735,    1.27576,    1.23579,    1.17278,    1.08758,    0.97981,    0.85158,    0.70800,    0.55358,    0.39015,    0.21937,    0.04588,   -0.12424,
+-740.26038,    3.81065,    3.58432,    3.22149,    2.74267,    2.17462,    1.54851,    0.89788,    0.25634,   -0.34453,   -0.87725,   -1.32006,   -1.65818,
+-738.87238,    5.63912,    5.15087,    4.61127,    4.02923,    3.28429,    2.43234,    1.70882,    1.20934,    0.76495,    0.22197,   -0.31741,   -0.67138,
+-738.80823,    5.85002,    5.58049,    5.14473,    4.56218,    3.85858,    3.06471,    2.21470,    1.34432,    0.48918,   -0.31712,   -1.04458,   -1.66828,
+-737.43085,    7.76511,    7.40725,    6.84653,    6.11416,    5.24155,    4.27151,    3.25613,    2.23841,    1.24139,    0.27895,   -0.63012,   -1.46581,
+-737.83099,    7.12094,    6.58481,    5.70745,    4.61185,    3.33776,    2.02636,    0.73143,   -0.42896,   -1.41877,   -2.17289,   -2.68819,   -2.96023,
+-738.05359,    6.74544,    6.00377,    4.91264,    3.64911,    2.39284,    1.28308,    0.39052,   -0.28846,   -0.81449,   -1.27167,   -1.72931,   -2.21198,
+-733.09210,   11.21165,    6.83860,    6.50434,    8.39739,    6.62222,    1.12450,   -2.07976,   -0.50446,    1.11805,   -1.27790,   -4.70090,   -4.26429,
+-729.61566,   10.02992,   -1.95083,    1.63069,   11.62741,    8.21267,   -4.95377,   -8.36486,    0.19372,    4.14391,   -3.06428,   -8.99785,   -4.47088,
+-723.47961,   10.17970,   -9.74782,   -1.55895,   11.08994,    8.48012,   -0.16512,   -6.58712,   -3.57666,    7.86839,    7.80519,   -4.68555,   -5.37104,
+-703.88519,   18.29580,  -21.44657,   -6.79528,   12.08492,    8.75593,    2.90998,   -1.51398,   -1.36442,    6.59666,    1.81764,   -9.89391,   -4.18426,
+-678.76422,   19.09791,  -33.17283,    1.54777,   14.24737,    8.83076,    2.65867,   -3.69481,   -3.60083,   -0.10980,    0.55969,   -1.57821,   -3.58482,
+-597.23285,   37.85891,  -60.26614,   -0.12251,   14.22423,   -0.90098,    0.90394,    0.41278,   -4.10125,    6.44201,    6.07266,   11.16191,   -6.44330,
+-487.76270,   29.97835,  -62.39044,   -5.40837,   11.29997,    6.95592,   -5.83144,    0.48654,  -11.59783,   10.14861,    7.22627,   12.45544,  -14.93312,
+-468.18643,   32.67844,  -46.44635,   -7.10132,    3.99336,   12.08127,   -4.66342,    4.15338,  -17.32649,   -4.82752,  -10.19122,   -2.54350,  -13.77276,
+-469.04898,   37.73291,  -47.50086,    5.52127,    3.27568,    6.41865,  -13.02156,   -3.75707,   -4.57083,    0.00712,  -10.25383,  -10.10860,   -8.79650,
+-468.63696,   42.29890,  -48.59408,    5.51896,   12.85027,    3.59784,  -19.76094,   -5.88601,   -5.34028,    3.93530,   -8.92158,  -14.67978,  -14.06335,
+-484.16913,   47.05151,  -50.70958,   -3.16510,    6.97707,   11.57512,   -4.71207,   10.11598,    7.59590,   11.88781,   -5.98053,   -3.78069,   -1.87512,
+-513.99847,   38.55527,  -58.36864,   -3.13968,    5.45301,   10.91985,   -3.15140,   -0.44534,    0.41920,   15.86110,    3.14245,   -0.24400,  -10.29185,
+-525.34448,   53.88523,  -61.43047,   -6.67531,   16.82977,   18.57971,    1.81502,    6.59831,    3.63511,   16.62849,   -6.21790,   -0.93611,  -10.05373,
+-543.47412,   67.34111,  -53.03713,  -11.67502,   16.99445,   17.41154,   10.10119,    9.28551,   -2.13365,   15.32820,   -4.74680,    3.89862,    1.69543,
+-543.86810,   95.82130,  -44.91877,  -27.12481,    7.24652,    9.93297,    2.24394,    8.90679,    3.20333,    9.80860,  -13.70252,   -9.32810,   -1.20880,
+-540.39093,  118.15536,  -39.92270,  -31.31052,    8.73977,   20.39213,    2.70147,   -6.48235,  -11.14444,    2.80034,   -5.70351,   -9.33047,   -3.82105,
+-559.33344,  113.90231,  -45.61569,  -36.66971,   11.51530,   18.66145,    5.43105,   -5.79920,  -15.95238,   11.71870,    3.30188,  -17.29617,   -0.12055,
+-611.22729,   92.45084,  -33.29684,  -45.60332,   -0.57918,   19.67272,   18.25746,    2.54525,   -1.95916,   10.47044,    0.64767,  -23.26884,  -10.61353,
+-673.00159,   63.06639,    4.17435,  -13.07201,   15.45242,   36.55398,   28.04820,    6.53190,   -2.03077,   -4.86843,  -10.15063,   -7.98050,   11.46151,
+-685.77118,   60.38826,   23.26720,    5.49815,   14.32310,   24.30405,   22.31143,   14.91874,   12.03119,    8.62008,    2.74104,    0.13998,    4.97190,
+-614.80969,  123.72738,   24.36467,  -23.45894,   -9.78909,   12.62901,   13.46521,    0.35274,   -5.22431,    3.50167,    1.96512,  -11.65986,  -19.05206,
+-570.55817,  138.50626,   23.04182,  -24.43203,   -6.62432,    8.97017,   -1.10296,   -6.29671,  -15.93489,    5.53342,   -1.25716,  -13.43966,  -28.57895,
+-445.96667,  164.02409,    5.72825,  -52.08717,  -16.37173,   10.28557,   10.33937,   -2.31468,  -20.52966,   15.33060,   -3.55347,  -16.33257,  -28.28063,
+-363.43756,  175.12576,   -3.31680,  -66.65984,  -19.85510,    7.41258,   11.93293,   -0.79320,  -16.91802,   20.56325,   -0.02419,  -12.53419,  -39.70355,
+-348.60983,  154.19067,    7.74570,  -50.03997,  -22.13355,    9.42086,    9.85655,    9.36244,   -5.75583,   21.20298,   -6.69417,   -8.00366,  -43.66351,
+-299.13873,  152.12788,  -11.62845,  -42.77829,  -31.78709,   -0.61493,   -5.46732,    9.17835,   -5.86130,    9.14817,   -5.92584,   -9.86393,  -49.09785,
+-279.24234,  134.64542,  -43.43766,  -36.45545,  -21.69882,  -16.28008,   -5.64642,   13.52591,   -1.48913,   11.07259,  -13.52461,  -16.82686,  -39.25970,
+-260.71298,  136.22865,  -44.57975,  -29.85570,   -0.64486,  -38.38213,  -18.33903,    5.89145,   -3.89952,   12.23704,   -3.22323,  -23.71099,  -20.92175,
+-244.48389,  133.28445,  -43.79402,  -22.31293,    4.11721,  -55.92643,  -25.76093,   17.25046,   -9.47253,    0.42447,   -5.67624,  -16.34599,   -8.27315,
+-258.41626,  114.99637,  -39.90332,    1.50976,    8.22684,  -57.25970,  -31.64858,    1.77440,  -21.77207,   -4.49708,   -6.35045,   -1.23350,   -9.94049,
+-293.08508,   99.34319,  -16.11116,   17.69371,   15.47070,  -62.74282,  -27.08352,    4.12698,  -20.45372,  -10.08534,  -17.34487,   -5.33286,  -20.24701,
+-322.00287,   94.11205,   -0.92652,   37.83418,   21.11624,  -52.57660,  -18.44728,    4.90179,  -30.57641,  -17.70811,  -27.24849,  -12.71308,  -22.68225,
+-360.38376,   87.69393,   15.29972,   68.40858,   17.43580,  -39.63292,   -1.59294,    1.32824,  -37.38486,  -21.12629,  -25.94076,  -13.80269,  -27.75978,
+-401.70505,   90.96419,   29.30173,   78.28263,    3.20327,  -36.78372,    6.16998,   -7.54714,  -28.99337,  -21.18590,  -14.36380,    4.06708,  -33.08428,
+-533.28723,  137.39876,   49.16436,   72.20885,    7.80102,  -24.72589,   -3.93477,  -15.49783,  -23.35331,  -18.65767,  -14.67795,   -4.94262,  -18.59274,
+-559.62939,   99.69369,   62.95110,   83.08356,    7.80114,   13.37880,  -17.57888,   -7.87949,  -14.74117,  -25.68275,  -16.59367,  -13.87330,   -6.59394,
+-555.69965,   67.18806,   52.50816,   79.44274,    2.79971,   21.60576,  -20.30817,  -11.56905,  -17.36839,  -27.29060,  -18.14963,  -12.88813,  -10.80527,
+-659.99139,   90.88692,   74.82683,   53.60613,   17.83161,    7.39822,   -9.09811,  -16.35573,  -20.83104,  -22.41822,  -18.70988,  -18.33362,  -14.70294,
+-679.79871,   83.09547,   68.24111,   49.89501,   30.46873,   14.45928,    3.91992,   -3.76449,   -8.50756,   -9.65265,  -10.31525,  -11.33202,  -11.55049,
+-694.87091,   62.41616,   49.22509,   35.81430,   26.22110,   19.58934,   13.44967,    6.70528,   -0.06228,   -5.94130,  -10.83276,  -15.16693,  -18.84751,
+-704.53339,   49.78053,   40.19272,   32.00471,   26.16905,   21.18073,   16.54406,   11.00089,    3.29591,   -4.95220,  -11.12703,  -14.73515,  -16.49860,
+-704.69830,   50.06087,   41.28493,   33.35400,   26.99703,   20.23875,   13.06462,    6.38402,   -0.09129,   -5.92407,   -9.17170,   -9.74002,  -10.29155,
+-711.46802,   42.55208,   37.13642,   29.97435,   22.53142,   15.76887,   10.13004,    5.37198,    0.79322,   -3.90029,   -8.15694,  -11.21932,  -12.86519,
+-723.13409,   27.21255,   24.66596,   20.84755,   16.27658,   11.48368,    6.89734,    2.77970,   -0.77472,   -3.78793,   -6.32338,   -8.42078,  -10.06509,
+-443.93698,   -1.74865,   -9.79181,    7.66294,  -18.64954,   -5.27232,    4.84549,   -8.48673,   -2.54492,    2.67439,   -6.86648,    9.85871,   -8.21330,
+-298.20532,  -12.81320,   17.29125,    6.56532,  -15.89673,   -1.43100,    8.31953,  -10.98549,    9.37294,    0.49440,   -3.70998,    7.79895,   -6.09313,
+-305.63287,  -56.60079,   37.23157,   15.93787,  -16.12873,    4.72155,    3.36984,   -4.53316,   12.89923,   -6.25745,   -5.42213,    9.98214,   -5.26571,
+-316.28519,  -90.52562,   34.93086,   42.75752,    6.76751,    3.31615,   -5.30959,    6.70043,   21.56020,  -10.07466,   -6.29718,   21.09662,    2.53661,
+-329.53720,  -94.12029,    6.18531,   40.50994,    4.35451,  -12.12563,  -13.27101,    7.24133,   15.15652,  -10.72804,   -3.78922,   17.08343,    4.88286,
+-356.77383,  -52.07880,  -15.00291,   42.41784,   -2.45872,  -20.72002,  -19.36626,    7.91365,    4.72626,   -4.90424,    3.93229,   13.72323,    3.81743,
+-388.43564,  -18.23531,  -27.64051,   39.90910,    6.87263,   -9.67537,  -18.85973,    6.46791,   10.94759,   -4.51365,    8.38604,   13.82587,   -0.89720,
+-387.53278,   42.73358,    6.46609,   43.05339,   20.04885,  -11.90844,  -10.72181,   17.58882,    1.21852,  -11.54529,   -6.57513,    3.74334,  -10.30171,
+-361.15170,   93.01609,   18.34750,   34.17667,   21.55042,  -20.90072,  -19.98984,    8.97430,   -5.22827,   -7.51887,  -19.58678,  -12.16964,  -14.88791,
+-343.59412,  101.69102,   16.34492,   12.79201,   13.97989,  -26.50590,  -36.06129,    2.05754,    0.81474,   -9.14219,  -33.64646,  -17.92052,  -23.68695,
+-335.24365,  113.71022,   19.48219,    0.26569,   10.15661,  -21.69938,  -33.86705,  -11.23172,   -0.19690,   -1.78176,  -14.47228,   -4.76587,  -17.37306,
+-299.25641,   99.93545,   -9.58726,   -9.46401,    9.96207,  -10.53954,  -35.09438,  -15.00333,   10.62438,   -2.10113,   -6.79275,   -6.00083,  -22.96282,
+-300.10519,   78.59589,   -6.51480,  -16.16937,   -0.94357,  -15.15780,  -43.71510,  -21.76927,    1.60866,   -1.99735,   -8.69847,  -12.43583,  -22.55209,
+-316.80902,   93.42959,   -0.82785,  -12.93124,  -14.51613,   -7.83749,  -37.18201,  -28.08782,   -6.06824,    4.80437,   -6.88215,  -16.59713,  -22.29524,
+-315.29916,  115.42698,   -1.13148,  -10.75052,  -13.06001,   -7.73907,  -24.59613,  -41.00932,  -12.86884,    5.27404,   -5.81072,   -9.62144,  -26.91442,
+-314.75229,  124.12968,   -2.79560,  -17.03026,  -28.89275,   -8.95922,   -6.59420,  -40.73174,   -9.84872,    5.15444,   -4.32795,    1.96284,  -24.17693,
+-315.53088,  125.58240,    1.15098,  -21.96985,  -34.33059,   -3.54398,   -6.85529,  -44.57242,  -21.80232,    7.20194,   -8.49010,    4.75513,  -28.38153,
+-316.27704,  122.26854,    9.06494,  -27.00614,  -40.43912,    0.67930,   -6.98057,  -49.63099,  -22.58922,   -2.52189,  -11.50818,    9.91990,  -27.45758,
+-327.35529,  117.16550,   21.98269,  -17.33347,  -38.99503,    6.68010,   -1.65017,  -50.80903,  -26.47403,   -4.14860,  -13.12196,    7.10704,  -30.10763,
+-321.23111,  106.84170,   34.31313,   -3.68023,  -30.01686,    5.29732,   -6.57700,  -42.91172,  -27.53443,    4.61466,  -15.36086,    3.52533,  -30.84628,
+-324.52029,  105.49486,   25.03466,   -2.60415,  -28.69174,   -0.12828,  -14.06143,  -39.43727,  -33.95476,    5.75513,  -19.13151,   -2.93614,  -36.38286,
+-317.18118,  106.27744,   28.27160,    3.54661,   -1.14089,  -12.54203,   -3.93085,  -28.66591,  -23.39810,    4.34814,  -23.34138,  -20.87079,  -33.98920,
+-327.57474,   93.39848,   30.33432,   12.20178,   10.78983,  -17.81099,   -5.48535,  -11.80645,  -23.51105,   -2.96250,  -22.57767,  -28.34293,  -28.73708,
+-350.31647,   85.08986,   36.08148,   28.87788,   15.04847,  -26.97350,  -11.33844,    2.60015,  -23.01023,  -16.96572,  -23.07828,  -27.98988,  -21.04955,
+-376.05798,   72.38734,   42.25750,   45.36614,   23.51564,  -37.08350,   -7.10778,    5.91058,  -30.25048,  -26.47700,  -17.96576,  -24.60368,  -30.84109,
+-404.26224,   65.94995,   51.06128,   50.59633,    6.64929,  -35.64878,    6.40939,    9.16480,  -41.30687,  -34.50303,  -11.83757,  -20.59805,  -30.04825,
+-443.86591,   52.20867,   70.20848,   71.01749,   11.28605,  -30.21029,    5.79169,    0.37297,  -39.64886,  -34.88003,   -4.04763,  -22.88266,  -22.50964,
+-487.70062,   47.62605,   94.98031,   83.99281,   14.70511,  -14.94850,   11.23262,   -5.88986,  -38.03238,  -40.28688,  -16.84157,  -20.98334,  -20.05816,
+-509.07642,   45.77028,  109.92744,   81.87650,   13.95934,   -3.93742,    4.11268,   -9.91554,  -32.80961,  -30.89524,   -9.98727,  -14.64280,  -30.88258,
+-522.71735,   37.61763,  103.68540,   78.68625,   16.01972,    4.56800,   11.92203,  -22.13283,  -29.86579,  -30.24809,  -12.04046,  -10.16577,  -26.49791,
+-508.07632,   30.67447,   94.83904,   71.36203,   24.34888,    7.39304,   20.89282,  -12.73135,  -29.18987,  -23.50452,  -10.04839,  -18.02681,  -21.11977,
+-481.59796,   31.90848,   78.80377,   63.13389,   25.43876,    3.49658,   18.26456,   -5.80285,  -22.66960,  -22.49039,  -17.23462,  -30.48423,  -30.81418,
+-456.96207,   45.49911,   62.68452,   71.53724,   20.47784,  -28.85520,    8.76649,    4.74806,  -28.93201,  -33.62452,  -22.59154,  -30.95151,  -38.00834,
+-438.81244,   64.58253,   53.13954,   72.63129,   29.09319,  -37.28661,    3.45708,   15.12676,  -35.47618,  -49.79375,  -16.69294,  -19.46603,  -34.32941,
+-423.95709,   80.28170,   27.77286,   54.04255,   39.76050,  -35.75346,   -3.38681,   12.29888,  -34.48137,  -55.19286,  -26.09116,  -20.89586,  -38.82964,
+-403.37570,  104.78390,   24.31571,   33.62110,   43.22993,  -32.68417,   -9.63470,   14.40468,  -29.44122,  -32.80064,  -27.87226,  -12.14832,  -21.32968,
+-410.64990,  113.51939,   21.66384,   25.88121,   47.00960,  -13.49685,   -1.19114,    2.34893,  -34.86524,  -13.70483,  -30.08947,  -20.01185,  -20.18216,
+-427.86404,  115.69196,   16.82162,    8.77996,   38.88261,    4.62155,   10.18594,  -17.62808,  -42.41760,  -11.70966,  -29.65791,  -37.22931,  -38.67917,
+-434.29660,  124.90443,   30.81101,   -1.94971,   34.90073,    6.41934,   21.23090,  -18.56267,  -52.61283,  -14.50310,  -15.40610,  -29.62020,  -44.02092,
+-454.99860,  127.80815,   49.49559,   -4.71944,   25.74934,    7.45291,   30.37157,  -19.19380,  -64.06045,  -27.05679,  -21.07340,  -19.17959,  -28.23726,
+-461.24274,  134.59407,   68.29501,  -15.07210,   12.94805,   -5.15533,   36.96617,   -8.80068,  -58.84946,  -30.21778,  -30.54121,  -18.83973,  -18.17796,
+-479.60336,  144.00020,   72.91606,   -9.99038,    1.21133,   -7.48206,   32.60101,    1.88745,  -43.98568,  -33.80843,  -34.62660,  -27.18499,  -11.38533,
+-505.77020,  149.12779,   79.25552,   -6.04475,   -6.48688,   -8.97785,   32.86127,    1.98450,  -35.43898,  -35.60764,  -33.81352,  -25.21284,  -15.70421,
+-513.59387,  154.25208,   83.21911,   -4.70393,   -4.05527,  -10.33386,   28.84863,    3.08010,  -28.15909,  -32.38344,  -26.96810,  -31.97985,  -30.05245,
+-530.85712,  154.80107,   93.09445,    2.43585,  -10.55350,  -12.89960,   16.57527,   11.23611,  -14.67146,  -28.25472,  -30.90336,  -29.62308,  -33.68346,
+-545.02936,  157.65283,   85.82580,    4.90056,    1.98147,   -2.92201,   10.70440,    6.61972,  -24.46090,  -30.23070,  -33.71283,  -23.79030,  -31.37379,
+-549.22186,  155.82300,   71.25284,    2.24713,   14.28724,   -5.89741,   11.94555,    8.34093,  -16.32330,  -24.46994,  -35.22298,  -26.59025,  -29.61477,
+-555.90649,  153.10989,   36.65089,    3.84110,   16.78571,    6.35293,   10.35865,   -2.39851,  -21.93614,  -28.16301,  -27.44939,  -19.97972,  -20.11437,
+-557.76038,  144.97772,   20.05028,   -3.40184,   25.23508,   22.33108,   24.19692,   12.85208,  -13.60905,  -24.50617,  -32.56139,  -24.60412,  -19.16363,
+-565.04395,  141.75775,   23.26726,    1.44345,   24.35340,   23.82019,   24.81945,    8.61719,  -14.13487,  -16.99150,  -26.64034,  -16.34756,  -16.28925,
+-582.35852,  121.70802,   11.77862,    1.21382,   33.49820,   31.02796,   19.44608,   -4.32764,  -22.20745,  -13.69146,  -14.79044,   -1.90694,   -9.58287,
+-611.60425,  108.65694,   15.34908,    4.63596,   34.72903,   35.42127,   20.02589,   -6.36097,  -25.55186,  -17.19771,   -2.10331,   -5.88407,  -30.63498,
+-633.38940,   90.24216,   13.99240,   10.41656,   33.89569,   11.58191,  -12.36133,  -23.82138,  -21.01793,   -6.91555,  -11.57736,  -33.45514,  -32.55983,
+-638.89941,   90.62136,   31.36757,   37.06882,   41.14146,    0.38717,  -15.60635,   -5.89425,   -6.65146,  -10.05258,  -17.95158,  -25.66393,  -20.19134,
+-645.22919,   84.56592,   46.39761,   50.55693,   33.34886,  -18.71098,  -18.46934,   -6.45251,  -23.79868,  -33.81595,  -24.85833,  -19.18478,  -21.62932,
+-663.24762,   70.47253,   47.16746,   42.61106,   24.64014,  -20.18022,  -14.29461,   -8.25118,  -33.31351,  -29.12968,  -15.16687,  -13.82747,  -26.03916,
+-665.23572,   68.91484,   48.07513,   45.93549,   24.35101,  -22.22397,  -14.34225,   -7.24802,  -31.21640,  -26.50978,  -10.99041,  -13.64789,  -25.31266,
+-653.87531,   71.60163,   43.54386,   43.93507,   16.09889,  -32.49047,  -11.13548,   -4.03882,  -32.00384,  -24.84754,   -6.49042,  -19.24341,  -32.97263,
+-628.96997,   80.97196,   43.75434,   42.96486,    5.35637,  -46.30515,  -11.74355,   -5.22698,  -34.61658,  -31.77387,   -6.11563,  -21.50899,  -28.13975,
+-560.27863,   98.65417,   57.04360,   53.12490,   13.60819,  -37.92327,   -2.64569,  -10.87142,  -33.09066,  -27.77287,  -13.27444,  -24.04862,  -38.21613,
+-474.16153,  133.19215,   42.96102,   52.72581,   29.01019,  -33.03656,   -3.30715,   -8.54953,  -37.34371,  -24.96823,   -7.55104,  -21.57481,  -42.22615,
+-420.70679,  127.66073,   44.20655,   51.52517,   21.18233,  -36.80200,    1.18547,   -8.64668,  -31.38762,  -30.50883,   -6.14316,  -16.59294,  -44.98491,
+-392.38339,  118.34142,   35.92733,   60.44886,   14.10930,  -42.87946,   -6.38012,   -8.52512,  -43.05403,  -23.24982,  -14.38810,  -17.42284,  -28.54035,
+-396.14377,   91.24722,   33.84401,   68.58575,   13.68457,  -47.81595,  -10.30057,  -14.74097,  -43.99838,  -23.68055,   -6.89345,  -22.21245,  -22.73807,
+-375.81790,   84.50850,   37.38282,   64.55530,    9.26053,  -38.50275,   -6.90849,   -2.34685,  -39.99230,  -36.20174,  -11.40772,  -19.35306,  -40.25445,
+-371.31277,   86.60709,   26.88540,   60.70909,   13.63760,  -43.42980,  -12.22658,    0.11664,  -36.24310,  -31.65624,   -7.84330,   -6.56514,  -38.04145,
+-395.22690,  113.64909,   34.76160,   69.25298,    8.00502,  -51.12570,  -14.85159,   11.17280,  -27.47415,  -31.16954,  -15.57132,    2.17963,  -37.04792,
+-487.96347,  136.72539,   48.62033,   72.58236,    4.90202,  -34.16551,   -5.12197,   16.65520,    2.30252,  -26.79140,  -12.89626,   -9.70030,  -28.38115,
+-491.70081,  126.93477,   11.16320,   82.84847,   26.42068,    7.49833,   -2.51091,  -18.77224,  -12.22970,  -37.88863,  -36.79497,    3.01517,  -17.09411,
+-362.33643,   91.61451,    0.37455,   63.82765,   10.41564,   -0.94651,   -7.24294,   -5.33058,   -7.09231,  -31.30616,  -27.50639,   15.18285,  -14.38406,
+-360.52228,   96.28909,   25.21511,   62.68855,    4.91354,  -27.48291,  -18.13877,    1.86747,  -10.94692,  -27.01387,  -17.22662,   -2.00933,  -22.37263,
+-378.26196,  118.54053,    5.21113,   56.28373,    9.19872,  -38.01694,  -14.65021,    6.69412,  -28.87903,  -25.22076,  -15.05834,   -5.24249,  -24.69993,
+-370.16278,  114.58689,   -0.28570,   44.82927,   13.10141,  -42.67530,  -17.02056,   -0.04590,  -34.04948,  -21.32712,  -20.10828,   -6.89947,  -22.48342,
+-337.19305,  118.63881,   -3.91941,   22.77721,   19.59201,  -45.92442,  -31.26322,    2.50052,  -38.53117,  -19.03586,  -24.08696,   -8.85186,  -17.54709,
+-310.57822,  113.03319,   -9.06078,   25.27596,   11.55997,  -40.19213,  -39.65878,   -1.88564,  -33.22710,  -26.07192,  -22.41040,   -9.94286,  -18.82849,
+-311.33539,  103.68066,   -1.11024,   25.31038,    1.24793,  -40.32587,  -44.05034,  -10.81609,  -25.39709,  -27.82468,  -24.11249,  -15.82641,  -10.58237,
+-306.09283,  107.53571,   -5.71102,   15.36855,   -0.06519,  -32.78188,  -39.53238,  -17.80904,  -23.24977,  -21.61374,  -22.77439,  -18.94307,   -4.31926,
+-315.72760,  116.47948,  -11.70051,   10.31159,    6.36807,  -23.05539,  -34.21939,  -21.04945,  -18.21829,  -12.44790,  -29.04151,  -16.46194,   -3.99485,
+-335.40533,  122.68563,   -2.73751,   14.60683,    7.67535,  -21.95919,  -25.67969,  -26.21349,  -14.40325,   -9.32450,  -27.60385,  -19.34495,   -2.29705,
+-344.91006,   84.22801,   30.53672,   24.76007,   -7.96196,  -12.27603,  -28.83938,  -31.28870,   -7.10280,  -10.32913,  -26.31890,  -28.76020,  -10.16101,
+-321.74847,   22.61870,   67.62318,   22.66578,  -16.89212,    1.31448,  -41.29454,  -20.61598,   -4.62421,  -11.44328,  -19.23549,  -23.71359,  -19.15634,
+-320.57489,  -10.41486,   99.94828,   33.88570,   -1.77472,   28.93340,  -27.08552,  -21.86935,    2.15045,   -5.06805,  -18.29232,  -16.90594,  -15.15376,
+-325.89075,  -29.47031,  110.55493,   38.55762,    4.04195,   34.33043,  -26.90088,  -28.04365,   -4.17569,   -8.46432,  -19.69166,  -15.66487,   -7.47089,
+-336.47360,  -56.66702,   86.97776,   19.25002,   -2.79542,   22.82478,  -15.66427,   -0.37997,   10.49368,  -13.39484,  -25.38358,  -28.94642,  -16.30313,
+-323.85843,  -59.53122,   89.57014,   27.79789,   -0.33431,   17.84040,  -15.93314,    3.56822,   14.33489,  -12.46129,  -23.75436,  -14.04394,   -7.38174,
+-324.96545,  -75.17782,   83.45936,   19.04148,    1.78696,   22.14714,  -13.65047,    2.92450,   19.27539,   -2.63968,  -20.18465,  -11.90597,   -7.07332,
+-344.67255,  -79.84637,   80.44215,   23.84577,    0.79056,   25.22506,  -11.30942,   -1.17479,   24.93149,   -9.26643,  -17.22021,  -11.04599,  -16.54391,
+-375.36279,  -70.17471,   71.28268,   31.66566,   -7.46310,   13.73584,   -8.19228,   -9.15990,   12.89818,  -15.77331,  -23.41481,  -21.19809,  -21.89870,
+-412.11044,  -54.72255,   76.23882,   54.27297,    6.91382,   30.43379,   -0.04433,   -9.83065,    9.14938,   -3.71777,   -9.83891,  -10.77449,  -26.20202,
+-426.38629,    8.12202,   50.87331,   45.91777,   54.90336,   48.59229,  -14.05536,  -15.14324,   -3.37800,  -22.35563,  -19.86466,  -21.13762,  -22.59322,
+-483.17102,   95.93178,   29.22441,   35.87289,   58.79867,   21.23550,  -26.27444,  -23.48962,   -8.57341,  -29.70831,  -11.57309,  -18.66440,  -26.72654,
+-539.40594,  139.17160,   40.84406,   23.59950,   31.91476,    2.91482,  -27.79764,  -16.67805,  -36.13083,  -23.88976,   -6.00165,  -11.89510,  -23.69569,
+-550.31390,  146.30614,   46.67932,   37.03757,   44.81111,  -11.20804,  -17.97526,  -12.71701,  -36.34298,  -16.29894,   -2.04527,  -12.37814,  -25.78544,
+-550.08276,  142.76784,   43.96206,   30.36060,   46.46640,  -14.24652,  -13.37420,  -10.16631,  -33.66499,  -15.89499,   -3.76226,  -12.20420,  -20.20636,
+-547.64502,  144.29440,   43.40225,   36.58519,   45.52866,  -15.76632,  -11.51921,   -6.43776,  -38.47662,  -22.12944,   -9.12653,  -17.88100,  -19.03604,
+-530.69507,  150.77492,   39.30650,   34.92780,   48.19412,  -12.40477,  -13.61568,   -5.13870,  -44.81704,  -15.71391,   -6.85942,  -16.08999,  -23.19726,
+-531.73352,  148.31209,   40.27899,   35.28296,   51.28910,   -6.96135,  -11.41517,   -3.96197,  -44.39988,  -16.34683,  -13.13658,  -22.45674,  -23.91177,
+-528.42450,  148.31938,   43.70385,   33.69122,   47.01711,  -12.27729,  -16.49473,   -4.52656,  -41.69998,   -9.85081,  -11.73811,  -20.82237,  -22.63989,
+-524.53143,  152.69884,   41.16589,   21.22641,   41.17306,  -20.25027,  -21.31323,  -11.35616,  -40.42639,  -20.23978,  -14.69206,  -24.46453,  -22.25762,
+-533.03210,  141.29987,   46.16906,   21.69607,   45.43491,  -20.68425,  -27.40121,  -15.02421,  -35.13165,  -17.41097,   -7.54792,  -13.94088,  -19.49087,
+-504.09952,  108.60211,   45.97687,   37.09571,   17.71260,    5.86324,  -19.76870,  -17.16998,  -17.81991,  -28.20092,  -15.53811,   -4.63092,  -19.00638,
+-467.63785,  132.16171,   32.52523,   24.28167,    7.25442,   -0.63801,  -21.26180,  -24.28684,  -17.23636,  -23.55528,  -10.52019,   -9.29675,  -22.95332,
+-340.47134,  150.94380,   -5.40431,  -12.30841,  -14.63590,    3.29749,  -28.80212,  -23.54673,  -14.12508,  -13.87720,  -13.41590,  -17.71863,  -26.09510,
+-311.39139,  142.51981,  -31.06075,  -35.87051,  -10.02770,  -12.16096,  -18.78892,  -32.56214,  -13.80549,   -4.23693,   -2.31403,  -11.90334,  -32.74061,
+-309.15152,  124.61391,  -50.81188,  -38.51775,  -11.46098,  -20.72153,   -1.91621,  -40.46830,  -10.70336,    8.67581,   -1.28233,   -2.77227,  -38.88427,
+-310.65503,  124.23444,  -52.91621,  -40.31299,  -19.68514,  -23.62526,   11.31189,  -37.97126,  -13.66395,    6.95346,  -12.45460,   -3.08454,  -33.13107,
+-298.31958,  140.30038,  -60.75840,  -43.61348,  -29.72572,  -25.76282,    7.95005,  -35.32393,  -20.30392,    7.45490,  -14.43555,    5.52338,  -33.68083,
+-310.68411,  143.88361,  -43.75583,  -32.23655,  -43.31153,  -16.77195,    5.56395,  -30.31214,   -8.32603,   14.51808,   -9.60608,   11.15491,  -39.21754,
+-306.63290,  132.73161,  -40.05501,  -36.98214,  -53.05022,  -14.40135,    1.52464,  -39.32082,   -6.91366,   13.03398,   -8.60260,   11.39476,  -38.40683,
+-293.21274,  114.66545,  -52.86196,  -43.43966,  -49.01334,   -8.87678,    4.17357,  -36.09983,   -4.14086,   10.07351,   -3.47874,   12.86056,  -42.30226,
+-260.88785,  118.68002,  -46.41621,  -40.20872,  -33.20874,    1.55962,   20.05049,  -30.44283,   -3.89125,    6.33120,   -0.51390,   13.73246,  -42.64820,
+-248.72377,  125.34203,  -53.03514,  -45.62149,  -33.05993,   -4.37795,   12.62489,  -26.28844,   -4.05405,    0.75630,    2.51615,    6.27459,  -47.92072,
+-249.81819,  130.63123,  -62.14239,  -48.99425,  -34.38806,  -14.66482,    1.07221,  -27.83782,   -4.74374,   -0.83245,   -0.56152,   -0.98220,  -48.11487,
+-254.00978,  139.72881,  -59.63356,  -36.40792,  -26.36911,  -17.42650,  -19.30721,  -22.03000,   -0.97694,    7.48954,    3.50996,   -3.00547,  -50.41830,
+-259.76166,  154.54689,  -53.19246,  -16.99224,  -17.35365,  -11.15831,  -24.09927,  -17.77573,   -1.32666,    1.86994,   -4.33618,  -14.71345,  -36.14102,
+-309.31085,  176.01402,  -48.16504,    1.92940,   -9.54937,   -7.85120,  -30.84069,  -27.12883,   -6.02949,   -7.01642,   14.15697,  -17.98174,  -17.55932,
+-440.07883,  184.48796,  -10.16064,   18.17631,   16.42781,    0.29587,  -16.35007,  -20.31314,   -5.56250,   -0.70789,   13.50835,  -11.07479,  -10.24114,
+-512.24915,  192.43919,   20.11260,    9.00326,   24.41474,   -9.59827,  -25.85304,  -11.96010,   -2.19711,    6.27681,    9.08973,  -10.23279,  -17.25590,
+-545.09546,  175.38416,   27.32856,    9.03898,   28.14956,   -3.71783,  -21.98946,   -5.63140,   -3.17746,   -8.66310,    0.45472,   -1.61766,  -15.34482,
+-616.07855,  134.16933,   52.32460,   13.84887,   17.44582,   14.40052,   -4.27584,  -11.32673,    0.50363,   10.12419,    2.44672,  -13.78299,  -21.20637,
+-659.68634,   99.49026,   60.61839,   28.53442,   10.91960,   -0.92757,   -9.31487,   -8.36906,   -0.55846,    2.12741,   -4.53421,  -10.89314,   -8.77946,
+-659.05249,   96.39398,   51.13544,   18.32431,    7.06392,    6.12628,    6.43870,    3.02480,   -6.60868,  -16.90468,  -19.56609,  -15.09356,  -10.13031,
+-663.96637,   88.90488,   44.31673,   15.60063,    9.49454,   12.31807,   15.58250,   12.86089,   -1.57275,  -18.46472,  -21.38613,  -11.58452,   -3.48439,
+-705.61469,   48.35851,   37.74590,   26.64371,   18.58700,   13.84768,   10.08821,    4.86532,   -1.35519,   -6.30758,   -9.04604,  -10.25949,  -11.49900,
+-712.27972,   37.26599,   25.93010,   20.55217,   21.43903,   20.69118,   14.25117,    5.64500,   -0.06065,   -2.23915,   -3.81368,   -6.35554,   -9.13893,
+-722.03278,   26.32119,   20.04255,   16.95817,   17.41955,   16.11649,    9.82035,    1.73084,   -3.03804,   -3.87100,   -4.45093,   -7.37119,  -11.27701,
+-726.48999,   22.07387,   19.45728,   17.36243,   15.53367,   12.31727,    7.63438,    3.50081,    1.23575,   -0.28905,   -2.63978,   -5.22975,   -6.21708,
+-731.08289,   15.97149,   14.62836,   13.32377,   12.42178,   10.31140,    7.56272,    4.76615,    3.10965,    1.21597,   -1.16498,   -3.99053,   -5.54179,
+-639.79535,   51.71355,   -2.33925,   35.18297,   36.18015,   -6.28807,  -26.16285,   -0.99254,    5.17867,   -0.96490,   10.68179,    1.95577,  -11.31189,
+-342.22736,   74.86382,  -12.04188,   24.78247,   23.38870,   -5.64898,  -20.37819,   15.64958,   14.62847,  -11.82782,   -6.57900,   -3.53603,  -18.39786,
+-316.12149,   82.72071,  -19.31676,    7.00616,   11.48070,   -2.32272,   -9.79769,    9.02850,    8.73732,  -12.53925,  -13.31921,    3.73772,  -14.35109,
+-373.67056,   90.69460,  -30.11087,  -15.01380,  -11.97342,   -7.14060,   11.48161,    9.99608,    5.34673,    2.11251,   -9.52344,   11.62454,  -14.17081,
+-402.84872,   92.72632,   -4.53706,  -17.97655,  -24.18877,  -15.23140,   20.55283,    4.26547,   -1.90602,   16.05496,   -8.39785,   17.63147,   -7.58050,
+-408.00958,  104.34008,   22.46475,   -2.44329,  -14.62350,  -17.33055,   15.03711,  -14.86941,  -20.18334,   24.46267,  -28.20920,    3.93071,  -20.25869,
+-405.76697,  147.20627,   56.66483,    4.83606,  -36.89982,  -27.85701,    6.59308,  -20.22911,  -28.79591,   17.14229,  -37.56203,    8.35426,  -20.11530,
+-405.19531,  186.35690,   56.11123,    0.79771,  -63.96230,  -45.93291,    7.61355,   -7.51543,  -15.41443,   26.49616,  -35.26764,  -12.33839,  -28.09844,
+-415.56647,  186.05031,   44.84282,    8.57117,  -75.28368,  -39.46779,    8.06600,   -5.73941,  -16.75528,   23.65435,  -33.09233,   -8.24646,  -20.35406,
+-410.48975,  169.63432,   47.38409,   11.42275,  -82.42666,  -35.03646,    4.36853,  -12.49395,  -26.03498,   14.63939,  -41.48138,    3.48123,  -21.27683,
+-389.01846,  181.50140,   31.39800,   -0.73777,  -86.05359,  -40.73767,    1.15004,  -10.21134,  -17.95034,   12.57470,  -51.81875,    5.42645,  -29.16546,
+-381.36578,  190.97713,   16.56431,  -18.99318,  -74.91054,  -40.46955,    9.64043,    1.46569,   -9.14612,    3.86484,  -37.25309,    0.22394,  -36.43250,
+-372.44888,  197.29846,    6.56907,  -36.48407,  -43.23312,  -28.98909,   10.33254,    6.20580,  -12.04798,  -30.40288,  -25.32218,    7.00081,  -30.52537,
+-349.32806,  191.64467,  -14.09583,  -48.44706,  -17.40703,  -16.26879,   12.72570,  -10.09641,  -22.76518,  -50.48253,   -6.45452,    9.54748,  -21.54997,
+-329.09549,  185.53635,  -23.96144,  -48.33319,   12.20624,   -9.46398,   -1.35701,  -26.31596,  -37.73962,  -40.88706,   14.07668,   12.47700,  -22.13748,
+-332.91913,  172.24333,  -31.32884,  -38.86584,   27.30210,  -13.64118,  -27.55054,  -36.44904,  -34.19913,  -35.77820,   10.24152,    2.61219,  -29.05568,
+-337.38162,  159.34306,  -21.24244,  -19.63639,   37.31166,  -10.48006,  -53.06920,  -30.64360,  -13.26747,  -36.61865,   -3.26523,   -5.97771,  -30.19121,
+-345.73712,  148.88217,  -10.56683,    3.55900,   36.27192,  -20.22350,  -64.35509,  -16.89741,   -1.25741,  -43.80673,  -11.09250,   -4.66476,  -29.39306,
+-347.59207,  124.05372,    0.06424,   26.65538,   27.07813,  -24.55914,  -52.08172,   -9.33817,    0.87643,  -52.62959,  -13.25934,   -4.64068,  -38.93477,
+-354.77094,  107.03270,   18.57542,   39.82758,   21.07135,  -20.15565,  -32.71638,    3.82454,    3.26863,  -49.43832,  -18.47179,   -1.33855,  -46.21080,
+-356.82126,  101.29904,   31.65295,   48.51870,   25.42647,  -24.41973,  -17.62938,   -3.69525,   -6.80475,  -37.40614,  -16.25546,    3.79310,  -46.79686,
+-365.47476,   96.48830,   37.55275,   52.13327,   27.34974,  -23.96722,  -19.71255,   -2.85377,  -15.44656,  -31.10847,  -11.01326,    2.28878,  -38.16014,
+-359.25830,  100.04993,   35.95026,   43.66024,   34.67427,  -23.88166,  -25.05778,    6.28581,  -13.95853,  -29.20864,  -14.47804,   -4.28369,  -38.17802,
+-355.16251,   85.51714,   36.95945,   47.05676,   35.13097,   -0.48355,  -26.01568,    8.33860,   -0.76428,  -32.37434,  -24.03978,  -12.23794,  -24.79102,
+-345.82358,   53.52118,   50.42019,   43.07238,   20.82985,    2.91177,  -32.40328,    1.76590,   -0.75600,  -17.39132,  -24.83293,  -24.84604,  -18.59051,
+-324.37042,    6.48494,   81.98193,   59.58132,   13.82420,   18.43753,  -21.45969,    7.82956,    4.68797,  -16.76673,  -28.63046,  -22.80368,  -24.61898,
+-338.64651,  -20.17721,  102.06671,   56.37870,   10.54378,   17.93890,  -12.79192,    3.72052,   19.59299,  -18.45952,   -5.52712,  -10.50150,  -14.15830,
+-337.57449,  -38.65701,   94.49697,   55.52618,   16.52288,   26.58708,   -6.60422,    5.20680,   32.34816,  -10.49484,  -13.71105,  -17.84119,  -20.07737,
+-337.04196,  -30.74304,   83.06897,   40.65010,   20.80648,   36.09961,   -4.79771,    2.75117,   20.44530,    4.15405,   -9.48995,  -14.69443,  -17.01763,
+-336.17767,  -17.02739,   78.98351,   36.36460,   16.83785,   35.33120,   -8.01113,   -1.16322,   14.32056,   -6.75638,  -18.05978,  -11.20271,  -19.45627,
+-328.07965,    9.37859,   76.33435,   36.29006,   12.61380,   35.82531,  -24.38402,  -17.90148,   19.43253,   -9.25912,  -23.28895,  -17.65702,  -21.09180,
+-343.16101,   44.98497,   70.59290,   36.67994,   10.65938,   33.58757,  -31.46309,  -21.07189,    4.88002,  -12.56131,  -15.16683,  -23.74206,  -22.84709,
+-363.25851,   89.59911,   49.30536,   34.12471,    2.75580,   27.73447,  -31.61609,  -24.36949,    3.89285,  -13.43786,  -23.47494,  -20.88989,  -31.23467,
+-379.68423,  119.24084,   18.05355,   26.64109,   15.60474,   30.37321,  -26.09801,  -25.50461,    9.00627,  -30.22595,  -19.81620,  -21.95905,  -38.36639,
+-384.54666,  126.66396,   17.38682,   14.13732,   27.81340,   14.06393,  -21.93423,  -27.65716,    9.35011,  -42.40445,  -17.44700,   -9.82522,  -30.37819,
+-411.82861,  155.06801,    7.81988,   25.71399,   10.58142,   13.98584,  -20.39351,  -35.70902,   12.12937,  -33.90580,  -11.49447,  -10.75090,  -42.80706,
+-471.00290,  176.11607,   19.88964,   31.80215,   18.70531,   17.40353,  -24.72796,  -23.13475,    6.21466,  -30.76181,   -7.90854,  -19.20424,  -46.07262,
+-542.09521,  178.40500,   50.89020,   33.66317,   49.60354,   18.17146,  -17.65844,  -21.48166,  -25.04848,  -32.41996,  -11.10730,  -10.62945,  -27.44338,
+-550.66718,  182.16162,   54.56665,   27.04737,   54.47807,   31.37173,   -6.15687,  -21.02319,  -22.85120,  -24.10654,  -19.48920,  -21.63028,  -22.44670,
+-552.81726,  182.10162,   61.26754,   35.03073,   55.85181,   30.13055,   -5.99490,  -20.07623,  -22.07219,  -15.74288,  -13.91844,  -20.16744,  -18.97942,
+-544.18488,  182.36761,   52.82781,   36.16469,   61.39413,   25.15055,   -9.71565,  -14.11956,  -18.60657,  -17.49442,  -10.51644,  -15.87521,  -21.88856,
+-545.78558,  179.03738,   48.88223,   33.75148,   62.84162,   29.09242,   -6.05286,  -11.99398,  -17.85251,  -15.68026,   -6.50234,  -12.05964,  -23.38323,
+-556.52777,  174.80112,   53.80671,   37.43137,   57.72126,   27.46006,   -3.14888,   -9.04027,  -15.06365,  -11.37029,   -2.66824,  -11.51523,  -24.39712,
+-549.42841,  171.00031,   42.87871,   42.80640,   66.08316,   25.29501,    0.87917,   -1.86104,  -17.41379,  -17.45526,    0.62682,   -9.37598,  -19.51379,
+-550.77026,  167.68494,   41.31839,   47.43911,   71.51474,   23.08547,   -3.54858,   -2.01599,  -12.36597,  -15.21634,    0.98496,   -9.53740,  -16.19566,
+-562.23907,  162.02208,   49.44933,   45.88921,   66.58150,   24.05586,   -8.63106,   -3.62967,   -6.04240,   -3.92589,   -1.60562,   -7.13539,  -11.40836,
+-567.48071,  162.70137,   47.84641,   42.31034,   64.06474,   30.14901,   -2.78371,   -6.70905,  -10.95013,   -6.79315,    1.08683,   -7.31497,  -17.66081,
+-592.04895,  154.20142,   67.06769,   50.96314,   57.81846,   34.39915,    9.02027,   -1.97011,   -9.80261,  -11.53745,  -13.48275,  -23.37712,  -21.63716,
+-613.96185,  142.23486,   78.04945,   54.53412,   50.37206,   35.27765,   16.71364,   -0.16995,  -10.51157,   -7.81608,   -7.27338,  -18.19815,  -22.58065,
+-623.37231,  130.30595,   76.90309,   64.94444,   58.26167,   31.72890,   12.44767,    0.89875,   -7.31113,   -8.87330,  -11.26855,  -16.62859,  -12.09391,
+-526.01825,  145.78355,    8.95888,   52.16813,   28.99513,   -5.08013,   13.08779,   14.38430,   -0.01122,  -10.31202,   -7.53272,   -7.29460,   -3.43278,
+-539.64673,  138.42181,   12.10800,   48.64116,   26.21812,  -13.02563,   10.41339,   16.91183,    3.32470,   -6.08288,   -2.11641,   -6.44468,   -5.93290,
+-589.82617,  122.51987,   21.44257,   41.49991,   42.71370,    3.13264,   10.15284,   24.20997,   14.37974,    9.17556,   -4.46364,  -21.85761,  -16.65999,
+-615.26050,  104.61245,   14.61877,   24.35236,   35.20853,    5.54551,    6.43138,   22.46386,   18.52065,    9.82759,   -5.80420,  -27.75697,  -25.72497,
+-655.27783,   74.97298,   18.20997,   29.73637,   36.75604,    5.38053,   -3.63343,   13.44123,   18.08150,    6.55374,  -10.95804,  -22.64592,  -16.10758,
+-683.23322,   59.71490,   28.18122,   30.36807,   34.32085,   18.50830,    7.70230,   11.60670,   14.50619,    7.28390,   -7.20995,  -17.80128,  -17.05165,
+-709.21967,   34.49238,   17.61381,   18.90655,   19.67831,    7.15575,   -1.46977,    1.13926,    2.01570,   -3.91360,  -10.35604,  -12.89073,  -11.23378,
+-722.60254,   27.00973,   23.59079,   21.18510,   18.54302,   13.69143,    8.24810,    4.72475,    2.12363,   -1.78975,   -6.01705,   -8.09017,   -8.43185,
+-728.82135,   19.60254,   18.29690,   16.35365,   14.01246,   11.45263,    8.74696,    5.88674,    2.85985,   -0.26681,   -3.31179,   -6.01459,   -8.12518,
+-734.40045,   11.88858,   11.12416,   10.03389,    8.64481,    6.90780,    4.89620,    2.83119,    0.88499,   -0.93537,   -2.64846,   -4.13302,   -5.20602,
+-731.09973,   16.23312,   15.63525,   14.62359,   13.13073,   11.01530,    9.38444,    7.01467,    4.70279,    2.58447,    0.73818,   -1.51889,   -2.83358,
+-735.99713,    9.36690,    9.22009,    8.00824,    7.25840,    5.54003,    4.38853,    2.40805,    1.12161,   -0.83802,   -1.98246,   -3.65658,   -4.42722,
+-738.08246,    6.74858,    6.11811,    5.14963,    3.94640,    2.62023,    1.27304,   -0.01320,   -1.17665,   -2.16874,   -2.94603,   -3.46665,   -3.69432,
+-734.35925,   12.00047,   11.33683,   10.30780,    8.95957,    7.32947,    5.49645,    3.58400,    1.70265,   -0.08561,   -1.73316,   -3.16493,   -4.30174,
+-734.30115,   11.98556,   11.23580,   10.41712,    9.47419,    8.09429,    6.28417,    4.45523,    2.87658,    1.35736,   -0.34371,   -2.03668,   -3.31543,
+-738.17822,    6.62347,    6.20253,    5.86356,    5.53534,    4.91368,    3.97001,    3.02845,    2.28791,    1.54555,    0.55870,   -0.53031,   -1.38146,
+-739.94824,    4.22052,    3.90312,    3.39999,    2.74741,    1.99142,    1.18364,    0.37680,   -0.37978,   -1.04404,   -1.58425,   -1.98085,   -2.22703,
+-739.30322,    5.06824,    4.56438,    3.77272,    2.76009,    1.60996,    0.41392,   -0.73753,   -1.76363,   -2.60055,   -3.20636,   -3.56323,   -3.67687,
+-739.16473,    5.30410,    4.91553,    4.30079,    3.50576,    2.58837,    1.61301,    0.64460,   -0.25719,   -1.04301,   -1.67751,   -2.14146,   -2.43210,
+-736.69739,    8.79853,    8.42094,    7.81059,    6.99461,    6.00839,    4.89334,    3.69428,    2.45682,    1.22480,    0.03817,   -1.06882,   -2.06871,
+-734.32904,   12.03986,   11.37942,   10.41253,    9.27072,    8.04052,    6.73659,    5.32101,    3.75596,    2.05790,    0.32033,   -1.30946,   -2.68754,
+-736.46539,    9.08386,    8.58840,    7.80864,    6.79541,    5.60690,    4.31370,    2.99494,    1.72147,    0.54269,   -0.51056,   -1.41694,   -2.16573,
+-738.00793,    6.90498,    6.52955,    6.14000,    5.71911,    5.11078,    4.31552,    3.53233,    2.87486,    2.21075,    1.38225,    0.46470,   -0.34030,
+-738.29486,    6.57672,    6.30999,    5.88031,    5.30815,    4.61892,    3.84067,    3.00211,    2.13129,    1.25494,    0.39838,   -0.41441,   -1.16096,
+-735.73694,   10.02796,    9.55337,    8.62896,    7.59865,    6.26828,    4.98420,    3.55015,    2.27467,    0.94200,   -0.18489,   -1.32611,   -2.24739,
+-738.12238,    6.82689,    6.57912,    6.18188,    5.65690,    5.03126,    4.33449,    3.59570,    2.84085,    2.09071,    1.35968,    0.65559,   -0.01955,
+-741.35187,    2.32154,    2.25504,    2.14647,    1.99904,    1.81698,    1.60526,    1.36934,    1.11486,    0.84744,    0.57248,    0.29505,    0.01979,
+-740.19116,    3.91596,    3.71056,    3.37813,    2.93304,    2.39441,    1.78518,    1.13102,    0.45907,   -0.20331,   -0.82985,   -1.39657,   -1.88286,
+-740.28094,    3.82164,    3.71215,    3.53285,    3.28839,    2.98509,    2.63071,    2.23421,    1.80547,    1.35500,    0.89357,    0.43194,   -0.01951,
+-738.56226,    6.22831,    6.04752,    5.75127,    5.34703,    4.84492,    4.25744,    3.59908,    2.88593,    2.13516,    1.36458,    0.59208,   -0.16482,
+-737.59711,    7.48435,    7.10050,    6.68635,    6.21458,    5.52307,    4.61379,    3.69611,    2.90172,    2.11949,    1.20903,    0.25253,   -0.55514,
+-738.57526,    5.76306,    5.26624,    4.74333,    4.66980,    3.88802,    2.90043,    1.82335,    1.50358,    1.10149,    0.47930,   -0.44566,   -0.81899,
+-724.99268,   -0.10466,  -15.73566,   14.00270,   17.04775,  -10.95862,   -4.33519,   15.78423,    2.44723,   -9.77599,    3.77438,    7.40308,   -4.98057,
+-590.63898,  -39.88918,  -61.68854,   29.76473,   38.49112,  -12.07083,  -15.84209,   22.42212,   -4.31226,    9.27367,   -4.15463,   10.12855,  -12.81028,
+-520.53040,  -62.00702,  -56.77345,   34.64658,   41.82232,  -11.03334,  -17.87015,   16.52698,   -0.77704,    5.50097,  -10.93985,   13.53583,  -21.96571,
+-499.40854,  -82.09811,  -42.77442,   46.67083,   30.14816,  -10.77432,   -8.14084,   19.69935,   -3.97295,    7.10202,   -9.52753,   17.72063,  -19.13954,
+-478.88480, -102.54325,  -33.41099,   51.24611,   22.43158,  -15.02392,  -12.73046,   18.12399,   -5.56858,   20.43665,   -5.20860,    1.63608,  -22.93487,
+-460.00089, -117.45983,  -38.14782,   44.41587,   10.85175,  -18.42480,  -20.85704,   13.42610,   -5.06648,   14.77578,   -5.41554,    5.98919,  -12.92177,
+-436.08902, -106.75754,  -37.54352,   47.05707,    6.49411,  -21.96540,  -20.56840,   11.17224,   -4.91976,    8.21666,   -9.43517,    0.02851,  -24.14723,
+-431.53085, -104.52063,  -31.69811,   55.99023,   14.07409,   -9.67273,   -6.03402,   21.91988,  -14.17605,    6.90253,  -10.94309,    6.77816,  -18.33216,
+-424.59906,  -86.83882,  -22.08900,   53.29281,   19.05461,   -7.95386,   -2.32602,   19.13455,  -19.69125,    8.10068,   -6.92678,   10.93707,  -16.15567,
+-428.36624,  -67.50560,  -24.48224,   50.47601,   18.74273,  -20.39020,  -20.49356,   16.66978,  -11.89109,    1.08991,   -8.05492,    5.10515,   -8.56974,
+-443.08276,   -8.88845,  -10.48011,   66.38592,   49.91155,    0.86849,   -0.34684,   22.84564,   -2.74701,    0.58778,  -17.34853,    5.22805,  -11.46131,
+-435.82764,   95.80535,   13.62339,   80.46363,   55.52112,   -7.25954,   -1.67090,   10.80670,  -10.50134,   -8.81252,  -25.66192,   -3.25990,  -20.18513,
+-381.94879,  131.20715,  -16.48029,   87.01087,   53.16800,  -45.39627,   11.92146,    9.28672,  -14.34239,  -15.28063,  -32.94108,    3.39632,  -20.16990,
+-374.69403,  118.91750,  -17.20040,   82.15328,   56.67689,  -41.36109,   23.95814,   13.94576,  -15.61728,  -15.42536,  -38.30678,   13.34375,  -29.81994,
+-369.38788,  124.81142,  -24.51602,   89.74030,   48.55617,  -41.11355,   18.53158,    8.42735,  -15.37730,  -14.26523,  -28.02233,    9.68363,  -36.25220,
+-386.45721,  118.97467,  -22.82434,   96.50023,   47.94357,  -37.79622,   16.12708,    1.16924,  -14.44053,  -24.05315,  -24.62144,   17.51671,  -29.46925,
+-421.42725,  115.36848,  -14.01150,   98.95058,   45.11883,  -34.03223,   18.23173,    2.81380,   -6.00298,  -30.70661,  -15.66134,    8.52229,  -39.76482,
+-468.87555,  111.35516,   16.96186,  108.35189,   44.64090,  -28.17288,    8.54648,    1.14605,   -1.83844,  -36.53164,   -6.91851,   17.54620,  -42.04927,
+-544.56995,  101.10758,   43.59412,   97.50617,   41.32880,  -20.49871,    6.59254,   11.98400,   13.62090,  -35.46710,   -5.78840,   22.58328,  -32.60872,
+-616.66064,  102.26636,   52.12772,   74.47034,   45.83502,    0.88920,   13.82385,   27.56186,    4.32556,  -31.13667,   -0.50148,    8.55910,  -24.87976,
+-655.08875,   92.81599,   66.07819,   64.82114,   50.34473,   17.12009,    7.09327,    7.61381,    1.25385,  -12.30105,   -2.86482,   -1.24810,  -11.74414,
+-667.78241,   79.23113,   64.03854,   57.02592,   57.56951,   27.23013,    9.59921,    5.18198,    7.68584,   -4.19990,   -8.00458,   -7.87641,   -6.57486,
+-642.40674,   94.75227,   25.83233,    5.45235,   27.99678,   28.74962,   15.73191,    4.30192,    4.12479,    2.92348,    2.88622,   -2.28952,   -9.06624,
+-451.78699,   99.16212,  -27.62571,  -31.75214,   31.80745,  -16.08509,   11.18785,  -14.27908,  -21.10685,    7.97357,   -0.75501,   -2.21972,   -6.87012,
+-401.80478,  109.05980,  -40.16762,  -28.47931,   26.69852,  -14.71886,   13.88773,  -17.41035,  -25.91043,    4.41777,   -1.47560,   -4.54047,   -9.88411,
+-368.46060,  117.97938,  -37.87859,  -40.05217,   16.11098,  -17.78066,   33.12175,   -9.39918,  -22.65516,   -2.05613,    5.48190,    3.70603,  -14.99805
+};
+
+static const float golden_diff1_features[] = {
+-123.11830,    0.99917,    0.95805,    0.89408,    0.81248,    0.71794,    0.61364,    0.50104,    0.38071,    0.25359,    0.12199,   -0.01007,   -0.13747,
+-110.86054,    0.82501,    0.79184,    0.73540,    0.66041,    0.57449,    0.48119,    0.37892,    0.26721,    0.15073,    0.03548,   -0.07627,   -0.18402,
+ -86.10514,    0.80844,    0.77220,    0.70644,    0.61741,    0.51769,    0.41308,    0.30020,    0.17814,    0.05537,   -0.05868,   -0.16374,   -0.26398,
+ -49.11975,    0.55242,    0.48541,    0.43367,    0.39057,    0.31347,    0.20146,    0.10639,    0.05811,    0.02169,   -0.04557,   -0.12705,   -0.17475,
+   0.19521,    0.21516,    0.12044,    0.11689,    0.17158,    0.15369,    0.05109,   -0.00531,    0.05060,    0.11282,    0.06911,   -0.02435,   -0.03706,
+  -0.03262,   -0.08807,   -0.14386,   -0.11539,   -0.03314,   -0.00671,   -0.04884,   -0.05501,    0.02827,    0.11541,    0.11466,    0.06971,    0.08476,
+  -0.22049,   -0.33602,   -0.36584,   -0.34196,   -0.28473,   -0.26232,   -0.28089,   -0.27253,   -0.20086,   -0.11662,   -0.07589,   -0.05276,    0.01411,
+  -0.25332,   -0.37332,   -0.39287,   -0.38077,   -0.34722,   -0.32975,   -0.32956,   -0.30655,   -0.24162,   -0.16621,   -0.11195,   -0.06195,    0.01795,
+  -0.10887,   -0.15171,   -0.14795,   -0.14679,   -0.14613,   -0.13917,   -0.12300,   -0.10187,   -0.08020,   -0.05580,   -0.02353,    0.01600,    0.05628,
+   0.14574,    0.22539,    0.25125,    0.23819,    0.19844,    0.18125,    0.19373,    0.18966,    0.14405,    0.09475,    0.08440,    0.09461,    0.07662,
+   0.15581,    0.25311,    0.29410,    0.25368,    0.16032,    0.10641,    0.10988,    0.08252,   -0.01615,   -0.11151,   -0.11978,   -0.07825,   -0.07926,
+   0.30504,    0.46966,    0.49986,    0.39949,    0.21782,    0.10238,    0.08256,    0.03093,   -0.11686,   -0.25540,   -0.27020,   -0.22181,   -0.24756,
+   0.69681,    0.83032,    0.56994,    0.48308,    0.48805,    0.30629,   -0.04563,   -0.26607,   -0.23658,   -0.18923,   -0.31124,   -0.45747,   -0.41045,
+   1.23411,    1.01172,   -0.00456,    0.21409,    0.97355,    0.66618,   -0.46384,   -0.82240,   -0.14151,    0.23893,   -0.31966,   -0.84641,   -0.49297,
+   1.76171,    0.80587,   -1.22535,   -0.45464,    1.02315,    0.71143,   -0.59803,   -1.19359,   -0.41006,    0.70317,    0.35665,   -0.79858,   -0.53647,
+   3.43839,    1.20394,   -2.84728,   -1.25620,    1.11030,    0.74963,   -0.45219,   -1.08916,   -0.48705,    0.89677,    0.41597,   -1.13295,   -0.54123,
+   6.29922,    1.56643,   -4.70324,   -1.21880,    1.29313,    0.77561,   -0.27214,   -1.02235,   -0.60671,    0.62004,    0.43811,   -0.68649,   -0.38170,
+  13.59902,    2.97291,   -7.69089,   -1.19724,    1.34852,    0.10822,   -0.16015,   -0.54947,   -0.66831,    0.77170,    0.77724,    0.56974,   -0.44725,
+  25.95202,    3.48014,   -9.57049,   -1.29846,    1.17726,    0.15919,   -0.36061,    0.04513,   -1.06441,    1.13393,    1.13645,    1.74329,   -0.98233,
+  35.41563,    3.74347,   -9.29239,   -1.40323,    0.30726,    0.36464,   -0.50191,    0.71997,   -1.83411,    0.12763,    0.01438,    1.52732,   -1.34014,
+  40.30910,    3.88652,   -8.24915,   -0.51924,   -0.68049,   -0.03190,   -1.15086,    0.78199,   -1.46009,   -0.44920,   -0.90312,    0.88450,   -1.12363,
+  41.16010,    4.18969,   -6.31749,    0.48709,   -0.62803,   -0.33113,   -2.02391,    0.56536,   -1.08399,   -0.61680,   -1.58262,   -0.17104,   -1.31953,
+  36.85773,    4.19310,   -4.33543,    0.52477,   -0.77216,    0.08440,   -2.05214,    0.95521,    0.29329,   -0.04903,   -2.08752,   -0.69174,   -0.55677,
+  26.98730,    3.02555,   -2.70108,    0.37827,   -0.98518,    0.42249,   -1.58129,    0.48110,    0.75456,    0.96493,   -1.02983,   -0.70425,   -0.47341,
+  14.50198,    3.08342,   -1.43540,   -0.41395,   -0.26288,    1.25355,   -0.47332,    0.79696,    1.54798,    1.79086,   -1.01742,   -1.27096,   -0.19327,
+  -0.07425,    3.51203,    0.07904,   -0.84623,    0.57152,    1.84925,    1.18436,    0.97503,    1.68712,    1.80404,   -0.87783,   -0.97168,    1.01794,
+ -10.13729,    6.59868,    0.20801,   -2.22731,    0.70834,    0.99239,    2.04797,    1.25381,    2.11591,    1.73793,   -0.78743,   -0.58378,    1.70931,
+ -11.73542,    9.55152,    0.23723,   -3.87789,    0.81732,    1.30697,    2.35846,    0.37123,    0.84172,    1.45737,    0.26195,    0.25325,    1.43181,
+ -12.08789,   10.97621,    0.84113,   -5.59512,    0.54512,    1.70936,    2.80604,   -0.04408,   -1.23794,    0.64584,    0.67573,   -0.32758,    1.31251,
+ -14.45271,   10.03827,    2.16457,   -6.36324,   -0.71855,    1.59761,    3.24396,   -0.39643,   -1.34466,   -0.12180,    0.68246,   -1.69113,    0.68083,
+ -18.53185,    6.60991,    5.65825,   -4.11071,   -0.05131,    2.15530,    3.25167,   -0.76546,   -1.56379,   -1.75907,   -0.10137,   -2.19705,    1.11219,
+ -21.35056,    3.05293,    9.36903,   -1.03400,    0.00783,    2.01184,    3.33418,    0.55118,    0.17739,   -1.68767,    0.23982,   -1.36500,    1.70118,
+ -18.56425,    2.78826,   11.28176,   -0.03004,   -1.78994,    0.82329,    2.50660,   -0.06341,    0.09623,   -1.57193,    1.14418,   -1.09023,   -0.12693,
+ -12.09316,    3.36681,   11.47227,    0.95308,   -2.17463,    0.00065,    0.84474,   -0.54763,   -0.33692,   -1.05079,    1.07330,   -0.80153,   -2.42432,
+   1.92679,    5.35752,    9.80011,   -0.02818,   -2.80453,   -0.67148,    0.68485,   -0.32753,   -1.23095,    0.20005,    0.88925,   -0.09440,   -3.41398,
+  19.79073,    8.85031,    7.22205,   -2.59490,   -3.92287,   -2.03960,   -0.02755,    0.15578,   -1.13285,    1.33972,    0.17429,    0.10092,   -4.90758,
+  35.92577,   11.48686,    5.10447,   -3.74352,   -4.61698,   -2.36022,   -1.00173,    0.19538,   -1.15090,    1.75878,   -0.54673,    0.65150,   -6.24128,
+  50.58400,   13.03088,    0.42639,   -4.54247,   -5.20881,   -3.31127,   -2.88928,    0.01554,   -1.66646,    1.81067,   -0.44956,    0.39215,   -6.96486,
+  57.90758,   10.98468,   -5.91219,   -5.56255,   -5.41425,   -4.90112,   -3.53827,    0.57130,   -0.89262,    1.92968,   -0.92637,   -0.95299,   -7.09069,
+  55.78551,    5.89209,   -9.03530,   -3.58417,   -2.52814,   -5.95845,   -3.81914,    0.76729,   -0.29327,    0.83804,   -1.38007,   -1.59041,   -3.67697,
+  46.80977,   -0.83933,   -9.70238,    0.72430,    0.84962,   -7.95729,   -4.29974,    2.43014,    1.13752,   -0.20215,   -1.03846,   -0.79795,    0.57891,
+  35.46388,   -4.72663,   -8.90094,    4.67138,    2.66211,   -9.68076,   -5.10884,    1.80854,    0.66877,   -1.86039,   -0.66617,    0.29346,    2.94240,
+  19.55447,   -8.28039,   -5.55247,    9.20015,    4.92099,  -10.90987,   -6.07571,    0.76598,   -0.32883,   -3.58855,   -1.15677,    0.78949,    3.67301,
+   7.47528,   -9.40369,   -1.98193,   12.06493,    6.37570,  -10.15639,   -5.08030,   -0.06683,   -2.30887,   -4.74815,   -2.23084,    0.41731,    4.12727,
+  -2.35128,   -8.86452,    2.02752,   14.25492,    6.66997,   -7.73172,   -2.34869,   -1.13136,   -4.27439,   -5.14893,   -2.52870,    0.22870,    3.19781,
+ -13.74784,   -8.39473,    7.58204,   16.23704,    5.20402,   -4.16565,    0.95284,   -1.97663,   -4.40917,   -4.80555,   -2.17866,    1.63009,    1.38432,
+ -28.90904,   -3.94742,   12.48695,   16.28066,    2.81784,    0.13804,    2.36518,   -3.08546,   -3.78945,   -4.59171,   -1.65770,    2.07464,   -0.09225,
+ -40.26587,   -3.22518,   14.64699,   15.65972,    0.61256,    6.07845,    2.82745,   -2.91284,   -1.93971,   -4.22240,   -1.75182,    1.26154,   -0.45747,
+ -45.14349,   -3.95551,   14.24252,   13.35371,   -0.66332,   10.23118,    2.24892,   -3.26564,   -0.24511,   -3.25066,   -1.04008,   -0.10879,   -0.11971,
+ -50.70501,   -2.20058,   13.77331,    8.13219,   -0.59765,   10.97492,    1.83205,   -2.69995,    0.97870,   -2.27968,   -0.32133,   -1.40878,    0.84365,
+ -51.82294,   -1.78247,   11.21226,    3.38317,    0.42440,   11.02288,    1.51470,   -2.02442,    2.18843,   -0.48708,    1.11811,   -0.94949,    1.98539,
+ -49.81170,   -3.51574,    7.56374,   -1.76232,    1.39623,    9.76060,    1.62028,   -0.36254,    3.84997,    1.17318,    1.67293,   -0.91917,    1.80862,
+ -44.15802,   -5.91185,    3.48952,   -5.78543,    2.65587,    8.07939,    1.97629,    1.60731,    4.55197,    2.19508,    1.27429,   -1.31118,    1.56218,
+ -35.33823,   -8.08526,    0.15498,   -7.07355,    3.57980,    6.18474,    2.92167,    2.86992,    3.89624,    2.65474,    0.84629,   -1.42729,    1.20335,
+ -24.67462,   -9.85952,   -2.72238,   -7.17991,    2.86062,    3.23167,    4.07403,    3.24118,    3.37722,    2.99099,    1.17120,   -0.22057,   -0.06190,
+ -20.59121,   -7.97999,   -4.90647,   -7.59573,    1.78547,    0.12186,    4.10282,    2.56175,    2.72723,    3.25732,    1.48873,    0.67668,   -0.26983,
+   3.07428,   -9.33687,   -7.83053,   -7.12828,   -1.75935,   -1.53312,    2.67727,    1.46145,    2.30059,    3.12121,    1.47116,    2.10630,    0.50347,
+  34.85448,  -12.44948,   -8.60693,   -5.78039,   -5.09658,   -1.93558,    0.88214,   -0.10276,    2.24627,    2.23317,    1.37225,    3.08518,    1.09415,
+  53.15696,  -15.17300,   -5.60713,   -4.74609,   -6.88502,   -2.72789,   -0.78592,   -1.64544,    1.69279,    0.83795,    0.87184,    3.41102,    1.33665,
+  63.19269,  -18.34933,   -2.68293,   -1.60527,   -5.52794,   -2.98085,   -2.15557,   -1.58699,    2.18150,   -0.01729,    0.79118,    4.58937,    2.20473,
+  65.03039,  -20.59490,   -2.70460,    0.33127,   -4.29067,   -3.65004,   -3.10802,   -0.79441,    2.44594,   -0.59979,    0.76763,    4.64011,    2.38635,
+  58.15821,  -18.48174,   -4.17419,    1.99928,   -3.14752,   -4.23100,   -3.76360,    0.39203,    2.04124,   -0.63182,    1.11693,    3.96532,    2.29718,
+  43.36550,  -12.39132,   -5.47534,    3.43893,   -0.83615,   -3.45579,   -4.07687,    1.14879,    1.74518,   -0.71960,    1.67511,    3.23933,    2.07236,
+  22.79780,   -1.72378,   -3.69967,    4.69732,    2.31691,   -2.70338,   -3.56008,    2.56122,    0.69024,   -1.13102,    1.02780,    1.32513,    0.84953,
+  -2.38226,   11.01462,   -1.65994,    4.38537,    5.09022,   -2.44627,   -3.58302,    2.97971,   -0.93223,   -1.13723,   -0.36051,   -1.66610,   -0.48844,
+  -9.15842,   20.82118,   -2.51988,    1.32690,    4.36041,   -3.41942,   -4.40026,    1.89496,   -2.22513,   -0.65096,   -2.51034,   -3.45496,   -2.17831,
+  -4.90597,   28.78299,   -1.34937,   -2.74360,    3.06130,   -3.39814,   -4.09993,   -0.45970,   -2.64830,    0.34129,   -2.67252,   -4.07549,   -3.01268,
+   1.74398,   30.06878,   -0.49164,   -6.57672,    1.29566,   -1.78235,   -3.59079,   -2.52400,   -1.89671,    0.78753,   -2.28603,   -4.38701,   -3.96275,
+   7.34338,   24.49593,    1.15951,   -8.19852,    0.27615,   -0.33721,   -3.73858,   -3.92873,   -0.98650,    0.85332,   -2.07667,   -3.93494,   -3.94029,
+  10.45519,   16.79375,    1.48509,   -8.80962,   -1.72076,    0.61703,   -3.47419,   -5.23513,   -0.78920,    1.18348,   -1.49720,   -3.53585,   -3.28705,
+  11.18580,   10.93569,    0.14163,   -8.22567,   -3.87385,    0.79017,   -2.48016,   -6.75811,   -1.56071,    1.77140,   -0.15130,   -2.39039,   -2.57756,
+   8.62314,    5.68633,   -2.59710,   -7.38330,   -6.12817,    1.58600,   -0.15663,   -7.56769,   -1.31918,    2.21425,    1.82699,   -0.07501,   -1.56627,
+   4.85575,    3.24181,   -2.64459,   -5.65921,   -7.05089,    2.54483,    2.62323,   -6.91991,   -2.33872,    2.04650,    2.49293,    1.78403,   -1.23099,
+   2.03701,    3.38577,   -1.08578,   -3.92688,   -7.34940,    2.89644,    4.55796,   -6.29122,   -3.56426,    1.25358,    1.90528,    2.64444,   -0.91498,
+  -0.80505,    3.42489,    1.32204,   -2.31205,   -7.14935,    2.82134,    5.29194,   -5.34071,   -4.25586,    0.13365,   -0.09624,    2.46993,   -1.29939,
+  -2.81361,    3.51945,    4.71937,   -0.32877,   -5.78644,    2.50150,    5.30680,   -4.09004,   -4.64764,    0.12808,   -0.99124,    2.73573,   -1.09987,
+  -2.27606,    2.49080,    4.82849,    0.98120,   -3.68185,    2.29999,    4.26559,   -2.39404,   -4.11005,    0.06532,   -1.48285,    2.32967,   -1.51072,
+  -0.89890,   -0.35663,    4.83242,    2.02812,   -0.00512,    0.71252,    2.83080,   -0.13655,   -2.87700,   -0.21353,   -2.20828,    0.14064,   -1.50410,
+  -1.32203,   -3.28788,    4.86801,    3.59329,    3.33925,   -0.65978,    1.17374,    2.83331,   -1.87445,   -0.51870,   -2.48739,   -2.75273,   -0.93531,
+  -2.95602,   -4.93940,    4.74206,    6.03304,    6.66710,   -2.46849,   -0.35298,    5.41546,   -1.11451,   -1.58884,   -2.44900,   -4.84549,   -0.13159,
+  -5.67693,   -6.20691,    4.26896,    8.38822,    8.77156,   -4.73230,   -0.31846,    7.51461,   -0.41656,   -2.93236,   -1.65841,   -5.44101,    0.14973,
+  -9.32123,   -6.92015,    3.96077,    9.64051,    8.42496,   -5.98046,    0.60400,    8.73328,   -1.11180,   -4.11314,   -0.57883,   -5.09402,    0.24460,
+ -14.18911,   -7.83175,    4.75672,   10.62509,    7.19545,   -5.97903,    1.25377,    8.04866,   -1.43700,   -5.43428,    0.82436,   -4.04638,    0.94682,
+ -20.77600,   -8.30645,    7.26155,   11.64701,    5.45212,   -3.94525,    2.49760,    6.01494,   -1.69385,   -6.71214,    1.11581,   -2.55983,    1.50917,
+ -25.60518,   -8.60620,   10.57376,   11.97685,    3.51226,   -0.93216,    2.64148,    3.62231,   -1.49824,   -6.03131,    1.73962,   -0.48087,    1.12084,
+ -28.48710,   -8.54384,   11.43639,   10.75773,    1.08724,    2.34973,    2.50412,    0.15479,   -1.55349,   -4.62047,    1.82277,    1.66091,    0.56405,
+ -26.47807,   -7.74785,   10.66816,    8.20806,    0.76822,    4.70722,    3.37597,   -2.07676,   -0.75210,   -2.27726,    1.56973,    1.90455,    0.40052,
+ -20.38836,   -6.68279,    7.89335,    4.70084,    1.09125,    6.03361,    3.52933,   -2.70703,    0.57110,   -0.01144,    0.67969,    0.64763,   -0.18611,
+ -11.98435,   -4.37924,    3.71503,    2.29466,    1.19429,    4.08454,    2.16590,   -1.53341,    1.50450,    0.67063,   -0.69825,   -0.57534,   -0.57711,
+  -2.73807,   -1.20215,   -1.02834,    0.62445,    2.48680,    0.76224,    0.46599,    0.57219,    1.49698,   -0.24021,   -1.26501,   -0.70107,   -1.25617,
+   6.19413,    2.61517,   -6.91054,   -2.30359,    2.99197,   -2.33490,   -0.73984,    2.60685,    0.72150,   -1.79121,   -1.96885,   -0.67395,   -2.11103,
+  13.52636,    6.68200,  -11.03947,   -4.94872,    3.56298,   -4.77247,   -2.25040,    3.99700,    0.30644,   -1.53599,   -1.90471,   -0.24907,   -1.02465,
+  16.04592,   10.07306,  -12.51600,   -6.40530,    4.13849,   -4.61784,   -2.48754,    3.82767,   -0.50564,   -0.49293,   -2.65747,   -0.36906,    0.32286,
+  14.35237,   12.35609,  -11.84781,   -8.20980,    3.57165,   -2.36192,   -2.35247,    1.85376,   -1.43877,    1.02273,   -2.58947,   -1.12470,   -0.46274,
+   9.73970,   13.40854,   -9.21540,   -9.77718,    2.49565,    0.57999,   -0.93151,   -1.07202,   -2.64612,    2.08634,   -1.41460,   -0.62353,   -1.10912,
+   3.49330,   12.62119,   -4.85997,  -10.79564,    1.18898,    3.79537,    1.69124,   -3.31593,   -4.18121,    2.61258,   -0.39545,    0.24283,    0.03696,
+  -1.84747,   10.77017,    0.16821,  -11.92192,   -0.90363,    5.84449,    4.37664,   -4.18188,   -4.24437,    3.07181,   -0.42259,    0.11295,    1.16443,
+  -6.69855,    8.96735,    4.33632,  -10.70571,   -3.98391,    5.18672,    5.66782,   -3.40608,   -3.23547,    2.49260,   -0.94673,   -0.80631,    1.93462,
+ -11.40426,    7.45498,    7.96113,   -7.77649,   -6.53836,    3.37039,    6.13666,   -1.71124,   -1.95125,    0.44907,   -0.72452,   -0.69973,    2.27975,
+ -14.27764,    6.18340,    9.30103,   -4.99569,   -7.44876,    1.11961,    5.27760,    0.04002,   -0.09942,   -2.06586,   -0.54380,   -1.06767,    0.98289,
+ -15.09284,    5.75743,   10.08707,   -2.46157,   -7.77299,   -1.47011,    2.54240,    2.66415,    2.96622,   -2.81969,   -0.75924,   -0.36479,    0.75600,
+ -15.33435,    5.41592,    9.02124,    0.11162,   -6.05019,   -2.12545,   -0.31740,    4.02868,    4.68107,   -2.18970,   -1.29622,    0.36290,    0.98462,
+ -15.05021,    4.39790,    5.51100,    1.43249,   -3.43379,   -1.64553,   -2.34462,    3.77202,    6.13566,   -0.73397,   -1.83753,   -0.46790,   -0.02438,
+ -13.72513,    3.29787,   -0.04745,    2.07437,   -0.57272,   -0.02380,   -3.58655,    2.28870,    5.93155,    0.45545,   -0.58019,   -0.40121,   -0.99625,
+ -12.22198,    1.42758,   -5.25288,    1.90606,    2.39094,    2.75039,   -2.96300,    1.50009,    4.81733,    1.07018,    0.06479,    0.06655,   -0.98787,
+ -10.01205,   -0.37804,   -8.18648,    1.17609,    4.23761,    4.32519,   -1.64548,    0.76116,    3.26145,    1.87996,    0.50699,    1.20348,   -0.10082,
+  -8.75645,   -2.85586,  -10.75044,    0.57903,    5.52579,    5.70370,   -0.84751,   -0.24039,    1.66081,    2.39009,    1.33372,    2.56615,    1.76790,
+  -9.91855,   -5.40492,  -11.52912,    0.35217,    5.71640,    6.60860,    0.23005,   -1.26582,    0.18645,    2.18125,    2.74341,    3.40672,    1.84320,
+ -11.42108,   -8.08009,  -11.00284,    0.44441,    5.36715,    5.07123,   -0.97200,   -3.22489,   -0.54376,    2.61974,    3.56344,    1.52315,    0.84333,
+ -12.73294,   -9.61740,   -7.34149,    2.65644,    4.32692,    2.20847,   -2.72633,   -2.86079,    0.68873,    2.76868,    3.37408,    0.37999,    0.40724,
+ -13.84710,  -10.25110,   -2.25508,    5.39586,    2.95018,   -1.31748,   -4.62441,   -2.63310,   -0.17137,    0.86537,    2.27429,    0.08884,   -0.15712,
+ -14.84188,  -10.75873,    2.32538,    6.62349,    1.49554,   -4.92618,   -5.65451,   -2.16402,   -0.99870,   -0.18570,    1.54716,   -0.15523,   -1.03129,
+ -14.62582,  -10.17378,    4.48427,    7.53285,    0.05729,   -7.41222,   -6.38270,   -2.24648,   -1.87079,   -1.29221,    1.41200,   -0.04917,   -1.12492,
+ -11.98472,   -8.68415,    4.76730,    7.00370,   -1.35307,   -8.77491,   -5.33223,   -0.76328,   -1.94678,   -2.01072,    0.87653,   -0.80704,   -1.56335,
+  -6.68833,   -5.61523,    4.94088,    6.02469,   -3.40081,  -10.02078,   -3.68155,    0.56931,   -1.93419,   -2.55908,    0.42494,   -1.11725,   -1.20990,
+   2.81004,   -2.02520,    4.70157,    5.01186,   -3.81974,   -8.93846,   -1.26274,    0.67761,   -2.15123,   -2.31932,    0.14151,   -0.30736,   -0.77184,
+  15.24441,    3.16399,    3.06654,    3.39242,   -2.77780,   -6.01506,    1.52849,    0.88032,   -2.74911,   -1.95009,    1.27164,    0.70505,   -1.87823,
+  27.13629,    6.04094,    0.94129,    1.37315,   -2.23185,   -4.18834,    2.30917,   -0.34200,   -2.37557,   -0.96387,    1.79692,    0.01351,   -3.13576,
+  36.91251,    7.70456,   -0.79154,    1.48468,   -1.34173,   -2.89329,    2.08928,   -0.31521,   -1.40975,    0.63808,    1.15078,   -0.36513,   -2.05920,
+  41.80196,    6.59528,   -1.48675,    2.87300,   -0.67878,   -2.79773,    1.21568,   -0.70548,   -1.32912,    0.45099,    0.36933,   -0.66049,   -0.57649,
+  42.39352,    3.75095,   -1.67266,    3.02999,   -0.70875,   -1.71865,    0.77996,   -0.28122,   -1.43765,   -0.34925,   -0.20487,   -0.26833,   -0.61056,
+  38.32924,    0.68278,   -2.31969,    2.84187,   -0.21468,   -0.83297,   -0.13737,    0.29246,   -1.01017,   -0.51026,   -0.25605,    1.08342,   -0.19962,
+  28.71867,   -0.65356,   -2.46608,    2.81041,   -0.60524,   -0.96247,   -0.99773,    1.74791,    0.02007,   -0.41452,   -0.49988,    2.43381,   -0.14864,
+  10.69030,   -0.37141,   -1.52464,    2.49809,   -1.96297,   -0.80192,   -1.19818,    3.21631,    2.74220,   -0.49875,   -0.38280,    2.44637,    0.95079,
+  -4.21305,   -0.19767,   -2.05400,    3.22323,   -1.19091,    2.63238,   -0.57677,    1.48780,    4.00736,   -1.07241,   -2.34252,    2.89817,    1.96701,
+  -4.45865,    0.02820,   -3.71148,    2.15166,   -0.41589,    5.15389,   -0.32820,    0.98058,    4.91290,   -0.80492,   -2.81405,    3.91624,    2.47771,
+  -1.99250,    0.79772,   -2.89936,    0.71907,   -0.35009,    5.05768,   -0.36603,    0.89149,    5.55362,   -0.60737,   -2.15034,    3.59069,    1.76190,
+   0.64822,    2.79693,   -3.79425,   -0.58293,   -0.31688,    3.59744,   -0.47969,    0.95906,    3.68599,    0.25640,   -1.84443,    2.73738,    1.88444,
+   3.28015,    2.27138,   -4.71726,   -1.90106,    0.02296,    1.33422,   -0.94024,   -0.19434,    1.15872,    1.37669,   -1.23947,    1.17146,    2.57427,
+   9.37088,    1.06541,   -5.01879,   -4.62926,    0.43655,   -0.45519,   -1.95563,   -0.39005,   -1.49931,    1.56708,   -1.05569,   -0.54155,    2.12925,
+  16.96761,   -0.90822,   -5.84950,   -6.81510,    0.50724,   -2.14934,   -3.56798,   -0.75367,   -3.51565,    1.38109,   -0.25178,   -1.43665,    1.40476,
+  21.50877,   -1.69229,   -4.89472,   -7.69609,   -0.54430,   -4.54768,   -5.23466,   -0.75794,   -4.32952,    1.02574,    0.03743,   -1.93897,    0.99259,
+  17.27320,   -0.13019,   -2.49389,   -8.23005,   -1.82934,   -5.20975,   -5.30269,   -0.40506,   -2.55345,    1.39355,    0.78113,   -3.33895,    1.27909,
+   9.05269,    1.69877,   -2.70827,   -7.29207,   -0.80949,   -1.77445,   -4.22542,   -2.64609,   -1.22710,    1.36135,   -0.71990,   -3.35986,    2.12678,
+   7.36781,    1.17238,   -2.84311,   -6.44386,   -0.70203,    1.53942,   -2.44470,   -4.07329,    0.88151,    1.66190,   -1.48027,   -2.23438,    3.09518,
+   4.75160,   -2.04617,    1.36224,   -4.19334,   -2.04990,    3.63767,   -1.47533,   -4.89096,    3.27745,    1.88681,   -1.29670,   -2.59379,    2.67214,
+   1.94100,   -7.31669,    6.28434,   -1.98404,   -3.42142,    5.51068,   -0.86725,   -4.04228,    4.28021,    1.90879,   -0.30868,   -2.44035,    1.25195,
+  -1.05833,  -13.52023,   11.86317,    0.57902,   -3.02504,    8.18123,    0.93464,   -3.38367,    4.89950,    2.45062,    0.39102,   -1.66330,    0.19091,
+  -2.49104,  -18.57310,   16.17573,    1.79826,   -1.45206,    9.74734,    1.72970,   -2.56075,    4.12025,    2.68600,    0.63560,   -0.79943,   -0.06874,
+  -2.59974,  -23.43774,   16.58014,    1.67555,   -0.74508,    9.68651,    2.50153,    0.24997,    4.18836,    1.83014,    0.56718,   -0.79837,   -1.19192,
+  -1.49893,  -26.44437,   16.21926,    2.22600,   -0.49411,    8.23197,    2.48956,    2.55461,    4.43638,    0.67917,    0.51508,    0.02263,   -1.07525,
+   0.17367,  -27.45265,   13.55627,    1.32274,   -0.18477,    6.72377,    2.53765,    3.99385,    4.53051,    0.44450,    0.80651,    0.69672,   -0.46945,
+   0.04410,  -24.98162,    8.70683,    0.25714,    0.56338,    5.31583,    2.75320,    4.54420,    4.71225,    0.21563,    0.73014,    1.51762,   -0.42208,
+  -3.28887,  -18.07655,    2.45797,   -0.15476,    0.96318,    2.42861,    3.50636,    3.80064,    3.69052,   -0.23977,    0.16358,    1.33120,   -0.38106,
+  -9.19778,  -10.13179,   -1.92130,    1.50227,    1.27064,    0.86660,    4.24795,    2.30520,    2.57223,    0.13229,    0.53934,    1.08597,   -0.95556,
+ -13.00829,   -0.81566,   -5.66277,    1.93589,    3.78529,    0.93587,    2.53763,    0.98734,    0.55445,   -0.94121,    0.56234,    0.27065,   -1.77174,
+ -18.76268,   11.84327,   -7.87458,    2.24731,    6.62282,    0.69497,    0.74281,   -1.08260,   -1.26590,   -1.79175,    1.22720,    0.14458,   -2.47265,
+ -25.99911,   24.02445,   -7.24912,    2.09671,    7.14326,   -0.18926,   -1.15170,   -3.18595,   -5.27186,   -2.12673,    2.03488,    0.60253,   -2.13838,
+ -31.28606,   31.60418,   -7.03757,    1.48232,    7.48913,   -2.45022,   -1.44005,   -2.90936,   -7.53694,   -2.10945,    2.40383,   -0.14134,   -2.40903,
+ -31.94234,   35.32645,   -6.11949,    0.83866,    7.35700,   -4.76190,   -1.40555,   -1.92809,   -8.52276,   -1.93904,    2.40511,    0.09211,   -1.40625,
+ -28.75794,   34.47496,   -4.98783,   -0.16244,    6.55911,   -6.28123,   -1.09982,   -0.52298,   -8.61766,   -1.30856,    2.01304,    0.09461,   -0.08601,
+ -22.37448,   30.00859,   -3.71303,   -1.16607,    5.12686,   -6.68807,   -0.77428,    0.78317,   -7.70137,   -0.47778,    1.83486,    0.38777,    0.36698,
+ -15.51739,   22.34031,   -2.45110,   -1.67907,    2.42308,   -7.06228,   -0.00384,    1.56840,   -6.59758,   -0.12398,    0.54929,   -0.50547,    0.43699,
+  -8.89583,   12.31876,   -0.03110,   -0.47453,   -0.34662,   -6.05444,    1.16067,    2.17346,   -4.67122,    1.67708,    0.31698,   -0.40014,    0.26673,
+  -1.26582,    4.44218,    0.64815,   -0.45421,   -0.17520,   -3.35307,    1.11054,    1.79210,   -2.85642,    1.33460,   -0.91608,   -1.23376,    0.36333,
+   2.70118,    0.71353,    0.01867,   -0.82814,    0.83380,   -1.81299,   -0.24275,    0.40755,   -0.50411,    0.53273,   -1.06812,   -1.10424,    0.29433,
+   4.74178,   -2.34778,    0.06226,   -0.96192,   -2.02295,    0.66886,   -1.19536,   -0.69350,    1.14850,   -0.70856,   -1.35563,    0.13132,    0.38962,
+   7.71573,   -2.73441,   -0.39019,   -1.05507,   -4.26551,    1.49125,   -1.56280,   -1.93073,    2.51715,   -0.93571,   -0.81998,    0.89451,   -0.03053,
+  17.80878,   -1.92802,   -3.36182,   -3.93137,   -7.20354,    2.14663,   -1.99473,   -2.71323,    3.99794,   -0.36306,   -0.47921,    1.05937,   -0.24241,
+  26.55011,   -1.69229,   -7.26775,   -7.14862,   -8.89414,    1.35240,   -1.34739,   -3.56304,    4.77341,    0.29911,    0.31556,    1.23076,   -0.70165,
+  32.91570,   -2.08066,  -11.59069,   -9.47287,   -9.53222,    0.20750,    0.37125,   -4.39626,    4.81612,    2.05855,    1.25449,    2.06052,   -1.68883,
+  35.40212,   -2.26355,  -14.47091,  -10.66311,   -9.46641,   -0.53875,    2.96014,   -4.37613,    4.12767,    3.24393,    0.83255,    2.11693,   -2.09055,
+  35.30202,   -0.97347,  -16.03527,  -10.94610,   -9.24308,   -1.59276,    4.52284,   -3.65974,    2.70928,    4.61573,    0.38373,    2.56052,   -2.26927,
+  30.86695,    1.05409,  -14.93660,  -10.22094,   -9.13342,   -2.48704,    5.11750,   -2.66507,    1.83895,    5.30424,    0.05566,    2.63695,   -2.60124,
+  22.42946,    1.53519,  -11.75891,   -8.88198,   -7.90977,   -3.31742,    4.48760,   -2.26071,    0.96900,    5.55024,    0.30507,    3.01267,   -2.36594,
+  13.52437,   -1.77012,   -8.01396,   -5.71224,   -7.08577,   -1.67191,    4.18823,   -1.41550,    1.25624,    4.19230,    0.24781,    3.83969,   -2.03469,
+   6.29797,   -2.94556,   -3.31295,   -2.05268,   -4.96755,    0.37324,    4.42386,   -0.47072,    1.38078,    2.33410,    0.60536,    4.04449,   -1.66715,
+   7.03388,   -1.88699,   -0.89831,   -0.72831,   -3.98922,    2.31390,    2.84756,    0.91529,    1.53131,    0.41264,    0.75684,    2.66646,   -1.58468,
+   8.59103,   -0.75111,   -0.43501,   -1.03709,   -2.40834,    2.40848,    0.64505,    1.49241,    1.49464,   -1.05527,    1.36277,    0.88936,   -1.70518,
+   9.02918,   -0.30275,   -0.93235,   -0.50864,   -0.00630,    1.64730,   -1.84104,    1.71915,    1.81658,   -0.94907,    2.29689,   -0.44372,   -2.23498,
+   8.03955,    0.84996,   -1.02862,    1.12941,    2.55989,    1.00710,   -3.25440,    2.13028,    1.70638,   -1.34126,    1.69704,   -2.57947,   -1.14129,
+   3.92637,    4.26742,   -1.43864,    3.36519,    4.77079,    0.20147,   -4.80717,    1.80189,    0.52371,   -2.19936,    2.02969,   -4.02197,    1.19553,
+  -9.75186,    7.95319,    1.89195,    6.87313,    7.24508,    0.38969,   -4.94622,    2.20894,    0.13242,   -1.80711,    2.24500,   -4.14295,    3.29014,
+ -25.74727,   10.56297,    6.98925,    8.53384,    8.44463,   -0.16862,   -5.69018,    2.25549,    0.03712,   -0.81912,    1.86413,   -3.81732,    4.50172,
+ -39.38715,    9.53511,   10.49757,    8.89239,    8.93848,    0.04543,   -5.49953,    2.53636,    0.02893,   -0.96121,    1.03970,   -2.43473,    5.16357,
+ -50.86744,    5.08216,   14.87293,    8.96620,    8.74975,    2.25109,   -2.36884,    2.40114,    0.27089,    0.14961,    0.52958,   -1.54921,    4.95654,
+ -58.32141,   -1.38571,   17.60396,    8.66702,    7.29410,    2.72607,    0.21255,    2.49070,    0.35523,    0.19951,   -0.24277,   -0.63393,    4.78122,
+ -58.97495,   -7.18837,   17.04962,    6.17018,    4.73773,    2.75655,    3.24712,    2.91209,   -0.07952,   -1.17464,   -2.15621,   -0.31728,    3.84731,
+ -53.48480,  -12.16156,   14.36180,    3.41863,    2.32079,    2.62316,    5.10355,    3.95882,    0.16645,   -1.69142,   -3.53495,    0.29989,    2.53144,
+ -44.41793,  -17.75593,   10.04019,    2.15446,    0.66357,    2.61836,    5.61286,    4.24551,    0.40771,   -1.43346,   -4.32993,    0.17271,    1.08880,
+ -32.49360,  -20.53106,    3.83417,    1.33373,   -0.75217,    2.92861,    5.26812,    3.42742,    0.34384,   -1.50851,   -3.15650,   -0.04079,    0.94127,
+ -25.40067,  -21.01723,   -0.83224,    1.31692,   -0.78758,    3.13710,    5.08402,    2.37012,    0.02091,   -1.24625,   -1.78009,    0.05981,    1.12072,
+ -19.91983,  -18.48783,   -3.51829,    0.58294,   -0.29967,    2.00412,    3.52609,    1.75950,    0.22128,   -0.11042,   -0.35183,    0.31160,    1.07019,
+ -13.91170,  -14.94708,   -5.91401,   -0.55662,    0.44003,    0.86219,    1.72723,    1.50295,    0.40767,   -0.00982,    0.65065,    1.28056,    1.03996,
+  -4.63321,   -9.80123,   -7.14623,    0.09051,    2.13378,   -0.11032,   -1.33640,    0.21459,    0.93396,    1.34634,    2.63592,    1.67171,   -0.02679,
+  21.24445,   -4.62768,   -7.42309,    0.91250,    2.11867,   -1.97277,   -4.06952,    0.10994,    1.92382,    1.49673,    2.75147,    1.67524,   -0.69527,
+  43.62434,    1.22208,   -7.76417,   -0.23891,    0.78057,   -2.94695,   -4.60009,    0.11306,    1.76363,    0.24628,    1.19909,    1.69104,   -1.04623,
+  56.04261,    7.20722,   -8.21888,   -2.89665,   -1.99220,   -3.58552,   -2.67945,    0.90029,    1.54129,   -0.23016,   -0.35601,    2.21120,   -0.76100,
+  58.20672,    9.91913,   -6.27579,   -4.32141,   -4.46382,   -4.31170,   -0.54358,    0.68694,    0.73825,    0.89305,   -1.00545,    2.85541,   -0.52620,
+  54.42525,   11.74144,   -2.81250,   -4.47458,   -5.34716,   -4.12288,    1.39709,   -0.72710,   -1.16623,    2.54309,   -2.55042,    2.44672,   -1.00524,
+  44.90937,   14.39153,    2.49791,   -4.05870,   -7.44950,   -4.38335,    2.39249,   -2.48273,   -3.55761,    3.12409,   -4.36542,    2.07686,   -1.46756,
+  29.78906,   17.28297,    7.11228,   -3.67632,  -10.60783,   -5.43260,    3.32754,   -2.87728,   -4.27145,    4.27696,   -5.32469,    0.24385,   -1.89313,
+   8.23970,   16.90738,    9.96211,   -2.83619,  -13.45532,   -5.24715,    4.28713,   -2.86439,   -4.64102,    4.91937,   -5.47223,   -1.09461,   -1.38145,
+ -10.62254,   15.58126,   11.06381,    0.09486,  -13.33739,   -5.31992,    2.18137,   -3.60659,   -5.12573,    4.40507,   -4.65969,   -1.08478,   -1.16525,
+  -7.07778,   15.01011,    9.46250,    1.74451,  -12.55043,   -5.24038,   -0.16576,   -2.61809,   -3.76376,    2.58781,   -5.10532,   -1.42833,   -1.89937,
+  -0.06750,   13.94813,    5.54204,    1.12110,  -10.18889,   -4.28095,   -1.42396,   -0.97186,   -1.76278,   -0.27610,   -4.38760,   -1.66195,   -2.60128,
+   3.82889,   12.16779,   -0.54229,   -2.07004,   -6.23017,   -2.32188,   -1.18671,    1.19706,    0.06024,   -4.47695,   -2.15927,   -0.72798,   -2.52633,
+   6.81479,    8.40311,   -6.48447,   -5.94777,   -1.04667,    0.17513,   -0.01482,    1.86478,    0.85430,   -8.31264,    1.68402,    0.95341,   -1.03125,
+   9.82745,    3.55038,  -10.67489,   -8.01563,    6.79512,    2.96815,   -0.11098,    0.09600,   -0.52539,   -9.69904,    5.21271,    1.82310,   -0.39903,
+  11.45684,    0.03036,  -11.73270,   -8.08089,   13.33979,    4.47437,   -2.38381,   -2.60420,   -2.09416,  -10.26572,    7.00157,    2.26133,   -0.18476,
+  11.62225,   -1.50441,  -10.69765,   -6.47235,   17.22651,    4.44808,   -5.70378,   -3.58756,   -1.06231,   -9.22693,    7.28444,    0.49821,   -0.56244,
+   9.23613,   -3.31189,   -8.60070,   -2.32909,   18.41258,    3.72011,   -8.72706,   -3.12103,    0.62269,   -7.85225,    6.69340,   -0.94240,   -0.20668,
+   5.98558,   -7.52313,   -4.65974,    3.67510,   16.53122,    2.75163,  -10.03322,   -2.52747,    1.41834,   -6.69265,    4.89216,   -1.46378,   -0.41327,
+   2.99743,  -11.12050,   -0.02822,    9.29017,   12.12208,    1.42700,   -9.37573,   -0.91877,    2.59866,   -4.37121,    1.41160,   -1.46756,   -1.46802,
+  -0.06049,  -13.06933,    4.45271,   13.28728,    7.14645,   -0.50260,   -6.44046,    0.92776,    3.48747,   -0.93990,   -1.26318,   -1.45002,   -2.88334,
+  -3.36130,  -13.31747,    8.24255,   14.94259,    3.26655,   -1.71282,   -3.13191,    3.31142,    3.51931,    0.74346,   -2.94420,   -1.02752,   -3.05788,
+  -4.43719,  -12.11914,    9.68708,   13.55916,    0.85073,   -1.94101,    0.52049,    5.09686,    2.81389,    0.89194,   -3.52238,   -0.75242,   -2.35841,
+  -3.38847,  -10.87211,    9.54265,   10.87654,    0.06512,    0.08463,    3.56519,    5.39448,    1.59345,    1.27442,   -2.89335,   -0.53296,   -0.53830,
+  -1.60134,  -11.19891,    8.66631,    7.12740,   -0.79799,    1.83884,    4.41223,    3.83193,    0.05234,    2.93964,   -2.00153,   -1.56419,    1.16289,
+   1.45920,  -13.75778,    9.37214,    4.71567,   -1.18614,    4.61565,    3.94317,    2.52049,    0.06108,    4.27000,   -1.90385,   -2.71746,    2.19313,
+   2.65486,  -16.41823,   10.58618,    2.70309,   -1.48818,    6.06531,    2.58464,    1.43941,    1.76507,    4.55765,   -0.49548,   -2.66073,    3.89439,
+   3.64922,  -19.56205,   10.30426,    1.67804,   -1.72896,    7.09416,    1.80202,    0.74372,    4.14972,    4.21858,    0.09398,   -2.99403,    4.15199,
+   3.91389,  -20.88485,    9.22920,    0.27776,   -2.00880,    8.27171,    1.99566,    0.73880,    5.41566,    4.41979,    0.53800,   -2.62236,    3.69295,
+   3.76984,  -19.47481,    7.89668,   -0.69767,   -2.18589,    8.10510,    2.76700,   -0.13585,    5.14756,    4.00312,    0.44569,   -1.36767,    2.53594,
+   3.10047,  -14.73316,    6.09035,   -1.17428,   -2.34116,    7.01329,    2.11292,   -2.09845,    4.14803,    3.43358,    0.47169,   -0.41870,    1.53394,
+   1.32047,   -5.86912,    3.12136,   -2.06694,   -1.77074,    4.78289,    0.61932,   -3.25998,    1.72100,    2.43805,    0.95504,   -0.09067,    0.12897,
+  -1.72635,    5.67588,   -1.76008,   -2.73056,   -1.28893,    3.15430,   -0.85754,   -4.01433,    0.01372,    0.84282,    0.09917,    0.08895,   -0.97511,
+  -4.95503,   16.46264,   -7.80901,   -4.00959,   -0.60269,    1.51427,   -2.40550,   -4.84695,   -1.42961,   -0.93863,   -0.58828,   -0.70918,   -1.93054,
+  -6.15577,   22.72925,  -10.73279,   -4.47260,    0.40074,   -0.37692,   -2.86899,   -4.86325,   -2.55904,   -3.26603,   -1.51787,   -0.57631,   -2.52619,
+  -9.36204,   26.66463,  -11.54406,   -3.67332,   -0.25116,   -2.24198,   -2.49954,   -5.16732,   -2.33882,   -4.74062,   -0.31173,    0.30372,   -2.98273,
+ -15.20423,   27.54249,  -10.61071,   -2.02813,    0.13618,   -3.09263,   -1.77672,   -3.85209,   -1.32558,   -5.08445,    0.55094,    0.01271,   -3.67274,
+ -23.51772,   25.65288,   -7.31953,   -1.10315,    2.90398,   -2.94630,   -0.13000,   -2.15893,   -2.95290,   -3.98030,    1.45540,    0.57831,   -2.43257,
+ -28.91310,   21.67089,   -3.58740,   -0.85989,    5.18609,   -1.68520,    2.23006,   -0.35752,   -4.18589,   -2.62156,    1.11387,    0.63374,   -0.88875,
+ -30.20216,   16.56558,    0.77764,    0.06467,    6.58043,   -0.39967,    3.20560,    0.44316,   -4.32143,   -0.62463,    0.73178,    0.42263,    0.79977,
+ -28.42687,   11.56648,    4.35270,    1.11830,    7.46077,    0.46229,    3.03668,    1.41300,   -4.74689,    1.08841,    1.09717,    0.03241,    2.11287,
+ -25.08270,    7.77350,    6.18683,    1.80671,    6.93339,    1.23991,    2.73674,    2.13388,   -4.81290,    2.93157,    0.96031,    0.00314,    2.61138,
+ -20.78136,    4.67761,    5.75201,    2.12302,    6.13397,    2.10596,    2.66419,    2.75081,   -3.90445,    3.70042,    1.10107,   -0.22610,    2.31713,
+ -13.46454,    1.02092,    3.93720,    1.57585,    6.20745,    1.51712,    2.82467,    3.39257,   -2.72285,    2.73447,    1.37315,    0.52436,    2.78130,
+  -5.76264,   -1.22873,    0.79626,    1.82444,    4.56921,    0.58728,    2.43814,    2.92308,   -0.52706,    2.21018,    1.86391,    1.17943,    2.24987,
+  -1.44083,   -2.31218,   -1.35512,    2.11496,    2.26353,   -0.14471,    1.07082,    2.83232,    2.00566,    2.38910,    2.27280,    1.26996,    1.32193,
+  -1.87221,   -2.92470,   -1.52263,    2.08718,    1.56698,   -0.51738,    0.41417,    2.34894,    1.81023,    1.79143,    2.48958,    1.86194,    0.95187,
+  -4.23272,   -3.52911,   -0.05163,    1.94083,    0.61919,    0.29370,    1.25501,    1.97348,    1.63943,    1.14314,    0.83332,    0.41114,    0.57006,
+  -7.54358,   -4.47028,    2.50155,    2.29922,   -0.76621,    1.00946,    2.36928,    1.47940,    1.26880,    1.23042,   -0.04485,   -0.54338,    0.40080,
+  -9.74334,   -5.52010,    3.99529,    3.12108,   -1.07245,    0.98784,    2.51061,    1.22118,    1.20767,    0.96915,   -1.01663,   -1.06841,    0.74825,
+  -4.26644,   -4.94790,    0.22937,    2.41042,   -3.15696,   -1.26886,    2.63047,    1.78882,    1.50777,    0.61947,   -1.39230,   -0.64064,    1.38530,
+  -0.92275,   -4.66528,   -2.25085,    1.46434,   -5.28919,   -3.62174,    2.49501,    2.33147,    1.96532,    0.82141,   -1.07020,   -0.19027,    1.43869,
+  -0.61408,   -5.15320,   -4.32445,    0.30326,   -5.09984,   -4.40307,    2.45182,    3.52640,    2.65756,    1.44538,   -0.63919,   -0.67366,    0.87614,
+  -1.43957,   -6.30323,   -6.62573,   -1.59314,   -4.56871,   -4.83830,    1.63700,    4.15749,    3.51661,    1.85555,   -0.18287,   -1.35576,   -0.06179,
+  -4.81377,   -8.84991,   -7.56502,   -2.87500,   -3.74041,   -4.91132,   -0.43869,    3.64460,    4.35858,    2.57094,   -0.17287,   -1.19331,    0.19920,
+  -8.93782,  -10.90637,   -7.45249,   -4.14376,   -2.78710,   -3.29015,   -1.35468,    2.46828,    4.15115,    2.92140,    0.46725,   -0.46433,   -0.04547,
+ -14.91245,  -13.63623,   -6.11492,   -5.25653,   -2.83475,   -1.87762,   -2.07324,    0.68378,    2.78237,    1.89539,   -0.17822,   -0.57172,   -0.24379,
+ -21.65250,  -15.86699,   -2.63951,   -5.38553,   -2.94295,    0.49789,   -1.32799,   -0.76350,    1.16474,    1.19402,   -0.06909,   -0.10227,   -0.50733,
+ -27.78066,  -17.66521,    1.29509,   -4.41328,   -2.16524,    2.78819,   -0.76389,   -2.12583,   -0.34769,    0.40564,   -0.13348,    0.46788,   -0.11234,
+ -24.41044,  -16.84285,    0.06626,   -4.11720,   -3.44676,    2.04601,   -0.34149,   -2.65121,   -1.55297,   -0.69065,    0.02506,    1.76441,    1.13287,
+ -18.48285,  -14.11274,   -0.63549,   -3.10682,   -4.32147,    0.71575,    0.29379,   -2.49450,   -2.24068,   -1.35613,    0.77933,    3.25334,    2.35745,
+ -13.87248,  -11.12907,   -1.04583,   -2.56560,   -3.99491,   -0.03370,    0.59145,   -1.87177,   -2.26884,   -1.12270,    1.10905,    3.23326,    2.53021,
+  -9.08447,   -7.92635,   -2.02791,   -3.08573,   -3.92366,   -0.81684,    0.46735,   -1.19261,   -1.88418,   -0.75675,    1.22146,    2.43087,    1.79254,
+  -5.33600,   -5.21240,   -2.22113,   -2.49326,   -2.86820,   -1.25103,   -0.12794,   -0.65089,   -1.01587,   -0.32481,    0.93760,    1.66968,    1.44865,
+  -2.59525,   -2.72141,   -1.47559,   -1.51706,   -1.51809,   -0.57274,    0.12176,   -0.03969,   -0.09426,    0.37483,    0.90498,    1.06274,    0.89507,
+  -1.42737,   -1.89428,   -1.66380,   -1.46703,   -1.23667,   -0.87896,   -0.52353,   -0.27670,   -0.05895,    0.25267,    0.55589,    0.70269,    0.72631,
+  -1.01009,   -1.38642,   -1.31704,   -1.17398,   -1.00001,   -0.79800,   -0.63541,   -0.42318,   -0.19702,    0.04387,    0.24362,    0.43999,    0.57047,
+  -0.77895,   -1.05948,   -1.03922,   -0.96229,   -0.87679,   -0.73403,   -0.63929,   -0.47465,   -0.32427,   -0.15422,   -0.02524,    0.14293,    0.24011,
+  -0.82881,   -1.11742,   -1.10684,   -1.03235,   -0.96362,   -0.81952,   -0.74525,   -0.57821,   -0.43861,   -0.26528,   -0.13865,    0.05660,    0.16186,
+  -0.35972,   -0.47061,   -0.46137,   -0.39041,   -0.35838,   -0.26273,   -0.20377,   -0.09339,   -0.03483,    0.06995,    0.12835,    0.22643,    0.25931,
+  -0.04755,   -0.05598,   -0.03302,   -0.01273,    0.01151,    0.05671,    0.11911,    0.17134,    0.19456,    0.19818,    0.19911,    0.19458,    0.16996,
+  -0.07938,   -0.10116,   -0.08523,   -0.08693,   -0.09317,   -0.07109,   -0.01829,    0.03068,    0.05290,    0.06624,    0.09580,    0.13227,    0.14747,
+   0.06926,    0.10713,    0.11903,    0.11316,    0.10068,    0.11070,    0.14570,    0.17547,    0.17976,    0.17390,    0.17916,    0.18638,    0.17058,
+   0.26443,    0.37722,    0.38035,    0.37451,    0.36403,    0.36042,    0.36336,    0.35838,    0.33535,    0.29982,    0.26079,    0.21541,    0.15515,
+   0.37360,    0.52071,    0.52056,    0.51525,    0.52128,    0.51296,    0.50513,    0.48314,    0.46386,    0.42227,    0.36637,    0.28216,    0.19255,
+   0.13555,    0.19380,    0.21501,    0.24147,    0.28236,    0.31694,    0.35449,    0.38128,    0.40802,    0.41555,    0.40874,    0.37341,    0.32244,
+  -0.29448,   -0.40627,   -0.36830,   -0.31665,   -0.24786,   -0.17582,   -0.09476,   -0.01552,    0.06813,    0.14400,    0.21438,    0.26481,    0.29733,
+  -0.60144,   -0.83460,   -0.78682,   -0.72154,   -0.64098,   -0.55201,   -0.45194,   -0.34815,   -0.23793,   -0.12528,   -0.00904,    0.09761,    0.18751,
+  -0.69167,   -0.95489,   -0.89304,   -0.80826,   -0.71013,   -0.60057,   -0.48226,   -0.36119,   -0.23999,   -0.11567,    0.01128,    0.12929,    0.22304,
+  -0.41023,   -0.56167,   -0.51855,   -0.45896,   -0.39059,   -0.30542,   -0.21282,   -0.12335,   -0.05091,    0.01319,    0.07226,    0.12658,    0.16316,
+  -0.17193,   -0.23419,   -0.21758,   -0.18663,   -0.15410,   -0.11460,   -0.08021,   -0.04418,   -0.01581,    0.01346,    0.03622,    0.06058,    0.07869,
+  -0.10852,   -0.17638,   -0.18566,   -0.16418,   -0.10060,   -0.07273,   -0.06668,   -0.05676,    0.00252,    0.05859,    0.08061,    0.07701,    0.10191,
+   0.84595,   -0.51807,   -1.55112,    0.47720,    0.76134,   -1.04124,   -0.55151,    0.84568,    0.04465,   -0.68262,    0.27772,    0.55861,   -0.21271,
+  10.74878,   -3.11310,   -5.34238,    2.26307,    3.04804,   -1.68683,   -1.57190,    2.02328,   -0.35717,    0.00393,   -0.15863,    1.01564,   -1.07620,
+  22.70843,   -6.61746,   -7.86647,    3.81820,    4.88015,   -2.06069,   -2.43454,    2.49714,   -0.36634,    0.39582,   -0.85246,    1.67405,   -2.18834,
+  32.18055,  -10.68944,   -8.76175,    5.36425,    5.02639,   -2.41739,   -2.50591,    2.78143,   -0.67211,    0.73401,   -1.31273,    2.36673,   -2.74303,
+  39.08526,  -14.58456,   -8.16102,    6.57589,    4.26688,   -2.79942,   -2.70583,    2.63534,   -1.05410,    1.76937,   -1.43361,    1.55572,   -3.38997,
+  42.88630,  -17.70767,   -7.25725,    6.54728,    2.44002,   -3.06865,   -3.13514,    1.98477,   -1.18996,    2.21320,   -1.35169,    1.13674,   -2.86322,
+  43.75336,  -17.89537,   -5.42091,    6.19822,    0.36815,   -3.06211,   -3.01817,    1.11116,   -1.11147,    2.06109,   -1.39334,    0.24111,   -2.88191,
+  39.96351,  -15.94618,   -2.38062,    5.83421,   -1.14522,   -1.73270,   -1.48879,    0.83592,   -1.51866,    1.71870,   -1.36848,   -0.22345,   -2.14575,
+  31.45315,  -11.09490,    1.79407,    4.30672,   -2.58627,   -0.17169,    0.32247,   -0.08480,   -2.12540,    1.29164,   -0.93414,   -0.57769,   -0.99019,
+  18.59060,   -3.90034,    4.51498,    2.55389,   -3.25637,   -0.47962,    0.40670,   -0.29496,   -1.78026,   -0.62591,   -0.17699,   -0.85637,    0.57991,
+  10.99932,    5.01000,    4.48573,    2.56734,   -0.08985,    0.69420,    1.14445,    0.44501,   -1.14982,   -1.17057,   -0.50301,   -0.86144,    1.36458,
+   7.27482,   18.54009,    5.61949,    3.31578,    3.53790,    1.19695,    1.36667,   -0.11593,   -0.76783,   -2.51154,   -1.72880,   -1.06676,    0.78223,
+   7.49068,   30.12584,    4.73965,    4.73910,    5.80762,   -0.88405,    3.03583,   -0.41851,   -0.74616,   -3.91174,   -3.07679,   -0.19967,    0.40673,
+   7.94285,   35.63343,    4.15385,    5.54752,    7.28455,   -2.47315,    4.79059,   -0.36822,   -0.76962,   -3.83732,   -4.03237,    0.22894,   -0.91120,
+   8.58590,   36.59988,    2.41544,    5.77743,    6.68436,   -3.89020,    4.89490,   -1.00768,   -0.56777,   -3.55960,   -3.76792,    0.58118,   -1.70878,
+   8.57344,   34.03123,    0.61296,    5.92270,    5.05179,   -5.00299,    4.20648,   -2.23552,   -0.11940,   -3.99699,   -3.23494,    0.89732,   -2.60078,
+   5.78229,   27.64637,   -0.36020,    6.15170,    3.17174,   -4.57662,    4.25798,   -2.29137,    0.27880,   -4.44962,   -1.97717,    0.88484,   -3.60586,
+   0.23718,   18.80261,    1.23752,    6.06667,    1.15746,   -3.21039,    3.56837,   -2.37208,    0.35882,   -4.56392,    0.27678,    1.79146,   -4.22465,
+  -9.93021,    7.58356,    3.76043,    4.10620,   -1.53005,   -2.03193,    1.05332,   -1.63585,    1.82193,   -4.44761,    2.51193,    2.43774,   -3.15035,
+ -24.19330,   -1.48371,    6.88449,    1.15200,   -1.69619,    2.34576,    0.24782,    0.73166,    3.00216,   -3.47517,    4.28729,    1.86801,   -1.40110,
+ -37.52070,   -4.30909,   11.90375,   -1.40707,   -1.02627,    7.12782,   -1.35290,    0.68745,    3.21353,   -1.50163,    4.93153,   -0.11838,    0.72051,
+ -43.55009,   -5.04015,   13.40414,   -3.67952,    0.01548,    8.99950,   -1.79994,    0.40766,    3.33770,    0.53111,    4.24657,   -2.02550,    3.04733,
+ -42.51932,   -4.89435,   10.95545,   -9.29525,   -0.69523,   10.09831,   -0.79636,    0.52587,    2.75109,    2.84201,    3.42491,   -2.54333,    4.17730,
+ -23.87650,   -3.56064,    3.61606,  -15.48069,   -1.35062,    7.06025,   -0.41084,   -0.89379,    0.17333,    5.28044,    2.53100,   -3.10096,    4.57176,
+  -1.95067,   -1.62599,   -4.36667,  -18.85973,   -2.11852,    3.97257,    0.07670,   -2.74860,   -2.55112,    6.29552,    1.41799,   -2.96217,    4.84084,
+  19.53974,    0.76802,  -11.17333,  -20.72311,   -3.47356,    0.60982,    2.05922,   -3.62263,   -4.16425,    5.85003,    1.12973,   -2.65552,    3.58460,
+  60.75739,   -5.08121,  -12.47585,  -16.81619,   -5.45903,   -1.35013,    0.77835,   -3.80548,   -3.64245,    4.57869,    0.85220,   -1.76367,    2.72508,
+  87.85258,   -9.92849,  -11.27633,  -12.00721,   -6.97649,   -3.14012,   -0.52290,   -3.06606,   -1.86302,    2.78719,    0.55353,   -0.15964,    1.95145,
+  99.86404,  -12.99408,   -8.63910,   -7.49278,   -7.42962,   -3.48943,   -1.11168,   -0.82875,   -0.63118,    0.76545,    0.59896,    0.65211,    1.27843,
+  98.39548,  -15.14276,   -3.97054,   -2.54129,   -6.74303,   -2.47134,   -2.03093,    0.20558,    0.41677,   -0.20560,    0.43909,    0.78924,    1.28537
+};
+
+static const float golden_diff2_features[] = {
+  16.21731,    0.19516,    0.20180,    0.20088,    0.19413,    0.19077,    0.19143,    0.18572,    0.16733,    0.14279,    0.12012,    0.09567,    0.06024,
+  43.27348,   -0.20258,   -0.18401,   -0.16553,   -0.14803,   -0.12548,   -0.09792,   -0.07352,   -0.05640,   -0.03998,   -0.01733,    0.00732,    0.02418,
+  56.11353,   -0.24310,   -0.23309,   -0.22323,   -0.21464,   -0.20435,   -0.19125,   -0.17725,   -0.16231,   -0.14209,   -0.11335,   -0.07929,   -0.04632,
+  44.80687,   -0.33941,   -0.36965,   -0.35402,   -0.30704,   -0.28633,   -0.29821,   -0.28407,   -0.21006,   -0.11928,   -0.06474,   -0.02990,    0.03805,
+  -0.10879,   -0.20161,   -0.26546,   -0.23390,   -0.14047,   -0.10829,   -0.15147,   -0.15231,   -0.05091,    0.05645,    0.06798,    0.03493,    0.07529,
+  -0.37346,   -0.52451,   -0.50858,   -0.47412,   -0.42533,   -0.37226,   -0.31718,   -0.25402,   -0.18147,   -0.10781,   -0.03950,    0.02753,    0.09911,
+  -0.19116,   -0.24038,   -0.18975,   -0.17430,   -0.17958,   -0.14767,   -0.07469,   -0.02263,   -0.02556,   -0.03835,   -0.00892,    0.04125,    0.05542,
+   0.11563,    0.19720,    0.24364,    0.22611,    0.16819,    0.15623,    0.20157,    0.22173,    0.17058,    0.11040,    0.11162,    0.14075,    0.11520,
+   0.18031,    0.29460,    0.34897,    0.32642,    0.25085,    0.21896,    0.24202,    0.22669,    0.12594,    0.01853,   -0.01105,   -0.00135,   -0.04710,
+   0.20499,    0.31708,    0.34884,    0.31497,    0.23562,    0.18721,    0.17936,    0.14123,    0.03911,   -0.06382,   -0.10252,   -0.10855,   -0.15534,
+   0.31046,    0.43420,    0.41051,    0.34902,    0.26344,    0.17682,    0.09930,    0.01492,   -0.07655,   -0.15488,   -0.20076,   -0.22568,   -0.24929,
+   0.12999,    0.14073,    0.06069,    0.01583,    0.00081,   -0.04401,   -0.11966,   -0.15633,   -0.11731,   -0.06064,   -0.05386,   -0.07838,   -0.06843,
+   0.26017,    0.17106,   -0.11744,   -0.07830,    0.15252,    0.12827,   -0.16917,   -0.29638,   -0.06758,    0.15656,    0.05404,   -0.15683,   -0.09470,
+   0.31485,   -0.11509,   -0.84687,   -0.54336,    0.20418,    0.10039,   -0.64470,   -0.76768,   -0.10500,    0.26783,   -0.10735,   -0.43370,   -0.08453,
+   0.75957,   -0.05233,   -1.31864,   -0.68615,    0.29225,    0.21304,   -0.31901,   -0.61384,   -0.24770,    0.54825,    0.53502,   -0.20244,   -0.13772,
+   1.88292,    0.41875,   -1.89908,   -0.88685,    0.26989,    0.21361,    0.20804,    0.06673,   -0.03850,    0.52586,    0.46733,   -0.19222,    0.06346,
+   3.29321,    0.50465,   -2.27539,   -0.18780,    0.21818,    0.09957,    0.50984,    0.42155,   -0.02883,   -0.14084,    0.16381,    0.40750,    0.17080,
+   7.79825,    1.50741,   -3.14751,    0.29748,    0.02551,   -0.65686,    0.49119,    0.87794,   -0.00355,   -0.16768,    0.24352,    1.50982,    0.08034,
+  14.00504,    0.91646,   -2.46539,    0.20880,   -0.50957,   -0.61261,   -0.18063,    0.83464,   -0.52641,   -0.13895,    0.09943,    1.74159,   -0.52868,
+  13.44142,    0.31483,    0.29234,    0.15242,   -1.14150,   -0.05969,   -0.42379,    0.83283,   -0.86010,   -0.92560,   -1.04317,    0.47985,   -0.55997,
+   7.22871,    0.02501,    2.49428,    0.95413,   -1.02842,    0.15923,   -1.01835,   -0.11145,    0.05258,   -0.72917,   -1.47458,   -1.18530,   -0.17015,
+  -1.61599,   -0.43003,    3.37022,    0.88134,   -0.13308,    0.03882,   -1.58968,   -0.96594,    0.62509,   -0.06993,   -1.16790,   -2.32724,   -0.06668,
+ -10.76176,   -0.49072,    3.29918,    0.07189,    0.00983,    0.42607,    0.01932,    0.04170,    1.57404,    0.85996,    0.00954,   -1.53939,    0.88909,
+ -17.49955,   -0.84642,    1.83108,   -0.41681,    0.20646,    0.43982,    1.17639,    0.01386,    1.51175,    1.19512,    0.82039,   -0.61095,    0.86442,
+ -18.20613,   -0.14520,   -0.01912,   -0.39252,    1.10353,    0.63736,    1.88209,    0.21828,    1.04752,    0.99000,    0.92230,    0.93419,    0.61598,
+ -12.11390,    1.46204,   -1.21052,   -1.04637,    1.22112,    0.17140,    2.24943,    0.65173,   -0.08588,    0.92601,    1.20127,    2.28213,    0.75185,
+  -3.51505,    2.54119,    0.00642,   -2.18675,    0.11835,    0.00227,    1.10610,    0.51876,   -0.93515,   -0.16250,    0.13794,    1.11413,    0.14248,
+   0.45022,    3.88328,    1.77821,   -2.05071,   -0.69773,    0.26972,    0.12809,   -0.71774,   -2.04822,   -2.04363,   -0.77679,   -0.64332,   -0.11925,
+   1.84052,    2.91784,    1.42999,   -0.91996,   -0.57730,   -0.33576,   -1.01007,   -1.70689,   -1.77488,   -1.43049,    0.02612,   -1.89165,   -0.00646,
+  -0.12880,   -0.53214,    1.48872,   -0.68723,   -0.84349,   -0.47665,   -0.65907,   -0.98961,   -0.54255,   -0.72874,    0.44080,   -2.24455,   -0.94040,
+  -4.97158,   -5.22039,    3.00956,    1.78392,   -0.31825,    0.91453,    0.94948,    0.53822,    0.87715,   -0.75816,    0.10799,   -0.14966,    0.57097,
+  -6.88770,   -7.83044,    3.55969,    4.53842,    0.33471,    0.39304,    0.72327,    1.03753,    1.80131,    0.30180,    0.80916,    1.57761,    0.06766,
+  -0.06472,   -2.73202,    2.67699,    3.19374,   -0.29062,   -0.56358,   -0.11369,    0.91659,    1.20609,    0.50170,    0.16801,    1.54581,   -1.30414,
+   7.96513,    2.19639,    1.12540,    1.29673,   -0.77663,   -1.71659,   -1.67205,    0.03821,   -0.39451,    0.56292,   -0.26644,    1.20030,   -1.91406,
+  20.36825,    7.16812,   -2.07462,   -2.56250,   -1.72555,   -2.07219,   -2.24737,   -0.62517,   -1.37638,    0.89459,   -0.92776,   -0.20225,   -2.23473,
+  27.52857,    8.49879,   -5.10473,   -4.96347,   -1.45094,   -1.23414,   -1.66458,   -1.39808,   -2.19753,    1.22582,   -0.15785,   -0.48237,   -2.32545,
+  22.42527,    3.69515,   -5.78014,   -4.11555,   -0.79674,   -0.46982,   -0.64408,   -0.16306,   -0.84121,    1.61191,   -0.09852,   -0.66065,   -1.43130,
+  11.24784,   -2.54764,   -4.99240,   -1.41613,   -0.71763,    0.07090,   -0.07168,    1.05152,    1.13015,   -0.00134,   -0.50929,   -0.42378,   -0.52650,
+  -2.27832,   -8.25114,   -3.73306,    3.31291,    1.59268,    0.15774,    0.36296,    1.77359,    2.16789,   -1.40649,   -1.20025,    0.35247,    2.46950,
+ -10.87834,   -8.49211,   -2.13050,    5.42344,    3.29342,   -2.09924,   -0.78673,    1.19661,    2.46813,   -1.00383,    0.29814,   -0.01854,    3.86095,
+ -12.64384,   -4.14936,   -0.63627,    4.12979,    3.06376,   -3.62388,   -1.78564,    0.15274,    0.27741,   -1.96116,    0.51165,   -0.51537,    3.92123,
+ -13.84193,   -2.73674,    1.04745,    4.18937,    3.25537,   -2.80288,   -2.02591,   -1.37560,   -1.85905,   -1.85010,    0.45583,    0.58390,    3.33817,
+ -11.25400,   -1.05981,    3.28878,    2.43213,    2.21390,   -0.98947,    0.08231,   -1.47618,   -2.38273,   -1.07941,   -0.22681,    0.86386,    1.48212,
+ -11.05228,   -0.22290,    5.64809,    1.93243,    1.05831,    1.77555,    1.93646,   -1.12377,   -2.22490,   -0.69184,   -0.95848,    0.70705,   -1.07224,
+ -12.78424,   -0.67527,    7.24214,    3.37218,   -0.79577,    4.67174,    3.65980,   -0.47327,   -1.43202,   -0.44532,   -1.34798,    0.34553,   -2.89207,
+ -11.10884,    0.57496,    5.36448,    2.60238,   -3.22833,    5.30668,    3.88445,   -0.72640,   -0.06072,   -0.23699,   -0.17798,    0.66642,   -3.76137,
+ -14.76188,    4.10834,    2.80884,   -0.11126,   -2.92619,    4.78836,    2.72440,   -0.89062,    1.61909,    1.01685,    0.55895,   -0.35090,   -1.62364,
+ -12.08655,    3.87674,    1.44833,   -2.20587,   -1.70860,    4.93422,   -0.33181,   -0.40690,    2.70387,    1.26864,    1.62162,   -1.39498,    1.41874,
+  -4.35015,    0.69686,   -1.40145,   -4.04673,   -1.39059,    3.77357,   -2.48010,    0.48856,    2.38896,    0.75792,    1.41704,   -0.90706,    2.51950,
+  -2.98126,   -0.57544,   -2.04650,   -5.84479,    0.28809,    0.99410,   -2.62742,   -0.09681,    1.11973,    0.93487,    0.81901,   -0.48789,    1.68075,
+   0.48137,   -1.78558,   -2.41798,   -6.14209,    2.28130,   -1.36703,   -0.85182,    1.26430,    1.03422,    1.56647,    0.16530,   -0.44342,    0.43913,
+   5.29263,   -2.91849,   -4.07649,   -5.20471,    2.50273,   -2.33617,    1.43612,    2.41752,    0.44709,    1.65795,   -0.35830,   -0.56680,   -0.91788,
+   8.78468,   -3.08363,   -4.82285,   -2.76874,    1.36147,   -2.90089,    3.06442,    2.46061,    0.10628,    1.45005,   -0.11077,    0.12710,   -1.69580,
+   9.94646,   -0.88849,   -3.99298,   -0.79378,   -0.24021,   -3.27466,    2.42517,    1.15397,    0.04365,    0.87672,    0.51490,    1.54578,   -1.26088,
+   6.50878,    1.91146,   -2.31437,    0.57698,   -1.07603,   -2.39338,    0.04244,   -0.10844,   -0.21124,    0.17367,    0.26625,    0.86430,    0.04497,
+   7.70786,   -0.67801,   -1.46316,    1.88686,   -2.15238,   -0.56492,   -2.20550,   -0.78685,   -0.63474,   -0.97331,   -0.04675,    0.38546,    0.91254,
+  24.54930,   -2.71407,   -2.79878,    1.09356,   -4.45266,   -1.62989,   -2.90559,   -2.40690,   -1.53768,   -1.00329,   -0.35777,    1.35590,    0.68131,
+  32.06574,   -1.15240,    0.55634,   -0.18682,   -3.40026,   -2.27297,   -1.81379,   -2.88574,   -0.99391,   -0.68378,   -0.21541,    1.12434,    0.46684,
+  28.45597,   -3.15990,    2.83928,    0.65308,   -1.67239,   -0.68778,   -0.77180,   -1.18102,    0.39176,   -0.48112,    0.06073,    1.04493,    0.33685,
+  14.59797,   -5.13138,    3.18517,    2.50967,    1.11177,    0.57163,   -0.42486,    0.98442,    1.48556,   -0.83740,   -0.23931,    0.73557,    0.17675,
+  -3.72845,   -3.51124,    1.55782,    3.41259,    3.04399,    0.40921,   -0.68759,    1.95865,    1.00030,   -1.01141,   -0.23681,   -0.06809,    0.44259,
+ -21.61495,    2.89444,   -0.54097,    3.40615,    3.46339,   -0.14803,   -1.11945,    1.84813,   -0.62411,   -0.52742,    0.33278,   -0.95693,    0.37680,
+ -33.78760,    9.00981,   -2.74898,    1.85490,    3.27310,    0.25686,   -0.82873,    1.25507,   -1.14359,    0.12123,    0.76512,   -1.72360,   -0.51226,
+ -31.51916,   14.52491,   -1.82974,   -0.18268,    2.48123,    0.26023,    0.34134,    0.86735,   -2.05563,    0.18035,   -0.15100,   -2.20650,   -1.42871,
+  -8.13280,   16.60238,   -0.28863,   -2.56735,    0.05195,   -0.53726,    0.79647,   -0.75513,   -2.34694,    0.74106,   -1.55933,   -2.39823,   -1.98695,
+   5.05126,   13.15464,    3.60279,   -4.34883,   -0.80506,   -0.09033,    0.36513,   -1.74143,   -0.82592,    0.41468,   -2.75943,   -2.80814,   -2.28767,
+   7.32411,    4.78275,    5.29998,   -4.34229,   -1.44093,    0.81103,    0.02437,   -2.32194,    0.24427,    0.33826,   -1.67193,   -0.96206,   -1.24182,
+   9.10812,   -4.59359,    1.96367,   -2.91030,   -0.87951,    1.50810,   -0.30948,   -2.06597,    1.81809,    0.25831,    0.14130,    0.95121,   -0.05634,
+   6.96846,  -11.21001,   -1.88491,   -2.25561,   -2.15953,    0.73442,   -0.77903,   -2.01683,    1.21401,    0.31835,    1.63315,    1.29029,    0.85059,
+   1.13596,  -11.05882,   -3.52247,   -0.25600,   -3.23051,    0.99667,   -0.03908,   -1.50529,    0.06820,    0.86959,    2.75778,    1.28492,    1.31335,
+  -3.70472,   -7.35983,   -2.95527,    1.77781,   -1.96865,    1.57230,    1.82800,   -1.06835,   -0.53964,    0.59958,    2.55650,    1.57267,    0.93750,
+  -5.04297,   -1.50997,    0.15249,    2.92941,   -1.16833,    0.70852,    3.91727,    0.42658,   -1.21815,   -0.11621,    0.80285,    1.50611,    0.53641,
+  -4.06056,    2.18459,    1.73452,    2.38119,   -0.74181,   -0.17670,    3.29103,    0.68917,   -1.78614,   -0.15311,   -1.04603,    0.92786,    0.06090,
+  -2.86080,    2.13510,    2.38423,    0.81881,   -0.49837,   -0.42827,    1.61950,    0.76231,   -0.98939,   -1.00621,   -2.06018,    1.11499,   -0.19129,
+  -1.93483,    0.82137,    2.78030,    0.64130,    0.56392,    0.21727,    0.76120,    0.71704,   -0.30525,   -1.11435,   -0.98799,    1.28927,    0.11555,
+   0.68825,   -2.47889,    1.71057,    1.32855,    2.12561,    0.48081,   -1.00540,    1.64850,    0.79676,   -0.66252,   -0.64123,   -0.02105,   -0.11619,
+   0.48389,   -4.33922,    0.98819,    1.66829,    2.46791,   -0.48849,   -2.91387,    2.05927,    0.34919,   -0.05767,   -0.74559,   -1.72925,   -0.26099,
+   0.24245,   -2.77404,    0.23601,    2.20284,    3.88731,   -1.43572,   -2.23418,    2.44810,    0.90633,    0.54946,   -0.57527,   -3.42200,   -0.07661,
+   0.17565,   -1.35679,   -0.84536,    2.18870,    4.77929,   -2.31978,   -1.05009,    2.80705,    1.24735,    0.16229,   -0.10471,   -3.42125,    0.31608,
+  -1.18938,   -0.77795,   -1.36764,    1.86921,    3.31434,   -2.76629,   -0.22201,    3.36896,    1.53384,   -0.94211,    0.32354,   -2.05125,    1.23954,
+  -3.13374,   -0.91509,   -0.97772,    1.65283,    1.83681,   -2.39579,   -0.00488,    2.36957,    0.36397,   -1.91926,    0.74306,   -0.34365,    0.65549,
+  -4.97267,   -0.96364,    0.13713,    0.91143,   -1.31509,   -1.00163,    1.03233,    0.69180,   -0.72927,   -2.78508,    1.32490,    1.56583,    0.35754,
+  -6.85945,   -1.28193,    2.03452,    1.50264,   -2.92260,    0.98349,    1.41435,   -1.51727,   -1.21326,   -1.86687,    1.87517,    2.28697,    0.32175,
+  -7.11939,   -1.01505,    3.67222,    1.59803,   -3.20086,    2.97749,    1.06817,   -3.10749,   -0.99417,   -0.26336,    0.79722,    2.42876,    0.23495,
+  -5.31246,    0.28673,    3.27009,   -0.19856,   -2.88602,    4.07824,   -0.00856,   -4.00545,   -0.20722,    1.62717,    0.14996,    2.04044,   -0.79287,
+  -1.39747,    1.09174,    1.50430,   -2.01806,   -0.80691,    3.93254,    0.23631,   -3.97883,    1.33579,    2.66006,   -0.62404,    0.95474,   -0.59348,
+   3.48982,    0.89344,   -1.34445,   -3.53587,    0.67709,    2.90906,    0.09460,   -1.85039,    1.73261,    2.93600,   -0.79489,   -0.18817,    0.14495,
+   8.41412,    1.19195,   -4.37971,   -4.15560,    1.22093,    0.56913,   -0.53951,    0.53321,    1.87599,    2.13698,   -1.20868,   -1.36792,   -0.11842,
+  11.79348,    2.07406,   -6.59916,   -3.18767,    0.80053,   -3.53592,   -1.01774,    2.37130,    0.55460,    0.43783,   -1.15931,   -1.65250,   -1.28935,
+  12.09620,    3.57289,   -6.70376,   -1.96437,   -0.15075,   -5.44186,   -1.12845,    3.54374,   -1.06725,   -1.74863,   -0.28421,   -0.71038,   -0.87711,
+   9.04450,    4.26321,   -5.62701,   -1.01178,    0.58143,   -4.83820,   -1.86991,    2.57650,   -1.34064,   -2.74849,   -0.25834,   -0.20044,   -0.32551,
+   4.86684,    5.19290,   -2.60689,   -1.42399,    0.79326,   -2.28328,   -2.04050,    1.21844,   -0.85736,   -1.27215,   -0.81190,    1.08856,    0.99834,
+   0.01623,    4.37000,    0.22282,   -2.03165,    0.58962,    1.50096,   -1.27020,   -1.11682,   -0.50553,    1.81982,   -0.18143,    1.41350,    1.26103,
+  -4.79588,    1.68520,    1.65410,   -2.66616,   -0.25647,    4.96139,    1.14134,   -3.99812,   -0.57983,    3.27449,    0.15974,    0.03994,    0.64050,
+  -6.52693,   -0.79567,    3.55107,   -2.63971,   -0.98564,    5.81594,    3.22678,   -3.99359,   -0.95776,    3.42637,    1.42837,   -0.96330,   -0.26422,
+  -7.08716,   -2.52728,    5.10914,   -1.21147,   -2.29996,    4.11644,    3.75145,   -2.84352,   -1.31686,    1.28807,    1.17904,   -0.91478,   -0.46273,
+  -5.96604,   -2.75027,    6.02725,    0.86845,   -3.49258,   -0.38843,    3.00652,   -0.18185,   -1.16662,   -1.59567,    0.34567,   -0.04521,    0.16324,
+  -4.59670,   -1.91198,    5.15809,    2.62574,   -3.25644,   -2.83582,    1.15669,    2.52683,    0.44425,   -3.77954,   -0.16283,    0.55103,    1.26083,
+  -3.34087,   -0.99035,    2.62799,    3.01482,   -2.23738,   -3.71878,   -0.89664,    3.38273,    2.46827,   -3.69741,   -0.99399,    0.64024,    1.23144,
+  -1.09569,    0.10035,    0.70302,    2.90472,   -0.58142,   -3.26729,   -2.55281,    3.23568,    3.81462,   -1.09265,   -0.57576,    0.36919,    0.72021,
+  -0.69000,   -0.22143,   -0.89592,    3.11012,    0.69255,   -1.41779,   -3.33030,    1.90778,    3.97646,    1.20440,   -0.33052,   -0.58568,   -1.02687,
+  -0.46983,   -0.75360,   -2.78557,    2.20918,    2.17967,    0.89865,   -3.16726,   -0.33005,    1.89780,    1.72530,    0.15660,   -0.91208,   -2.67401,
+   0.86113,   -1.10262,   -3.73482,    1.04196,    3.74525,    1.45714,   -1.97777,   -1.12089,   -0.05726,    1.75960,    0.89571,    0.04996,   -2.26333,
+   1.54331,   -1.65894,   -5.35786,    0.17701,    3.73783,    2.10178,   -0.60824,   -2.08271,   -2.10277,    0.68544,    0.79497,    1.22325,    0.20415,
+   2.75545,   -2.01349,   -5.84217,   -1.25973,    2.98491,    2.32762,    1.40892,   -0.78433,   -1.92256,    0.31187,    0.00115,    0.88398,    1.76278,
+   2.43094,   -1.80217,   -4.50456,   -1.03065,    1.38983,    2.07960,    2.15277,   -0.15730,   -1.19875,    0.30760,    0.11612,    0.60493,    2.35047,
+   0.84679,   -2.47226,   -2.41982,   -0.74440,    0.38131,    1.50645,    1.98511,   -0.89829,   -1.23095,    0.38567,    1.11637,    1.32482,    1.85701,
+  -1.04035,   -2.75775,    0.72750,   -0.18247,   -0.43029,    0.55353,    1.11439,   -1.03401,   -1.09463,    0.19856,    2.27336,    0.67122,   -0.84261,
+  -3.09812,   -3.04583,    3.51253,    0.81631,   -1.46276,   -2.09959,   -2.16450,   -1.61351,   -0.33714,    0.53306,    1.14867,   -1.37724,   -2.10640,
+  -3.04177,   -1.70739,    5.31536,    2.60671,   -0.76392,   -3.78547,   -3.50987,   -0.72561,    0.30075,    0.00962,   -0.43289,   -1.77595,   -1.42549,
+  -1.36122,   -0.29429,    5.64058,    3.42238,   -0.88336,   -5.49962,   -3.17181,    0.28307,    0.15652,   -1.71665,   -1.86693,   -1.55986,   -0.67926,
+  -0.05605,    0.50171,    3.52788,    2.23423,   -1.71910,   -4.30363,   -1.43891,    0.71553,   -0.85863,   -2.38490,   -1.61935,   -0.42899,    0.09333,
+   1.95913,    1.36761,    1.86388,    0.36330,   -1.66910,   -1.97065,    1.11231,    2.01403,   -0.54413,   -1.66595,   -1.34725,    0.19886,    0.48335,
+   4.00524,    2.36195,    0.29345,   -1.20186,   -1.95526,   -0.41043,    2.61748,    1.72425,   -0.64939,   -0.40865,    0.01834,    0.99658,    0.33514,
+   5.74574,    2.67030,   -1.71518,   -2.68293,   -1.74787,    0.84111,    2.96371,    0.60119,   -0.91063,    0.09193,    1.28830,    1.29943,    0.38961,
+   9.16844,    3.65109,   -1.55293,   -2.48842,   -0.65675,    2.25802,    2.97735,   -0.45119,   -0.26118,    0.77344,    1.19886,   -0.06256,   -1.31736,
+  14.03404,    5.33166,   -2.18882,   -1.59919,    1.41859,    2.15699,    0.85363,   -1.24766,    0.62711,    1.76408,    0.17662,   -1.57600,   -1.28843,
+  15.93616,    4.98503,   -1.13437,    0.10328,    2.26967,    1.94326,    0.53132,   -0.14357,    1.72593,    0.85668,   -0.54843,   -0.39603,   -0.41069,
+  12.32546,    2.02964,   -0.79794,    1.01409,    1.32153,    0.95630,   -0.38356,   -0.11529,    0.04899,   -0.15901,   -1.38836,    0.45448,    0.89047,
+   3.22332,   -2.96326,   -0.99718,    0.87723,    0.40621,    0.65367,   -0.96395,   -0.43524,   -0.63281,    0.29420,   -0.42521,    0.59194,    1.82136,
+  -4.69443,   -5.77902,   -0.61340,    0.47730,   -0.38476,    0.82694,   -1.10198,    0.46039,   -0.13309,   -0.35774,   -0.16382,    0.47541,    1.05309,
+ -10.69698,   -5.97465,   -0.89254,   -0.53134,   -0.95255,   -0.01493,   -1.16917,    1.09365,    0.38539,   -0.46845,    0.28823,    0.77107,    0.26669,
+ -14.42573,   -2.34556,    0.21167,   -0.54150,   -1.33387,   -0.92884,   -1.04867,    1.61572,    1.16332,   -0.65551,   -0.20347,    1.25553,    0.04953,
+ -17.57152,    2.88091,    2.18779,   -0.04547,   -0.37261,    0.80963,    0.38018,    1.57617,    3.28357,    0.13170,   -0.44664,    0.37655,   -0.28389,
+ -14.15765,    5.55117,   -0.39026,    0.29892,    1.96548,    4.02907,    1.08338,   -0.94065,    2.46001,   -0.13199,   -1.42123,    0.63745,    0.40805,
+  -1.09724,    2.01740,   -1.83111,   -0.83400,    0.98159,    3.77382,    1.09521,   -1.62366,    1.60375,    0.05070,   -1.13992,    1.16497,    1.08691,
+   6.62698,   -1.02055,   -0.89974,   -0.98594,   -0.12853,    0.60213,   -0.30740,   -1.44273,   -0.70436,    0.90354,   -0.16535,   -0.49715,    1.39288,
+   8.37336,   -2.40382,   -0.95125,   -1.39960,   -0.29384,   -2.34899,   -0.69393,   -0.84604,   -3.07693,    0.86963,    1.33303,   -1.90806,    0.30474,
+   9.09226,   -2.35774,   -0.59003,   -2.48865,   -0.22981,   -3.82534,   -0.72252,    0.12832,   -4.10311,    0.43712,    1.39041,   -2.10518,   -1.41038,
+   7.50743,   -0.70278,   -0.37272,   -3.56151,    0.48566,   -4.81038,   -1.70290,    0.77569,   -3.84390,    0.77642,    1.18686,   -1.44140,   -1.27691,
+   2.50409,    1.52394,    0.74946,   -2.17047,   -0.06193,   -3.51532,   -1.92592,    1.04794,   -1.62890,    0.11128,    0.43504,   -0.96312,   -0.99034,
+  -5.22338,    1.67406,    1.82973,   -0.32132,   -0.63252,    0.02896,   -1.02435,   -0.26692,    1.60749,   -0.53685,   -0.22094,   -1.20691,    0.36702,
+  -4.58686,   -0.14313,    0.00440,    0.93010,   -0.13779,    3.95035,    0.10185,   -2.79772,    2.07685,   -1.03115,   -1.39511,    0.04919,    1.56523,
+   0.39207,   -1.65948,    0.05167,    0.69743,   -0.84583,    4.02613,    1.06878,   -1.80613,    3.03130,    0.09818,   -0.74767,    0.97279,    1.37240,
+  -3.67383,   -0.08797,    1.94511,    1.78755,   -0.49418,    2.29842,    2.07127,   -0.99623,    2.53297,    0.82346,    0.10110,    0.16294,    0.38437,
+  -7.04397,   -0.79178,    2.98282,    2.64806,   -0.53676,    1.59799,    2.67209,   -0.37433,    1.24542,    0.88541,    0.39583,   -0.27205,   -0.80536,
+  -4.75853,   -5.44884,    5.40727,    2.14419,   -0.66403,    1.43901,    1.27792,    0.74164,    0.40086,    0.59947,    0.65964,    0.09008,   -1.85426,
+  -0.80910,   -8.15322,    7.01508,    1.74411,    0.55960,    2.30439,    0.38024,    1.74539,   -0.04146,    0.30871,    0.78478,    0.82254,   -1.78181,
+   1.55233,   -8.47263,    6.00203,    2.18416,    0.95761,    2.26771,   -0.28012,    1.41688,   -0.58115,   -0.77729,    0.76535,    1.19218,   -0.95701,
+   1.29372,   -6.79743,    1.55503,    0.30901,    0.57075,    0.15209,    0.14880,    2.44755,   -0.03292,   -1.43924,    0.03932,    0.16937,   -0.24720,
+   1.80636,   -1.49374,   -3.37284,   -0.99571,    0.91656,   -1.79310,    0.63861,    2.60025,    0.04679,   -1.08674,   -0.35133,    0.62593,    0.91322,
+   0.68870,    3.68574,   -7.25332,   -2.06033,    1.34142,   -2.86425,    0.92081,    1.84401,    0.23503,    0.11824,   -0.64202,    0.95494,    1.27660,
+  -1.90220,    7.11677,   -7.94954,   -1.50408,    0.71101,   -3.37488,    0.84299,    0.23825,    0.36986,    0.13650,   -0.21722,    0.56112,    0.53745,
+  -4.09752,    7.19482,   -5.89078,   -0.06701,   -1.19444,   -3.30172,   -0.08174,   -1.53648,   -0.54018,   -0.41243,   -0.20274,   -0.70925,   -0.84675,
+  -5.05081,    6.15473,   -2.14298,    1.96321,   -0.77681,   -0.88775,   -0.60982,   -2.05754,   -1.57310,    0.20186,    0.95024,   -0.09381,   -1.71482,
+  -5.45865,    9.16485,   -0.63835,    2.63683,    3.46940,    2.50331,   -0.89519,   -2.86652,   -2.68339,   -0.42777,    0.46653,   -0.39933,   -0.94980,
+  -7.15794,   14.07588,   -1.48734,    1.17906,    4.65874,    1.20143,   -2.10305,   -2.96969,   -3.33467,   -1.49633,    0.35106,   -0.71336,   -0.29812,
+  -8.20444,   14.70248,   -1.63056,   -1.80849,    1.70856,   -1.71557,   -2.02139,   -0.32258,   -3.55417,   -1.30519,    0.26541,   -0.67806,    0.09364,
+  -4.39986,   10.60242,    0.44664,   -1.66287,    0.12941,   -3.63376,   -1.21170,    0.98407,   -2.61885,    0.09384,    0.55667,    0.57674,    1.04438,
+   0.64806,    2.04062,    1.62402,   -2.34527,   -1.60279,   -3.60193,    0.11853,    1.67965,   -0.51766,    1.37388,    0.41398,    0.75521,    1.42050,
+   5.01791,   -6.15281,    2.48339,   -1.08979,   -3.23749,   -2.58196,    1.27918,    1.82403,    1.16025,    0.95175,   -0.34997,    0.16514,    0.96616,
+   8.83378,  -11.30906,    2.31181,    0.38729,   -3.68626,   -0.78698,    1.80967,    1.37946,    1.47948,    1.08950,   -0.95211,   -0.45951,    0.28065,
+  10.05825,  -12.78813,    2.02912,    1.80898,   -1.54103,    2.77833,    1.83379,    0.91330,    2.08963,    1.27430,   -0.99111,   -0.52263,   -0.20687,
+   9.49942,   -8.71228,    0.17933,    0.86607,    1.12210,    4.19081,   -0.04120,   -0.08533,    2.07753,    0.13819,   -1.49305,   -1.03974,   -0.17264,
+   4.96108,   -2.72504,   -0.90154,   -0.90986,    0.13664,    1.89568,   -1.55447,   -1.30247,    1.80273,   -0.85200,   -0.81179,   -0.69120,   -0.38906,
+   0.08487,   -0.80578,    0.30573,   -1.63767,   -1.27700,    0.27901,   -1.99012,   -1.42654,    0.81261,   -0.51483,    0.30977,    0.62867,   -0.01883,
+   0.24185,   -2.81577,    0.71859,    0.22825,   -2.04332,    0.98005,   -0.73467,   -1.35773,    2.14691,   -0.81958,    0.42843,    1.63667,    0.12070,
+   2.54637,   -2.06032,   -0.37911,   -0.09031,   -2.84493,    1.05361,    0.05539,   -1.33701,    2.37299,   -0.80721,    0.54231,    1.50378,    0.22601,
+  10.74993,    0.46409,   -3.19143,   -1.84183,   -3.66671,    1.15522,    0.10569,   -0.68615,    1.52641,   -0.12650,    0.21268,    0.26509,   -0.17750,
+  13.92211,    1.72096,   -5.49705,   -3.79817,   -2.20497,    0.10411,    0.77840,   -0.50270,    0.24503,    1.44755,    0.86626,   -0.10963,   -0.99623,
+   9.93487,    0.92591,   -5.95206,   -3.68119,   -0.19081,   -1.22371,    2.17165,   -0.46051,   -0.53758,    2.64064,    0.73742,   -0.23889,   -1.42306,
+   2.45853,    0.53382,   -3.86704,   -2.38111,    1.06630,   -2.53741,    2.84142,    0.01277,   -1.36106,    2.59209,   -0.01666,   -0.18922,   -0.74878,
+  -5.16603,    1.10071,   -1.02587,   -0.65498,    1.71131,   -2.87453,    2.04240,    0.47719,   -2.17233,    1.02821,   -0.72409,    0.26941,   -0.00607,
+ -12.43123,    0.30608,    3.68857,    2.96309,    1.55630,   -0.98385,    0.61345,    1.30019,   -1.16512,    0.17263,   -0.45493,    1.32836,    0.42314,
+ -13.59440,   -1.44457,    6.62413,    5.32542,   -0.33035,    1.82161,   -0.62439,    1.11572,    0.18399,   -1.42046,   -0.68679,    1.32077,    0.72066,
+  -9.34379,   -0.82807,    5.77036,    4.03872,   -0.26507,    2.48931,   -1.93166,    0.90906,    0.50134,   -1.90245,    0.14190,    0.16543,    0.41823,
+   0.83365,   -0.15804,    3.34869,    1.48043,    0.92773,    3.18556,   -1.71020,    1.11097,    0.62936,   -1.85763,    0.67584,   -0.91246,    0.15532,
+   3.58294,   -0.49183,    0.86556,   -0.32031,    2.82222,    1.47408,   -0.95646,    0.70039,    0.36673,   -1.66082,    1.52451,   -1.44978,   -0.46740,
+   2.82632,   -0.49331,   -1.30602,   -0.76875,    3.20566,   -0.58260,   -0.59764,    0.17135,   -0.02765,   -1.11568,    0.85042,   -1.88961,   -0.51674,
+   0.73548,    1.22593,   -1.53706,    0.01615,    2.85568,   -1.87749,   -1.63739,    0.51648,   -0.47562,   -0.43747,   -0.16051,   -2.08342,    0.01977,
+  -1.50833,    3.63719,   -0.79696,    1.79341,    2.06264,   -1.83228,   -2.71805,    0.76524,   -0.78004,    0.01473,   -1.01369,   -1.91239,    1.07460,
+  -7.12200,    4.73549,    1.25465,    3.98537,    0.95340,   -0.75236,   -2.93568,   -0.05724,   -0.41303,    0.14127,    0.00988,   -1.37547,    2.44927,
+ -16.05533,    3.48974,    3.98671,    4.36116,    1.44413,    0.49505,   -1.03298,   -0.75418,   -0.42939,    0.38396,    0.34566,   -0.11899,    3.21039,
+ -20.02677,    1.44514,    5.73581,    2.33987,    2.03818,    0.82477,    0.74071,   -0.12468,   -0.08709,    0.82213,    0.27651,    1.10990,    2.00585,
+ -16.45775,   -1.12825,    5.86567,    0.09403,    1.94631,    1.31943,    2.83514,    0.64633,   -0.02941,   -0.10645,   -0.51430,    2.29224,    0.57413,
+ -12.04607,   -5.48223,    4.53004,   -2.18355,   -0.55953,    1.53644,    3.79456,    0.37770,    0.23428,    0.53815,   -0.86937,    1.46214,   -1.51234,
+  -5.08613,   -9.16066,    1.71684,   -2.63321,   -3.00263,   -0.10397,    2.73513,    0.02325,    0.29299,    0.52085,   -1.59154,    0.82633,   -1.91742,
+   5.18221,   -8.78437,   -1.97695,   -2.58549,   -4.10144,   -0.43996,    1.85184,    0.59036,    0.02410,   -0.49077,   -2.30230,   -0.02483,   -1.99048,
+  13.50362,   -5.64577,   -5.21514,   -1.81849,   -3.74644,    0.03933,    1.61908,    0.93424,   -0.06135,   -1.62124,   -2.24047,   -0.76083,   -0.41216,
+  13.04554,   -3.18341,   -6.84896,   -0.21182,   -1.79743,    0.16220,    0.40382,   -0.30199,   -0.28752,   -1.11176,    0.41599,   -0.55934,    0.31086,
+   8.12199,   -0.27922,   -5.83939,    0.04151,    0.92007,    0.47225,    0.06853,   -0.45388,   -0.06354,    0.44807,    1.77689,    0.39586,    0.24896,
+   6.26660,    2.21433,   -4.39397,   -1.09668,    1.60584,   -0.52127,   -1.69893,   -0.80409,    0.01291,    1.24749,    2.14532,    0.70911,   -0.64410,
+   5.37495,    2.85567,   -2.75570,   -1.11314,    1.26053,   -0.62689,   -2.15417,   -1.07443,    0.21577,    1.20760,    1.96039,    0.99756,   -0.54196,
+   2.45326,    2.08029,   -0.18036,   -0.75242,   -0.15587,   -0.52899,   -1.64229,   -1.44529,    0.51506,    2.10977,    1.70373,    0.17180,   -0.51534,
+   7.62515,    4.58346,    0.17525,    1.27628,    0.46337,   -2.61314,   -3.68955,   -1.21973,    0.39711,    0.62896,    1.13624,    0.38422,   -0.05342,
+  28.63886,    8.07296,   -0.43933,    0.56066,   -0.11386,   -2.21033,   -2.54121,    0.73336,    0.59858,   -1.68698,   -1.13978,   -0.28280,   -0.60486,
+  33.05630,    8.21598,   -0.62197,   -0.68171,   -0.86102,   -1.02507,   -0.56918,    1.16628,    0.49057,   -1.98812,   -2.13810,    0.03607,   -0.29178,
+  19.35886,    5.08679,   -0.83876,   -2.11066,   -2.24766,   -0.16469,    1.91195,    0.52344,   -0.19797,   -0.21282,   -1.43950,    0.52516,   -0.51290,
+   1.05964,    2.25556,    1.14766,   -3.16166,   -3.43586,    0.39448,    4.07371,   -0.14690,   -1.13379,    1.46506,   -0.85294,    0.96596,    0.32788,
+ -16.47921,   -0.37634,    4.38852,   -1.72560,   -2.73570,    0.38875,    3.80922,   -1.90740,   -2.70927,    2.43815,   -1.57970,   -0.20923,   -0.03821,
+ -27.79869,   -0.09178,    7.68185,    0.54952,   -2.45296,   -0.10436,    2.05334,   -2.55811,   -3.09893,    2.04949,   -1.75198,   -0.61015,    0.16000,
+ -29.08426,    1.79115,    7.11112,    2.12899,   -2.30041,   -1.32327,   -0.17704,   -1.42358,   -1.49022,    1.48503,   -0.80154,   -2.12979,   -0.42513,
+ -16.58322,    3.19567,    3.07473,    4.25485,   -0.51870,   -1.47221,   -3.10022,   -0.09613,    0.26226,   -0.15524,    0.64078,   -2.16681,   -0.43177,
+   4.19846,    0.74735,   -0.81213,    3.26574,   -0.34897,    0.15579,   -2.97701,    1.42923,    1.36501,   -2.43711,    0.07199,   -1.18562,   -0.30232,
+   7.04351,   -1.93867,   -5.04837,    0.33955,    0.26167,    1.23221,   -1.89839,    1.61539,    2.00777,   -3.04884,   -0.04032,    0.56949,   -0.04057,
+   4.17853,   -3.84825,   -7.78771,   -3.02794,    1.64138,    1.63907,    0.40393,    2.35928,    2.61261,   -2.52924,    1.58602,    1.46927,   -0.19888,
+   2.81883,   -4.79352,   -6.55991,   -4.51712,    5.33195,    2.31995,    1.32159,    1.94338,    1.76991,   -3.49259,    2.76889,    2.00009,    0.38291,
+   3.30576,   -4.24379,   -4.64981,   -4.03144,    8.75425,    3.06653,    1.11204,   -0.49300,   -0.39239,   -4.27045,    3.12231,    1.21235,    0.55950,
+   3.65417,   -1.87101,   -1.98393,   -2.56431,    8.83752,    2.52297,   -0.25835,   -2.24798,   -2.04056,   -2.91090,    4.09639,    0.87054,    0.95408,
+   1.66876,   -1.09840,   -0.87220,   -0.07665,    6.55136,    0.85409,   -2.24251,   -2.67509,   -1.48777,    0.28572,    3.47642,   -1.21795,    0.40747,
+  -1.45178,   -2.86295,    1.16961,    3.82425,    3.41072,    0.44732,   -4.34542,   -2.26515,   -0.07209,    2.41577,    0.68121,   -1.74238,    0.51740,
+  -3.53259,   -4.20449,    3.89107,    6.81943,   -0.81615,   -1.06892,   -4.99324,   -0.61748,    1.44100,    3.22921,   -2.85996,   -1.25922,    0.03446,
+  -4.01745,   -3.92943,    4.96052,    7.61386,   -4.94968,   -2.68325,   -2.57150,    1.85646,    2.97579,    3.07190,   -4.93034,   -1.02494,   -1.25283,
+  -4.55216,   -3.11318,    5.67682,    6.07460,   -6.83842,   -2.52929,    2.05827,    4.41438,    3.24786,    2.01340,   -4.49917,   -0.46858,   -1.99564,
+  -3.57136,   -1.45291,    5.25936,    3.12338,   -5.65845,   -1.49985,    5.85940,    3.96404,    1.07936,    0.50942,   -2.73902,    0.97716,   -1.19766,
+  -1.63437,    0.09951,    2.99573,   -0.20278,   -3.60439,   -0.20191,    6.98759,    1.52803,   -1.94480,    0.52486,    0.13909,    1.53447,    0.45609,
+   0.54424,    2.07960,    0.34316,   -3.33270,   -0.69932,    0.56253,    4.73373,   -0.32955,   -3.64980,    1.72959,    1.96386,    1.03045,    1.12667,
+   1.33631,    2.37755,   -1.87441,   -4.59423,    0.92868,    2.06332,    1.00696,   -1.41669,   -2.16562,    1.62258,    1.16338,   -0.60858,    2.02551,
+   2.16312,    0.69768,   -1.89097,   -4.51454,    0.65384,    2.74707,   -2.52128,   -1.70274,    0.08868,    1.57268,    0.03372,   -2.16884,    2.68824,
+   3.34501,   -2.81341,    0.01824,   -2.27004,   -0.60666,    2.73602,   -3.03987,   -0.84670,    1.59907,    0.48251,   -0.64083,   -1.95746,    1.86315,
+   2.35604,   -5.69370,    1.99409,   -0.58733,   -1.79226,    1.87871,   -1.11883,   -0.60441,    2.69282,   -0.76227,    0.77583,   -0.36741,    0.81042,
+   0.76722,   -5.76291,    2.03095,    0.20537,   -1.45271,    1.17989,    1.10953,   -0.19568,    3.11318,   -0.53355,    0.89315,    0.69284,   -0.69185,
+  -0.64447,   -1.93302,    0.00437,   -0.48542,   -0.01937,    0.06378,    2.04712,   -0.86621,    0.87357,    0.74088,    1.42457,    1.72469,   -1.22077,
+  -1.85081,    3.54681,   -2.57017,   -1.37412,    0.87132,   -1.14356,    1.02429,   -0.88191,   -1.41294,    0.11289,    0.88510,    1.98091,   -1.28046,
+  -1.28988,    9.33262,   -4.66195,   -2.01650,    1.35927,   -1.85700,   -1.28144,   -1.31423,   -2.01477,   -0.89281,   -0.53515,    0.94998,   -1.38835,
+  -1.61862,   12.59195,   -5.25156,   -1.35804,    0.88209,   -1.47722,   -2.90052,   -1.59517,   -2.67036,   -1.73913,   -1.15066,   -0.53627,   -0.70888,
+  -2.16144,   13.02065,   -4.71302,   -0.60855,   -0.72887,   -2.12651,   -3.29260,   -1.59289,   -2.94301,   -1.37787,   -1.51249,   -1.28468,   -0.93711,
+  -2.48996,   10.08527,   -3.78712,    0.59486,   -0.44427,   -1.56782,   -1.47537,   -0.50152,   -1.54615,   -2.45176,   -0.88758,   -0.79308,   -1.51723,
+  -3.37114,    5.22081,   -2.15569,   -0.03493,    0.84560,   -2.38960,    0.53854,    0.20923,    0.41152,   -3.03330,    0.90126,    0.83144,   -0.27947,
+  -3.66135,    1.14919,   -1.63629,    0.48386,    0.79058,   -1.71151,    1.97203,    0.70343,    1.67358,   -1.25116,    1.09744,    0.91605,   -0.61355,
+  -5.64232,   -1.37539,    0.53593,    0.65117,    1.02433,   -0.42820,    2.06895,    1.76367,    0.83862,    0.82207,    1.50662,    0.67475,   -0.27118,
+  -8.30937,   -3.99281,    4.73570,    1.26622,    2.33311,    0.37241,    1.69835,    2.00754,   -1.43329,    1.18721,    0.58491,    0.79643,    1.20485,
+  -6.45230,   -5.18484,    6.87114,    1.22436,    2.44002,    1.83408,    1.04069,    1.26849,   -1.87028,    2.25718,   -0.53987,   -0.57861,    2.23996,
+  -2.87819,   -5.12779,    6.66136,    1.42515,    1.59922,    2.15331,    0.51503,    1.04683,   -2.14922,    2.96057,   -0.44765,   -1.20753,    2.45751,
+   2.55963,   -4.19373,    3.12443,    0.91964,    0.52124,    1.39843,   -0.03413,    0.92559,   -0.64958,    2.35276,   -0.75760,   -0.70371,    1.40571,
+   7.60430,   -3.98521,   -1.01852,   -0.25229,    0.11536,    0.85281,   -0.07025,    0.61516,    1.19230,    0.59239,   -0.08972,    0.04696,    0.24487,
+  10.16228,   -4.02588,   -2.57450,   -0.84913,   -1.32936,   -0.70299,   -0.18757,    0.13752,    2.50470,   -0.35897,    0.59181,    1.03806,   -0.46586,
+   9.22936,   -2.40744,   -4.14243,    0.19192,   -2.82431,   -1.14219,   -0.35091,   -0.02258,    2.76954,   -0.70597,    1.19266,    0.96075,   -1.51163,
+   4.69089,   -1.23410,   -3.08633,    0.74810,   -1.74740,   -1.17424,   -0.94292,    0.43392,    1.91493,   -1.01433,    1.01194,    0.40200,   -1.16780,
+  -0.40179,   -1.07478,   -0.30931,    0.43293,   -0.26438,   -0.77071,   -0.91637,   -0.11969,    0.27763,   -0.48280,   -0.05405,    0.49262,    0.44182,
+  -1.30888,   -0.39406,    0.54836,   -0.45560,   -0.50473,    0.52426,   -0.20709,   -0.85935,    0.01156,    0.10719,   -0.85375,   -0.44064,    0.40290,
+  -2.51316,   -0.30038,    2.24405,    0.04567,   -1.06727,    0.87352,    0.45662,   -0.89379,   -0.20271,    0.05209,   -1.62835,   -1.47750,   -0.11997,
+  -3.21890,   -0.63541,    2.74252,    0.08231,   -1.48443,    0.81144,    1.01067,   -0.51558,   -0.33487,   -0.18637,   -1.36021,   -1.25547,   -0.81002,
+  -3.33979,   -1.25056,    2.29572,    0.46226,   -1.03928,    0.60282,    1.02832,   -0.26747,   -0.32177,   -0.29693,   -1.01177,   -0.69273,   -0.40967,
+   3.83003,   -0.05123,   -2.80682,   -0.09836,   -2.32190,   -2.24635,    0.68250,    0.84364,    0.16497,   -0.45109,   -0.16244,    0.38569,    0.48638,
+   7.31336,    0.54444,   -5.62951,   -0.63746,   -1.75873,   -3.84618,   -0.14022,    1.48527,    0.40388,   -0.55469,    0.84476,    1.14843,    0.98476,
+   4.41448,    0.17238,   -4.92365,   -1.43925,    0.26561,   -2.63845,   -1.26464,    1.46021,    1.35545,    0.86784,    1.07002,    0.40436,    0.32996,
+  -0.36896,   -0.82490,   -2.96900,   -2.93555,    0.88918,   -0.55652,   -1.99362,    0.58595,    1.62409,    1.75007,    0.80250,   -0.38241,   -0.81236,
+  -5.98791,   -2.45780,   -0.14485,   -2.59323,    1.54421,    1.62512,   -2.02780,   -0.97582,    0.64449,    0.93279,    0.13137,   -0.73216,   -1.27276,
+ -10.65201,   -3.67712,    4.00352,   -0.89261,    1.51217,    3.81264,   -0.42121,   -1.77168,   -0.46698,    0.01170,   -0.70166,   -0.99424,   -1.27991,
+ -11.50435,   -4.47949,    5.00780,   -0.00562,    0.40033,    3.46732,    0.00612,   -2.73054,   -2.14512,   -1.20490,   -0.54356,    0.31733,   -0.26649,
+  -6.66438,   -2.96093,    3.70358,    1.25327,   -0.10438,    2.13594,    0.59832,   -2.27570,   -2.58900,   -1.88680,   -0.33843,    1.45507,    1.25116,
+   3.46550,    0.51885,   -0.84675,    0.86400,   -1.94527,   -0.89987,    1.09293,   -0.71812,   -2.02673,   -1.76489,    0.42939,    2.23159,    1.83621,
+   5.75795,    2.37091,   -1.18967,    0.53958,   -1.52071,   -1.74541,    0.81437,    0.14279,   -1.20862,   -0.84202,    0.89451,    1.63559,    1.28508,
+   5.89360,    3.85243,   -0.66250,    0.40889,    0.37277,   -0.73996,    0.74387,    1.29072,    0.38874,    0.70585,    0.82826,    0.10710,    0.19355,
+   5.84407,    3.89011,   -1.06566,   -0.28079,    0.54319,   -0.79726,   -0.10010,    1.10425,    0.99781,    0.80465,    0.30735,   -0.84430,   -0.65162,
+   4.15440,    2.84123,   -0.60409,    0.25845,    0.92166,   -0.71915,   -0.95923,    0.35210,    0.91047,    0.49826,   -0.35318,   -0.94804,   -0.42840,
+   2.92589,    2.50807,    0.45630,    0.74996,    1.16122,    0.25525,   -0.30100,    0.21691,    0.62228,    0.34482,   -0.39568,   -0.85899,   -0.66905,
+   1.59452,    1.46675,    0.42945,    0.58506,    0.71894,    0.06417,   -0.42137,   -0.13321,    0.04791,   -0.18779,   -0.51909,   -0.55866,   -0.39290,
+   0.65455,    0.85218,    0.66460,    0.61843,    0.56772,    0.43565,    0.20614,    0.15363,    0.13117,    0.04038,   -0.14326,   -0.17633,   -0.17159,
+   0.10242,    0.15728,    0.12141,    0.10756,    0.07157,    0.07602,    0.04603,    0.04986,    0.01415,   -0.01059,   -0.07097,   -0.09258,   -0.13962,
+  -0.10807,   -0.14815,   -0.14954,   -0.14938,   -0.17144,   -0.17927,   -0.17881,   -0.17386,   -0.18305,   -0.16965,   -0.14692,   -0.10745,   -0.07029,
+   0.10584,    0.12991,    0.14904,    0.13138,    0.10066,    0.05203,    0.07636,    0.04703,    0.01529,   -0.01553,    0.00099,   -0.01276,    0.01326,
+   0.08425,    0.10493,    0.13542,    0.09583,    0.08445,    0.04019,    0.05727,    0.02121,    0.00529,   -0.05714,   -0.05560,   -0.08407,   -0.08461,
+   0.38736,    0.54152,    0.51499,    0.46106,    0.39383,    0.33696,    0.29355,    0.24304,    0.17114,    0.08912,    0.01619,   -0.04488,   -0.10124,
+   0.57681,    0.80494,    0.77494,    0.73010,    0.67231,    0.60115,    0.51754,    0.42478,    0.32564,    0.22085,    0.11215,    0.00524,   -0.09257,
+   0.26486,    0.36144,    0.34555,    0.35903,    0.38883,    0.39362,    0.36565,    0.33999,    0.33649,    0.32611,    0.27476,    0.19535,    0.12650,
+  -0.21093,   -0.29556,   -0.27549,   -0.22377,   -0.15293,   -0.09083,   -0.04424,    0.00619,    0.07127,    0.13267,    0.16759,    0.17926,    0.18613,
+  -0.24814,   -0.35065,   -0.33638,   -0.33100,   -0.31921,   -0.31383,   -0.29480,   -0.27651,   -0.24126,   -0.20092,   -0.14114,   -0.08350,   -0.02431,
+  -0.28843,   -0.40336,   -0.39127,   -0.38497,   -0.38041,   -0.37398,   -0.35692,   -0.33460,   -0.30211,   -0.25593,   -0.18824,   -0.11065,   -0.03383,
+  -0.40388,   -0.55839,   -0.53149,   -0.49648,   -0.45975,   -0.41103,   -0.35497,   -0.29469,   -0.23840,   -0.17541,   -0.10385,   -0.02526,    0.04476,
+  -0.14369,   -0.19512,   -0.18577,   -0.17187,   -0.16303,   -0.14426,   -0.12706,   -0.11088,   -0.11023,   -0.11001,   -0.11046,   -0.10197,   -0.09659,
+   0.04986,    0.07119,    0.06103,    0.05379,    0.04249,    0.04304,    0.04101,    0.03907,    0.01958,   -0.00486,   -0.03727,   -0.06044,   -0.07913,
+   0.11266,    0.15889,    0.14937,    0.14394,    0.13163,    0.11935,    0.09718,    0.07876,    0.05759,    0.04176,    0.02059,    0.00451,   -0.01118,
+   0.24149,    0.33048,    0.30735,    0.29830,    0.29356,    0.27574,    0.23733,    0.20474,    0.18577,    0.16789,    0.12721,    0.07614,    0.03404,
+   0.30163,    0.39157,    0.35508,    0.31405,    0.30194,    0.24286,    0.17205,    0.09610,    0.07223,    0.04378,    0.00352,   -0.05629,   -0.07777,
+   1.16603,    0.08366,   -0.87697,    0.89533,    1.06093,   -0.67183,   -0.29497,    0.89540,    0.08121,   -0.66815,    0.15620,    0.37290,   -0.36530,
+   9.21120,   -2.82343,   -4.35932,    1.65763,    2.25143,   -1.19674,   -1.27081,    1.41156,   -0.36733,    0.31764,   -0.23390,    0.75131,   -0.77766,
+  15.01506,   -4.99195,   -4.69809,    1.75278,    2.29372,   -1.12755,   -1.63234,    0.76995,   -0.39868,    0.45715,   -0.90487,    0.81855,   -1.40586,
+  14.57721,   -5.55807,   -2.11822,    2.03013,    0.87119,   -0.47299,   -0.55130,    0.30038,   -0.43459,    0.55848,   -0.93575,    0.75292,   -1.14337,
+   9.43524,   -4.92830,    1.26108,    1.52253,   -1.06139,    0.05145,    0.22248,   -0.33880,   -0.28392,    1.37014,   -0.24485,   -0.51274,   -0.57657,
+   1.76494,   -2.84747,    3.64396,   -0.05073,   -3.01963,    0.48404,    0.46461,   -1.16985,   -0.00458,    0.98046,    0.29409,   -1.08060,    0.74265,
+  -5.80262,    1.24152,    4.80939,   -1.44025,   -4.01440,    0.55141,    0.71258,   -1.72037,    0.21627,   -0.15831,    0.42853,   -1.66622,    0.90462,
+ -11.92034,    4.72914,    4.48976,   -1.85948,   -3.03117,    1.10386,    1.54666,   -0.90115,   -0.23760,   -1.21684,    0.45243,   -1.10811,    1.32431,
+ -12.56092,    7.24714,    2.34986,   -1.60707,   -0.33190,    0.82056,    1.54856,    0.30501,   -0.65289,   -1.78371,    0.70834,    0.18954,    1.21825,
+  -6.37655,    7.25386,   -0.86549,   -1.12217,    2.09120,    0.25773,   -0.13453,    0.52964,   -0.37262,   -1.10231,    0.11707,    0.54931,    1.06735,
+  -5.12965,    9.50558,    0.06137,    0.05321,    4.38371,    1.29442,    0.60271,    0.50784,    0.90449,   -1.15440,   -0.76032,    0.79430,    0.42655,
+  -4.91588,   13.99363,    2.21924,    1.72793,    4.22636,    0.88434,    1.02688,   -0.11563,    0.80970,   -0.95908,   -1.16542,    0.09138,   -0.25571,
+  -0.49899,   13.50086,    0.45976,    2.08231,    2.57830,   -2.23514,    1.04862,   -0.80894,    0.50177,   -0.39439,   -1.32026,   -0.65541,   -0.80816,
+   2.50879,    7.05446,   -1.60173,    0.75048,    0.44241,   -3.20741,    1.17587,   -0.86417,    0.22232,   -0.48021,   -1.41610,    0.34684,   -1.20772,
+   3.91430,   -0.11253,   -2.98095,    0.26236,   -1.73557,   -2.69258,    0.81257,   -0.76090,   -0.14933,   -0.11267,   -0.33433,    0.35107,   -2.20689,
+   1.52597,   -8.08723,   -2.88646,   -0.01534,   -2.71940,   -0.59833,    0.44367,   -0.36338,   -0.70591,    0.03754,    1.07923,    1.28916,   -0.98862,
+  -3.19241,  -13.07944,   -1.45363,   -1.00014,   -3.23551,    1.02494,   -0.75324,   -0.25386,   -0.06039,    0.07222,    2.70142,    0.74582,   -0.42609,
+  -9.37112,  -14.01679,    1.58559,   -0.99353,   -2.70695,    2.30827,   -2.86112,    0.00562,    1.23688,   -0.28028,    3.36462,    0.27533,    0.38289,
+ -15.65554,   -9.69857,    5.53239,   -0.88511,   -0.60628,    4.34134,   -2.31666,    1.16146,    2.59606,    0.06560,    2.47435,    0.14085,    1.17497,
+ -17.38906,   -2.45135,    6.80561,   -2.23381,    0.29775,    4.22087,   -1.59670,    1.92207,    1.32889,    0.40569,    1.28392,   -1.24831,    1.78650,
+ -12.32829,   -0.45323,    4.02706,   -3.48876,    0.91028,    2.64065,   -0.40734,    1.09273,   -0.07504,    2.04266,   -0.33405,   -1.75580,    2.78248,
+  -5.48976,   -1.31076,    1.13817,   -4.10307,    1.68517,    2.64528,    0.61998,    0.31068,   -0.72026,    3.38016,   -1.75093,   -1.89652,    2.49156,
+   4.86518,    0.46760,   -4.62680,   -5.68874,   -0.53312,    1.27476,    0.91930,   -0.88800,   -1.38324,    3.65460,   -1.17333,   -1.46998,    1.47362,
+  23.59956,    1.54103,  -10.57325,   -6.55460,   -1.18614,   -3.24342,    0.75381,   -2.71058,   -3.01869,    2.41544,   -1.13300,   -0.30150,    0.60880,
+  32.33330,    2.70337,  -11.78239,   -3.99596,   -1.67392,   -5.54388,    0.69011,   -2.90009,   -3.08534,    0.37034,   -0.66760,    0.15104,   -1.36276,
+  30.06627,    3.26370,   -7.79426,   -0.60895,   -2.00669,   -5.92217,    1.14711,   -1.47520,   -1.91072,   -1.88113,    0.17036,    1.92276,   -2.50109,
+  39.37696,   -4.69698,   -0.04885,    4.63564,   -2.39147,   -3.19453,   -0.69839,    1.31964,    1.29003,   -2.78135,   -0.00281,    2.12537,   -1.31877,
+  28.62589,   -7.60295,    5.43086,    7.42344,   -1.12472,    0.32970,   -1.36870,    2.95929,    2.25571,   -2.58043,   -0.04934,    0.91945,   -0.31753,
+   8.88008,   -7.52631,    8.67690,    8.57319,    0.51966,    2.83565,   -1.92872,    2.09044,    2.85297,   -1.26876,   -0.45494,   -0.01347,    0.57816,
+ -11.64625,   -4.59992,    7.86869,    6.87035,    1.68262,    3.67577,   -1.31846,    1.67403,    2.82795,   -0.42186,   -0.61134,   -0.46697,    0.59609
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // ASR_F_GOLDEN_HPP
\ No newline at end of file
diff --git a/tests/use_case/ad/AdTests.cc b/tests/use_case/ad/AdTests.cc
new file mode 100644
index 0000000..09f82da
--- /dev/null
+++ b/tests/use_case/ad/AdTests.cc
@@ -0,0 +1,18 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#define CATCH_CONFIG_MAIN
+#include <catch.hpp>
diff --git a/tests/use_case/ad/InferenceTestAD.cc b/tests/use_case/ad/InferenceTestAD.cc
new file mode 100644
index 0000000..b87699d
--- /dev/null
+++ b/tests/use_case/ad/InferenceTestAD.cc
@@ -0,0 +1,100 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <catch.hpp>
+#include <random>
+
+#include "AdModel.hpp"
+#include "AdGoldenInput.hpp"
+#include "hal.h"
+#include "TensorFlowLiteMicro.hpp"
+
+#ifndef AD_FEATURE_VEC_DATA_SIZE
+#define AD_IN_FEATURE_VEC_DATA_SIZE (1024)
+#endif /* AD_FEATURE_VEC_DATA_SIZE */
+
+bool RunInference(arm::app::Model& model, const int8_t vec[])
+{
+    TfLiteTensor *inputTensor = model.GetInputTensor(0);
+    REQUIRE(inputTensor);
+
+    const size_t copySz = inputTensor->bytes < AD_IN_FEATURE_VEC_DATA_SIZE ? inputTensor->bytes : AD_IN_FEATURE_VEC_DATA_SIZE;
+
+    memcpy(inputTensor->data.data, vec, copySz);
+
+    return model.RunInference();
+}
+
+bool RunInferenceRandom(arm::app::Model& model)
+{
+    TfLiteTensor *inputTensor = model.GetInputTensor(0);
+    REQUIRE(inputTensor);
+
+    std::random_device rndDevice;
+    std::mt19937 mersenneGen{rndDevice()};
+    std::uniform_int_distribution<short> dist{-128, 127};
+
+    auto gen = [&dist, &mersenneGen]() {
+        return dist(mersenneGen);
+    };
+
+    std::vector<int8_t> randomInput(inputTensor->bytes);
+    std::generate(std::begin(randomInput), std::end(randomInput), gen);
+
+    REQUIRE(RunInference(model, randomInput.data()));
+    return true;
+}
+
+template <typename T>
+void TestInference(const T *input_goldenFV, const T *output_goldenFV, arm::app::Model& model)
+{
+    REQUIRE(RunInference(model, (int8_t*)input_goldenFV));
+
+    TfLiteTensor *outputTensor = model.GetOutputTensor(0);
+
+    REQUIRE(outputTensor);
+    REQUIRE(outputTensor->bytes == AD_OUT_FEATURE_VEC_DATA_SIZE);
+    auto tensorData = tflite::GetTensorData<T>(outputTensor);
+    REQUIRE(tensorData);
+
+    for (size_t i = 0; i < outputTensor->bytes; i++)
+    {
+        REQUIRE((int)tensorData[i] == (int)((T)output_goldenFV[i]));
+    }
+}
+
+TEST_CASE("Running random inference with TensorFlow Lite Micro and AdModel Int8", "[AD][.]")
+{
+    arm::app::AdModel model{};
+
+    REQUIRE_FALSE(model.IsInited());
+    REQUIRE(model.Init());
+    REQUIRE(model.IsInited());
+
+    REQUIRE(RunInferenceRandom(model));
+}
+
+TEST_CASE("Running golden vector inference with TensorFlow Lite Micro and AdModel Int8", "[AD][.]")
+{
+    arm::app::AdModel model{};
+
+    REQUIRE_FALSE(model.IsInited());
+    REQUIRE(model.Init());
+    REQUIRE(model.IsInited());
+
+    TestInference(ad_golden_input, ad_golden_out, model);
+}
\ No newline at end of file
diff --git a/tests/use_case/ad/MelSpecTests.cc b/tests/use_case/ad/MelSpecTests.cc
new file mode 100644
index 0000000..affc67a
--- /dev/null
+++ b/tests/use_case/ad/MelSpecTests.cc
@@ -0,0 +1,226 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "AdMelSpectrogram.hpp"
+#include <limits>
+#include <algorithm>
+#include <catch.hpp>
+
+/* First 1024 samples from test wav. */
+const std::vector<int16_t> testWav1 = std::vector<int16_t>{
+    490,495,445,403,390,259,126,146,
+    175,134,232,243,166,145,123,33,
+    -61,-4,8,-115,-281,-292,-210,-133,
+    -98,-142,-229,-356,-415,-438,-443,-396,
+    -377,-297,-85,122,172,16,-197,-351,
+    -484,-408,-378,-405,-399,-335,-180,-141,
+    -124,-108,-46,37,141,234,264,218,
+    147,164,132,111,125,73,2,36,
+    107,113,93,6,-40,-153,-273,-282,
+    -291,-298,-389,-446,-394,-324,-333,-385,
+    -485,-548,-690,-718,-660,-704,-690,-601,
+    -549,-641,-637,-513,-469,-366,-227,-269,
+    -348,-408,-486,-570,-638,-666,-730,-746,
+    -710,-634,-543,-461,-281,-156,-130,-126,
+    -144,-118,-23,103,132,37,-69,-86,
+    -234,-360,-366,-330,-248,-268,-282,-169,
+    -190,-152,-151,-145,-133,-205,-263,-397,
+    -558,-656,-668,-718,-779,-828,-856,-817,
+    -761,-759,-722,-772,-873,-983,-962,-897,
+    -843,-788,-750,-677,-555,-447,-373,-218,
+    -182,-230,-204,-174,-144,-127,-231,-199,
+    -127,-194,-250,-183,-189,-254,-249,-337,
+    -417,-459,-513,-505,-481,-402,-344,-284,
+    -281,-441,-450,-423,-327,-119,102,197,
+    208,173,102,103,165,131,15,75,
+    283,365,322,391,303,287,372,406,
+    493,577,640,681,577,498,524,511,
+    476,425,380,315,337,339,408,603,
+    749,745,672,654,588,520,523,544,
+    557,632,636,565,491,413,368,252,
+    136,33,1,-26,-152,-258,-98,18,
+    1,-18,-99,-117,-109,-228,-295,-349,
+    -334,-337,-441,-373,-279,-202,-204,-219,
+    -119,149,410,489,564,623,683,642,
+    707,872,932,862,833,862,894,784,
+    637,559,507,394,306,420,510,484,
+    519,526,599,789,959,1052,1063,1030,
+    860,697,603,530,475,463,468,461,
+    609,641,534,482,435,329,239,216,
+    185,82,88,106,60,26,-43,-127,
+    -220,-262,-317,-259,-172,-175,-271,-217,
+    -196,-164,8,144,150,134,60,13,
+    57,-58,-115,-171,-282,-310,-298,-106,
+    42,-101,-172,-181,-249,-326,-262,-132,
+    -56,-82,-71,-88,-196,-325,-426,-413,
+    -411,-317,-191,-172,-195,-292,-328,-191,
+    -88,-60,21,-63,-175,-135,-64,-83,
+    -163,-279,-440,-536,-403,-308,-236,-132,
+    -95,-69,-73,-21,13,133,185,251,
+    238,88,-66,-134,-175,-231,-219,-151,
+    -213,-328,-340,-374,-459,-601,-556,-395,
+    -248,-205,-174,-227,-402,-493,-464,-483,
+    -588,-564,-463,-493,-505,-416,-378,-313,
+    -215,-192,-192,-59,18,-40,-66,-60,
+    -143,-263,-213,-224,-265,-249,-237,-227,
+    -418,-504,-573,-699,-679,-577,-500,-570,
+    -538,-416,-444,-415,-294,-300,-427,-423,
+    -299,-279,-279,-187,-137,-123,60,230,
+    227,277,356,413,440,418,477,594,
+    697,729,586,561,653,570,590,628,
+    497,357,366,470,591,576,458,439,
+    417,431,447,349,304,241,294,406,
+    484,516,587,598,566,465,380,347,
+    316,391,429,409,216,69,57,76,
+    150,101,93,113,90,41,-28,-15,
+    -2,47,208,261,333,362,239,301,
+    422,431,426,434,482,510,480,407,
+    244,53,-108,-234,-275,-302,-304,-207,
+    -117,-181,-214,-248,-203,-52,5,-14,
+    24,-9,-154,-186,-82,-23,-62,-165,
+    -174,-190,-368,-414,-316,-301,-180,41,
+    116,214,319,408,416,157,-100,-40,
+    118,248,310,301,302,387,458,414,
+    301,261,233,111,33,39,65,56,
+    9,-92,-87,-98,-172,-196,-186,-18,
+    -14,-57,-111,-178,-278,-304,-358,-359,
+    -362,-464,-528,-400,-355,-284,-189,-240,
+    -253,-216,-319,-490,-621,-684,-758,-860,
+    -883,-877,-847,-787,-766,-852,-727,-481,
+    -339,-282,-266,-405,-414,-286,-225,-204,
+    -330,-488,-412,-292,-254,-290,-372,-436,
+    -545,-564,-413,-360,-344,-389,-430,-340,
+    -248,-271,-343,-383,-414,-409,-272,-223,
+    -215,-123,-10,-4,-6,-27,-11,78,
+    169,226,139,-19,16,100,54,-75,
+    -117,-103,-77,-277,-598,-644,-602,-509,
+    -396,-232,-227,-208,-153,-146,-205,-223,
+    -108,-55,-26,-8,-42,-178,-298,-320,
+    -254,-146,-135,-262,-370,-331,-337,-394,
+    -265,-53,136,309,354,312,345,303,
+    275,338,287,269,346,329,319,327,
+    199,118,251,296,243,111,90,150,
+    104,163,274,278,242,135,93,138,
+    5,-154,-206,-270,-334,-356,-251,-96,
+    -78,-123,-80,-93,-160,-217,-214,-154,
+    -42,128,228,243,307,465,492,425,
+    381,382,425,530,518,484,560,654,
+    659,663,723,717,672,652,542,507,
+    471,468,579,573,459,313,262,310,
+    284,235,331,361,275,207,104,35,
+    35,89,136,192,218,161,89,64,
+    116,175,159,95,96,242,350,248,
+    170,64,-35,-136,-202,-271,-307,-290,
+    -257,-219,-206,-185,-216,-213,-184,-135,
+    -165,-141,-25,-31,-28,-98,-247,-162,
+    10,35,-16,-113,-139,-127,-58,-100,
+    -166,-320,-406,-462,-604,-594,-650,-538,
+    -427,-365,-196,-117,-120,-102,-66,-122,
+    -211,-235,-202,-135,-40,-10,-38,-150,
+    -286,-223,-50,93,149,86,184,128,
+    113,163,13,-53,-135,-100,-72,-75,
+    -73,-118,-150,-197,-224,-131,-59,-109,
+    -92,-129,-189,-220,-166,-173,-114,-8,
+    26,-27,-38,50,109,143,161,209,
+    266,289,384,397,312,203,5,-64,
+    -14,6,56,67,19,-43,-112,-46,
+    -74,-101,-83,-115,-142,-207,-274,-292,
+    -299,-236,-181,-188,-48,60,6,-76,
+    -8,115,188,260,236,143,44,-30,
+    -17,31,37,-16,-28,87,210,276,
+    372,365,302,270,137,-8,-142,-246,
+    -279,-259,-203,-241,-278,-254,-245,-177,
+    -77,-8,-47,-159,-295,-412,-414,-414,
+    -566,-533,-255,-82,-10,222,358,336,
+    355,360,303,237,267,224,244,434,
+    422,372,404,464,559,538,446,294,
+    217,60,-82,-150,-144,-162,-250,-263,
+    -222,-148,-81,-134,-134,-106,-27,-71,
+};
+
+/* Golden log mel spec output for test wav. */
+const std::vector<float> testWavMelSpec {
+        -8.601085, -10.563560, -13.791912, -12.356619, -16.892878,
+        -16.913876, -15.695299, -21.848980, -21.193371, -18.772688,
+        -21.795116, -20.008236, -22.413673, -25.162649, -24.091856,
+        -24.936411, -19.341146, -23.534576, -29.052885, -26.562546,
+        -25.046455, -29.586889, -30.115177, -32.281334, -29.806450,
+        -30.398304, -26.682615, -27.397421, -31.224312, -31.033779,
+        -36.314369, -29.530331, -28.428139, -30.097546, -34.101303,
+        -32.660480, -34.229076, -34.668293, -35.140759, -34.104649,
+        -34.141472, -36.514408, -37.655891, -33.590931, -40.532566,
+        -39.105091, -39.600319, -40.239834, -41.356224, -41.103714,
+        -39.861557, -41.827553, -41.275696, -42.203575, -42.689217,
+        -46.495552, -46.704731, -45.560322, -47.423828, -50.672031,
+        -51.387669, -53.410839, -54.899536, -55.807552,
+};
+
+
+arm::app::audio::AdMelSpectrogram GetMelSpecInstance() {
+    int frameLenSamples = 1024;
+    return arm::app::audio::AdMelSpectrogram(frameLenSamples);
+}
+
+template <class T>
+void TestQuntisedMelSpec() {
+    float quantScale = 0.1410219967365265;
+    int quantOffset = 11;
+    std::vector<T> melSpecOutput = GetMelSpecInstance().MelSpecComputeQuant<T>(testWav1, quantScale, quantOffset);
+
+    long min_val = std::numeric_limits<T>::min();
+    long max_val = std::numeric_limits<T>::max();
+
+    for (size_t i = 0; i < testWavMelSpec.size(); i++){
+        long TestWavMelSpec = (std::lround((testWavMelSpec[i] / quantScale) + quantOffset));
+        T quantizedTestWavMelSpec = static_cast<T>(std::max(min_val, std::min(TestWavMelSpec, max_val)));
+
+        REQUIRE(quantizedTestWavMelSpec  == Approx(melSpecOutput[i]).margin(1));
+    }
+}
+
+template void TestQuntisedMelSpec<int8_t>();
+template void TestQuntisedMelSpec<uint8_t>();
+template void TestQuntisedMelSpec<int16_t>();
+
+TEST_CASE("Mel Spec calculation") {
+
+    hal_platform    platform;
+    data_acq_module dataAcq;
+    data_psn_module dataPsn;
+    platform_timer  timer;
+
+    /* Initialise the HAL and platform */
+    hal_init(&platform, &dataAcq, &dataPsn, &timer);
+    hal_platform_init(&platform);
+
+    SECTION("FP32") {
+        auto melSpecOutput = GetMelSpecInstance().ComputeMelSpec(testWav1);
+        REQUIRE_THAT( melSpecOutput, Catch::Approx( testWavMelSpec ).margin(0.1) );
+    }
+
+    SECTION("int8_t") {
+        TestQuntisedMelSpec<int8_t>();
+    }
+
+    SECTION("uint8_t") {
+        TestQuntisedMelSpec<uint8_t>();
+    }
+
+    SECTION("int16_t") {
+        TestQuntisedMelSpec<int16_t>();
+    }
+}
diff --git a/tests/use_case/ad/PostProcessTests.cc b/tests/use_case/ad/PostProcessTests.cc
new file mode 100644
index 0000000..62fa9e7
--- /dev/null
+++ b/tests/use_case/ad/PostProcessTests.cc
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "AdPostProcessing.hpp"
+#include <catch.hpp>
+
+TEST_CASE("Softmax_vector") {
+
+    std::vector<float> testVec = {1, 2, 3, 4, 1, 2, 3};
+    arm::app::Softmax(testVec);
+    CHECK((testVec[0] - 0.024) == Approx(0.0).margin(0.001));
+    CHECK((testVec[1] - 0.064) == Approx(0.0).margin(0.001));
+    CHECK((testVec[2] - 0.175) == Approx(0.0).margin(0.001));
+    CHECK((testVec[3] - 0.475) == Approx(0.0).margin(0.001));
+    CHECK((testVec[4] - 0.024) == Approx(0.0).margin(0.001));
+    CHECK((testVec[5] - 0.064) == Approx(0.0).margin(0.001));
+    CHECK((testVec[6] - 0.175) == Approx(0.0).margin(0.001));
+}
+
+TEST_CASE("Output machine index") {
+
+    auto index = arm::app::OutputIndexFromFileName("test_id_00.wav");
+    CHECK(index == 0);
+
+    auto index1 = arm::app::OutputIndexFromFileName("test_id_02.wav");
+    CHECK(index1 == 1);
+
+    auto index2 = arm::app::OutputIndexFromFileName("test_id_4.wav");
+    CHECK(index2 == 2);
+
+    auto index3 = arm::app::OutputIndexFromFileName("test_id_6.wav");
+    CHECK(index3 == 3);
+
+    auto index4 = arm::app::OutputIndexFromFileName("test_id_id_00.wav");
+    CHECK(index4 == -1);
+
+    auto index5 = arm::app::OutputIndexFromFileName("test_id_7.wav");
+    CHECK(index5 == -1);
+}
\ No newline at end of file
diff --git a/tests/use_case/asr/AsrClassifierTests.cc b/tests/use_case/asr/AsrClassifierTests.cc
new file mode 100644
index 0000000..7c71912
--- /dev/null
+++ b/tests/use_case/asr/AsrClassifierTests.cc
@@ -0,0 +1,98 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "AsrClassifier.hpp"
+#include "Wav2LetterModel.hpp"
+
+#include <catch.hpp>
+
+TEST_CASE("Test invalid classifier")
+{
+    TfLiteTensor* outputTens = nullptr;
+    std::vector <arm::app::ClassificationResult> resultVec;
+    arm::app::AsrClassifier classifier;
+
+    REQUIRE(!classifier.GetClassificationResults(outputTens, resultVec, {}, 1));
+}
+
+
+TEST_CASE("Test valid classifier UINT8") {
+    const int dimArray[] = {4, 1, 1, 246, 29};
+    std::vector <std::string> labels(29);
+    std::vector <uint8_t> outputVec(7134);
+    TfLiteIntArray* dims= tflite::testing::IntArrayFromInts(dimArray);
+    TfLiteTensor tfTensor = tflite::testing::CreateQuantizedTensor(
+                                outputVec.data(), dims, 1, 0, "test");
+    TfLiteTensor* outputTensor = &tfTensor;
+    std::vector <arm::app::ClassificationResult> resultVec;
+    arm::app::AsrClassifier classifier;
+
+    REQUIRE(classifier.GetClassificationResults(outputTensor, resultVec, labels, 1));
+    REQUIRE(246 == resultVec.size());
+}
+
+
+TEST_CASE("Get classification results") {
+    const int dimArray[] = {4, 1, 1, 10, 15};
+    std::vector <std::string> labels(15);
+    std::vector<uint8_t> outputVec(150, static_cast<uint8_t>(1));
+    TfLiteIntArray* dims= tflite::testing::IntArrayFromInts(dimArray);
+    TfLiteTensor tfTensor = tflite::testing::CreateQuantizedTensor(
+                                outputVec.data(), dims, 1, 0, "test");
+    TfLiteTensor* outputTensor = &tfTensor;
+
+    std::vector <arm::app::ClassificationResult> resultVec(10);
+
+    /* set the top five results: */
+    std::vector<std::pair<uint32_t, std::pair<uint32_t, uint8_t>>> selectedResults {
+        {0, {3, 23}},
+        {0, {9, 15}},
+        {1, {5, 24}},
+        {1, {7, 4}},
+        {2, {9, 5}},
+        {3, {8, 6}},
+        {4, {13, 10}},
+        {4, {6, 18}},
+        {5, {3, 15}},
+        {5, {4, 115}},
+        {6, {6, 25}},
+        {7, {1, 7}},
+        {8, {11, 9}},
+        {9, {1, 10}}
+    };
+
+    const uint32_t nCols = outputTensor->dims->data[arm::app::Wav2LetterModel::ms_outputColsIdx];
+    for (size_t i = 0; i < selectedResults.size(); ++i) {
+        uint32_t rIndex = selectedResults[i].first;
+        uint32_t cIndex = selectedResults[i].second.first;
+        uint8_t   value = selectedResults[i].second.second;
+        outputVec[rIndex * nCols + cIndex] = value;
+    }
+
+    arm::app::AsrClassifier classifier;
+
+    REQUIRE(classifier.GetClassificationResults(outputTensor, resultVec, labels, 1));
+    REQUIRE(resultVec[0].m_labelIdx == 3);
+    REQUIRE(resultVec[1].m_labelIdx == 5);
+    REQUIRE(resultVec[2].m_labelIdx == 9);
+    REQUIRE(resultVec[3].m_labelIdx == 8);
+    REQUIRE(resultVec[4].m_labelIdx == 6);
+    REQUIRE(resultVec[5].m_labelIdx == 4);
+    REQUIRE(resultVec[6].m_labelIdx == 6);
+    REQUIRE(resultVec[7].m_labelIdx == 1);
+    REQUIRE(resultVec[8].m_labelIdx == 11);
+    REQUIRE(resultVec[9].m_labelIdx == 1);
+}
diff --git a/tests/use_case/asr/AsrFeaturesTests.cc b/tests/use_case/asr/AsrFeaturesTests.cc
new file mode 100644
index 0000000..9401f40
--- /dev/null
+++ b/tests/use_case/asr/AsrFeaturesTests.cc
@@ -0,0 +1,188 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "DataStructures.hpp"
+#include "AsrGoldenFeatures.hpp"
+#include "hal.h"
+#include "TensorFlowLiteMicro.hpp"
+#include "Wav2LetterPreprocess.hpp"
+
+#include <catch.hpp>
+#include <random>
+
+class TestPreprocess : public arm::app::audio::asr::Preprocess {
+public:
+    TestPreprocess()
+    : arm::app::audio::asr::Preprocess(0,0,0,0)
+    {}
+
+    bool ComputeDeltas(arm::app::Array2d<float>& mfcc,
+                       arm::app::Array2d<float>& delta1,
+                       arm::app::Array2d<float>& delta2)
+    {
+        return this->_ComputeDeltas(mfcc, delta1, delta2);
+    }
+
+    float GetMean(arm::app::Array2d<float>& vec)
+    {
+        return this->_GetMean(vec);
+    }
+
+    float GetStdDev(arm::app::Array2d<float>& vec, const float mean)
+    {
+       return this->_GetStdDev(vec, mean);
+    }
+
+    void NormaliseVec(arm::app::Array2d<float>& vec)
+    {
+        return this->_NormaliseVec(vec);
+    }
+};
+
+template<class T>
+void CheckOutputs(const std::vector<T> goldenOutput, std::vector<T> output)
+{
+    const size_t goldenSize = goldenOutput.size();
+    const size_t realSize = output.size();
+
+    REQUIRE(realSize == goldenSize);
+    REQUIRE_THAT(output, Catch::Approx( goldenOutput ).margin(0.0001));
+}
+template void CheckOutputs<float>(const std::vector<float> goldenOutput, std::vector<float> output);
+
+void populateBuffer(const float* input, size_t size, size_t numMfccFeats, std::vector<std::vector<float>>& buf)
+{
+    size_t time = 0;
+    for (size_t i = 0; i < size; ++i) {
+        if (i > 0 && i % numMfccFeats == 0) {
+            ++time;
+        }
+        float featureValue = *(input + i);
+        buf[i % numMfccFeats][time] = featureValue;
+    }
+}
+
+void populateArray2dWithVectorOfVector(std::vector<std::vector<float>> vec, arm::app::Array2d<float>& buf)
+{
+    for (size_t i = 0; i < vec.size(); ++i) {
+        for (size_t j = 0; j < vec[i].size(); ++j) {
+            buf(i, j) = vec[i][j];
+        }
+    }
+}
+
+TEST_CASE("Floating point asr features calculation", "[ASR]")
+{
+    TestPreprocess tp;
+
+    SECTION("First and second diff")
+    {
+        constexpr uint32_t numMfccFeats = 13;
+        constexpr uint32_t numFeatVectors = 296;
+
+        arm::app::Array2d<float> mfccBuf(numMfccFeats, numFeatVectors);
+        arm::app::Array2d<float> delta1Buf(numMfccFeats, numFeatVectors);
+        arm::app::Array2d<float> delta2Buf(numMfccFeats, numFeatVectors);
+
+        std::vector<std::vector<float>> goldenMfccBuf(numMfccFeats, std::vector<float>(numFeatVectors));
+        std::vector<std::vector<float>> goldenDelta1Buf(numMfccFeats, std::vector<float>(numFeatVectors));
+        std::vector<std::vector<float>> goldenDelta2Buf(numMfccFeats, std::vector<float>(numFeatVectors));
+
+        populateBuffer(golden_asr_mfcc, golden_asr_mfcc_len, numMfccFeats, goldenMfccBuf);
+        populateBuffer(golden_diff1_features, golden_diff1_len, numMfccFeats, goldenDelta1Buf);
+        populateBuffer(golden_diff2_features, golden_diff2_len, numMfccFeats, goldenDelta2Buf);
+
+        populateArray2dWithVectorOfVector(goldenMfccBuf, mfccBuf);
+        std::fill(delta1Buf.begin(), delta1Buf.end(), 0.f);
+        std::fill(delta2Buf.begin(), delta2Buf.end(), 0.f);
+
+        tp.ComputeDeltas(mfccBuf, delta1Buf, delta2Buf);
+
+        /* First 4 and last 4 values are different because we pad AFTER diff calculated. */
+        for (size_t i = 0; i < numMfccFeats; ++i) {
+            const float* start_goldenDelta1Buf = goldenDelta1Buf[i].data() + 4;
+            const float* start_delta1 = delta1Buf.begin() + i * delta1Buf.size(1) + 4;
+            std::vector<float> goldenDataDelta1(start_goldenDelta1Buf, start_goldenDelta1Buf + numFeatVectors - 8);
+            std::vector<float> tensorDataDelta1(start_delta1, start_delta1 + numFeatVectors - 8);
+
+            CheckOutputs<float>(goldenDataDelta1,tensorDataDelta1);
+
+            const float* start_goldenDelta2Buf = goldenDelta2Buf[i].data() + 4;
+            const float* start_delta2 = delta2Buf.begin() + i * delta2Buf.size(1) + 4;
+            std::vector<float> goldenDataDelta2(start_goldenDelta2Buf, start_goldenDelta2Buf + numFeatVectors - 8);
+            std::vector<float> tensorDataDelta2(start_delta2, start_delta2 + numFeatVectors - 8);
+
+            CheckOutputs<float>(goldenDataDelta2,tensorDataDelta2);
+        }
+
+    }
+
+    SECTION("Mean")
+    {
+        std::vector<std::vector<float>> mean1vec{{1, 2},
+                                                {-1, -2}};
+        arm::app::Array2d<float> mean1(2,2); /* {{1, 2},{-1, -2}} */
+        populateArray2dWithVectorOfVector(mean1vec, mean1);
+        REQUIRE(0 == Approx(tp.GetMean(mean1)));
+
+        arm::app::Array2d<float> mean2(2, 2);
+        std::fill(mean2.begin(), mean2.end(), 0.f);
+        REQUIRE(0 == Approx(tp.GetMean(mean2)));
+
+        arm::app::Array2d<float> mean3(3,3);
+        std::fill(mean3.begin(), mean3.end(), 1.f);
+        REQUIRE(1 == Approx(tp.GetMean(mean3)));
+    }
+
+    SECTION("Std")
+    {
+        arm::app::Array2d<float> std1(2, 2);
+        std::fill(std1.begin(), std1.end(), 0.f); /* {{0, 0}, {0, 0}} */
+        REQUIRE(0 == Approx(tp.GetStdDev(std1, 0)));
+
+        std::vector<std::vector<float>> std2vec{{1, 2, 3, 4, 5}, {6, 7, 8, 9, 0}};
+        arm::app::Array2d<float> std2(2,5);
+        populateArray2dWithVectorOfVector(std2vec, std2);
+        const float mean = tp.GetMean(std2);
+        REQUIRE(2.872281323 == Approx(tp.GetStdDev(std2, mean)));
+
+        arm::app::Array2d<float> std3(2,2);
+        std::fill(std3.begin(), std3.end(), 1.f); /* std3{{1, 1}, {1, 1}}; */
+        REQUIRE(0 == Approx(tp.GetStdDev(std3, 1)));
+    }
+
+    SECTION("Norm") {
+        auto checker = [&](arm::app::Array2d<float>& d, std::vector<float>& g) {
+            tp.NormaliseVec(d);
+            std::vector<float> d_vec(d.begin(), d.end());
+            REQUIRE_THAT(g, Catch::Approx(d_vec));
+        };
+
+        std::vector<std::vector<float>> norm0vec{{1, 1}, {1, 1}};
+        std::vector<float> goldenNorm0 {0, 0, 0, 0};
+        arm::app::Array2d<float> norm0(2, 2);
+        populateArray2dWithVectorOfVector(norm0vec, norm0);
+        checker(norm0, goldenNorm0);
+
+        std::vector<std::vector<float>> norm1vec{{1, 2, 3, 4, 5}, {6, 7, 8, 9, 0}};
+        std::vector<float> goldenNorm1 {
+            -1.218543592, -0.87038828, -0.522232968, -0.174077656, 0.174077656,
+             0.522232968,  0.87038828,  1.218543592,  1.566698904, -1.566698904};
+        arm::app::Array2d<float> norm1(2, 5);
+        populateArray2dWithVectorOfVector(norm1vec, norm1);
+        checker(norm1, goldenNorm1);
+    }
+}
diff --git a/tests/use_case/asr/AsrTests.cc b/tests/use_case/asr/AsrTests.cc
new file mode 100644
index 0000000..09f82da
--- /dev/null
+++ b/tests/use_case/asr/AsrTests.cc
@@ -0,0 +1,18 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#define CATCH_CONFIG_MAIN
+#include <catch.hpp>
diff --git a/tests/use_case/asr/InferenceTestWav2Letter.cc b/tests/use_case/asr/InferenceTestWav2Letter.cc
new file mode 100644
index 0000000..1fa4092
--- /dev/null
+++ b/tests/use_case/asr/InferenceTestWav2Letter.cc
@@ -0,0 +1,105 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "hal.h"
+#include "TensorFlowLiteMicro.hpp"
+#include "Wav2LetterModel.hpp"
+#include "TestData_asr.hpp"
+
+#include <catch.hpp>
+#include <random>
+
+bool RunInference(arm::app::Model& model, const int8_t vec[], const size_t copySz)
+{
+    TfLiteTensor* inputTensor = model.GetInputTensor(0);
+    REQUIRE(inputTensor);
+
+    memcpy(inputTensor->data.data, vec, copySz);
+
+    return model.RunInference();
+}
+
+bool RunInferenceRandom(arm::app::Model& model)
+{
+    TfLiteTensor* inputTensor = model.GetInputTensor(0);
+    REQUIRE(inputTensor);
+
+    std::random_device rndDevice;
+    std::mt19937 mersenneGen{rndDevice()};
+    std::uniform_int_distribution<short> dist {-128, 127};
+
+    auto gen = [&dist, &mersenneGen](){
+                   return dist(mersenneGen);
+               };
+
+    std::vector<int8_t> randomAudio(inputTensor->bytes);
+    std::generate(std::begin(randomAudio), std::end(randomAudio), gen);
+
+    REQUIRE(RunInference(model, randomAudio.data(), inputTensor->bytes));
+    return true;
+}
+
+/* Skip this test, Wav2LetterModel if not Vela optimized but only from ML-zoo will fail. */
+TEST_CASE("Running random inference with TensorFlow Lite Micro and Wav2LetterModel Int8", "[Wav2Letter][.]")
+{
+    arm::app::Wav2LetterModel model{};
+
+    REQUIRE_FALSE(model.IsInited());
+    REQUIRE(model.Init());
+    REQUIRE(model.IsInited());
+
+    REQUIRE(RunInferenceRandom(model));
+}
+
+template<typename T>
+void TestInference(const T* input_goldenFV, const T* output_goldenFV, arm::app::Model& model)
+{
+    TfLiteTensor* inputTensor = model.GetInputTensor(0);
+    REQUIRE(inputTensor);
+
+    REQUIRE(RunInference(model, input_goldenFV, inputTensor->bytes));
+
+    TfLiteTensor* outputTensor = model.GetOutputTensor(0);
+
+    REQUIRE(outputTensor);
+    REQUIRE(outputTensor->bytes == OFM_DATA_SIZE);
+    auto tensorData = tflite::GetTensorData<T>(outputTensor);
+    REQUIRE(tensorData);
+
+    for (size_t i = 0; i < outputTensor->bytes; i++) {
+        REQUIRE((int)tensorData[i] == (int)((T)output_goldenFV[i]));
+    }
+}
+
+TEST_CASE("Running inference with Tflu and Wav2LetterModel Int8", "[Wav2Letter][.]")
+{
+    for (uint32_t i = 0 ; i < NUMBER_OF_FM_FILES; ++i) {
+        auto input_goldenFV = get_ifm_data_array(i);;
+        auto output_goldenFV = get_ofm_data_array(i);
+
+        DYNAMIC_SECTION("Executing inference with re-init")
+        {
+            arm::app::Wav2LetterModel model{};
+
+            REQUIRE_FALSE(model.IsInited());
+            REQUIRE(model.Init());
+            REQUIRE(model.IsInited());
+
+            TestInference<int8_t>(input_goldenFV, output_goldenFV, model);
+
+        }
+    }
+}
\ No newline at end of file
diff --git a/tests/use_case/asr/MfccTests.cc b/tests/use_case/asr/MfccTests.cc
new file mode 100644
index 0000000..c70e53e
--- /dev/null
+++ b/tests/use_case/asr/MfccTests.cc
@@ -0,0 +1,170 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "Wav2LetterMfcc.hpp"
+
+#include <algorithm>
+#include <catch.hpp>
+#include <limits>
+
+/* First 512 samples from itellyou.wav. */
+const std::vector<int16_t> testWav1 = std::vector<int16_t> {
+    -3,0,1,-1,2,3,-2,2,
+    1,-2,0,3,-1,8,3,2,
+    -1,-1,2,7,3,5,6,6,
+    6,12,5,6,3,3,5,4,
+    4,6,7,7,7,3,7,2,
+    8,4,4,2,-4,-1,-1,-4,
+    2,1,-1,-4,0,-7,-6,-2,
+    -5,1,-5,-1,-7,-3,-3,-7,
+    0,-3,3,-5,0,1,-2,-2,
+    -3,-3,-7,-3,-2,-6,-5,-8,
+    -2,-8,4,-9,-4,-9,-5,-5,
+    -3,-9,-3,-9,-1,-7,-4,1,
+    -3,2,-8,-4,-4,-5,1,-3,
+    -1,0,-1,-2,-3,-2,-4,-1,
+    1,-1,3,0,3,2,0,0,
+    0,-3,1,1,0,8,3,4,
+    1,5,6,4,7,3,3,0,
+    3,6,7,6,4,5,9,9,
+    5,5,8,1,6,9,6,6,
+    7,1,8,1,5,0,5,5,
+    0,3,2,7,2,-3,3,0,
+    3,0,0,0,2,0,-1,-1,
+    -2,-3,-8,0,1,0,-3,-3,
+    -3,-2,-3,-3,-4,-6,-2,-8,
+    -9,-4,-1,-5,-3,-3,-4,-3,
+    -6,3,0,-1,-2,-9,-4,-2,
+    2,-1,3,-5,-5,-2,0,-2,
+    0,-1,-3,1,-2,9,4,5,
+    2,2,1,0,-6,-2,0,0,
+    0,-1,4,-4,3,-7,-1,5,
+    -6,-1,-5,4,3,9,-2,1,
+    3,0,0,-2,1,2,1,1,
+    0,3,2,-1,3,-3,7,0,
+    0,3,2,2,-2,3,-2,2,
+    -3,4,-1,-1,-5,-1,-3,-2,
+    1,-1,3,2,4,1,2,-2,
+    0,2,7,0,8,-3,6,-3,
+    6,1,2,-3,-1,-1,-1,1,
+    -2,2,1,2,0,-2,3,-2,
+    3,-2,1,0,-3,-1,-2,-4,
+    -6,-5,-8,-1,-4,0,-3,-1,
+    -1,-1,0,-2,-3,-7,-1,0,
+    1,5,0,5,1,1,-3,0,
+    -6,3,-8,4,-8,6,-6,1,
+    -6,-2,-5,-6,0,-5,4,-1,
+    4,-2,1,2,1,0,-2,0,
+    0,2,-2,2,-5,2,0,-2,
+    1,-2,0,5,1,0,1,5,
+    0,8,3,2,2,0,5,-2,
+    3,1,0,1,0,-2,-1,-3,
+    1,-1,3,0,3,0,-2,-1,
+    -4,-4,-4,-1,-4,-4,-3,-6,
+    -3,-7,-3,-1,-2,0,-5,-4,
+    -7,-3,-2,-2,1,2,2,8,
+    5,4,2,4,3,5,0,3,
+    3,6,4,2,2,-2,4,-2,
+    3,3,2,1,1,4,-5,2,
+    -3,0,-1,1,-2,2,5,1,
+    4,2,3,1,-1,1,0,6,
+    0,-2,-1,1,-1,2,-5,-1,
+    -5,-1,-6,-3,-3,2,4,0,
+    -1,-5,3,-4,-1,-3,-4,1,
+    -4,1,-1,-1,0,-5,-4,-2,
+    -1,-1,-3,-7,-3,-3,4,4,
+};
+
+const std::vector<int16_t> testWav2 = std::vector<int16_t> (512, 0);
+
+/* Golden mfcc output for testwav1. */
+const std::vector<float> golden_mfcc_output_testWav1 {
+    -835.24603, 21.010452, 18.699404, 7.4338417, 19.028961, -5.401735, 6.4761047, -11.400679,
+    8.392709, 12.202361, 8.403276, -13.508412, -18.307348
+};
+
+/* Golden mfcc output for the all zero wav. */
+const std::vector<float> golden_mfcc_output_testWav2 {
+    -1131.37085, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+};
+
+
+arm::app::audio::Wav2LetterMFCC GetMFCCInstance()
+{
+    const auto sampFreq = arm::app::audio::Wav2LetterMFCC::ms_defaultSamplingFreq;
+    const auto frameLenMs = 32;
+    const auto numMfccFeats = 13;
+    const auto frameLenSamples = sampFreq * frameLenMs * 0.001;
+    return arm::app::audio::Wav2LetterMFCC(numMfccFeats, frameLenSamples);
+}
+
+template <class T>
+void TestQuantisedMFCC()
+{
+    const auto quantScale = 0.1410219967365265;
+    const auto quantOffset = 11;
+    std::vector<T> mfccOutput = GetMFCCInstance().MfccComputeQuant<T>(testWav1, quantScale, quantOffset);
+
+    long min_val = std::numeric_limits<T>::min();
+    long max_val = std::numeric_limits<T>::max();
+
+    for (size_t i = 0; i < golden_mfcc_output_testWav1.size(); i++){
+        long TestWavMfcc = (std::lround((golden_mfcc_output_testWav1[i] / quantScale) + quantOffset));
+        T quantizedTestWavMfcc = static_cast<T>(std::max(min_val, std::min(TestWavMfcc, max_val)));
+
+        REQUIRE(quantizedTestWavMfcc  == Approx(mfccOutput[i]).margin(2));
+    }
+}
+
+template void TestQuantisedMFCC<int8_t>();
+template void TestQuantisedMFCC<uint8_t>();
+template void TestQuantisedMFCC<int16_t>();
+
+TEST_CASE("MFCC calculation")
+{
+    hal_platform    platform;
+    data_acq_module dataAcq;
+    data_psn_module dataPsn;
+    platform_timer  timer;
+
+    /* Initialise the HAL and platform. */
+    hal_init(&platform, &dataAcq, &dataPsn, &timer);
+    hal_platform_init(&platform);
+
+    SECTION("FP32")
+    {
+        auto mfccOutput = GetMFCCInstance().MfccCompute(testWav1);
+        REQUIRE_THAT( mfccOutput, Catch::Approx( golden_mfcc_output_testWav1 ).margin(0.3) );
+
+        auto mfccOutput2 = GetMFCCInstance().MfccCompute(testWav2);
+        REQUIRE_THAT( mfccOutput2, Catch::Approx( golden_mfcc_output_testWav2 ).margin(0.001) );
+    }
+
+    SECTION("int8_t")
+    {
+        TestQuantisedMFCC<int8_t>();
+    }
+
+    SECTION("uint8_t")
+    {
+        TestQuantisedMFCC<uint8_t>();
+    }
+
+    SECTION("int16_t")
+    {
+        TestQuantisedMFCC<int16_t>();
+    }
+}
diff --git a/tests/use_case/asr/OutputDecodeTests.cc b/tests/use_case/asr/OutputDecodeTests.cc
new file mode 100644
index 0000000..22153f3
--- /dev/null
+++ b/tests/use_case/asr/OutputDecodeTests.cc
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "OutputDecode.hpp"
+
+#include "catch.hpp"
+
+TEST_CASE("Running output decode on test vector") {
+
+    std::vector<arm::app::ClassificationResult> vecResult(20);
+    /* Number of test inputs. */
+    const size_t numStrings = 8; 
+    
+    /* The test inputs. */
+    std::string testText[numStrings][20] 
+    {
+        {"a", "b", "c", "d", "e", "f", "g", "g", "g", " ", "h", "h", "i", " ", " ", "j", "k", "\'", "\'", "l"},  /* initial */
+        {" ", "b", "c", "d", "e", "f", "g", "g", "g", " ", "h", "h", "i", " ", " ", "j", "k", "\'", "\'", " "},  /* space start and end */
+        {"\'", "b", "c", "d", "e", "f", "g", "g", "g", " ", "h", "h", "i", " ", " ", "j", "k", "\'", "l", "\'"}, /* apostrophe start and end */
+        {"a", "a", "c", "d", "e", "f", "g", "g", "g", " ", "h", "h", "i", " ", " ", "j", "k", "\'", "l", "l"},   /* Double start and end */
+        {"a", "b", "c", "d", "e", "f", "g", "g", "o", "$", "o", "h", "i", " ", " ", "j", "k", "\'", "\'", "l"},  /* Legit double character */
+        {"a", "$", "a", "d", "e", "f", "g", "g", "o", "$", "o", "h", "i", " ", " ", "j", "k", "l", "$", "l"},    /* Legit double character start and end */
+        {"$", "a", "b", "d", "e", "f", "g", "g", "o", "$", "o", "h", "i", " ", " ", "j", "k", "l", "$", "$"},    /* $$ */
+        {"$", "a", "b", "d", "e", "f", "g", "g", "o", "$", "o", "h", "i", " ", " ", "j", "k", "l", "l", "l"}
+    };
+
+    /* The golden outputs for the above test inputs. */
+    std::string expectedOutput[numStrings] =
+    {
+        {"abcdefg hi jk\'l"},
+        {" bcdefg hi jk\' "},
+        {"\'bcdefg hi jk\'l\'"},
+        {"acdefg hi jk\'l"},
+        {"abcdefgoohi jk\'l"},
+        {"aadefgoohi jkll"},
+        {"abdefgoohi jkl"},
+        {"abdefgoohi jkl"}
+    };
+
+    /*For each test input. */
+    for (size_t h = 0; h < numStrings; ++h)
+    {
+        /* Generate fake vecResults.m_label to mimic AsrClassifier output containing the testText. */
+        for (size_t i = 0; i < 20; i++)
+        {
+            vecResult[i].m_label = testText[h][i];
+        }
+        /* Call function with fake vecResults and save returned string into 'buff'. */
+        std::string buff = arm::app::audio::asr::DecodeOutput(vecResult); 
+
+        /* Check that the string returned from the function matches the expected output given above. */
+        REQUIRE(buff.compare(expectedOutput[h]) == 0); 
+    }
+}
\ No newline at end of file
diff --git a/tests/use_case/asr/Wav2LetterPostprocessingTest.cc b/tests/use_case/asr/Wav2LetterPostprocessingTest.cc
new file mode 100644
index 0000000..9ed2e1b
--- /dev/null
+++ b/tests/use_case/asr/Wav2LetterPostprocessingTest.cc
@@ -0,0 +1,199 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "Wav2LetterPostprocess.hpp"
+#include "Wav2LetterModel.hpp"
+
+#include <algorithm>
+#include <catch.hpp>
+#include <limits>
+
+template <typename T>
+static TfLiteTensor GetTestTensor(
+                        std::vector <int>&      shape,
+                        T                       initVal,
+                        std::vector<T>&         vectorBuf)
+{
+    REQUIRE(0 != shape.size());
+
+    shape.insert(shape.begin(), shape.size());
+    uint32_t sizeInBytes = sizeof(T);
+    for (size_t i = 1; i < shape.size(); ++i) {
+        sizeInBytes *= shape[i];
+    }
+
+    /* Allocate mem. */
+    vectorBuf = std::vector<T>(sizeInBytes, initVal);
+    TfLiteIntArray* dims = tflite::testing::IntArrayFromInts(shape.data());
+    return tflite::testing::CreateQuantizedTensor(
+                                vectorBuf.data(), dims,
+                                1, 0, "test-tensor");
+}
+
+TEST_CASE("Checking return value")
+{
+    SECTION("Mismatched post processing parameters and tensor size")
+    {
+        const uint32_t ctxLen = 5;
+        const uint32_t innerLen = 3;
+        arm::app::audio::asr::Postprocess post{ctxLen, innerLen, 0};
+
+        std::vector <int> tensorShape = {1, 1, 1, 13};
+        std::vector <int8_t> tensorVec;
+        TfLiteTensor tensor = GetTestTensor<int8_t>(
+                                tensorShape, 100, tensorVec);
+        REQUIRE(false == post.Invoke(&tensor, arm::app::Wav2LetterModel::ms_outputRowsIdx, false));
+    }
+
+    SECTION("Post processing succeeds")
+    {
+        const uint32_t ctxLen = 5;
+        const uint32_t innerLen = 3;
+        arm::app::audio::asr::Postprocess post{ctxLen, innerLen, 0};
+
+        std::vector <int> tensorShape = {1, 1, 13, 1};
+        std::vector <int8_t> tensorVec;
+        TfLiteTensor tensor = GetTestTensor<int8_t>(
+                                tensorShape, 100, tensorVec);
+
+        /* Copy elements to compare later. */
+        std::vector <int8_t> originalVec = tensorVec;
+
+        /* This step should not erase anything. */
+        REQUIRE(true == post.Invoke(&tensor, arm::app::Wav2LetterModel::ms_outputRowsIdx, false));
+    }
+}
+
+
+TEST_CASE("Postprocessing - erasing required elements")
+{
+    constexpr uint32_t ctxLen = 5;
+    constexpr uint32_t innerLen = 3;
+    constexpr uint32_t nRows = 2*ctxLen + innerLen;
+    constexpr uint32_t nCols = 10;
+    constexpr uint32_t blankTokenIdx = nCols - 1;
+    std::vector <int> tensorShape = {1, 1, nRows, nCols};
+
+    SECTION("First and last iteration")
+    {
+        arm::app::audio::asr::Postprocess post{ctxLen, innerLen, blankTokenIdx};
+
+        std::vector <int8_t> tensorVec;
+        TfLiteTensor tensor = GetTestTensor<int8_t>(
+                                tensorShape, 100, tensorVec);
+
+        /* Copy elements to compare later. */
+        std::vector <int8_t> originalVec = tensorVec;
+
+        /* This step should not erase anything. */
+        REQUIRE(true == post.Invoke(&tensor, arm::app::Wav2LetterModel::ms_outputRowsIdx, true));
+        REQUIRE(originalVec == tensorVec);
+    }
+
+    SECTION("Right context erase")
+    {
+        arm::app::audio::asr::Postprocess post{ctxLen, innerLen, blankTokenIdx};
+
+        std::vector <int8_t> tensorVec;
+        TfLiteTensor tensor = GetTestTensor<int8_t>(
+                                tensorShape, 100, tensorVec);
+
+        /* Copy elements to compare later. */
+        std::vector <int8_t> originalVec = tensorVec;
+
+        /* This step should erase the right context only. */
+        REQUIRE(true == post.Invoke(&tensor, arm::app::Wav2LetterModel::ms_outputRowsIdx, false));
+        REQUIRE(originalVec != tensorVec);
+
+        /* The last ctxLen * 10 elements should be gone. */
+        for (size_t i = 0; i < ctxLen; ++i) {
+            for (size_t j = 0; j < nCols; ++j) {
+                /* Check right context elements are zeroed. */
+                if (j == blankTokenIdx) {
+                    CHECK(tensorVec[(ctxLen + innerLen) * nCols + i*nCols + j] == 1);
+                } else {
+                    CHECK(tensorVec[(ctxLen + innerLen) * nCols + i*nCols + j] == 0);
+                }
+
+                /* Check left context is preserved. */
+                CHECK(tensorVec[i*nCols + j] == originalVec[i*nCols + j]);
+            }
+        }
+
+        /* Check inner elements are preserved. */
+        for (size_t i = ctxLen * nCols; i < (ctxLen + innerLen) * nCols; ++i) {
+            CHECK(tensorVec[i] == originalVec[i]);
+        }
+    }
+
+    SECTION("Left and right context erase")
+    {
+        arm::app::audio::asr::Postprocess post{ctxLen, innerLen, blankTokenIdx};
+
+        std::vector <int8_t> tensorVec;
+        TfLiteTensor tensor = GetTestTensor<int8_t>(
+                                tensorShape, 100, tensorVec);
+
+        /* Copy elements to compare later. */
+        std::vector <int8_t> originalVec = tensorVec;
+
+        /* This step should erase right context. */
+        REQUIRE(true == post.Invoke(&tensor, arm::app::Wav2LetterModel::ms_outputRowsIdx, false));
+
+        /* Calling it the second time should erase the left context. */
+        REQUIRE(true == post.Invoke(&tensor, arm::app::Wav2LetterModel::ms_outputRowsIdx, false));
+
+        REQUIRE(originalVec != tensorVec);
+
+        /* The first and last ctxLen * 10 elements should be gone. */
+        for (size_t i = 0; i < ctxLen; ++i) {
+            for (size_t j = 0; j < nCols; ++j) {
+                /* Check left and right context elements are zeroed. */
+                if (j == blankTokenIdx) {
+                    CHECK(tensorVec[(ctxLen + innerLen) * nCols + i*nCols + j] == 1);
+                    CHECK(tensorVec[i*nCols + j] == 1);
+                } else {
+                    CHECK(tensorVec[(ctxLen + innerLen) * nCols + i*nCols + j] == 0);
+                    CHECK(tensorVec[i*nCols + j] == 0);
+                }
+            }
+        }
+
+        /* Check inner elements are preserved. */
+        for (size_t i = ctxLen * nCols; i < (ctxLen + innerLen) * nCols; ++i) {
+            /* Check left context is preserved. */
+            CHECK(tensorVec[i] == originalVec[i]);
+        }
+    }
+
+    SECTION("Try left context erase")
+    {
+        /* Should not be able to erase the left context if it is the first iteration. */
+        arm::app::audio::asr::Postprocess post{ctxLen, innerLen, blankTokenIdx};
+
+        std::vector <int8_t> tensorVec;
+        TfLiteTensor tensor = GetTestTensor<int8_t>(
+                                tensorShape, 100, tensorVec);
+
+        /* Copy elements to compare later. */
+        std::vector <int8_t> originalVec = tensorVec;
+
+        /* Calling it the second time should erase the left context. */
+        REQUIRE(true == post.Invoke(&tensor, arm::app::Wav2LetterModel::ms_outputRowsIdx, true));
+
+        REQUIRE(originalVec == tensorVec);
+    }
+}
diff --git a/tests/use_case/asr/Wav2LetterPreprocessingTest.cc b/tests/use_case/asr/Wav2LetterPreprocessingTest.cc
new file mode 100644
index 0000000..1391011
--- /dev/null
+++ b/tests/use_case/asr/Wav2LetterPreprocessingTest.cc
@@ -0,0 +1,152 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "Wav2LetterPreprocess.hpp"
+
+#include <limits>
+#include <algorithm>
+#include <catch.hpp>
+
+constexpr uint32_t numMfccFeatures = 13;
+constexpr uint32_t numMfccVectors  = 10;
+
+/* Test vector output: generated using test-asr-preprocessing.py. */
+int8_t expectedResult[numMfccVectors][numMfccFeatures * 3] = {
+    /* Feature vec 0. */
+    -32,   4,  -9,  -8, -10, -10, -11, -11, -11, -11, -12, -11, -11,    /* MFCCs.   */
+    -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,    /* Delta 1. */
+    -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,    /* Delta 2. */
+
+    /* Feature vec 1. */
+    -31,   4,  -9,  -8, -10, -10, -11, -11, -11, -11, -12, -11, -11,
+    -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
+    -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
+
+    /* Feature vec 2. */
+    -31,   4,  -9,  -9, -10, -10, -11, -11, -11, -11, -12, -12, -12,
+    -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
+    -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
+
+    /* Feature vec 3. */
+    -31,   4,  -9,  -9, -10, -10, -11, -11, -11, -11, -11, -12, -12,
+    -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
+    -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
+
+    /* Feature vec 4 : this should have valid delta 1 and delta 2. */
+    -31,   4,  -9,  -9, -10, -10, -11, -11, -11, -11, -11, -12, -12,
+    -38, -29,  -9,   1,  -2,  -7,  -8,  -8, -12, -16, -14,  -5,   5,
+    -68, -50, -13,   5,   0,  -9,  -9,  -8, -13, -20, -19,  -3,  15,
+
+    /* Feature vec 5 : this should have valid delta 1 and delta 2. */
+    -31,   4,  -9,  -8, -10, -10, -11, -11, -11, -11, -11, -12, -12,
+    -62, -45, -11,   5,   0,  -8,  -9,  -8, -12, -19, -17,  -3,  13,
+    -27, -22, -13,  -9, -11, -12, -12, -11, -11, -13, -13, -10,  -6,
+
+    /* Feature vec 6. */
+    -31,   4,  -9,  -8, -10, -10, -11, -11, -11, -11, -12, -11, -11,
+    -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
+    -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
+
+    /* Feature vec 7. */
+    -32,   4,  -9,  -8, -10, -10, -11, -11, -11, -12, -12, -11, -11,
+    -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
+    -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
+
+    /* Feature vec 8. */
+    -32,   4,  -9,  -8, -10, -10, -11, -11, -11, -12, -12, -11, -11,
+    -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
+    -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
+
+    /* Feature vec 9. */
+    -31,   4,  -9,  -8, -10, -10, -11, -11, -11, -11, -12, -11, -11,
+    -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
+    -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10
+};
+
+void PopulateTestWavVector(std::vector<int16_t>& vec)
+{
+    constexpr int int16max = std::numeric_limits<int16_t>::max();
+    int val = 0;
+    for (size_t i = 0; i < vec.size(); ++i, ++val) {
+
+        /* We want a differential filter response from both - order 1
+         * and 2 => Don't have a linear signal here - we use a signal
+         * using squares for example. Alternate sign flips might work
+         * just as well and will be computationally less work! */
+        int valsq = val * val;
+        if (valsq > int16max) {
+            val = 0;
+            valsq = 0;
+        }
+        vec[i] = valsq;
+    }
+}
+
+TEST_CASE("Preprocessing calculation INT8")
+{
+    /* Initialise the HAL and platform. */
+    hal_platform    platform;
+    data_acq_module data_acq;
+    data_psn_module data_psn;
+    platform_timer  timer;
+    hal_init(&platform, &data_acq, &data_psn, &timer);
+    hal_platform_init(&platform);
+
+    /* Constants. */
+    const uint32_t  windowLen       = 512;
+    const uint32_t  windowStride    = 160;
+    const int       dimArray[]      = {3, 1, numMfccFeatures * 3, numMfccVectors};
+    const float     quantScale      = 0.1410219967365265;
+    const int       quantOffset     = -11;
+
+    /* Test wav memory. */
+    std::vector <int16_t> testWav((windowStride * numMfccVectors) +
+                                  (windowLen - windowStride));
+
+    /* Populate with dummy input. */
+    PopulateTestWavVector(testWav);
+
+    /* Allocate mem for tensor. */
+    std::vector<int8_t> tensorVec(dimArray[1]*dimArray[2]*dimArray[3]);
+
+    /* Initialise dimensions and the test tensor. */
+    TfLiteIntArray* dims= tflite::testing::IntArrayFromInts(dimArray);
+    TfLiteTensor tensor = tflite::testing::CreateQuantizedTensor(
+        tensorVec.data(), dims, quantScale, quantOffset, "preprocessedInput");
+
+    /* Initialise pre-processing module. */
+    arm::app::audio::asr::Preprocess prep{
+        numMfccFeatures, windowLen, windowStride, numMfccVectors};
+
+    /* Invoke pre-processing. */
+    REQUIRE(prep.Invoke(testWav.data(), testWav.size(), &tensor));
+
+    /* Wrap the tensor with a std::vector for ease. */
+    int8_t * tensorData = tflite::GetTensorData<int8_t>(&tensor);
+    std::vector <int8_t> vecResults =
+        std::vector<int8_t>(tensorData, tensorData + tensor.bytes);
+
+    /* Check sizes. */
+    REQUIRE(vecResults.size() == sizeof(expectedResult));
+
+    /* Check that the elements have been calculated correctly. */
+    for (uint32_t j = 0; j < numMfccVectors; ++j) {
+        for (uint32_t i = 0; i < numMfccFeatures * 3; ++i) {
+            size_t tensorIdx = (j * numMfccFeatures * 3) + i;
+            CHECK(vecResults[tensorIdx] == expectedResult[j][i]);
+        }
+    }
+}
diff --git a/tests/use_case/img_class/ImgClassTests.cc b/tests/use_case/img_class/ImgClassTests.cc
new file mode 100644
index 0000000..09f82da
--- /dev/null
+++ b/tests/use_case/img_class/ImgClassTests.cc
@@ -0,0 +1,18 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#define CATCH_CONFIG_MAIN
+#include <catch.hpp>
diff --git a/tests/use_case/img_class/ImgClassificationUCTest.cc b/tests/use_case/img_class/ImgClassificationUCTest.cc
new file mode 100644
index 0000000..abfcc44
--- /dev/null
+++ b/tests/use_case/img_class/ImgClassificationUCTest.cc
@@ -0,0 +1,140 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "ClassificationResult.hpp"
+#include "Classifier.hpp"
+#include "hal.h"
+#include "Labels.hpp"
+#include "MobileNetModel.hpp"
+#include "UseCaseHandler.hpp"
+#include "UseCaseCommonUtils.hpp"
+
+#include <catch.hpp>
+
+TEST_CASE("Model info")
+{
+    /* Model wrapper object. */
+    arm::app::MobileNetModel model;
+
+    /* Load the model. */
+    REQUIRE(model.Init());
+
+    /* Instantiate application context. */
+    arm::app::ApplicationContext caseContext;
+
+    caseContext.Set<arm::app::Model&>("model", model);
+
+    REQUIRE(model.ShowModelInfoHandler());
+}
+
+
+TEST_CASE("Inference by index", "[.]")
+{
+    hal_platform    platform;
+    data_acq_module data_acq;
+    data_psn_module data_psn;
+    platform_timer  timer;
+
+    /* Initialise the HAL and platform. */
+    hal_init(&platform, &data_acq, &data_psn, &timer);
+    hal_platform_init(&platform);
+
+    /* Model wrapper object. */
+    arm::app::MobileNetModel model;    
+
+    /* Load the model. */
+    REQUIRE(model.Init());
+
+    /* Instantiate application context. */
+    arm::app::ApplicationContext caseContext;
+
+    caseContext.Set<hal_platform&>("platform", platform);
+    caseContext.Set<arm::app::Model&>("model", model);
+    caseContext.Set<uint32_t>("imgIndex", 0);
+    arm::app::Classifier classifier;    /* Classifier wrapper object. */
+    caseContext.Set<arm::app::Classifier&>("classifier", classifier);
+
+    std::vector <std::string> labels;
+    GetLabelsVector(labels);
+    caseContext.Set<const std::vector <std::string>&>("labels", labels);
+
+    REQUIRE(arm::app::ClassifyImageHandler(caseContext, 0, false));
+
+    auto results = caseContext.Get<std::vector<arm::app::ClassificationResult>>("results");
+
+    REQUIRE(results[0].m_labelIdx == 282);
+}
+
+
+TEST_CASE("Inference run all images", "[.]")
+{
+    hal_platform    platform;
+    data_acq_module data_acq;
+    data_psn_module data_psn;
+    platform_timer  timer;
+
+    /* Initialise the HAL and platform. */
+    hal_init(&platform, &data_acq, &data_psn, &timer);
+    hal_platform_init(&platform);
+
+    /* Model wrapper object. */
+    arm::app::MobileNetModel model;
+
+    /* Load the model. */
+    REQUIRE(model.Init());
+
+    /* Instantiate application context. */
+    arm::app::ApplicationContext caseContext;
+
+    caseContext.Set<hal_platform&>("platform", platform);
+    caseContext.Set<arm::app::Model&>("model", model);
+    caseContext.Set<uint32_t>("imgIndex", 0);
+    arm::app::Classifier classifier;    /* classifier wrapper object. */
+    caseContext.Set<arm::app::Classifier&>("classifier", classifier);
+
+    std::vector <std::string> labels;
+    GetLabelsVector(labels);
+    caseContext.Set<const std::vector <std::string>&>("labels", labels);
+
+    REQUIRE(arm::app::ClassifyImageHandler(caseContext, 0, true));
+}
+
+
+TEST_CASE("List all images")
+{
+    hal_platform    platform;
+    data_acq_module data_acq;
+    data_psn_module data_psn;
+    platform_timer  timer;
+
+    /* Initialise the HAL and platform. */
+    hal_init(&platform, &data_acq, &data_psn, &timer);
+    hal_platform_init(&platform);
+
+    /* Model wrapper object. */
+    arm::app::MobileNetModel model;
+
+    /* Load the model. */
+    REQUIRE(model.Init());
+
+    /* Instantiate application context. */
+    arm::app::ApplicationContext caseContext;
+
+    caseContext.Set<hal_platform&>("platform", platform);
+    caseContext.Set<arm::app::Model&>("model", model);
+
+    REQUIRE(arm::app::ListFilesHandler(caseContext));
+}
\ No newline at end of file
diff --git a/tests/use_case/img_class/InferenceTestMobilenetV2.cc b/tests/use_case/img_class/InferenceTestMobilenetV2.cc
new file mode 100644
index 0000000..698382f
--- /dev/null
+++ b/tests/use_case/img_class/InferenceTestMobilenetV2.cc
@@ -0,0 +1,90 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "hal.h"
+#include "ImageUtils.hpp"
+#include "MobileNetModel.hpp"
+#include "TensorFlowLiteMicro.hpp"
+#include "TestData_img_class.hpp"
+
+#include <catch.hpp>
+
+
+bool RunInference(arm::app::Model& model, const uint8_t imageData[])
+{
+    TfLiteTensor* inputTensor = model.GetInputTensor(0);
+    REQUIRE(inputTensor);
+
+    const size_t copySz = inputTensor->bytes < IFM_DATA_SIZE ?
+                            inputTensor->bytes :
+                            IFM_DATA_SIZE;
+    memcpy(inputTensor->data.data, imageData, copySz);
+
+    if(model.IsDataSigned()){
+        convertImgIoInt8(inputTensor->data.data, copySz);
+    }
+
+    return model.RunInference();
+}
+
+template<typename T>
+void TestInference(int imageIdx, arm::app::Model& model, T tolerance) {
+    auto image = get_ifm_data_array(imageIdx);
+    auto goldenFV = get_ofm_data_array(imageIdx);
+
+    REQUIRE(RunInference(model, image));
+
+    TfLiteTensor* outputTensor = model.GetOutputTensor(0);
+
+    REQUIRE(outputTensor);
+    REQUIRE(outputTensor->bytes == OFM_DATA_SIZE);
+    auto tensorData = tflite::GetTensorData<T>(outputTensor);
+    REQUIRE(tensorData);
+
+    for (size_t i = 0; i < outputTensor->bytes; i++) {
+        REQUIRE((int)tensorData[i] == Approx((int)((T)goldenFV[i])).epsilon(tolerance));
+    }
+}
+
+
+TEST_CASE("Running inference with TensorFlow Lite Micro and MobileNeV2 Uint8", "[MobileNetV2]")
+{
+    SECTION("Executing inferences sequentially")
+    {
+        arm::app::MobileNetModel model{};
+
+        REQUIRE_FALSE(model.IsInited());
+        REQUIRE(model.Init());
+        REQUIRE(model.IsInited());
+
+        for (uint32_t i = 0 ; i < NUMBER_OF_FM_FILES; ++i) {
+            TestInference<uint8_t>(i, model, 1);
+        }
+    }
+
+    for (uint32_t i = 0 ; i < NUMBER_OF_FM_FILES; ++i) {
+        DYNAMIC_SECTION("Executing inference with re-init")
+        {
+            arm::app::MobileNetModel model{};
+
+            REQUIRE_FALSE(model.IsInited());
+            REQUIRE(model.Init());
+            REQUIRE(model.IsInited());
+
+            TestInference<uint8_t>(i, model, 1);
+        }
+    }
+}
diff --git a/tests/use_case/kws/InferenceTestDSCNN.cc b/tests/use_case/kws/InferenceTestDSCNN.cc
new file mode 100644
index 0000000..06358a4
--- /dev/null
+++ b/tests/use_case/kws/InferenceTestDSCNN.cc
@@ -0,0 +1,104 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "DsCnnModel.hpp"
+#include "hal.h"
+#include "TestData_kws.hpp"
+#include "TensorFlowLiteMicro.hpp"
+
+#include <catch.hpp>
+#include <random>
+
+bool RunInference(arm::app::Model& model, const int8_t vec[])
+{
+    TfLiteTensor* inputTensor = model.GetInputTensor(0);
+    REQUIRE(inputTensor);
+
+    const size_t copySz = inputTensor->bytes < IFM_DATA_SIZE ?
+                            inputTensor->bytes :
+                            IFM_DATA_SIZE;
+    memcpy(inputTensor->data.data, vec, copySz);
+
+    return model.RunInference();
+}
+
+bool RunInferenceRandom(arm::app::Model& model)
+{
+    TfLiteTensor* inputTensor = model.GetInputTensor(0);
+    REQUIRE(inputTensor);
+
+    std::random_device rndDevice;
+    std::mt19937 mersenneGen{rndDevice()};
+    std::uniform_int_distribution<short> dist {-128, 127};
+
+    auto gen = [&dist, &mersenneGen](){
+                   return dist(mersenneGen);
+               };
+
+    std::vector<int8_t> randomAudio(inputTensor->bytes);
+    std::generate(std::begin(randomAudio), std::end(randomAudio), gen);
+
+    REQUIRE(RunInference(model, randomAudio.data()));
+    return true;
+}
+
+template<typename T>
+void TestInference(const T* input_goldenFV, const T* output_goldenFV, arm::app::Model& model)
+{
+    REQUIRE(RunInference(model, input_goldenFV));
+
+    TfLiteTensor* outputTensor = model.GetOutputTensor(0);
+
+    REQUIRE(outputTensor);
+    REQUIRE(outputTensor->bytes == OFM_DATA_SIZE);
+    auto tensorData = tflite::GetTensorData<T>(outputTensor);
+    REQUIRE(tensorData);
+
+    for (size_t i = 0; i < outputTensor->bytes; i++) {
+        REQUIRE((int)tensorData[i] == (int)((T)output_goldenFV[i]));
+    }
+}
+
+TEST_CASE("Running random inference with TensorFlow Lite Micro and DsCnnModel Int8", "[DS_CNN]")
+{
+    arm::app::DsCnnModel model{};
+
+    REQUIRE_FALSE(model.IsInited());
+    REQUIRE(model.Init());
+    REQUIRE(model.IsInited());
+
+    REQUIRE(RunInferenceRandom(model));
+}
+
+TEST_CASE("Running inference with TensorFlow Lite Micro and DsCnnModel Uint8", "[DS_CNN]")
+{
+    for (uint32_t i = 0 ; i < NUMBER_OF_FM_FILES; ++i) {
+        const int8_t* input_goldenFV = get_ifm_data_array(i);;
+        const int8_t* output_goldenFV = get_ofm_data_array(i);
+
+        DYNAMIC_SECTION("Executing inference with re-init")
+        {
+            arm::app::DsCnnModel model{};
+
+            REQUIRE_FALSE(model.IsInited());
+            REQUIRE(model.Init());
+            REQUIRE(model.IsInited());
+
+            TestInference<int8_t>(input_goldenFV, output_goldenFV, model);
+
+        }
+    }
+}
diff --git a/tests/use_case/kws/KWSHandlerTest.cc b/tests/use_case/kws/KWSHandlerTest.cc
new file mode 100644
index 0000000..dee2f6f
--- /dev/null
+++ b/tests/use_case/kws/KWSHandlerTest.cc
@@ -0,0 +1,180 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include <catch.hpp>
+#include "DsCnnModel.hpp"
+#include "hal.h"
+
+#include "KwsResult.hpp"
+#include "Labels.hpp"
+#include "UseCaseHandler.hpp"
+#include "Classifier.hpp"
+#include "UseCaseCommonUtils.hpp"
+
+TEST_CASE("Model info")
+{
+    /* Model wrapper object. */
+    arm::app::DsCnnModel model;
+
+    /* Load the model. */
+    REQUIRE(model.Init());
+
+    /* Instantiate application context. */
+    arm::app::ApplicationContext caseContext;
+
+    caseContext.Set<arm::app::Model&>("model", model);
+
+    REQUIRE(model.ShowModelInfoHandler());
+}
+
+
+TEST_CASE("Inference by index")
+{
+    hal_platform    platform;
+    data_acq_module data_acq;
+    data_psn_module data_psn;
+    platform_timer  timer;
+
+    /* Initialise the HAL and platform. */
+    hal_init(&platform, &data_acq, &data_psn, &timer);
+    hal_platform_init(&platform);
+
+    /* Model wrapper object. */
+    arm::app::DsCnnModel model;
+
+    /* Load the model. */
+    REQUIRE(model.Init());
+
+    /* Instantiate application context. */
+    arm::app::ApplicationContext caseContext;
+    caseContext.Set<hal_platform&>("platform", platform);
+    caseContext.Set<arm::app::Model&>("model", model);
+    caseContext.Set<int>("frameLength", g_FrameLength);  /* 640 sample length for DSCNN. */
+    caseContext.Set<int>("frameStride", g_FrameStride);  /* 320 sample stride for DSCNN. */
+    caseContext.Set<float>("scoreThreshold", 0.5);       /* Normalised score threshold. */
+
+    arm::app::Classifier classifier;                     /* classifier wrapper object. */
+    caseContext.Set<arm::app::Classifier&>("classifier", classifier);
+
+    auto checker = [&](uint32_t audioIndex, std::vector<uint32_t> labelIndex)
+    {
+        caseContext.Set<uint32_t>("audioIndex", audioIndex);
+
+        std::vector<std::string> labels;
+        GetLabelsVector(labels);
+        caseContext.Set<const std::vector<std::string> &>("labels", labels);
+
+        REQUIRE(arm::app::ClassifyAudioHandler(caseContext, audioIndex, false));
+        REQUIRE(caseContext.Has("results"));
+
+        auto results = caseContext.Get<std::vector<arm::app::kws::KwsResult>>("results");
+
+        REQUIRE(results.size() == labelIndex.size());
+
+        for (size_t i = 0; i < results.size(); i++ ) {
+            REQUIRE(results[i].m_resultVec.size());
+            REQUIRE(results[i].m_resultVec[0].m_labelIdx == labelIndex[i]);
+        }
+
+    };
+
+    SECTION("Index = 0, short clip down")
+    {
+        /* Result: down. */
+        checker(0, {5});
+    }
+
+    SECTION("Index = 1, long clip right->left->up")
+    {
+        /* Result: right->right->left->up->up. */
+        checker(1, {7, 1, 6, 4, 4});
+    }
+
+    SECTION("Index = 2, short clip yes")
+    {
+        /* Result: yes. */
+        checker(2, {2});
+    }
+
+    SECTION("Index = 3, long clip yes->no->go->stop")
+    {
+        /* Result: yes->go->no->go->go->go->stop. */
+        checker(3, {2, 11, 3, 11, 11, 11, 10});
+    }
+}
+
+
+TEST_CASE("Inference run all clips")
+{
+    hal_platform    platform;
+    data_acq_module data_acq;
+    data_psn_module data_psn;
+    platform_timer  timer;
+
+    /* Initialise the HAL and platform. */
+    hal_init(&platform, &data_acq, &data_psn, &timer);
+    hal_platform_init(&platform);
+
+    /* Model wrapper object. */
+    arm::app::DsCnnModel model;
+
+    /* Load the model. */
+    REQUIRE(model.Init());
+
+    /* Instantiate application context. */
+    arm::app::ApplicationContext caseContext;
+
+    caseContext.Set<hal_platform&>("platform", platform);
+    caseContext.Set<arm::app::Model&>("model", model);
+    caseContext.Set<uint32_t>("clipIndex", 0);
+    caseContext.Set<int>("frameLength", g_FrameLength);  /* 640 sample length for DSCNN. */
+    caseContext.Set<int>("frameStride", g_FrameStride);  /* 320 sample stride for DSCNN. */
+    caseContext.Set<float>("scoreThreshold", 0.9);       /* Normalised score threshold. */
+    arm::app::Classifier classifier;                     /* classifier wrapper object. */
+    caseContext.Set<arm::app::Classifier&>("classifier", classifier);
+
+    std::vector <std::string> labels;
+    GetLabelsVector(labels);
+    caseContext.Set<const std::vector <std::string>&>("labels", labels);
+    REQUIRE(arm::app::ClassifyAudioHandler(caseContext, 0, true));
+}
+
+
+TEST_CASE("List all audio clips")
+{
+    hal_platform    platform;
+    data_acq_module data_acq;
+    data_psn_module data_psn;
+    platform_timer  timer;
+
+    /* Initialise the HAL and platform. */
+    hal_init(&platform, &data_acq, &data_psn, &timer);
+    hal_platform_init(&platform);
+
+    /* Model wrapper object. */
+    arm::app::DsCnnModel model;
+
+    /* Load the model. */
+    REQUIRE(model.Init());
+
+    /* Instantiate application context. */
+    arm::app::ApplicationContext caseContext;
+
+    caseContext.Set<hal_platform&>("platform", platform);
+    caseContext.Set<arm::app::Model&>("model", model);
+
+    REQUIRE(arm::app::ListFilesHandler(caseContext));
+}
\ No newline at end of file
diff --git a/tests/use_case/kws/KwsTests.cc b/tests/use_case/kws/KwsTests.cc
new file mode 100644
index 0000000..09f82da
--- /dev/null
+++ b/tests/use_case/kws/KwsTests.cc
@@ -0,0 +1,18 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#define CATCH_CONFIG_MAIN
+#include <catch.hpp>
diff --git a/tests/use_case/kws/MfccTests.cc b/tests/use_case/kws/MfccTests.cc
new file mode 100644
index 0000000..407861f
--- /dev/null
+++ b/tests/use_case/kws/MfccTests.cc
@@ -0,0 +1,156 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "DsCnnMfcc.hpp"
+
+#include <algorithm>
+#include <catch.hpp>
+#include <limits>
+
+/* First 640 samples from yes.wav. */
+const std::vector<int16_t> testWav = std::vector<int16_t>{
+    139, 143, 164, 163, 157, 156, 151, 148, 172, 171,
+    165, 169, 149, 142, 145, 147, 166, 146, 112, 132,
+    132, 136, 165, 176, 176, 152, 138, 158, 179, 185,
+    183, 148, 121, 130, 167, 204, 163, 132, 165, 184,
+    193, 205, 210, 204, 195, 178, 168, 197, 207, 201,
+    197, 177, 185, 196, 191, 198, 196, 183, 193, 181,
+    157, 170, 167, 159, 164, 152, 146, 167, 180, 171,
+    194, 232, 204, 173, 171, 172, 184, 169, 175, 199,
+    200, 195, 185, 214, 214, 193, 196, 191, 204, 191,
+    172, 187, 183, 192, 203, 172, 182, 228, 232, 205,
+    177, 174, 191, 210, 210, 211, 197, 177, 198, 217,
+    233, 236, 203, 191, 169, 145, 149, 161, 198, 206,
+    176, 137, 142, 181, 200, 215, 201, 188, 166, 162,
+    184, 155, 135, 132, 126, 142, 169, 184, 172, 156,
+    132, 119, 150, 147, 154, 160, 125, 130, 137, 154,
+    161, 168, 195, 182, 160, 134, 138, 146, 130, 120,
+    101, 122, 137, 118, 117, 131, 145, 140, 146, 148,
+    148, 168, 159, 134, 114, 114, 130, 147, 147, 134,
+    125, 98, 107, 127, 99, 79, 84, 107, 117, 114,
+    93, 92, 127, 112, 109, 110, 96, 118, 97, 87,
+    110, 95, 128, 153, 147, 165, 146, 106, 101, 137,
+    139, 96, 73, 90, 91, 51, 69, 102, 100, 103,
+    96, 101, 123, 107, 82, 89, 118, 127, 99, 100,
+    111, 97, 111, 123, 106, 121, 133, 103, 100, 88,
+    85, 111, 114, 125, 102, 91, 97, 84, 139, 157,
+    109, 66, 72, 129, 111, 90, 127, 126, 101, 109,
+    142, 138, 129, 159, 140, 80, 74, 78, 76, 98,
+    68, 42, 106, 143, 112, 102, 115, 114, 82, 75,
+    92, 80, 110, 114, 66, 86, 119, 101, 101, 103,
+    118, 145, 85, 40, 62, 88, 95, 87, 73, 64,
+    86, 71, 71, 105, 80, 73, 96, 92, 85, 90,
+    81, 86, 105, 100, 89, 78, 102, 114, 95, 98,
+    69, 70, 108, 112, 111, 90, 104, 137, 143, 160,
+    145, 121, 98, 86, 91, 87, 115, 123, 109, 99,
+    85, 120, 131, 116, 125, 144, 153, 111, 98, 110,
+    93, 89, 101, 137, 155, 142, 108, 94, 136, 145,
+    129, 129, 122, 109, 90, 76, 81, 110, 119, 96,
+    95, 102, 105, 111, 90, 89, 111, 115, 86, 51,
+    107, 140, 105, 105, 110, 142, 125, 76, 75, 69,
+    65, 52, 61, 69, 55, 42, 47, 58, 37, 35,
+    24, 20, 44, 22, 16, 26, 6, 3, 4, 23,
+    60, 51, 30, 12, 24, 31, -9, -16, -13, 13,
+    19, 9, 37, 55, 70, 36, 23, 57, 45, 33,
+    50, 59, 18, 11, 62, 74, 52, 8, -3, 26,
+    51, 48, -5, -9, 12, -7, -12, -5, 28, 41,
+    -2, -30, -13, 31, 33, -12, -22, -8, -15, -17,
+    2, -6, -25, -27, -24, -8, 4, -9, -52, -47,
+    -9, -32, -45, -5, 41, 15, -32, -14, 2, -1,
+    -10, -30, -32, -25, -21, -17, -14, 8, -4, -13,
+    34, 18, -36, -38, -18, -19, -28, -17, -14, -16,
+    -2, -20, -27, 12, 11, -17, -33, -12, -22, -64,
+    -42, -26, -23, -22, -37, -51, -53, -30, -18, -48,
+    -69, -38, -54, -96, -72, -49, -50, -57, -41, -22,
+    -43, -64, -54, -23, -49, -69, -41, -44, -42, -49,
+    -40, -26, -54, -50, -38, -49, -70, -94, -89, -69,
+    -56, -65, -71, -47, -39, -49, -79, -91, -56, -46,
+    -62, -86, -64, -32, -47, -50, -71, -77, -65, -68,
+    -52, -51, -61, -67, -61, -81, -93, -52, -59, -62,
+    -51, -75, -76, -50, -32, -54, -68, -70, -43, 1,
+    -42, -92, -80, -41, -38, -79, -69, -49, -82, -122,
+    -93, -21, -24, -61, -70, -73, -62, -74, -69, -43,
+    -25, -15, -43, -23, -26, -69, -44, -12, 1, -51,
+    -78, -13, 3, -53, -105, -72, -24, -62, -66, -31,
+    -40, -65, -86, -64, -44, -55, -63, -61, -37, -41,
+};
+
+/* Golden audio ops mfcc output for the above wav. */
+const std::vector<float> testWavMfcc {
+    -22.67135, -0.61615, 2.07233, 0.58137, 1.01655, 0.85816, 0.46039, 0.03393, 1.16511, 0.0072,
+};
+
+arm::app::audio::DsCnnMFCC GetMFCCInstance() {
+    const int sampFreq = arm::app::audio::DsCnnMFCC::ms_defaultSamplingFreq;
+    const int frameLenMs = 40;
+    const int frameLenSamples = sampFreq * frameLenMs * 0.001;
+    const int numMfccFeats = 10;
+
+   return arm::app::audio::DsCnnMFCC(numMfccFeats, frameLenSamples);
+}
+
+template <class T>
+void TestQuantisedMFCC() {
+    const float quantScale = 1.1088106632232666;
+    const int quantOffset = 95;
+    std::vector<T> mfccOutput = GetMFCCInstance().MfccComputeQuant<T>(testWav, quantScale, quantOffset);
+
+    const long min_val = std::numeric_limits<T>::min();
+    const long max_val = std::numeric_limits<T>::max();
+
+    for (size_t i = 0; i < testWavMfcc.size(); ++i){
+        long TestWavMfcc = (std::lround((testWavMfcc[i] / quantScale) + quantOffset));
+        T quantizedTestWavMfcc = static_cast<T>(std::max(min_val, std::min(TestWavMfcc, max_val)));
+
+        REQUIRE(quantizedTestWavMfcc  == Approx(mfccOutput[i]).margin(0));
+    }
+}
+template void TestQuantisedMFCC<int8_t>();
+template void TestQuantisedMFCC<uint8_t>();
+template void TestQuantisedMFCC<int16_t>();
+
+
+TEST_CASE("MFCC calculation test") {
+    hal_platform    platform;
+    data_acq_module dataAcq;
+    data_psn_module dataPsn;
+    platform_timer  timer;
+
+    /* Initialise the HAL and platform. */
+    hal_init(&platform, &dataAcq, &dataPsn, &timer);
+    hal_platform_init(&platform);
+
+    SECTION("FP32")
+    {
+        auto mfccOutput = GetMFCCInstance().MfccCompute(testWav);
+        REQUIRE_THAT( mfccOutput, Catch::Approx(testWavMfcc).margin(0.0001) );
+    }
+
+    SECTION("int8_t")
+    {
+        TestQuantisedMFCC<int8_t>();
+    }
+
+    SECTION("uint8_t")
+    {
+        TestQuantisedMFCC<uint8_t>();
+    }
+
+    SECTION("MFCC quant calculation test - int16_t")
+    {
+        TestQuantisedMFCC<int16_t>();
+    }
+}
\ No newline at end of file
diff --git a/tests/use_case/kws_asr/InferenceTestDSCNN.cc b/tests/use_case/kws_asr/InferenceTestDSCNN.cc
new file mode 100644
index 0000000..f0e5c02
--- /dev/null
+++ b/tests/use_case/kws_asr/InferenceTestDSCNN.cc
@@ -0,0 +1,111 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "DsCnnModel.hpp"
+#include "hal.h"
+#include "TestData_kws.hpp"
+#include "TensorFlowLiteMicro.hpp"
+
+#include <catch.hpp>
+#include <random>
+
+namespace arm {
+namespace app {
+namespace kws {
+bool RunInference(arm::app::Model& model, const int8_t vec[])
+{
+    TfLiteTensor* inputTensor = model.GetInputTensor(0);
+    REQUIRE(inputTensor);
+
+    const size_t copySz = inputTensor->bytes < IFM_DATA_SIZE ?
+                            inputTensor->bytes :
+                            IFM_DATA_SIZE;
+    memcpy(inputTensor->data.data, vec, copySz);
+
+    return model.RunInference();
+}
+
+bool RunInferenceRandom(arm::app::Model& model)
+{
+    TfLiteTensor* inputTensor = model.GetInputTensor(0);
+    REQUIRE(inputTensor);
+
+    std::random_device rndDevice;
+    std::mt19937 mersenneGen{rndDevice()};
+    std::uniform_int_distribution<short> dist {-128, 127};
+
+    auto gen = [&dist, &mersenneGen](){
+                   return dist(mersenneGen);
+               };
+
+    std::vector<int8_t> randomAudio(inputTensor->bytes);
+    std::generate(std::begin(randomAudio), std::end(randomAudio), gen);
+
+    REQUIRE(RunInference(model, randomAudio.data()));
+    return true;
+}
+
+template<typename T>
+void TestInference(const T* input_goldenFV, const T* output_goldenFV, arm::app::Model& model)
+{
+    REQUIRE(RunInference(model, input_goldenFV));
+
+    TfLiteTensor* outputTensor = model.GetOutputTensor(0);
+
+    REQUIRE(outputTensor);
+    REQUIRE(outputTensor->bytes == OFM_DATA_SIZE);
+    auto tensorData = tflite::GetTensorData<T>(outputTensor);
+    REQUIRE(tensorData);
+
+    for (size_t i = 0; i < outputTensor->bytes; i++) {
+        REQUIRE((int)tensorData[i] == (int)((T)output_goldenFV[i]));
+    }
+}
+
+TEST_CASE("Running random inference with Tflu and DsCnnModel Int8", "[DS_CNN]")
+{
+    arm::app::DsCnnModel model{};
+
+    REQUIRE_FALSE(model.IsInited());
+    REQUIRE(model.Init());
+    REQUIRE(model.IsInited());
+
+    REQUIRE(RunInferenceRandom(model));
+}
+
+TEST_CASE("Running inference with Tflu and DsCnnModel Uint8", "[DS_CNN]")
+{
+    for (uint32_t i = 0 ; i < NUMBER_OF_FM_FILES; ++i) {
+        const int8_t* input_goldenFV = get_ifm_data_array(i);
+        const int8_t* output_goldenFV = get_ofm_data_array(i);
+
+        DYNAMIC_SECTION("Executing inference with re-init")
+        {
+            arm::app::DsCnnModel model{};
+
+            REQUIRE_FALSE(model.IsInited());
+            REQUIRE(model.Init());
+            REQUIRE(model.IsInited());
+
+            TestInference<int8_t>(input_goldenFV, output_goldenFV, model);
+
+        }
+    }
+}
+
+} //namespace
+} //namespace
+} //namespace
diff --git a/tests/use_case/kws_asr/InferenceTestWav2Letter.cc b/tests/use_case/kws_asr/InferenceTestWav2Letter.cc
new file mode 100644
index 0000000..ee63c2f
--- /dev/null
+++ b/tests/use_case/kws_asr/InferenceTestWav2Letter.cc
@@ -0,0 +1,114 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "hal.h"
+#include "TensorFlowLiteMicro.hpp"
+#include "Wav2LetterModel.hpp"
+#include "TestData_asr.hpp"
+
+#include <catch.hpp>
+#include <random>
+
+namespace arm {
+namespace app {
+namespace asr {
+
+bool RunInference(arm::app::Model& model, const int8_t vec[], const size_t copySz)
+{
+    TfLiteTensor* inputTensor = model.GetInputTensor(0);
+    REQUIRE(inputTensor);
+
+    memcpy(inputTensor->data.data, vec, copySz);
+
+    return model.RunInference();
+}
+
+bool RunInferenceRandom(arm::app::Model& model)
+{
+    TfLiteTensor* inputTensor = model.GetInputTensor(0);
+    REQUIRE(inputTensor);
+
+    std::random_device rndDevice;
+    std::mt19937 mersenneGen{rndDevice()};
+    std::uniform_int_distribution<short> dist {-128, 127};
+
+    auto gen = [&dist, &mersenneGen](){
+                   return dist(mersenneGen);
+               };
+
+    std::vector<int8_t> randomAudio(inputTensor->bytes);
+    std::generate(std::begin(randomAudio), std::end(randomAudio), gen);
+
+    REQUIRE(RunInference(model, randomAudio.data(), inputTensor->bytes));
+    return true;
+}
+
+/* Skip this test, Wav2LetterModel if not Vela optimized but only from ML-zoo will fail. */
+TEST_CASE("Running random inference with Tflu and Wav2LetterModel Int8", "[Wav2Letter][.]")
+{
+    arm::app::Wav2LetterModel model{};
+
+    REQUIRE_FALSE(model.IsInited());
+    REQUIRE(model.Init());
+    REQUIRE(model.IsInited());
+
+    REQUIRE(RunInferenceRandom(model));
+}
+
+
+template<typename T>
+void TestInference(const T* input_goldenFV, const T* output_goldenFV, arm::app::Model& model)
+{
+    TfLiteTensor* inputTensor = model.GetInputTensor(0);
+    REQUIRE(inputTensor);
+
+    REQUIRE(RunInference(model, input_goldenFV, inputTensor->bytes));
+
+    TfLiteTensor* outputTensor = model.GetOutputTensor(0);
+
+    REQUIRE(outputTensor);
+    REQUIRE(outputTensor->bytes == OFM_DATA_SIZE);
+    auto tensorData = tflite::GetTensorData<T>(outputTensor);
+    REQUIRE(tensorData);
+
+    for (size_t i = 0; i < outputTensor->bytes; i++) {
+        REQUIRE((int)tensorData[i] == (int)((T)output_goldenFV[i]));
+    }
+}
+
+TEST_CASE("Running inference with Tflu and Wav2LetterModel Int8", "[Wav2Letter][.]")
+{
+    for (uint32_t i = 0 ; i < NUMBER_OF_FM_FILES; ++i) {
+        auto input_goldenFV = get_ifm_data_array(i);;
+        auto output_goldenFV = get_ofm_data_array(i);
+
+        DYNAMIC_SECTION("Executing inference with re-init")
+        {
+            arm::app::Wav2LetterModel model{};
+
+            REQUIRE_FALSE(model.IsInited());
+            REQUIRE(model.Init());
+            REQUIRE(model.IsInited());
+
+            TestInference<int8_t>(input_goldenFV, output_goldenFV, model);
+
+        }
+    }
+}
+
+} //namespace
+} //namespace
+} //namespace
diff --git a/tests/use_case/kws_asr/InitModels.cc b/tests/use_case/kws_asr/InitModels.cc
new file mode 100644
index 0000000..770944d
--- /dev/null
+++ b/tests/use_case/kws_asr/InitModels.cc
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "DsCnnModel.hpp"
+#include "Wav2LetterModel.hpp"
+
+#include <catch.hpp>
+
+/* Skip this test, Wav2LetterModel if not Vela optimized but only from ML-zoo will fail. */
+TEST_CASE("Init two Models", "[.]")
+{
+    arm::app::DsCnnModel model1;
+    arm::app::DsCnnModel model2;
+
+    /* Ideally we should load the wav2letter model here, but there is
+     * none available to run on native (ops not supported on unoptimised
+     * version). However, we can certainly create two instances of the
+     * same type of model to see if our tensor arena re-use works as
+     * intended.
+     *
+     * @TODO: uncomment this when this model can run on native pipeline. */
+    //arm::app::Wav2LetterModel model2;     /* model2. */
+
+    /* Load/initialise the first model. */
+    REQUIRE(model1.Init());
+
+    /* Allocator instance should have been created. */
+    REQUIRE(nullptr != model1.GetAllocator());
+
+    /* Load the second model using the same allocator as model 1. */
+    REQUIRE(model2.Init(model1.GetAllocator()));
+
+    /* Make sure they point to the same allocator object. */
+    REQUIRE(model1.GetAllocator() == model2.GetAllocator());
+
+    /* Both models should report being initialised. */
+    REQUIRE(true == model1.IsInited());
+    REQUIRE(true == model2.IsInited());
+}
\ No newline at end of file
diff --git a/tests/use_case/kws_asr/KwsAsrTests.cc b/tests/use_case/kws_asr/KwsAsrTests.cc
new file mode 100644
index 0000000..09f82da
--- /dev/null
+++ b/tests/use_case/kws_asr/KwsAsrTests.cc
@@ -0,0 +1,18 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#define CATCH_CONFIG_MAIN
+#include <catch.hpp>
diff --git a/tests/use_case/kws_asr/MfccTests.cc b/tests/use_case/kws_asr/MfccTests.cc
new file mode 100644
index 0000000..9509519
--- /dev/null
+++ b/tests/use_case/kws_asr/MfccTests.cc
@@ -0,0 +1,156 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "DsCnnMfcc.hpp"
+
+#include <algorithm>
+#include <catch.hpp>
+#include <limits>
+
+/* First 640 samples from yes.wav. */
+const std::vector<int16_t> testWav = std::vector<int16_t>{
+    139, 143, 164, 163, 157, 156, 151, 148, 172, 171,
+    165, 169, 149, 142, 145, 147, 166, 146, 112, 132,
+    132, 136, 165, 176, 176, 152, 138, 158, 179, 185,
+    183, 148, 121, 130, 167, 204, 163, 132, 165, 184,
+    193, 205, 210, 204, 195, 178, 168, 197, 207, 201,
+    197, 177, 185, 196, 191, 198, 196, 183, 193, 181,
+    157, 170, 167, 159, 164, 152, 146, 167, 180, 171,
+    194, 232, 204, 173, 171, 172, 184, 169, 175, 199,
+    200, 195, 185, 214, 214, 193, 196, 191, 204, 191,
+    172, 187, 183, 192, 203, 172, 182, 228, 232, 205,
+    177, 174, 191, 210, 210, 211, 197, 177, 198, 217,
+    233, 236, 203, 191, 169, 145, 149, 161, 198, 206,
+    176, 137, 142, 181, 200, 215, 201, 188, 166, 162,
+    184, 155, 135, 132, 126, 142, 169, 184, 172, 156,
+    132, 119, 150, 147, 154, 160, 125, 130, 137, 154,
+    161, 168, 195, 182, 160, 134, 138, 146, 130, 120,
+    101, 122, 137, 118, 117, 131, 145, 140, 146, 148,
+    148, 168, 159, 134, 114, 114, 130, 147, 147, 134,
+    125, 98, 107, 127, 99, 79, 84, 107, 117, 114,
+    93, 92, 127, 112, 109, 110, 96, 118, 97, 87,
+    110, 95, 128, 153, 147, 165, 146, 106, 101, 137,
+    139, 96, 73, 90, 91, 51, 69, 102, 100, 103,
+    96, 101, 123, 107, 82, 89, 118, 127, 99, 100,
+    111, 97, 111, 123, 106, 121, 133, 103, 100, 88,
+    85, 111, 114, 125, 102, 91, 97, 84, 139, 157,
+    109, 66, 72, 129, 111, 90, 127, 126, 101, 109,
+    142, 138, 129, 159, 140, 80, 74, 78, 76, 98,
+    68, 42, 106, 143, 112, 102, 115, 114, 82, 75,
+    92, 80, 110, 114, 66, 86, 119, 101, 101, 103,
+    118, 145, 85, 40, 62, 88, 95, 87, 73, 64,
+    86, 71, 71, 105, 80, 73, 96, 92, 85, 90,
+    81, 86, 105, 100, 89, 78, 102, 114, 95, 98,
+    69, 70, 108, 112, 111, 90, 104, 137, 143, 160,
+    145, 121, 98, 86, 91, 87, 115, 123, 109, 99,
+    85, 120, 131, 116, 125, 144, 153, 111, 98, 110,
+    93, 89, 101, 137, 155, 142, 108, 94, 136, 145,
+    129, 129, 122, 109, 90, 76, 81, 110, 119, 96,
+    95, 102, 105, 111, 90, 89, 111, 115, 86, 51,
+    107, 140, 105, 105, 110, 142, 125, 76, 75, 69,
+    65, 52, 61, 69, 55, 42, 47, 58, 37, 35,
+    24, 20, 44, 22, 16, 26, 6, 3, 4, 23,
+    60, 51, 30, 12, 24, 31, -9, -16, -13, 13,
+    19, 9, 37, 55, 70, 36, 23, 57, 45, 33,
+    50, 59, 18, 11, 62, 74, 52, 8, -3, 26,
+    51, 48, -5, -9, 12, -7, -12, -5, 28, 41,
+    -2, -30, -13, 31, 33, -12, -22, -8, -15, -17,
+    2, -6, -25, -27, -24, -8, 4, -9, -52, -47,
+    -9, -32, -45, -5, 41, 15, -32, -14, 2, -1,
+    -10, -30, -32, -25, -21, -17, -14, 8, -4, -13,
+    34, 18, -36, -38, -18, -19, -28, -17, -14, -16,
+    -2, -20, -27, 12, 11, -17, -33, -12, -22, -64,
+    -42, -26, -23, -22, -37, -51, -53, -30, -18, -48,
+    -69, -38, -54, -96, -72, -49, -50, -57, -41, -22,
+    -43, -64, -54, -23, -49, -69, -41, -44, -42, -49,
+    -40, -26, -54, -50, -38, -49, -70, -94, -89, -69,
+    -56, -65, -71, -47, -39, -49, -79, -91, -56, -46,
+    -62, -86, -64, -32, -47, -50, -71, -77, -65, -68,
+    -52, -51, -61, -67, -61, -81, -93, -52, -59, -62,
+    -51, -75, -76, -50, -32, -54, -68, -70, -43, 1,
+    -42, -92, -80, -41, -38, -79, -69, -49, -82, -122,
+    -93, -21, -24, -61, -70, -73, -62, -74, -69, -43,
+    -25, -15, -43, -23, -26, -69, -44, -12, 1, -51,
+    -78, -13, 3, -53, -105, -72, -24, -62, -66, -31,
+    -40, -65, -86, -64, -44, -55, -63, -61, -37, -41,
+};
+
+/* Golden audio ops mfcc output for the above wav. */
+const std::vector<float> testWavMfcc {
+    -22.67135, -0.61615, 2.07233, 0.58137, 1.01655, 0.85816, 0.46039, 0.03393, 1.16511, 0.0072,
+};
+
+arm::app::audio::DsCnnMFCC GetMFCCInstance() {
+    const int sampFreq = arm::app::audio::DsCnnMFCC::ms_defaultSamplingFreq;
+    const int frameLenMs = 40;
+    const int frameLenSamples = sampFreq * frameLenMs * 0.001;
+    const int numMfccFeats = 10;
+
+   return arm::app::audio::DsCnnMFCC(numMfccFeats, frameLenSamples);
+}
+
+template <class T>
+void TestQuntisedMFCC() {
+    const float quantScale = 1.1088106632232666;
+    const int quantOffset = 95;
+    std::vector<T> mfccOutput = GetMFCCInstance().MfccComputeQuant<T>(testWav, quantScale, quantOffset);
+
+    const long min_val = std::numeric_limits<T>::min();
+    const long max_val = std::numeric_limits<T>::max();
+
+    for (size_t i = 0; i < testWavMfcc.size(); ++i){
+        long TestWavMfcc = (std::lround((testWavMfcc[i] / quantScale) + quantOffset));
+        T quantizedTestWavMfcc = static_cast<T>(std::max(min_val, std::min(TestWavMfcc, max_val)));
+
+        REQUIRE(quantizedTestWavMfcc  == Approx(mfccOutput[i]).margin(0));
+    }
+}
+template void TestQuntisedMFCC<int8_t>();
+template void TestQuntisedMFCC<uint8_t>();
+template void TestQuntisedMFCC<int16_t>();
+
+TEST_CASE("MFCC calculation test")
+{
+    hal_platform    platform;
+    data_acq_module dataAcq;
+    data_psn_module dataPsn;
+    platform_timer  timer;
+
+    /* Initialise the HAL and platform. */
+    hal_init(&platform, &dataAcq, &dataPsn, &timer);
+    hal_platform_init(&platform);
+
+    SECTION("FP32")
+    {
+        auto mfccOutput = GetMFCCInstance().MfccCompute(testWav);
+        REQUIRE_THAT( mfccOutput, Catch::Approx( testWavMfcc ).margin(0.0001) );
+    }
+
+    SECTION("int8_t")
+    {
+        TestQuntisedMFCC<int8_t>();
+    }
+
+    SECTION("uint8_t")
+    {
+        TestQuntisedMFCC<uint8_t>();
+    }
+
+    SECTION("MFCC quant calculation test - int16_t")
+    {
+        TestQuntisedMFCC<int16_t>();
+    }
+}
\ No newline at end of file
diff --git a/tests/use_case/kws_asr/Wav2LetterPostprocessingTest.cc b/tests/use_case/kws_asr/Wav2LetterPostprocessingTest.cc
new file mode 100644
index 0000000..6fd7df3
--- /dev/null
+++ b/tests/use_case/kws_asr/Wav2LetterPostprocessingTest.cc
@@ -0,0 +1,194 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "Wav2LetterPostprocess.hpp"
+#include "Wav2LetterModel.hpp"
+
+#include <algorithm>
+#include <catch.hpp>
+#include <limits>
+
+template <typename T>
+static TfLiteTensor GetTestTensor(std::vector <int>& shape,
+                                  T                  initVal,
+                                  std::vector<T>&    vectorBuf)
+{
+    REQUIRE(0 != shape.size());
+
+    shape.insert(shape.begin(), shape.size());
+    uint32_t sizeInBytes = sizeof(T);
+    for (size_t i = 1; i < shape.size(); ++i) {
+        sizeInBytes *= shape[i];
+    }
+
+    /* Allocate mem. */
+    vectorBuf = std::vector<T>(sizeInBytes, initVal);
+    TfLiteIntArray* dims = tflite::testing::IntArrayFromInts(shape.data());
+    return tflite::testing::CreateQuantizedTensor(
+                                vectorBuf.data(), dims,
+                                1, 0, "test-tensor");
+}
+
+TEST_CASE("Checking return value")
+{
+    SECTION("Mismatched post processing parameters and tensor size")
+    {
+        const uint32_t ctxLen = 5;
+        const uint32_t innerLen = 3;
+        arm::app::audio::asr::Postprocess post{ctxLen, innerLen, 0};
+
+        std::vector <int> tensorShape = {1, 1, 1, 13};
+        std::vector <int8_t> tensorVec;
+        TfLiteTensor tensor = GetTestTensor<int8_t>(
+                                tensorShape, 100, tensorVec);
+        REQUIRE(false == post.Invoke(&tensor, arm::app::Wav2LetterModel::ms_outputRowsIdx, false));
+    }
+
+    SECTION("Post processing succeeds")
+    {
+        const uint32_t ctxLen = 5;
+        const uint32_t innerLen = 3;
+        arm::app::audio::asr::Postprocess post{ctxLen, innerLen, 0};
+
+        std::vector <int> tensorShape = {1, 1, 13, 1};
+        std::vector <int8_t> tensorVec;
+        TfLiteTensor tensor = GetTestTensor<int8_t>(
+                                tensorShape, 100, tensorVec);
+
+        /* Copy elements to compare later. */
+        std::vector <int8_t> originalVec = tensorVec;
+
+        /* This step should not erase anything. */
+        REQUIRE(true == post.Invoke(&tensor, arm::app::Wav2LetterModel::ms_outputRowsIdx, false));
+    }
+}
+
+TEST_CASE("Postprocessing - erasing required elements")
+{
+    constexpr uint32_t ctxLen = 5;
+    constexpr uint32_t innerLen = 3;
+    constexpr uint32_t nRows = 2*ctxLen + innerLen;
+    constexpr uint32_t nCols = 10;
+    constexpr uint32_t blankTokenIdx = nCols - 1;
+    std::vector <int> tensorShape = {1, 1, nRows, nCols};
+
+    SECTION("First and last iteration")
+    {
+        arm::app::audio::asr::Postprocess post{ctxLen, innerLen, blankTokenIdx};
+        std::vector <int8_t> tensorVec;
+        TfLiteTensor tensor = GetTestTensor<int8_t>(
+                                tensorShape, 100, tensorVec);
+
+        /* Copy elements to compare later. */
+        std::vector <int8_t> originalVec = tensorVec;
+
+        /* This step should not erase anything. */
+        REQUIRE(true == post.Invoke(&tensor, arm::app::Wav2LetterModel::ms_outputRowsIdx, true));
+        REQUIRE(originalVec == tensorVec);
+    }
+
+    SECTION("Right context erase")
+    {
+        arm::app::audio::asr::Postprocess post{ctxLen, innerLen, blankTokenIdx};
+
+        std::vector <int8_t> tensorVec;
+        TfLiteTensor tensor = GetTestTensor<int8_t>(
+                                tensorShape, 100, tensorVec);
+
+        /* Copy elements to compare later. */
+        std::vector <int8_t> originalVec = tensorVec;
+
+        /* This step should erase the right context only. */
+        REQUIRE(true == post.Invoke(&tensor, arm::app::Wav2LetterModel::ms_outputRowsIdx, false));
+        REQUIRE(originalVec != tensorVec);
+
+        /* The last ctxLen * 10 elements should be gone. */
+        for (size_t i = 0; i < ctxLen; ++i) {
+            for (size_t j = 0; j < nCols; ++j) {
+                /* Check right context elements are zeroed. */
+                if (j == blankTokenIdx) {
+                    CHECK(tensorVec[(ctxLen + innerLen) * nCols + i*nCols + j] == 1);
+                } else {
+                    CHECK(tensorVec[(ctxLen + innerLen) * nCols + i*nCols + j] == 0);
+                }
+
+                /* Check left context is preserved. */
+                CHECK(tensorVec[i*nCols + j] == originalVec[i*nCols + j]);
+            }
+        }
+
+        /* Check inner elements are preserved. */
+        for (size_t i = ctxLen * nCols; i < (ctxLen + innerLen) * nCols; ++i) {
+            CHECK(tensorVec[i] == originalVec[i]);
+        }
+    }
+
+    SECTION("Left and right context erase")
+    {
+        arm::app::audio::asr::Postprocess post{ctxLen, innerLen, blankTokenIdx};
+
+        std::vector <int8_t> tensorVec;
+        TfLiteTensor tensor = GetTestTensor<int8_t>(tensorShape, 100, tensorVec);
+
+        /* Copy elements to compare later. */
+        std::vector <int8_t> originalVec = tensorVec;
+
+        /* This step should erase right context. */
+        REQUIRE(true == post.Invoke(&tensor, arm::app::Wav2LetterModel::ms_outputRowsIdx, false));
+
+        /* Calling it the second time should erase the left context. */
+        REQUIRE(true == post.Invoke(&tensor, arm::app::Wav2LetterModel::ms_outputRowsIdx, false));
+
+        REQUIRE(originalVec != tensorVec);
+
+        /* The first and last ctxLen * 10 elements should be gone. */
+        for (size_t i = 0; i < ctxLen; ++i) {
+            for (size_t j = 0; j < nCols; ++j) {
+                /* Check left and right context elements are zeroed. */
+                if (j == blankTokenIdx) {
+                    CHECK(tensorVec[(ctxLen + innerLen) * nCols + i * nCols + j] == 1);
+                    CHECK(tensorVec[i * nCols + j] == 1);
+                } else {
+                    CHECK(tensorVec[(ctxLen + innerLen) * nCols + i * nCols + j] == 0);
+                    CHECK(tensorVec[i * nCols + j] == 0);
+                }
+            }
+        }
+
+        /* Check inner elements are preserved. */
+        for (size_t i = ctxLen * nCols; i < (ctxLen + innerLen) * nCols; ++i) {
+            /* Check left context is preserved. */
+            CHECK(tensorVec[i] == originalVec[i]);
+        }
+    }
+
+    SECTION("Try left context erase")
+    {
+        /* Should not be able to erase the left context if it is the first iteration. */
+        arm::app::audio::asr::Postprocess post{ctxLen, innerLen, blankTokenIdx};
+
+        std::vector <int8_t> tensorVec;
+        TfLiteTensor tensor = GetTestTensor<int8_t>(
+                                tensorShape, 100, tensorVec);
+
+        /* Copy elements to compare later. */
+        std::vector <int8_t> originalVec = tensorVec;
+
+        /* Calling it the second time should erase the left context. */
+        REQUIRE(true == post.Invoke(&tensor, arm::app::Wav2LetterModel::ms_outputRowsIdx, true));
+        REQUIRE(originalVec == tensorVec);
+    }
+}
\ No newline at end of file
diff --git a/tests/use_case/kws_asr/Wav2LetterPreprocessingTest.cc b/tests/use_case/kws_asr/Wav2LetterPreprocessingTest.cc
new file mode 100644
index 0000000..e71366a
--- /dev/null
+++ b/tests/use_case/kws_asr/Wav2LetterPreprocessingTest.cc
@@ -0,0 +1,152 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "Wav2LetterPreprocess.hpp"
+
+#include <algorithm>
+#include <catch.hpp>
+#include <limits>
+
+constexpr uint32_t numMfccFeatures = 13;
+constexpr uint32_t numMfccVectors  = 10;
+
+/* Test vector output: generated using test-asr-preprocessing.py. */
+int8_t expectedResult[numMfccVectors][numMfccFeatures*3] = {
+    /* Feature vec 0. */
+    -32,   4,  -9,  -8, -10, -10, -11, -11, -11, -11, -12, -11, -11,    /* MFCCs.   */
+    -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,    /* Delta 1. */
+    -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,    /* Delta 2. */
+
+    /* Feature vec 1. */
+    -31,   4,  -9,  -8, -10, -10, -11, -11, -11, -11, -12, -11, -11,
+    -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
+    -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
+
+    /* Feature vec 2. */
+    -31,   4,  -9,  -9, -10, -10, -11, -11, -11, -11, -12, -12, -12,
+    -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
+    -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
+
+    /* Feature vec 3. */
+    -31,   4,  -9,  -9, -10, -10, -11, -11, -11, -11, -11, -12, -12,
+    -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
+    -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
+
+    /* Feature vec 4 : this should have valid delta 1 and delta 2. */
+    -31,   4,  -9,  -9, -10, -10, -11, -11, -11, -11, -11, -12, -12,
+    -38, -29,  -9,   1,  -2,  -7,  -8,  -8, -12, -16, -14,  -5,   5,
+    -68, -50, -13,   5,   0,  -9,  -9,  -8, -13, -20, -19,  -3,  15,
+
+    /* Feature vec 5 : this should have valid delta 1 and delta 2. */
+    -31,   4,  -9,  -8, -10, -10, -11, -11, -11, -11, -11, -12, -12,
+    -62, -45, -11,   5,   0,  -8,  -9,  -8, -12, -19, -17,  -3,  13,
+    -27, -22, -13,  -9, -11, -12, -12, -11, -11, -13, -13, -10,  -6,
+
+    /* Feature vec 6. */
+    -31,   4,  -9,  -8, -10, -10, -11, -11, -11, -11, -12, -11, -11,
+    -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
+    -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
+
+    /* Feature vec 7. */
+    -32,   4,  -9,  -8, -10, -10, -11, -11, -11, -12, -12, -11, -11,
+    -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
+    -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
+
+    /* Feature vec 8. */
+    -32,   4,  -9,  -8, -10, -10, -11, -11, -11, -12, -12, -11, -11,
+    -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
+    -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
+
+    /* Feature vec 9. */
+    -31,   4,  -9,  -8, -10, -10, -11, -11, -11, -11, -12, -11, -11,
+    -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
+    -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10
+};
+
+void PopulateTestWavVector(std::vector<int16_t>& vec)
+{
+    constexpr int int16max = std::numeric_limits<int16_t>::max();
+    int val = 0;
+    for (size_t i = 0; i < vec.size(); ++i, ++val) {
+
+        /* We want a differential filter response from both - order 1
+         * and 2 => Don't have a linear signal here - we use a signal
+         * using squares for example. Alternate sign flips might work
+         * just as well and will be computationally less work! */
+        int valsq = val * val;
+        if (valsq > int16max) {
+            val = 0;
+            valsq = 0;
+        }
+        vec[i] = valsq;
+    }
+}
+
+TEST_CASE("Preprocessing calculation INT8")
+{
+    /* Initialise the HAL and platform. */
+    hal_platform    platform;
+    data_acq_module data_acq;
+    data_psn_module data_psn;
+    platform_timer  timer;
+    hal_init(&platform, &data_acq, &data_psn, &timer);
+    hal_platform_init(&platform);
+
+    /* Constants. */
+    const uint32_t  windowLen       = 512;
+    const uint32_t  windowStride    = 160;
+    const int       dimArray[]      = {3, 1, numMfccFeatures * 3, numMfccVectors};
+    const float     quantScale      = 0.1410219967365265;
+    const int       quantOffset     = -11;
+
+    /* Test wav memory. */
+    std::vector <int16_t> testWav((windowStride * numMfccVectors) +
+                                  (windowLen - windowStride));
+
+    /* Populate with dummy input. */
+    PopulateTestWavVector(testWav);
+
+    /* Allocate mem for tensor. */
+    std::vector<int8_t> tensorVec(dimArray[1]*dimArray[2]*dimArray[3]);
+
+    /* Initialise dimensions and the test tensor. */
+    TfLiteIntArray* dims= tflite::testing::IntArrayFromInts(dimArray);
+    TfLiteTensor tensor = tflite::testing::CreateQuantizedTensor(
+        tensorVec.data(), dims, quantScale, quantOffset, "preprocessedInput");
+
+    /* Initialise pre-processing module. */
+    arm::app::audio::asr::Preprocess prep{
+        numMfccFeatures, windowLen, windowStride, numMfccVectors};
+
+    /* Invoke pre-processing. */
+    REQUIRE(prep.Invoke(testWav.data(), testWav.size(), &tensor));
+
+    /* Wrap the tensor with a std::vector for ease. */
+    int8_t * tensorData = tflite::GetTensorData<int8_t>(&tensor);
+    std::vector <int8_t> vecResults =
+        std::vector<int8_t>(tensorData, tensorData + tensor.bytes);
+
+    /* Check sizes. */
+    REQUIRE(vecResults.size() == sizeof(expectedResult));
+
+    /* Check that the elements have been calculated correctly. */
+    for (uint32_t j = 0; j < numMfccVectors; ++j) {
+        for (uint32_t i = 0; i < numMfccFeatures * 3; ++i) {
+            size_t tensorIdx = (j * numMfccFeatures * 3) + i;
+            CHECK(vecResults[tensorIdx] == expectedResult[j][i]);
+        }
+    }
+}
diff --git a/tests/utils/ImageUtils.cc b/tests/utils/ImageUtils.cc
new file mode 100644
index 0000000..f77ce1e
--- /dev/null
+++ b/tests/utils/ImageUtils.cc
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "ImageUtils.hpp"
+
+void convertImgIoInt8(void * data, const size_t sz)
+{
+    uint8_t * tmp_req_data          = (uint8_t *)data;
+    int8_t * tmp_signed_req_data    = (int8_t *) data;
+
+    for (size_t i = 0; i < sz; ++i) {
+        tmp_signed_req_data[i] = (int8_t)(
+                (int32_t)(tmp_req_data[i]) - 128);
+    }
+}
+
+void convertImgIoGreyscale(const uint8_t * srcPtr, uint8_t * dstPtr, const size_t sz)
+{
+    for (size_t i = 0; i < sz; ++i, srcPtr += 3) {
+        *dstPtr++ = 0.2989 * (*srcPtr) +
+                    0.587 * (*(srcPtr+1)) +
+                    0.114 * (*(srcPtr+2));
+    }
+}
\ No newline at end of file
diff --git a/tests/utils/ImageUtils.hpp b/tests/utils/ImageUtils.hpp
new file mode 100644
index 0000000..838dcef
--- /dev/null
+++ b/tests/utils/ImageUtils.hpp
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2021 Arm Limited. All rights reserved.
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef IMAGEUTILS_HPP
+#define IMAGEUTILS_HPP
+
+#include <catch.hpp>
+
+void convertImgIoInt8(void * data, const size_t sz);
+
+void convertImgIoGreyscale(const uint8_t * srcPtr, uint8_t * dstPtr, const size_t sz);
+
+#endif /* IMAGEUTILS_HPP */
