From 28d3d63cc0a33f8396b32fa8347c03912c065911 Mon Sep 17 00:00:00 2001 From: FrancisMurtagh Date: Tue, 29 Jan 2019 12:15:23 +0000 Subject: IVGCVSW-2549 Add name only layer unit tests for Visitor Change-Id: I304ddd3efa2f1c5a8e2143276a97c031a624601e --- src/armnn/test/TestNameOnlyLayerVisitor.cpp | 213 ++++++++++++++++++++++++++++ src/armnn/test/TestNameOnlyLayerVisitor.hpp | 145 +++++++++++++++++++ 2 files changed, 358 insertions(+) create mode 100644 src/armnn/test/TestNameOnlyLayerVisitor.cpp create mode 100644 src/armnn/test/TestNameOnlyLayerVisitor.hpp (limited to 'src/armnn/test') diff --git a/src/armnn/test/TestNameOnlyLayerVisitor.cpp b/src/armnn/test/TestNameOnlyLayerVisitor.cpp new file mode 100644 index 0000000000..4bb9614385 --- /dev/null +++ b/src/armnn/test/TestNameOnlyLayerVisitor.cpp @@ -0,0 +1,213 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// +#include +#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 0000000000..c0037ae28f --- /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 -- cgit v1.2.1