1 // Copyright (C) 2019 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
5 #include <gtest/gtest.h>
7 #include <ie_builders.hpp>
8 #include <builders/ie_mvn_layer.hpp>
10 #include "builder_test.hpp"
12 using namespace testing;
13 using namespace InferenceEngine;
15 class MVNLayerBuilderTest : public BuilderTestCommon {};
17 TEST_F(MVNLayerBuilderTest, getExistsLayerFromNetworkBuilder1) {
18 Builder::Network net("network");
19 Builder::MVNLayer mvnLayer("MVN_layer");
20 mvnLayer.setEpsilon(99.9).setAcrossChannels(true).setNormalize(true);
21 size_t ind = net.addLayer(mvnLayer);
22 Builder::MVNLayer layerFromNet(net.getLayer(ind));
25 TEST_F(MVNLayerBuilderTest, getExistsLayerFromNetworkBuilder2) {
26 Builder::Network net("network");
27 Builder::MVNLayer mvnLayer("MVN_layer");
28 mvnLayer.setEpsilon(99.9).setAcrossChannels(true).setNormalize(false);
29 size_t ind = net.addLayer(mvnLayer);
30 Builder::MVNLayer layerFromNet(net.getLayer(ind));
33 TEST_F(MVNLayerBuilderTest, getExistsLayerFromNetworkBuilder3) {
34 Builder::Network net("network");
35 Builder::MVNLayer mvnLayer("MVN_layer");
36 mvnLayer.setEpsilon(99.9).setAcrossChannels(false).setNormalize(true);
37 size_t ind = net.addLayer(mvnLayer);
38 Builder::MVNLayer layerFromNet(net.getLayer(ind));
41 TEST_F(MVNLayerBuilderTest, getExistsLayerFromNetworkBuilder4) {
42 Builder::Network net("network");
43 Builder::MVNLayer mvnLayer("MVN_layer");
44 mvnLayer.setEpsilon(99.9).setAcrossChannels(false).setNormalize(false);
45 size_t ind = net.addLayer(mvnLayer);
46 Builder::MVNLayer layerFromNet(net.getLayer(ind));
49 TEST_F(MVNLayerBuilderTest, cannotCreateLayerWithWrongEpsion) {
50 Builder::Network net("network");
51 Builder::MVNLayer mvnLayer("MVN_layer");
52 mvnLayer.setEpsilon(-100).setAcrossChannels(true).setNormalize(true); // here
53 ASSERT_THROW(net.addLayer(mvnLayer), InferenceEngine::details::InferenceEngineException);
56 TEST_F(MVNLayerBuilderTest, cannotCreateLayerWithWrongShapes) {
57 Builder::Network net("network");
58 Builder::Layer::Ptr fakeMVNLayerPtr = std::make_shared<Builder::Layer>("MVN", "MVN layer");
59 fakeMVNLayerPtr->getInputPorts().push_back(Port({1, 1, 1, 1}));
60 fakeMVNLayerPtr->getOutputPorts().push_back(Port({1, 1, 1, 2}));
61 Builder::MVNLayer mvnLayer(fakeMVNLayerPtr);
62 mvnLayer.setEpsilon(100).setAcrossChannels(true).setNormalize(true);
63 ASSERT_THROW(net.addLayer(mvnLayer), InferenceEngine::details::InferenceEngineException);