df35aff8dfa9866d4cde46a64d1438d9fbd25846
[platform/upstream/dldt.git] / inference-engine / tests / ie_test_utils / unit_test_utils / mocks / mock_not_empty_icnn_network.hpp
1 // Copyright (C) 2018-2020 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
3 //
4
5 #pragma once
6
7 #include <gmock/gmock.h>
8
9 #include <string>
10 #include <memory>
11 #include <vector>
12
13 #include "ie_icnn_network.hpp"
14
15 namespace InferenceEngine {
16
17 IE_SUPPRESS_DEPRECATED_START
18
19 class MockNotEmptyICNNNetwork : public ICNNNetwork {
20 public:
21     static constexpr const char* INPUT_BLOB_NAME = "first_input";
22     const SizeVector INPUT_DIMENTIONS = { 1, 3, 299, 299 };
23     static constexpr const char* OUTPUT_BLOB_NAME = "first_output";
24     const SizeVector OUTPUT_DIMENTIONS = { 1, 3, 299, 299 };
25     const std::string name = "test";
26     Precision getPrecision() const noexcept override {
27         return Precision::FP32;
28     }
29     const std::string& getName() const noexcept override {
30         return name;
31     }
32     void getOutputsInfo(OutputsDataMap& out) const noexcept override {
33         auto data = std::make_shared<Data>(MockNotEmptyICNNNetwork::OUTPUT_BLOB_NAME, Precision::UNSPECIFIED);
34         data->getInputTo()[""] = std::make_shared<CNNLayer>(LayerParams{
35             MockNotEmptyICNNNetwork::OUTPUT_BLOB_NAME,
36             "FullyConnected",
37             Precision::FP32 });
38         out[MockNotEmptyICNNNetwork::OUTPUT_BLOB_NAME] = data;
39     };
40     void getInputsInfo(InputsDataMap &inputs) const noexcept override {
41         auto inputInfo = std::make_shared<InputInfo>();
42
43         auto inData = std::make_shared<Data>(MockNotEmptyICNNNetwork::INPUT_BLOB_NAME, Precision::UNSPECIFIED);
44         auto inputLayer = std::make_shared<CNNLayer>(LayerParams{
45             MockNotEmptyICNNNetwork::INPUT_BLOB_NAME,
46             "Input",
47             Precision::FP32 });
48         inData->getInputTo()[MockNotEmptyICNNNetwork::OUTPUT_BLOB_NAME] = inputLayer;
49         inData->setDims(MockNotEmptyICNNNetwork::INPUT_DIMENTIONS);
50         inData->setLayout(Layout::NCHW);
51         inputInfo->setInputData(inData);
52
53         auto outData = std::make_shared<Data>(MockNotEmptyICNNNetwork::OUTPUT_BLOB_NAME, Precision::UNSPECIFIED);
54         outData->setDims(MockNotEmptyICNNNetwork::OUTPUT_DIMENTIONS);
55         outData->setLayout(Layout::NCHW);
56         outData->getInputTo()[""] = std::make_shared<CNNLayer>(LayerParams{
57             MockNotEmptyICNNNetwork::OUTPUT_BLOB_NAME,
58             "FullyConnected",
59             Precision::FP32 });
60
61         inputLayer->outData.push_back(outData);
62
63         inputs[MockNotEmptyICNNNetwork::INPUT_BLOB_NAME] = inputInfo;
64     };
65     void addLayer(const CNNLayerPtr& layer) noexcept override {}
66     std::shared_ptr<ngraph::Function> getFunction() noexcept override {
67         return nullptr;
68     }
69     std::shared_ptr<const ngraph::Function> getFunction() const noexcept override {
70         return nullptr;
71     }
72     MOCK_QUALIFIED_METHOD1(getInput, const noexcept, InputInfo::Ptr(const std::string &inputName));
73     MOCK_QUALIFIED_METHOD2(getName, const noexcept, void(char* pName, size_t len));
74     MOCK_QUALIFIED_METHOD0(layerCount, const noexcept, size_t());
75     MOCK_QUALIFIED_METHOD1(getData, noexcept, DataPtr&(const char* dname));
76     MOCK_QUALIFIED_METHOD3(addOutput, noexcept, StatusCode(const std::string &, size_t , ResponseDesc*));
77     MOCK_QUALIFIED_METHOD3(getLayerByName, const noexcept, StatusCode(const char* , CNNLayerPtr& , ResponseDesc*));
78     MOCK_QUALIFIED_METHOD1(setBatchSize, noexcept, StatusCode(const size_t size));
79     MOCK_QUALIFIED_METHOD2(setBatchSize, noexcept, StatusCode(const size_t size, ResponseDesc*));
80     MOCK_QUALIFIED_METHOD0(getBatchSize, const noexcept, size_t());
81     MOCK_QUALIFIED_METHOD0(Release, noexcept, void());
82     MOCK_QUALIFIED_METHOD1(getInputShapes, const noexcept, void(ICNNNetwork::InputShapes &));
83     MOCK_QUALIFIED_METHOD2(reshape, noexcept, StatusCode(const ICNNNetwork::InputShapes &, ResponseDesc *));
84     MOCK_QUALIFIED_METHOD3(serialize, const noexcept, StatusCode(const std::string &, const std::string &, InferenceEngine::ResponseDesc*));
85 };
86
87 IE_SUPPRESS_DEPRECATED_END
88
89 }  // namespace InferenceEngine