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 }