// // Copyright © 2017 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // #pragma once #include #include #include #include namespace armnn { class MockBackend : public IBackendInternal { public: MockBackend() = default; ~MockBackend() = default; static const BackendId& GetIdStatic(); const BackendId& GetId() const override { return GetIdStatic(); } IBackendInternal::IMemoryManagerUniquePtr CreateMemoryManager() const override; IBackendInternal::IWorkloadFactoryPtr CreateWorkloadFactory(const IBackendInternal::IMemoryManagerSharedPtr& memoryManager = nullptr) const override; IBackendInternal::IBackendContextPtr CreateBackendContext(const IRuntime::CreationOptions&) const override; IBackendInternal::IBackendProfilingContextPtr CreateBackendProfilingContext(const IRuntime::CreationOptions& creationOptions, IBackendProfilingPtr& backendProfiling) override; IBackendInternal::Optimizations GetOptimizations() const override; IBackendInternal::ILayerSupportSharedPtr GetLayerSupport() const override; OptimizationViews OptimizeSubgraphView(const SubgraphView& subgraph) const override; }; class MockLayerSupport : public LayerSupportBase { public: bool IsInputSupported(const TensorInfo& /*input*/, Optional /*reasonIfUnsupported = EmptyOptional()*/) const override { return true; } bool IsOutputSupported(const TensorInfo& /*input*/, Optional /*reasonIfUnsupported = EmptyOptional()*/) const override { return true; } bool IsAdditionSupported(const TensorInfo& /*input0*/, const TensorInfo& /*input1*/, const TensorInfo& /*output*/, Optional /*reasonIfUnsupported = EmptyOptional()*/) const override { return true; } bool IsConvolution2dSupported(const TensorInfo& /*input*/, const TensorInfo& /*output*/, const Convolution2dDescriptor& /*descriptor*/, const TensorInfo& /*weights*/, const Optional& /*biases*/, Optional /*reasonIfUnsupported = EmptyOptional()*/) const override { return true; } }; } // namespace armnn