Publishing 2019 R1 content
[platform/upstream/dldt.git] / inference-engine / tests / unit / builders / mvn_layer_test.cpp
1 // Copyright (C) 2019 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
3 //
4
5 #include <gtest/gtest.h>
6 #include <string.h>
7 #include <ie_builders.hpp>
8 #include <builders/ie_mvn_layer.hpp>
9
10 #include "builder_test.hpp"
11
12 using namespace testing;
13 using namespace InferenceEngine;
14
15 class MVNLayerBuilderTest : public BuilderTestCommon {};
16
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));
23 }
24
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));
31 }
32
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));
39 }
40
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));
47 }
48
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);
54 }
55
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);
64 }