blob: 516f6f3771f43acbe50b316eca3f572b2a89eacf [file] [log] [blame]
Finn Williamsf9d96e52021-10-27 11:25:02 +01001//
2// Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#include <backendsCommon/memoryOptimizerStrategyLibrary/strategies/SingleAxisPriorityList.hpp>
7#include <backendsCommon/memoryOptimizerStrategyLibrary/strategies/StrategyValidator.hpp>
8#include "TestMemBlocks.hpp"
9
10#include <doctest/doctest.h>
11#include <vector>
12
13using namespace armnn;
14
15TEST_SUITE("SingleAxisPriorityListTestSuite")
16{
17 TEST_CASE("SingleAxisPriorityListTest")
18 {
19 std::vector<MemBlock> memBlocks = fsrcnn;
20
21 auto singleAxisPriorityList = std::make_shared<SingleAxisPriorityList>();
22
23 CHECK_EQ(singleAxisPriorityList->GetName(), std::string("SingleAxisPriorityList"));
24 CHECK_EQ(singleAxisPriorityList->GetMemBlockStrategyType(), MemBlockStrategyType::SingleAxisPacking);
25
26 StrategyValidator validator;
27 validator.SetStrategy(singleAxisPriorityList);
28
29 std::vector<MemBin> memBins;
30
31 CHECK_NOTHROW(memBins = validator.Optimize(memBlocks));
32
33 size_t minMemSize = GetMinPossibleMemorySize(memBlocks);
34 size_t actualSize = 0;
35 for (auto memBin : memBins)
36 {
37 actualSize += memBin.m_MemSize;
38 }
39
40 CHECK(minMemSize == actualSize);
41 }
42}