aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancisMurtagh <francis.murtagh@arm.com>2019-01-28 14:03:21 +0000
committerFrancisMurtagh <francis.murtagh@arm.com>2019-01-28 14:03:21 +0000
commit1306b194dc9c480ade79f4cf60249b0e5aa61d69 (patch)
treedc177650b6d48e31b958fe0098e607d79cc02fbb
parenta0d56c77a53f5f991565041927003ce7460730ce (diff)
downloadarmnn-1306b194dc9c480ade79f4cf60249b0e5aa61d69.tar.gz
IVGCVSW-2548 Add the TestLayerVisitor class
* Add abstract base class TestLayerVisitor Change-Id: Id453f3ad9721f3680166a41b75a1880cf20032f7
-rw-r--r--CMakeLists.txt2
-rw-r--r--src/armnn/test/TestLayerVisitor.cpp28
-rw-r--r--src/armnn/test/TestLayerVisitor.hpp181
3 files changed, 211 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6b893f2aef..a12d6b4af8 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/TestLayerVisitor.cpp
+ src/armnn/test/TestLayerVisitor.hpp
src/armnn/test/UnitTests.cpp
src/armnn/test/UnitTests.hpp
src/armnn/test/UtilsTests.cpp
diff --git a/src/armnn/test/TestLayerVisitor.cpp b/src/armnn/test/TestLayerVisitor.cpp
new file mode 100644
index 0000000000..24d3c0b181
--- /dev/null
+++ b/src/armnn/test/TestLayerVisitor.cpp
@@ -0,0 +1,28 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#include <boost/test/unit_test.hpp>
+#include "TestLayerVisitor.hpp"
+
+namespace armnn
+{
+
+void TestLayerVisitor::CheckLayerName(const char* name)
+{
+ if (name == nullptr)
+ {
+ BOOST_CHECK(m_LayerName == nullptr);
+ }
+ else if (m_LayerName == nullptr)
+ {
+ BOOST_CHECK(name == nullptr);
+ }
+ else
+ {
+ BOOST_CHECK_EQUAL(m_LayerName, name);
+ }
+};
+
+} //namespace armnn \ No newline at end of file
diff --git a/src/armnn/test/TestLayerVisitor.hpp b/src/armnn/test/TestLayerVisitor.hpp
new file mode 100644
index 0000000000..16227fb7f5
--- /dev/null
+++ b/src/armnn/test/TestLayerVisitor.hpp
@@ -0,0 +1,181 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+#pragma once
+
+#include <armnn/ILayerVisitor.hpp>
+
+namespace armnn
+{
+// Abstract base class with do nothing implementations for all layer visit methods
+class TestLayerVisitor : public ILayerVisitor
+{
+protected:
+ virtual ~TestLayerVisitor() {};
+
+ void CheckLayerName(const char* name);
+
+private:
+ const char* m_LayerName;
+
+public:
+ explicit TestLayerVisitor(const char* name) : m_LayerName(name) {};
+
+ virtual void VisitInputLayer(const IConnectableLayer* layer,
+ LayerBindingId id,
+ const char* name = nullptr) {};
+
+ virtual void VisitConvolution2dLayer(const IConnectableLayer* layer,
+ const Convolution2dDescriptor& convolution2dDescriptor,
+ const ConstTensor& weights,
+ const char* name = nullptr) {};
+
+ virtual void VisitConvolution2dLayer(const IConnectableLayer* layer,
+ const Convolution2dDescriptor& convolution2dDescriptor,
+ const ConstTensor& weights,
+ const ConstTensor& biases,
+ const char* name = nullptr) {};
+
+ virtual void VisitDepthwiseConvolution2dLayer(const IConnectableLayer* layer,
+ const DepthwiseConvolution2dDescriptor& convolution2dDescriptor,
+ const ConstTensor& weights,
+ const char* name = nullptr) {};
+
+ virtual void VisitDepthwiseConvolution2dLayer(const IConnectableLayer* layer,
+ const DepthwiseConvolution2dDescriptor& convolution2dDescriptor,
+ const ConstTensor& weights,
+ const ConstTensor& biases,
+ const char* name = nullptr) {};
+
+ virtual void VisitDetectionPostProcessLayer(const IConnectableLayer* layer,
+ const DetectionPostProcessDescriptor& descriptor,
+ const char* name = nullptr) {};
+
+ virtual void VisitFullyConnectedLayer(const IConnectableLayer* layer,
+ const FullyConnectedDescriptor& fullyConnectedDescriptor,
+ const ConstTensor& weights,
+ const char* name = nullptr) {};
+
+ virtual void VisitFullyConnectedLayer(const IConnectableLayer* layer,
+ const FullyConnectedDescriptor& fullyConnectedDescriptor,
+ const ConstTensor& weights,
+ const ConstTensor& biases,
+ const char* name = nullptr) {};
+
+ virtual void VisitPermuteLayer(const IConnectableLayer* layer,
+ const PermuteDescriptor& permuteDescriptor,
+ const char* name = nullptr) {};
+
+ virtual void VisitBatchToSpaceNdLayer(const IConnectableLayer* layer,
+ const BatchToSpaceNdDescriptor& batchToSpaceNdDescriptor,
+ const char* name = nullptr) {};
+
+ virtual void VisitPooling2dLayer(const IConnectableLayer* layer,
+ const Pooling2dDescriptor& pooling2dDescriptor,
+ const char* name = nullptr) {};
+
+ virtual void VisitActivationLayer(const IConnectableLayer* layer,
+ const ActivationDescriptor& activationDescriptor,
+ const char* name = nullptr) {};
+
+ virtual void VisitNormalizationLayer(const IConnectableLayer* layer,
+ const NormalizationDescriptor& normalizationDescriptor,
+ const char* name = nullptr) {};
+
+ virtual void VisitSoftmaxLayer(const IConnectableLayer* layer,
+ const SoftmaxDescriptor& softmaxDescriptor,
+ const char* name = nullptr) {};
+
+ virtual void VisitSplitterLayer(const IConnectableLayer* layer,
+ const ViewsDescriptor& splitterDescriptor,
+ const char* name = nullptr) {};
+
+ virtual void VisitMergerLayer(const IConnectableLayer* layer,
+ const OriginsDescriptor& mergerDescriptor,
+ const char* name = nullptr) {};
+
+ virtual void VisitAdditionLayer(const IConnectableLayer* layer,
+ const char* name = nullptr) {};
+
+ virtual void VisitMultiplicationLayer(const IConnectableLayer* layer,
+ const char* name = nullptr) {};
+
+ virtual void VisitBatchNormalizationLayer(const IConnectableLayer* layer,
+ const BatchNormalizationDescriptor& desc,
+ const ConstTensor& mean,
+ const ConstTensor& variance,
+ const ConstTensor& beta,
+ const ConstTensor& gamma,
+ const char* name = nullptr) {};
+
+ virtual void VisitResizeBilinearLayer(const IConnectableLayer* layer,
+ const ResizeBilinearDescriptor& resizeDesc,
+ const char* name = nullptr) {};
+
+ virtual void VisitL2NormalizationLayer(const IConnectableLayer* layer,
+ const L2NormalizationDescriptor& desc,
+ const char* name = nullptr) {};
+
+ virtual void VisitConstantLayer(const IConnectableLayer* layer,
+ const ConstTensor& input,
+ const char* name = nullptr) {};
+
+ virtual void VisitReshapeLayer(const IConnectableLayer* layer,
+ const ReshapeDescriptor& reshapeDescriptor,
+ const char* name = nullptr) {};
+
+ virtual void VisitSpaceToBatchNdLayer(const IConnectableLayer* layer,
+ const SpaceToBatchNdDescriptor& spaceToBatchNdDescriptor,
+ const char* name = nullptr) {};
+
+ virtual void VisitFloorLayer(const IConnectableLayer* layer,
+ const char* name = nullptr) {};
+
+ virtual void VisitOutputLayer(const IConnectableLayer* layer,
+ LayerBindingId id,
+ const char* name = nullptr) {};
+
+ virtual void VisitLstmLayer(const IConnectableLayer* layer,
+ const LstmDescriptor& descriptor,
+ const LstmInputParams& params,
+ const char* name = nullptr) {};
+
+ virtual void VisitDivisionLayer(const IConnectableLayer* layer,
+ const char* name = nullptr) {};
+
+ virtual void VisitSubtractionLayer(const IConnectableLayer* layer,
+ const char* name = nullptr) {};
+
+ virtual void VisitMaximumLayer(const IConnectableLayer* layer,
+ const char* name = nullptr) {};
+
+ virtual void VisitMeanLayer(const IConnectableLayer* layer,
+ const MeanDescriptor& meanDescriptor,
+ const char* name = nullptr) {};
+
+ virtual void VisitPadLayer(const IConnectableLayer* layer,
+ const PadDescriptor& padDescriptor,
+ const char* name = nullptr) {};
+
+ virtual void VisitStridedSliceLayer(const IConnectableLayer* layer,
+ const StridedSliceDescriptor& stridedSliceDescriptor,
+ const char* name = nullptr) {};
+
+ virtual void VisitMinimumLayer(const IConnectableLayer* layer,
+ const char* name = nullptr) {};
+
+ virtual void VisitGreaterLayer(const IConnectableLayer* layer,
+ const char* name = nullptr) {};
+
+ virtual void VisitEqualLayer(const IConnectableLayer* layer,
+ const char* name = nullptr) {};
+
+ virtual void VisitRsqrtLayer(const IConnectableLayer* layer,
+ const char* name = nullptr) {};
+
+ virtual void VisitGatherLayer(const IConnectableLayer* layer,
+ const char* name = nullptr) {};
+};
+
+} //namespace armnn