diff options
author | Ferran Balaguer <ferran.balaguer@arm.com> | 2019-01-11 19:29:18 +0000 |
---|---|---|
committer | Ferran Balaguer Arm <ferran.balaguer@arm.com> | 2019-01-14 09:45:15 +0000 |
commit | 51dd62f5725e8a97f3f6957fbc2b899493eb7bb3 (patch) | |
tree | f8cce612850d49d798686cce5ad2ab7545b6e0b7 /src/armnnUtils/test | |
parent | 992d6dc57d8463729910b688f0fb5825d0d3ccf2 (diff) | |
download | armnn-51dd62f5725e8a97f3f6957fbc2b899493eb7bb3.tar.gz |
IVGCVSW-1656 Add Mean support to Tf Parser
Change-Id: I3d31d6b72be1984acdb51fd9e7b5488a7aa5d832
Diffstat (limited to 'src/armnnUtils/test')
-rw-r--r-- | src/armnnUtils/test/ParsePrototxtFixtureTest.cpp | 42 | ||||
-rw-r--r-- | src/armnnUtils/test/ParserHelperTest.cpp | 98 |
2 files changed, 140 insertions, 0 deletions
diff --git a/src/armnnUtils/test/ParsePrototxtFixtureTest.cpp b/src/armnnUtils/test/ParsePrototxtFixtureTest.cpp new file mode 100644 index 0000000000..926658ed0c --- /dev/null +++ b/src/armnnUtils/test/ParsePrototxtFixtureTest.cpp @@ -0,0 +1,42 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#include <ParserPrototxtFixture.hpp> + +#include <boost/test/unit_test.hpp> +#include "armnnTfParser/ITfParser.hpp" + +BOOST_AUTO_TEST_SUITE(ParsePrototxtFixtureSuite) + +using Fixture = armnnUtils::ParserPrototxtFixture<armnnTfParser::ITfParser>; + +BOOST_FIXTURE_TEST_CASE(ConvertInt32ToOctalStringTest, Fixture) +{ + std::string octalString = ConvertInt32ToOctalString(1); + BOOST_ASSERT(octalString.compare("\\\\001\\\\000\\\\000\\\\000")); + + octalString = ConvertInt32ToOctalString(256); + BOOST_ASSERT(octalString.compare("\\\\000\\\\100\\\\000\\\\000")); + + octalString = ConvertInt32ToOctalString(65536); + BOOST_ASSERT(octalString.compare("\\\\000\\\\000\\\\100\\\\000")); + + octalString = ConvertInt32ToOctalString(16777216); + BOOST_ASSERT(octalString.compare("\\\\000\\\\000\\\\000\\\\100")); + + octalString = ConvertInt32ToOctalString(-1); + BOOST_ASSERT(octalString.compare("\\\\377\\\\377\\\\377\\\\377")); + + octalString = ConvertInt32ToOctalString(-256); + BOOST_ASSERT(octalString.compare("\\\\000\\\\377\\\\377\\\\377")); + + octalString = ConvertInt32ToOctalString(-65536); + BOOST_ASSERT(octalString.compare("\\\\000\\\\000\\\\377\\\\377")); + + octalString = ConvertInt32ToOctalString(-16777216); + BOOST_ASSERT(octalString.compare("\\\\000\\\\000\\\\000\\\\377")); +} + +BOOST_AUTO_TEST_SUITE_END() diff --git a/src/armnnUtils/test/ParserHelperTest.cpp b/src/armnnUtils/test/ParserHelperTest.cpp new file mode 100644 index 0000000000..122ad7649e --- /dev/null +++ b/src/armnnUtils/test/ParserHelperTest.cpp @@ -0,0 +1,98 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#include "../ParserHelper.hpp" + +#include <boost/test/unit_test.hpp> + +#include "armnn/Types.hpp" + +using namespace armnn; +using namespace armnnUtils; + +BOOST_AUTO_TEST_SUITE(ParserHelperSuite) + +BOOST_AUTO_TEST_CASE(CalculateReducedOutputTensoInfoTest) +{ + bool keepDims = false; + + unsigned int inputShape[] = { 2, 3, 4 }; + TensorInfo inputTensorInfo(3, &inputShape[0], DataType::Float32); + + // Reducing all dimensions results in one single output value (one dimension) + unsigned int axisShape1[] = { 3 }; + std::set<unsigned int> axisData1 = { 0, 1, 2 }; + TensorInfo axisTensorInfo1(1, &axisShape1[0], DataType::Signed32); + + TensorInfo outputTensorInfo1; + + CalculateReducedOutputTensoInfo(inputTensorInfo, axisTensorInfo1, axisData1, + keepDims, outputTensorInfo1); + + BOOST_ASSERT(outputTensorInfo1.GetNumDimensions() == 1); + BOOST_ASSERT(outputTensorInfo1.GetShape()[0] == 1); + + // Reducing dimension 0 results in a 3x4 size tensor (one dimension) + unsigned int axisShape2[] = { 1 }; + std::set<unsigned int> axisData2 = { 0 }; + TensorInfo axisTensorInfo2(1, &axisShape2[0], DataType::Signed32); + + TensorInfo outputTensorInfo2; + + CalculateReducedOutputTensoInfo(inputTensorInfo, axisTensorInfo2, axisData2, + keepDims, outputTensorInfo2); + + BOOST_ASSERT(outputTensorInfo2.GetNumDimensions() == 1); + BOOST_ASSERT(outputTensorInfo2.GetShape()[0] == 12); + + // Reducing dimensions 0,1 results in a 4 size tensor (one dimension) + unsigned int axisShape3[] = { 2 }; + std::set<unsigned int> axisData3 = { 0, 1 }; + TensorInfo axisTensorInfo3(1, &axisShape3[0], DataType::Signed32); + + TensorInfo outputTensorInfo3; + + CalculateReducedOutputTensoInfo(inputTensorInfo, axisTensorInfo3, axisData3, + keepDims, outputTensorInfo3); + + BOOST_ASSERT(outputTensorInfo3.GetNumDimensions() == 1); + BOOST_ASSERT(outputTensorInfo3.GetShape()[0] == 4); + + // Reducing dimension 0 results in a { 1, 3, 4 } dimension tensor + keepDims = true; + unsigned int axisShape4[] = { 1 }; + std::set<unsigned int> axisData4 = { 0 }; + TensorInfo axisTensorInfo4(1, &axisShape4[0], DataType::Signed32); + + TensorInfo outputTensorInfo4; + + CalculateReducedOutputTensoInfo(inputTensorInfo, axisTensorInfo4, axisData4, + keepDims, outputTensorInfo4); + + BOOST_ASSERT(outputTensorInfo4.GetNumDimensions() == 3); + BOOST_ASSERT(outputTensorInfo4.GetShape()[0] == 1); + BOOST_ASSERT(outputTensorInfo4.GetShape()[1] == 3); + BOOST_ASSERT(outputTensorInfo4.GetShape()[2] == 4); + + // Reducing dimension 1, 2 results in a { 2, 1, 1 } dimension tensor + keepDims = true; + unsigned int axisShape5[] = { 2 }; + std::set<unsigned int> axisData5 = { 1, 2 }; + TensorInfo axisTensorInfo5(1, &axisShape5[0], DataType::Signed32); + + TensorInfo outputTensorInfo5; + + CalculateReducedOutputTensoInfo(inputTensorInfo, axisTensorInfo5, axisData5, + keepDims, outputTensorInfo5); + + BOOST_ASSERT(outputTensorInfo5.GetNumDimensions() == 3); + BOOST_ASSERT(outputTensorInfo5.GetShape()[0] == 2); + BOOST_ASSERT(outputTensorInfo5.GetShape()[1] == 1); + BOOST_ASSERT(outputTensorInfo5.GetShape()[2] == 1); + +} + +BOOST_AUTO_TEST_SUITE_END() + |