Publishing 2019 R1 content
[platform/upstream/dldt.git] / inference-engine / tests / unit / builders / normalize_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_normalize_layer.hpp>
9
10 #include "builder_test.hpp"
11
12 using namespace testing;
13 using namespace InferenceEngine;
14
15 class NormalizeLayerBuilderTest : public BuilderTestCommon {};
16
17 TEST_F(NormalizeLayerBuilderTest, getExistsLayerFromNetworkBuilder1) {
18     Builder::Network net("network");
19     Builder::NormalizeLayer normalizeLayer("normalizeLayer");
20     normalizeLayer.setEpsilon(0.1).setChannelShared(true).setAcrossMaps(true);
21     size_t ind = net.addLayer(normalizeLayer);
22     Builder::NormalizeLayer layerFromNet(net.getLayer(ind));
23     ASSERT_EQ(normalizeLayer.getEpsilon(), layerFromNet.getEpsilon());
24 }
25
26 TEST_F(NormalizeLayerBuilderTest, getExistsLayerFromNetworkBuilder2) {
27     Builder::Network net("network");
28     Builder::NormalizeLayer normalizeLayer("normalizeLayer");
29     normalizeLayer.setEpsilon(0.1).setChannelShared(true).setAcrossMaps(false);
30     size_t ind = net.addLayer(normalizeLayer);
31     Builder::NormalizeLayer layerFromNet(net.getLayer(ind));
32     ASSERT_EQ(normalizeLayer.getEpsilon(), layerFromNet.getEpsilon());
33 }
34
35 TEST_F(NormalizeLayerBuilderTest, getExistsLayerFromNetworkBuilder3) {
36     Builder::Network net("network");
37     Builder::NormalizeLayer normalizeLayer("normalizeLayer");
38     normalizeLayer.setEpsilon(0.1).setChannelShared(false).setAcrossMaps(true);
39     size_t ind = net.addLayer(normalizeLayer);
40     Builder::NormalizeLayer layerFromNet(net.getLayer(ind));
41     ASSERT_EQ(normalizeLayer.getEpsilon(), layerFromNet.getEpsilon());
42 }
43
44 TEST_F(NormalizeLayerBuilderTest, getExistsLayerFromNetworkBuilder4) {
45     Builder::Network net("network");
46     Builder::NormalizeLayer normalizeLayer("normalizeLayer");
47     normalizeLayer.setEpsilon(0.1).setChannelShared(false).setAcrossMaps(false);
48     size_t ind = net.addLayer(normalizeLayer);
49     Builder::NormalizeLayer layerFromNet(net.getLayer(ind));
50     ASSERT_EQ(normalizeLayer.getEpsilon(), layerFromNet.getEpsilon());
51 }
52
53 TEST_F(NormalizeLayerBuilderTest, cannotCreateLayerWithWrongEpsilon1) {
54     Builder::Network net("network");
55     Builder::NormalizeLayer normalizeLayer("normalizeLayer");
56     normalizeLayer.setEpsilon(0).setChannelShared(true).setAcrossMaps(true);
57     ASSERT_THROW(net.addLayer(normalizeLayer), InferenceEngine::details::InferenceEngineException);
58 }
59
60 TEST_F(NormalizeLayerBuilderTest, cannotCreateLayerWithWrongEpsilon2) {
61     Builder::Network net("network");
62     Builder::NormalizeLayer normalizeLayer("normalizeLayer");
63     normalizeLayer.setEpsilon(0).setChannelShared(true).setAcrossMaps(false);
64     ASSERT_THROW(net.addLayer(normalizeLayer), InferenceEngine::details::InferenceEngineException);
65 }
66
67 TEST_F(NormalizeLayerBuilderTest, cannotCreateLayerWithWrongEpsilon3) {
68     Builder::Network net("network");
69     Builder::NormalizeLayer normalizeLayer("normalizeLayer");
70     normalizeLayer.setEpsilon(0).setChannelShared(false).setAcrossMaps(true);
71     ASSERT_THROW(net.addLayer(normalizeLayer), InferenceEngine::details::InferenceEngineException);
72 }
73
74 TEST_F(NormalizeLayerBuilderTest, cannotCreateLayerWithWrongEpsilon4) {
75     Builder::Network net("network");
76     Builder::NormalizeLayer normalizeLayer("normalizeLayer");
77     normalizeLayer.setEpsilon(0).setChannelShared(false).setAcrossMaps(false);
78     ASSERT_THROW(net.addLayer(normalizeLayer), InferenceEngine::details::InferenceEngineException);
79 }
80
81 TEST_F(NormalizeLayerBuilderTest, cannotCreateLayerWithWrongShapes) {
82     Builder::Network net("network");
83     Builder::Layer::Ptr fakeNormalizeLayerPtr = std::make_shared<Builder::Layer>("Normalize", "Normalize layer");
84     fakeNormalizeLayerPtr->getInputPorts().push_back(Port({1, 1, 1, 1}));
85     fakeNormalizeLayerPtr->getOutputPorts().push_back(Port({1, 1, 1, 2}));
86     Builder::NormalizeLayer normalizeLayer(fakeNormalizeLayerPtr);
87     normalizeLayer.setEpsilon(0.1).setChannelShared(true).setAcrossMaps(true);
88     ASSERT_THROW(net.addLayer(normalizeLayer), InferenceEngine::details::InferenceEngineException);
89 }