diff options
Diffstat (limited to 'src/armnnCaffeParser/test/TestInPlace.cpp')
-rw-r--r-- | src/armnnCaffeParser/test/TestInPlace.cpp | 98 |
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() |