IVGCVSW-2549 Add name only layer unit tests for Visitor

Change-Id: I304ddd3efa2f1c5a8e2143276a97c031a624601e
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e8f9c46..dfd10be 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -394,6 +394,8 @@
         src/armnn/test/TensorTest.cpp
         src/armnn/test/TestLayerVisitor.cpp
         src/armnn/test/TestLayerVisitor.hpp
+        src/armnn/test/TestNameOnlyLayerVisitor.cpp
+        src/armnn/test/TestNameOnlyLayerVisitor.hpp
         src/armnn/test/UnitTests.cpp
         src/armnn/test/UnitTests.hpp
         src/armnn/test/UtilsTests.cpp
diff --git a/src/armnn/test/TestNameOnlyLayerVisitor.cpp b/src/armnn/test/TestNameOnlyLayerVisitor.cpp
new file mode 100644
index 0000000..4bb9614
--- /dev/null
+++ b/src/armnn/test/TestNameOnlyLayerVisitor.cpp
@@ -0,0 +1,213 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+#include <boost/test/unit_test.hpp>
+#include "TestNameOnlyLayerVisitor.hpp"
+#include "Network.hpp"
+
+namespace armnn {
+
+BOOST_AUTO_TEST_SUITE(TestNameOnlyLayerVisitor)
+
+BOOST_AUTO_TEST_CASE(CheckAdditionLayerVisitorName)
+{
+    TestAdditionLayerVisitor visitor("AdditionLayer");
+    Network net;
+
+    IConnectableLayer *const layer = net.AddAdditionLayer("AdditionLayer");
+    layer->Accept(visitor);
+}
+
+BOOST_AUTO_TEST_CASE(CheckAdditionLayerVisitorNameNullptr)
+{
+    TestAdditionLayerVisitor visitor;
+    Network net;
+
+    IConnectableLayer *const layer = net.AddAdditionLayer();
+    layer->Accept(visitor);
+}
+
+BOOST_AUTO_TEST_CASE(CheckMultiplicationLayerVisitorName)
+{
+    TestMultiplicationLayerVisitor visitor("MultiplicationLayer");
+    Network net;
+
+    IConnectableLayer *const layer = net.AddMultiplicationLayer("MultiplicationLayer");
+    layer->Accept(visitor);
+}
+
+BOOST_AUTO_TEST_CASE(CheckMultiplicationLayerVisitorNameNullptr)
+{
+    TestMultiplicationLayerVisitor visitor;
+    Network net;
+
+    IConnectableLayer *const layer = net.AddMultiplicationLayer();
+    layer->Accept(visitor);
+}
+
+BOOST_AUTO_TEST_CASE(CheckFloorLayerVisitorName)
+{
+    TestFloorLayerVisitor visitor("FloorLayer");
+    Network net;
+
+    IConnectableLayer *const layer = net.AddFloorLayer("FloorLayer");
+    layer->Accept(visitor);
+}
+
+BOOST_AUTO_TEST_CASE(CheckFloorLayerVisitorNameNullptr)
+{
+    TestFloorLayerVisitor visitor;
+    Network net;
+
+    IConnectableLayer *const layer = net.AddFloorLayer();
+    layer->Accept(visitor);
+}
+
+BOOST_AUTO_TEST_CASE(CheckDivisionLayerVisitorName)
+{
+    TestDivisionLayerVisitor visitor("DivisionLayer");
+    Network net;
+
+    IConnectableLayer *const layer = net.AddAdditionLayer("DivisionLayer");
+    layer->Accept(visitor);
+}
+
+BOOST_AUTO_TEST_CASE(CheckDivisionLayerVisitorNameNullptr)
+{
+    TestDivisionLayerVisitor visitor;
+    Network net;
+
+    IConnectableLayer *const layer = net.AddDivisionLayer();
+    layer->Accept(visitor);
+}
+
+BOOST_AUTO_TEST_CASE(CheckSubtractionLayerVisitorName)
+{
+    TestSubtractionLayerVisitor visitor("SubtractionLayer");
+    Network net;
+
+    IConnectableLayer *const layer = net.AddSubtractionLayer("SubtractionLayer");
+    layer->Accept(visitor);
+}
+
+BOOST_AUTO_TEST_CASE(CheckSubtractionLayerVisitorNameNullptr)
+{
+    TestSubtractionLayerVisitor visitor;
+    Network net;
+
+    IConnectableLayer *const layer = net.AddSubtractionLayer();
+    layer->Accept(visitor);
+}
+
+BOOST_AUTO_TEST_CASE(CheckMaximumLayerVisitorName)
+{
+    TestMaximumLayerVisitor visitor("MaximumLayer");
+    Network net;
+
+    IConnectableLayer *const layer = net.AddMaximumLayer("MaximumLayer");
+    layer->Accept(visitor);
+}
+
+BOOST_AUTO_TEST_CASE(CheckMaximumLayerVisitorNameNullptr)
+{
+    TestMaximumLayerVisitor visitor;
+    Network net;
+
+    IConnectableLayer *const layer = net.AddMaximumLayer();
+    layer->Accept(visitor);
+}
+
+BOOST_AUTO_TEST_CASE(CheckMinimumLayerVisitorName)
+{
+    TestMinimumLayerVisitor visitor("MinimumLayer");
+    Network net;
+
+    IConnectableLayer *const layer = net.AddMinimumLayer("MinimumLayer");
+    layer->Accept(visitor);
+}
+
+BOOST_AUTO_TEST_CASE(CheckMinimumLayerVisitorNameNullptr)
+{
+    TestMinimumLayerVisitor visitor;
+    Network net;
+
+    IConnectableLayer *const layer = net.AddMinimumLayer();
+    layer->Accept(visitor);
+}
+
+BOOST_AUTO_TEST_CASE(CheckGreaterLayerVisitorName)
+{
+    TestGreaterLayerVisitor visitor("GreaterLayer");
+    Network net;
+
+    IConnectableLayer *const layer = net.AddGreaterLayer("GreaterLayer");
+    layer->Accept(visitor);
+}
+
+BOOST_AUTO_TEST_CASE(CheckGreaterLayerVisitorNameNullptr)
+{
+    TestGreaterLayerVisitor visitor;
+    Network net;
+
+    IConnectableLayer *const layer = net.AddGreaterLayer();
+    layer->Accept(visitor);
+}
+
+BOOST_AUTO_TEST_CASE(CheckEqualLayerVisitorName)
+{
+    TestEqualLayerVisitor visitor("EqualLayer");
+    Network net;
+
+    IConnectableLayer *const layer = net.AddEqualLayer("EqualLayer");
+    layer->Accept(visitor);
+}
+
+BOOST_AUTO_TEST_CASE(CheckEqualLayerVisitorNameNullptr)
+{
+    TestEqualLayerVisitor visitor;
+    Network net;
+
+    IConnectableLayer *const layer = net.AddEqualLayer();
+    layer->Accept(visitor);
+}
+
+BOOST_AUTO_TEST_CASE(CheckRsqrtLayerVisitorName)
+{
+    TestRsqrtLayerVisitor visitor("RsqrtLayer");
+    Network net;
+
+    IConnectableLayer *const layer = net.AddRsqrtLayer("RsqrtLayer");
+    layer->Accept(visitor);
+}
+
+BOOST_AUTO_TEST_CASE(CheckRsqrtLayerVisitorNameNullptr)
+{
+    TestRsqrtLayerVisitor visitor;
+    Network net;
+
+    IConnectableLayer *const layer = net.AddRsqrtLayer();
+    layer->Accept(visitor);
+}
+
+BOOST_AUTO_TEST_CASE(CheckGatherLayerVisitorName)
+{
+    TestGatherLayerVisitor visitor("GatherLayer");
+    Network net;
+
+    IConnectableLayer *const layer = net.AddGatherLayer("GatherLayer");
+    layer->Accept(visitor);
+}
+
+BOOST_AUTO_TEST_CASE(CheckGatherLayerVisitorNameNullptr)
+{
+    TestGatherLayerVisitor visitor;
+    Network net;
+
+    IConnectableLayer *const layer = net.AddGatherLayer();
+    layer->Accept(visitor);
+}
+
+BOOST_AUTO_TEST_SUITE_END()
+
+} //namespace armnn
\ No newline at end of file
diff --git a/src/armnn/test/TestNameOnlyLayerVisitor.hpp b/src/armnn/test/TestNameOnlyLayerVisitor.hpp
new file mode 100644
index 0000000..c0037ae
--- /dev/null
+++ b/src/armnn/test/TestNameOnlyLayerVisitor.hpp
@@ -0,0 +1,145 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+#pragma once
+
+#include "TestLayerVisitor.hpp"
+
+namespace armnn
+{
+
+// Concrete TestLayerVisitor subclasses for layers taking Name argument with overridden VisitLayer methods
+class TestAdditionLayerVisitor : public TestLayerVisitor
+{
+public:
+    explicit TestAdditionLayerVisitor(const char* name = nullptr) : TestLayerVisitor(name) {};
+
+    void VisitAdditionLayer(const IConnectableLayer* layer,
+                            const char* name = nullptr) override {
+        CheckLayerPointer(layer);
+        CheckLayerName(name);
+    };
+};
+
+class TestMultiplicationLayerVisitor : public TestLayerVisitor
+{
+public:
+    explicit TestMultiplicationLayerVisitor(const char* name = nullptr) : TestLayerVisitor(name) {};
+
+    void VisitMultiplicationLayer(const IConnectableLayer* layer,
+                                  const char* name = nullptr) override {
+        CheckLayerPointer(layer);
+        CheckLayerName(name);
+    };
+};
+
+class TestFloorLayerVisitor : public TestLayerVisitor
+{
+public:
+    explicit TestFloorLayerVisitor(const char* name = nullptr) : TestLayerVisitor(name) {};
+
+    void VisitFloorLayer(const IConnectableLayer* layer,
+                         const char* name = nullptr) override {
+        CheckLayerPointer(layer);
+        CheckLayerName(name);
+    };
+};
+
+class TestDivisionLayerVisitor : public TestLayerVisitor
+{
+public:
+    explicit TestDivisionLayerVisitor(const char* name = nullptr) : TestLayerVisitor(name) {};
+
+    void VisitDivisionLayer(const IConnectableLayer* layer,
+                            const char* name = nullptr) override {
+        CheckLayerPointer(layer);
+        CheckLayerName(name);
+    };
+};
+
+class TestSubtractionLayerVisitor : public TestLayerVisitor
+{
+public:
+    explicit TestSubtractionLayerVisitor(const char* name = nullptr) : TestLayerVisitor(name) {};
+
+    void VisitSubtractionLayer(const IConnectableLayer* layer,
+                               const char* name = nullptr) override {
+        CheckLayerPointer(layer);
+        CheckLayerName(name);
+    };
+};
+
+class TestMaximumLayerVisitor : public TestLayerVisitor
+{
+public:
+    explicit TestMaximumLayerVisitor(const char* name = nullptr) : TestLayerVisitor(name) {};
+
+    void VisitMaximumLayer(const IConnectableLayer* layer,
+                           const char* name = nullptr) override {
+        CheckLayerPointer(layer);
+        CheckLayerName(name);
+    };
+};
+
+class TestMinimumLayerVisitor : public TestLayerVisitor
+{
+public:
+    explicit TestMinimumLayerVisitor(const char* name = nullptr) : TestLayerVisitor(name) {};
+
+    void VisitMinimumLayer(const IConnectableLayer* layer,
+                           const char* name = nullptr) override {
+        CheckLayerPointer(layer);
+        CheckLayerName(name);
+    };
+};
+
+class TestGreaterLayerVisitor : public TestLayerVisitor
+{
+public:
+    explicit TestGreaterLayerVisitor(const char* name = nullptr) : TestLayerVisitor(name) {};
+
+    void VisitGreaterLayer(const IConnectableLayer* layer,
+                           const char* name = nullptr) override {
+        CheckLayerPointer(layer);
+        CheckLayerName(name);
+    };
+};
+
+class TestEqualLayerVisitor : public TestLayerVisitor
+{
+public:
+    explicit TestEqualLayerVisitor(const char* name = nullptr) : TestLayerVisitor(name) {};
+
+    void VisitEqualLayer(const IConnectableLayer* layer,
+                         const char* name = nullptr) override {
+        CheckLayerPointer(layer);
+        CheckLayerName(name);
+    };
+};
+
+class TestRsqrtLayerVisitor : public TestLayerVisitor
+{
+public:
+    explicit TestRsqrtLayerVisitor(const char* name = nullptr) : TestLayerVisitor(name) {};
+
+    void VisitRsqrtLayer(const IConnectableLayer* layer,
+                         const char* name = nullptr) override {
+        CheckLayerPointer(layer);
+        CheckLayerName(name);
+    };
+};
+
+class TestGatherLayerVisitor : public TestLayerVisitor
+{
+public:
+    explicit TestGatherLayerVisitor(const char* name = nullptr) : TestLayerVisitor(name) {};
+
+    void VisitGatherLayer(const IConnectableLayer* layer,
+                          const char* name = nullptr) override {
+        CheckLayerPointer(layer);
+        CheckLayerName(name);
+    };
+};
+
+} //namespace armnn
\ No newline at end of file