diff options
Diffstat (limited to 'delegate/src/test/SliceTest.cpp')
-rw-r--r-- | delegate/src/test/SliceTest.cpp | 230 |
1 files changed, 34 insertions, 196 deletions
diff --git a/delegate/src/test/SliceTest.cpp b/delegate/src/test/SliceTest.cpp index bd0584936e..1d7133f1fd 100644 --- a/delegate/src/test/SliceTest.cpp +++ b/delegate/src/test/SliceTest.cpp @@ -1,5 +1,5 @@ // -// Copyright © 2021 Arm Ltd and Contributors. All rights reserved. +// Copyright © 2022 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // @@ -8,236 +8,74 @@ #include <armnn_delegate.hpp> #include <flatbuffers/flatbuffers.h> -#include <tensorflow/lite/schema/schema_generated.h> #include <doctest/doctest.h> namespace armnnDelegate { -void StridedSlice4DTest(std::vector<armnn::BackendId>& backends) +void SliceFixtureSimpleTest(std::vector<armnn::BackendId>& backends) { - std::vector<int32_t> inputShape { 3, 2, 3, 1 }; - std::vector<int32_t> outputShape { 1, 2, 3, 1 }; - std::vector<int32_t> beginShape { 4 }; - std::vector<int32_t> endShape { 4 }; - std::vector<int32_t> strideShape { 4 }; - - std::vector<int32_t> beginData { 1, 0, 0, 0 }; - std::vector<int32_t> endData { 2, 2, 3, 1 }; - std::vector<int32_t> strideData { 1, 1, 1, 1 }; + std::vector<int32_t> inputShape { 3, 2, 3 }; + std::vector<int32_t> outputShape { 2, 1, 3 }; + std::vector<int32_t> beginShape { 3 }; + std::vector<int32_t> sizeShape { 3 }; + + std::vector<int32_t> beginData { 1, 0, 0 }; + std::vector<int32_t> sizeData { 2, 1, 3 }; std::vector<float> inputData { 1.0f, 1.0f, 1.0f, 2.0f, 2.0f, 2.0f, 3.0f, 3.0f, 3.0f, 4.0f, 4.0f, 4.0f, 5.0f, 5.0f, 5.0f, 6.0f, 6.0f, 6.0f }; - std::vector<float> outputData { 3.0f, 3.0f, 3.0f, 4.0f, 4.0f, 4.0f }; - - StridedSliceTestImpl<float>( - backends, - inputData, - outputData, - beginData, - endData, - strideData, - inputShape, - beginShape, - endShape, - strideShape, - outputShape - ); -} - -void StridedSlice4DReverseTest(std::vector<armnn::BackendId>& backends) -{ - std::vector<int32_t> inputShape { 3, 2, 3, 1 }; - std::vector<int32_t> outputShape { 1, 2, 3, 1 }; - std::vector<int32_t> beginShape { 4 }; - std::vector<int32_t> endShape { 4 }; - std::vector<int32_t> strideShape { 4 }; - - std::vector<int32_t> beginData { 1, -1, 0, 0 }; - std::vector<int32_t> endData { 2, -3, 3, 1 }; - std::vector<int32_t> strideData { 1, -1, 1, 1 }; - std::vector<float> inputData { 1.0f, 1.0f, 1.0f, 2.0f, 2.0f, 2.0f, - 3.0f, 3.0f, 3.0f, 4.0f, 4.0f, 4.0f, - 5.0f, 5.0f, 5.0f, 6.0f, 6.0f, 6.0f }; - std::vector<float> outputData { 4.0f, 4.0f, 4.0f, 3.0f, 3.0f, 3.0f }; - - StridedSliceTestImpl<float>( - backends, - inputData, - outputData, - beginData, - endData, - strideData, - inputShape, - beginShape, - endShape, - strideShape, - outputShape - ); -} + std::vector<float> outputData { 3.0f, 3.0f, 3.0f, + 5.0f, 5.0f, 5.0f }; -void StridedSliceSimpleStrideTest(std::vector<armnn::BackendId>& backends) -{ - std::vector<int32_t> inputShape { 3, 2, 3, 1 }; - std::vector<int32_t> outputShape { 2, 1, 2, 1 }; - std::vector<int32_t> beginShape { 4 }; - std::vector<int32_t> endShape { 4 }; - std::vector<int32_t> strideShape { 4 }; - - std::vector<int32_t> beginData { 0, 0, 0, 0 }; - std::vector<int32_t> endData { 3, 2, 3, 1 }; - std::vector<int32_t> strideData { 2, 2, 2, 1 }; - std::vector<float> inputData { 1.0f, 1.0f, 1.0f, 2.0f, 2.0f, 2.0f, - 3.0f, 3.0f, 3.0f, 4.0f, 4.0f, 4.0f, - 5.0f, 5.0f, 5.0f, 6.0f, 6.0f, 6.0f }; - std::vector<float> outputData { 1.0f, 1.0f, - 5.0f, 5.0f }; - - StridedSliceTestImpl<float>( - backends, - inputData, - outputData, - beginData, - endData, - strideData, - inputShape, - beginShape, - endShape, - strideShape, - outputShape - ); + SliceTestImpl<float>( + backends, + inputData, + outputData, + beginData, + sizeData, + inputShape, + beginShape, + sizeShape, + outputShape); } -void StridedSliceSimpleRangeMaskTest(std::vector<armnn::BackendId>& backends) +TEST_SUITE("Slice_CpuRefTests") { - std::vector<int32_t> inputShape { 3, 2, 3, 1 }; - std::vector<int32_t> outputShape { 3, 2, 3, 1 }; - std::vector<int32_t> beginShape { 4 }; - std::vector<int32_t> endShape { 4 }; - std::vector<int32_t> strideShape { 4 }; - - std::vector<int32_t> beginData { 1, 1, 1, 1 }; - std::vector<int32_t> endData { 1, 1, 1, 1 }; - std::vector<int32_t> strideData { 1, 1, 1, 1 }; - - int beginMask = -1; - int endMask = -1; - - std::vector<float> inputData { 1.0f, 1.0f, 1.0f, 2.0f, 2.0f, 2.0f, - 3.0f, 3.0f, 3.0f, 4.0f, 4.0f, 4.0f, - 5.0f, 5.0f, 5.0f, 6.0f, 6.0f, 6.0f }; - std::vector<float> outputData { 1.0f, 1.0f, 1.0f, 2.0f, 2.0f, 2.0f, - 3.0f, 3.0f, 3.0f, 4.0f, 4.0f, 4.0f, - 5.0f, 5.0f, 5.0f, 6.0f, 6.0f, 6.0f }; - - StridedSliceTestImpl<float>( - backends, - inputData, - outputData, - beginData, - endData, - strideData, - inputShape, - beginShape, - endShape, - strideShape, - outputShape, - beginMask, - endMask - ); -} - - -TEST_SUITE("StridedSlice_CpuRefTests") -{ - -TEST_CASE ("StridedSlice_4D_CpuRef_Test") -{ - std::vector<armnn::BackendId> backends = {armnn::Compute::CpuRef}; - StridedSlice4DTest(backends); -} - -TEST_CASE ("StridedSlice_4D_Reverse_CpuRef_Test") -{ - std::vector<armnn::BackendId> backends = {armnn::Compute::CpuRef}; - StridedSlice4DReverseTest(backends); -} - -TEST_CASE ("StridedSlice_SimpleStride_CpuRef_Test") -{ - std::vector<armnn::BackendId> backends = {armnn::Compute::CpuRef}; - StridedSliceSimpleStrideTest(backends); -} -TEST_CASE ("StridedSlice_SimpleRange_CpuRef_Test") +TEST_CASE ("Slice_Simple_CpuRef_Test") { std::vector<armnn::BackendId> backends = {armnn::Compute::CpuRef}; - StridedSliceSimpleRangeMaskTest(backends); + SliceFixtureSimpleTest(backends); } -} // StridedSlice_CpuRefTests TestSuite - +} // Slice_CpuRefTests TestSuite -TEST_SUITE("StridedSlice_CpuAccTests") -{ -TEST_CASE ("StridedSlice_4D_CpuAcc_Test") +TEST_SUITE("Slice_CpuAccTests") { - std::vector<armnn::BackendId> backends = {armnn::Compute::CpuAcc}; - StridedSlice4DTest(backends); -} -TEST_CASE ("StridedSlice_4D_Reverse_CpuAcc_Test") +TEST_CASE ("Slice_Simple_CpuAcc_Test") { - std::vector<armnn::BackendId> backends = {armnn::Compute::CpuAcc}; - StridedSlice4DReverseTest(backends); -} - -TEST_CASE ("StridedSlice_SimpleStride_CpuAcc_Test") -{ - std::vector<armnn::BackendId> backends = {armnn::Compute::CpuAcc}; - StridedSliceSimpleStrideTest(backends); -} - -TEST_CASE ("StridedSlice_SimpleRange_CpuAcc_Test") -{ - std::vector<armnn::BackendId> backends = {armnn::Compute::CpuAcc}; - StridedSliceSimpleRangeMaskTest(backends); + std::vector<armnn::BackendId> backends = {armnn::Compute::CpuRef}; + SliceFixtureSimpleTest(backends); } -} // StridedSlice_CpuAccTests TestSuite +} // Slice_CpuAccTests TestSuite TEST_SUITE("StridedSlice_GpuAccTests") { -TEST_CASE ("StridedSlice_4D_GpuAcc_Test") +TEST_CASE ("Slice_Simple_GpuAcc_Test") { - std::vector<armnn::BackendId> backends = {armnn::Compute::GpuAcc}; - StridedSlice4DTest(backends); -} - -TEST_CASE ("StridedSlice_4D_Reverse_GpuAcc_Test") -{ - std::vector<armnn::BackendId> backends = {armnn::Compute::GpuAcc}; - StridedSlice4DReverseTest(backends); -} - -TEST_CASE ("StridedSlice_SimpleStride_GpuAcc_Test") -{ - std::vector<armnn::BackendId> backends = {armnn::Compute::GpuAcc}; - StridedSliceSimpleStrideTest(backends); -} - -TEST_CASE ("StridedSlice_SimpleRange_GpuAcc_Test") -{ - std::vector<armnn::BackendId> backends = {armnn::Compute::GpuAcc}; - StridedSliceSimpleRangeMaskTest(backends); + std::vector<armnn::BackendId> backends = {armnn::Compute::CpuRef}; + SliceFixtureSimpleTest(backends); } -} // StridedSlice_GpuAccTests TestSuite +} // Slice_GpuAccTests TestSuite } // namespace armnnDelegate
\ No newline at end of file |