aboutsummaryrefslogtreecommitdiff
path: root/src/backends/backendsCommon/test/mockBackend/MockImportLayerSupport.hpp
blob: 380ce4a3f513c9d216aff5e80f39bbe88bc9a41e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
//
// Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
// SPDX-License-Identifier: MIT
//
#pragma once

#include <armnn/utility/IgnoreUnused.hpp>

#include <backendsCommon/LayerSupportBase.hpp>

namespace armnn
{

class MockImportLayerSupport : public LayerSupportBase
{
public:
    bool IsLayerSupported(const LayerType& type,
                          const std::vector<TensorInfo>& infos,
                          const BaseDescriptor& /*descriptor*/,
                          const Optional<LstmInputParamsInfo>& /*lstmParamsInfo*/,
                          const Optional<QuantizedLstmInputParamsInfo>& /*quantizedLstmParamsInfo*/,
                          Optional<std::string&> reasonIfUnsupported) const override
    {
        switch(type)
        {
            case LayerType::Addition:
                return IsAdditionSupported(infos[0], infos[1], infos[2], reasonIfUnsupported);
            case LayerType::Input:
                return IsInputSupported(infos[0], reasonIfUnsupported);
            case LayerType::Output:
                return IsOutputSupported(infos[0], reasonIfUnsupported);
            case LayerType::MemCopy:
                return LayerSupportBase::IsMemCopySupported(infos[0], infos[1], reasonIfUnsupported);
            case LayerType::MemImport:
                return LayerSupportBase::IsMemImportSupported(infos[0], infos[1], reasonIfUnsupported);
            default:
                return false;
        }
    }

    bool IsAdditionSupported(const TensorInfo& input0,
                             const TensorInfo& input1,
                             const TensorInfo& output,
                             Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const override
    {
        IgnoreUnused(input0);
        IgnoreUnused(input1);
        IgnoreUnused(output);
        IgnoreUnused(reasonIfUnsupported);
        return true;
    }

    bool IsInputSupported(const TensorInfo& input,
                          Optional<std::string&> reasonIfUnsupported) const override
    {
        IgnoreUnused(input);
        IgnoreUnused(reasonIfUnsupported);
        return true;
    }

    bool IsOutputSupported(const TensorInfo& output,
                           Optional<std::string&> reasonIfUnsupported) const override
    {
        IgnoreUnused(output);
        IgnoreUnused(reasonIfUnsupported);
        return true;
    }
};

} // namespace armnn