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_norm_layer.hpp>
10 #include "builder_test.hpp"
12 using namespace testing;
13 using namespace InferenceEngine;
15 class NormLayerBuilderTest : public BuilderTestCommon {};
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());
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());
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);
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);
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);
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);