aboutsummaryrefslogtreecommitdiff
path: root/src/armnnCaffeParser/test/TestInPlace.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/armnnCaffeParser/test/TestInPlace.cpp')
-rw-r--r--src/armnnCaffeParser/test/TestInPlace.cpp98
1 files changed, 98 insertions, 0 deletions
diff --git a/src/armnnCaffeParser/test/TestInPlace.cpp b/src/armnnCaffeParser/test/TestInPlace.cpp
new file mode 100644
index 0000000000..3954baa75b
--- /dev/null
+++ b/src/armnnCaffeParser/test/TestInPlace.cpp
@@ -0,0 +1,98 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// See LICENSE file in the project root for full license information.
+//
+#include <boost/test/unit_test.hpp>
+#include "armnnCaffeParser/ICaffeParser.hpp"
+#include "ParserPrototxtFixture.hpp"
+
+BOOST_AUTO_TEST_SUITE(CaffeParser)
+
+// The pooling layer should take its input from the relu, not the add directly.
+struct InPlaceFixture : public ParserPrototxtFixture<armnnCaffeParser::ICaffeParser>
+{
+ InPlaceFixture()
+ {
+ m_Prototext = R"(
+name: "InPlace"
+layer {
+ name: "data"
+ type: "Input"
+ top: "data"
+ input_param { shape: { dim: 1 dim: 1 dim: 1 dim: 1 } }
+}
+layer {
+ bottom: "data"
+ bottom: "data"
+ top: "add"
+ name: "add"
+ type: "Eltwise"
+}
+layer {
+ name: "relu"
+ type: "ReLU"
+ bottom: "add"
+ top: "relu"
+ phase: TEST
+}
+layer {
+ name: "pool"
+ type: "Pooling"
+ bottom: "relu"
+ top: "pool"
+ phase: TEST
+ pooling_param {
+ pool: MAX
+ kernel_size: 1
+ stride: 1
+ }
+}
+ )";
+ SetupSingleInputSingleOutput("data", "pool");
+ }
+};
+
+BOOST_FIXTURE_TEST_CASE(ParseInPlace, InPlaceFixture)
+{
+ RunTest<1>({ -1.0f }, { 0.0f });
+}
+
+// The requested output of the network is a layer which has an activation attached.
+// The output of the network should therefore actually be the activation layer.
+struct InPlaceOutputFixture : public ParserPrototxtFixture<armnnCaffeParser::ICaffeParser>
+{
+ InPlaceOutputFixture()
+ {
+ m_Prototext = R"(
+name: "InPlace"
+layer {
+ name: "data"
+ type: "Input"
+ top: "data"
+ input_param { shape: { dim: 1 dim: 1 dim: 1 dim: 1 } }
+}
+layer {
+ bottom: "data"
+ bottom: "data"
+ top: "add"
+ name: "add"
+ type: "Eltwise"
+}
+layer {
+ name: "relu"
+ type: "ReLU"
+ bottom: "add"
+ top: "add"
+ phase: TEST
+}
+ )";
+ SetupSingleInputSingleOutput("data", "add");
+ }
+};
+
+BOOST_FIXTURE_TEST_CASE(InPlaceOutput, InPlaceOutputFixture)
+{
+ RunTest<1>({ -1.0f }, { 0.0f });
+}
+
+BOOST_AUTO_TEST_SUITE_END()