ArmNN
 22.05
RefMemCopyTests.cpp
Go to the documentation of this file.
1 //
2 // Copyright © 2022 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
11 #include <doctest/doctest.h>
12 
13 namespace
14 {
15 
16 template <>
17 struct MemCopyTestHelper<armnn::RefWorkloadFactory>
18 {
19  static armnn::IBackendInternal::IMemoryManagerSharedPtr GetMemoryManager()
20  {
21  armnn::RefBackend backend;
22  return backend.CreateMemoryManager();
23  }
24 
26  {
28  }
29 };
30 } // namespace
31 
32 TEST_SUITE("RefMemCopy")
33 {
34 
35  TEST_CASE("CopyBetweenMockAccAndRef")
36  {
38  MemCopyTest<armnn::MockWorkloadFactory, armnn::RefWorkloadFactory, armnn::DataType::Float32>(false);
39  auto predResult =
41  CHECK_MESSAGE(predResult.m_Result, predResult.m_Message.str());
42  }
43 
44  TEST_CASE("CopyBetweenRefAndMockAcc")
45  {
47  MemCopyTest<armnn::RefWorkloadFactory, armnn::MockWorkloadFactory, armnn::DataType::Float32>(false);
48  auto predResult =
50  CHECK_MESSAGE(predResult.m_Result, predResult.m_Message.str());
51  }
52 
53  TEST_CASE("CopyBetweenMockAccAndRefWithSubtensors")
54  {
56  MemCopyTest<armnn::MockWorkloadFactory, armnn::RefWorkloadFactory, armnn::DataType::Float32>(true);
57  auto predResult =
59  CHECK_MESSAGE(predResult.m_Result, predResult.m_Message.str());
60  }
61 
62  TEST_CASE("CopyBetweenRefAndMockAccWithSubtensors")
63  {
65  MemCopyTest<armnn::RefWorkloadFactory, armnn::MockWorkloadFactory, armnn::DataType::Float32>(true);
66  auto predResult =
68  CHECK_MESSAGE(predResult.m_Result, predResult.m_Message.str());
69  }
70 }
armnn::TensorShape m_ExpectedShape
IBackendInternal::IMemoryManagerUniquePtr CreateMemoryManager() const override
Definition: RefBackend.cpp:62
Copyright (c) 2021 ARM Limited and Contributors.
TEST_SUITE("RefMemCopy")
std::shared_ptr< IMemoryManager > IMemoryManagerSharedPtr
std::vector< T > m_ExpectedData
armnn::PredicateResult CompareTensors(const std::vector< T > &actualData, const std::vector< T > &expectedData, const armnn::TensorShape &actualShape, const armnn::TensorShape &expectedShape, bool compareBoolean=false, bool isDynamic=false)
std::vector< T > m_ActualData
armnn::TensorShape m_ActualShape