diff options
author | Finn Williams <Finn.Williams@arm.com> | 2020-10-22 16:53:35 +0100 |
---|---|---|
committer | Finn Williams <Finn.Williams@arm.com> | 2020-10-28 14:37:30 +0000 |
commit | 3e54d03115bc502aa85a346d68f50712ece10620 (patch) | |
tree | 40af2c15da48c33a16ddd4f45c01ff12d2577a88 /src/armnnUtils | |
parent | aaa54ae75100ddb5520698034f76d341bb036c99 (diff) | |
download | armnn-3e54d03115bc502aa85a346d68f50712ece10620.tar.gz |
IVGCVSW-5433 Remove boost::transform_iterator and make_transform_iterator
Signed-off-by: Finn Williams <Finn.Williams@arm.com>
Change-Id: I28aace7092cff5743353df1b1de8e7a4691554d3
Diffstat (limited to 'src/armnnUtils')
-rw-r--r-- | src/armnnUtils/test/TransformIteratorTest.cpp | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/src/armnnUtils/test/TransformIteratorTest.cpp b/src/armnnUtils/test/TransformIteratorTest.cpp new file mode 100644 index 0000000000..c44e454312 --- /dev/null +++ b/src/armnnUtils/test/TransformIteratorTest.cpp @@ -0,0 +1,102 @@ +// +// Copyright © 2020 Arm Ltd and Contributors. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#include <armnn/utility/TransformIterator.hpp> + +#include <boost/test/unit_test.hpp> +#include <iostream> + +using namespace armnn; + +BOOST_AUTO_TEST_SUITE(TransformIteratorSuite) + +namespace +{ + +static int square(const int val) +{ + return val * val; +} + +static std::string concat(const std::string val) +{ + return val + "a"; +} + +BOOST_AUTO_TEST_CASE(TransformIteratorTest) +{ + struct WrapperTestClass + { + TransformIterator<decltype(&square), std::vector<int>::const_iterator> begin() const + { + return { m_Vec.begin(), &square }; + } + + TransformIterator<decltype(&square), std::vector<int>::const_iterator> end() const + { + return { m_Vec.end(), &square }; + } + + const std::vector<int> m_Vec{1, 2, 3, 4, 5}; + }; + + struct WrapperStringClass + { + TransformIterator<decltype(&concat), std::vector<std::string>::const_iterator> begin() const + { + return { m_Vec.begin(), &concat }; + } + + TransformIterator<decltype(&concat), std::vector<std::string>::const_iterator> end() const + { + return { m_Vec.end(), &concat }; + } + + const std::vector<std::string> m_Vec{"a", "b", "c"}; + }; + + WrapperStringClass wrapperStringClass; + WrapperTestClass wrapperTestClass; + int i = 1; + + for(auto val : wrapperStringClass) + { + BOOST_CHECK(val != "e"); + i++; + } + + i = 1; + for(auto val : wrapperTestClass) + { + BOOST_CHECK(val == square(i)); + i++; + } + + i = 1; + // Check original vector is unchanged + for(auto val : wrapperTestClass.m_Vec) + { + BOOST_CHECK(val == i); + i++; + } + + std::vector<int> originalVec{1, 2, 3, 4, 5}; + + auto transformBegin = MakeTransformIterator(originalVec.begin(), &square); + auto transformEnd = MakeTransformIterator(originalVec.end(), &square); + + std::vector<int> transformedVec(transformBegin, transformEnd); + + i = 1; + for(auto val : transformedVec) + { + BOOST_CHECK(val == square(i)); + i++; + } +} + +} + +BOOST_AUTO_TEST_SUITE_END() |