• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #include <TestUtils.hpp>
7 
8 #include <Optimizer.hpp>
9 
10 #include <doctest/doctest.h>
11 
12 TEST_SUITE("Optimizer")
13 {
14 using namespace armnn::optimizations;
15 
16 TEST_CASE("InsertDebugOptimizationTest")
17 {
18     armnn::Graph graph;
19 
20     const armnn::TensorInfo info({ 2, 2, 1, 3 }, armnn::DataType::Float32);
21 
22     // Create the simple test network
23     auto input = graph.AddLayer<armnn::InputLayer>(0, "input");
24     input->GetOutputSlot().SetTensorInfo(info);
25 
26     auto floor = graph.AddLayer<armnn::FloorLayer>("floor");
27     floor->GetOutputSlot().SetTensorInfo(info);
28 
29     auto output = graph.AddLayer<armnn::OutputLayer>(1, "output");
30 
31     // Connect up the layers
32     input->GetOutputSlot().Connect(floor->GetInputSlot(0));
33     floor->GetOutputSlot().Connect(output->GetInputSlot(0));
34 
35     CHECK(CheckSequence(graph.cbegin(), graph.cend(), &IsLayerOfType<armnn::InputLayer>,
36                              &IsLayerOfType<armnn::FloorLayer>, &IsLayerOfType<armnn::OutputLayer>));
37 
38     // Run the optimizer
39     armnn::Optimizer::Pass(graph, armnn::MakeOptimizations(InsertDebugLayer()));
40 
41     CHECK(CheckSequence(graph.cbegin(), graph.cend(), &IsLayerOfType<armnn::InputLayer>,
42                              &IsLayerOfType<armnn::DebugLayer>, &IsLayerOfType<armnn::FloorLayer>,
43                              &IsLayerOfType<armnn::DebugLayer>, &IsLayerOfType<armnn::OutputLayer>));
44 }
45 
46 }