aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancisMurtagh <francis.murtagh@arm.com>2019-02-01 11:48:58 +0000
committerFrancis Murtagh <francis.murtagh@arm.com>2019-02-01 15:06:22 +0000
commit531ef94a0600665d723e64e7a47e01fcc0cadfc5 (patch)
treecc1121d04a12935ae77110c28b51f68029a219b6
parentdc1c082f42308e1c02621778387d31cc386e8d74 (diff)
downloadarmnn-531ef94a0600665d723e64e7a47e01fcc0cadfc5.tar.gz
IVGCVSW-2552 Add unit tests for the input and output layers for Visitor
Change-Id: I73ae9b43fa1631fdec423177d37fffc719c71f88 Signed-off-by: FrancisMurtagh <francis.murtagh@arm.com>
-rw-r--r--CMakeLists.txt2
-rw-r--r--src/armnn/test/TestInputOutputLayerVisitor.cpp53
-rw-r--r--src/armnn/test/TestInputOutputLayerVisitor.hpp61
3 files changed, 116 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index dfd10be33e..282b46d874 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -392,6 +392,8 @@ if(BUILD_UNIT_TESTS)
src/armnn/test/SubGraphTests.cpp
src/armnn/test/TensorHelpers.hpp
src/armnn/test/TensorTest.cpp
+ src/armnn/test/TestInputOutputLayerVisitor.cpp
+ src/armnn/test/TestInputOutputLayerVisitor.hpp
src/armnn/test/TestLayerVisitor.cpp
src/armnn/test/TestLayerVisitor.hpp
src/armnn/test/TestNameOnlyLayerVisitor.cpp
diff --git a/src/armnn/test/TestInputOutputLayerVisitor.cpp b/src/armnn/test/TestInputOutputLayerVisitor.cpp
new file mode 100644
index 0000000000..35ffc55e55
--- /dev/null
+++ b/src/armnn/test/TestInputOutputLayerVisitor.cpp
@@ -0,0 +1,53 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+#include "TestInputOutputLayerVisitor.hpp"
+#include "Network.hpp"
+
+namespace armnn
+{
+
+BOOST_AUTO_TEST_SUITE(TestInputOutputLayerVisitor)
+
+BOOST_AUTO_TEST_CASE(CheckInputLayerVisitorBindingIdAndName)
+{
+ const char* layerName = "InputLayer";
+ TestInputLayerVisitor visitor(1, layerName);
+ Network net;
+
+ IConnectableLayer *const layer = net.AddInputLayer(1, layerName);
+ layer->Accept(visitor);
+}
+
+BOOST_AUTO_TEST_CASE(CheckInputLayerVisitorBindingIdAndNameNull)
+{
+ TestInputLayerVisitor visitor(1);
+ Network net;
+
+ IConnectableLayer *const layer = net.AddInputLayer(1);
+ layer->Accept(visitor);
+}
+
+BOOST_AUTO_TEST_CASE(CheckOutputLayerVisitorBindingIdAndName)
+{
+ const char* layerName = "OutputLayer";
+ TestOutputLayerVisitor visitor(1, layerName);
+ Network net;
+
+ IConnectableLayer *const layer = net.AddOutputLayer(1, layerName);
+ layer->Accept(visitor);
+}
+
+BOOST_AUTO_TEST_CASE(CheckOutputLayerVisitorBindingIdAndNameNull)
+{
+ TestOutputLayerVisitor visitor(1);
+ Network net;
+
+ IConnectableLayer *const layer = net.AddOutputLayer(1);
+ layer->Accept(visitor);
+}
+
+BOOST_AUTO_TEST_SUITE_END()
+
+} //namespace armnn \ No newline at end of file
diff --git a/src/armnn/test/TestInputOutputLayerVisitor.hpp b/src/armnn/test/TestInputOutputLayerVisitor.hpp
new file mode 100644
index 0000000000..f67a65cd09
--- /dev/null
+++ b/src/armnn/test/TestInputOutputLayerVisitor.hpp
@@ -0,0 +1,61 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+#pragma once
+
+#include "TestLayerVisitor.hpp"
+#include <boost/test/unit_test.hpp>
+
+namespace armnn
+{
+
+void CheckLayerBindingId(LayerBindingId visitorId, LayerBindingId id)
+{
+ BOOST_CHECK_EQUAL(visitorId, id);
+}
+
+// Concrete TestLayerVisitor subclasses for layers taking LayerBindingId argument with overridden VisitLayer methods
+class TestInputLayerVisitor : public TestLayerVisitor
+{
+private:
+ LayerBindingId visitorId;
+
+public:
+ explicit TestInputLayerVisitor(LayerBindingId id, const char* name = nullptr)
+ : TestLayerVisitor(name)
+ , visitorId(id)
+ {};
+
+ void VisitInputLayer(const IConnectableLayer* layer,
+ LayerBindingId id,
+ const char* name = nullptr) override
+ {
+ CheckLayerPointer(layer);
+ CheckLayerBindingId(visitorId, id);
+ CheckLayerName(name);
+ };
+};
+
+class TestOutputLayerVisitor : public TestLayerVisitor
+{
+private:
+ LayerBindingId visitorId;
+
+public:
+ explicit TestOutputLayerVisitor(LayerBindingId id, const char* name = nullptr)
+ : TestLayerVisitor(name)
+ , visitorId(id)
+ {};
+
+ void VisitOutputLayer(const IConnectableLayer* layer,
+ LayerBindingId id,
+ const char* name = nullptr) override
+ {
+ CheckLayerPointer(layer);
+ CheckLayerBindingId(visitorId, id);
+ CheckLayerName(name);
+ };
+};
+
+} //namespace armnn