Publishing 2019 R1 content
[platform/upstream/dldt.git] / inference-engine / tests / unit / builders / norm_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_norm_layer.hpp>
9
10 #include "builder_test.hpp"
11
12 using namespace testing;
13 using namespace InferenceEngine;
14
15 class NormLayerBuilderTest : public BuilderTestCommon {};
16
17 TEST_F(NormLayerBuilderTest, getExistsLayerFromNetworkBuilderWithAcrossMapsEqualTrue) {
18     Builder::Network net("Test");
19     auto layer = Builder::NormLayer("NormLayer").setAlpha(9.999999747378752e-05f).setBeta(0.75f).setSize(5).setAcrossMaps(true).setPort(Port({10, 10, 100, 100}));
20     size_t id = net.addLayer(layer);
21     Builder::NormLayer layerFromNetwork(net.getLayer(id));
22     ASSERT_EQ(layer.getAlpha(), layerFromNetwork.getAlpha());
23     ASSERT_EQ(layer.getBeta(), layerFromNetwork.getBeta());
24     ASSERT_EQ(layer.getAcrossMaps(), layerFromNetwork.getAcrossMaps());
25 }
26
27 TEST_F(NormLayerBuilderTest, getExistsLayerFromNetworkBuilderWithAcrossMapsEqualFalse) {
28     Builder::Network net("Test");
29     auto layer = Builder::NormLayer("NormLayer").setAlpha(9.999999747378752e-05f).setBeta(0.75f).setSize(5).setAcrossMaps(false).setPort(Port({10, 10, 100, 100}));
30     size_t id = net.addLayer(layer);
31     Builder::NormLayer layerFromNetwork(net.getLayer(id));
32     ASSERT_EQ(layer.getAlpha(), layerFromNetwork.getAlpha());
33     ASSERT_EQ(layer.getBeta(), layerFromNetwork.getBeta());
34     ASSERT_EQ(layer.getAcrossMaps(), layerFromNetwork.getAcrossMaps());
35 }
36
37 TEST_F(NormLayerBuilderTest, cannotCreateNormLayerWithWrongAlpha) {
38     Builder::Network net("Test");
39     auto layer = Builder::NormLayer("NormLayer").setAlpha(0).setBeta(0.75f).setSize(5).setAcrossMaps(true).setPort(Port({10, 10, 100, 100}));
40     ASSERT_THROW(net.addLayer(layer), InferenceEngine::details::InferenceEngineException);
41 }
42
43 TEST_F(NormLayerBuilderTest, cannotCreateNormLayerWithWrongBeta) {
44     Builder::Network net("Test");
45     auto layer = Builder::NormLayer("NormLayer").setAlpha(1).setBeta(0).setSize(5).setAcrossMaps(true).setPort(Port({10, 10, 100, 100}));
46     ASSERT_THROW(net.addLayer(layer), InferenceEngine::details::InferenceEngineException);
47 }
48
49 TEST_F(NormLayerBuilderTest, cannotCreateNormLayerWithWrongSize) {
50     Builder::Network net("Test");
51     auto layer = Builder::NormLayer("NormLayer").setAlpha(1).setBeta(1).setSize(0).setAcrossMaps(true).setPort(Port({10, 10, 100, 100}));
52     ASSERT_THROW(net.addLayer(layer), InferenceEngine::details::InferenceEngineException);
53 }
54
55 TEST_F(NormLayerBuilderTest, cannotCreateLayerWithWrongShapes) {
56     Builder::Network net("network");
57     Builder::Layer::Ptr fakeNormLayerPtr = std::make_shared<Builder::Layer>("Norm", "Norm layer");
58     fakeNormLayerPtr->getInputPorts().push_back(Port({1, 1, 1, 1}));
59     fakeNormLayerPtr->getOutputPorts().push_back(Port({1, 1, 1, 2}));
60     Builder::NormLayer normLayer(fakeNormLayerPtr);
61     normLayer.setAlpha(1).setBeta(0).setSize(5).setAcrossMaps(true);
62     ASSERT_THROW(net.addLayer(normLayer), InferenceEngine::details::InferenceEngineException);
63 }
64