ArmNN
 20.11
Assert.cpp File Reference
#include "armnnTfParser/ITfParser.hpp"
#include "ParserPrototxtFixture.hpp"
#include "test/GraphUtils.hpp"
#include <armnn/utility/PolymorphicDowncast.hpp>
#include <boost/test/unit_test.hpp>

Go to the source code of this file.

Functions

 BOOST_FIXTURE_TEST_CASE (AssertSimpleTest, AssertSimpleFixture)
 
 BOOST_FIXTURE_TEST_CASE (AssertSimpleGraphStructureTest, AssertSimpleFixture)
 
 BOOST_FIXTURE_TEST_CASE (AssertTest, AssertFixture)
 
 BOOST_FIXTURE_TEST_CASE (AssertGraphStructureTest, AssertFixture)
 

Function Documentation

◆ BOOST_FIXTURE_TEST_CASE() [1/4]

BOOST_FIXTURE_TEST_CASE ( AssertSimpleTest  ,
AssertSimpleFixture   
)

Definition at line 95 of file Assert.cpp.

References ParserPrototxtFixture< TParser >::SetupSingleInputSingleOutput().

96 {
97  SetupSingleInputSingleOutput({ 1, 1, 1, 4 }, "Placeholder", "Add");
98  RunTest<4>({ 1.0f, 2.0f, 3.0f, 4.0f }, { 2.0f, 4.0f, 6.0f, 8.0f });
99 }

◆ BOOST_FIXTURE_TEST_CASE() [2/4]

BOOST_FIXTURE_TEST_CASE ( AssertSimpleGraphStructureTest  ,
AssertSimpleFixture   
)

Definition at line 101 of file Assert.cpp.

References armnn::Addition, CheckNumberOfInputSlot(), CheckNumberOfOutputSlot(), armnn::Float32, GetFirstLayerWithName(), Layer::GetType(), armnn::Input, IsConnected(), and ParserPrototxtFixture< TParser >::SetupOptimizedNetwork().

102 {
103  auto optimized = SetupOptimizedNetwork({ { "Placeholder", { 1, 1, 1, 4 } } }, { "Add" });
104 
105  auto optimizedNetwork = armnn::PolymorphicDowncast<armnn::OptimizedNetwork*>(optimized.get());
106  auto graph = optimizedNetwork->GetGraph();
107 
108  BOOST_TEST((graph.GetNumInputs() == 1));
109  BOOST_TEST((graph.GetNumOutputs() == 1));
110  BOOST_TEST((graph.GetNumLayers() == 3));
111 
112  armnn::Layer* inputLayer = GetFirstLayerWithName(graph, "Placeholder");
113  BOOST_TEST((inputLayer->GetType() == armnn::LayerType::Input));
114  BOOST_TEST(CheckNumberOfInputSlot(inputLayer, 0));
115  BOOST_TEST(CheckNumberOfOutputSlot(inputLayer, 1));
116 
117  armnn::Layer* addLayer = GetFirstLayerWithName(graph, "Add");
118  BOOST_TEST((addLayer->GetType() == armnn::LayerType::Addition));
119  BOOST_TEST(CheckNumberOfInputSlot(addLayer, 2));
120  BOOST_TEST(CheckNumberOfOutputSlot(addLayer, 1));
121 
123  BOOST_TEST(IsConnected(inputLayer, addLayer, 0, 0, tensorInfo));
124  BOOST_TEST(IsConnected(inputLayer, addLayer, 0, 1, tensorInfo));
125 
126  for (auto&& outputLayer : graph.GetOutputLayers())
127  {
128  BOOST_TEST(IsConnected(addLayer, const_cast<armnn::OutputLayer*>(outputLayer), 0, 0, tensorInfo));
129  }
130 }
armnn::Layer * GetFirstLayerWithName(armnn::Graph &graph, const std::string &name)
Definition: GraphUtils.cpp:22
bool IsConnected(armnn::Layer *srcLayer, armnn::Layer *destLayer, unsigned int srcSlot, unsigned int destSlot, const armnn::TensorInfo &expectedTensorInfo)
Definition: GraphUtils.cpp:44
LayerType GetType() const
Definition: Layer.hpp:262
bool CheckNumberOfInputSlot(armnn::Layer *layer, unsigned int num)
Definition: GraphUtils.cpp:34
bool CheckNumberOfOutputSlot(armnn::Layer *layer, unsigned int num)
Definition: GraphUtils.cpp:39

◆ BOOST_FIXTURE_TEST_CASE() [3/4]

BOOST_FIXTURE_TEST_CASE ( AssertTest  ,
AssertFixture   
)

Definition at line 239 of file Assert.cpp.

240 {
241  Setup({ { "Input0", { 1, 1, 2, 2 } },
242  { "Input1", { 1, 1, 2, 2 } } },
243  { "Output" });
244 
245  RunTest<4>({ { "Input0", { 4.0f, 3.0f,
246  2.0f, 1.0f } },
247 
248  { "Input1", { 1.0f, 2.0f,
249  3.0f, 4.0f } } },
250 
251  { { "Output", { 7.0f, 4.0f,
252  1.0f, -2.0f } } });
253 }

◆ BOOST_FIXTURE_TEST_CASE() [4/4]

BOOST_FIXTURE_TEST_CASE ( AssertGraphStructureTest  ,
AssertFixture   
)

Definition at line 255 of file Assert.cpp.

References armnn::Addition, BOOST_AUTO_TEST_SUITE_END(), CheckNumberOfInputSlot(), CheckNumberOfOutputSlot(), armnn::Float32, GetFirstLayerWithName(), Layer::GetType(), armnn::Input, IsConnected(), and armnn::Subtraction.

256 {
257  auto optimized = SetupOptimizedNetwork({ { "Input0", { 1, 1, 2, 2 } },
258  { "Input1", { 1, 1, 2, 2 } } },
259  { "Output" });
260 
261  auto optimizedNetwork = armnn::PolymorphicDowncast<armnn::OptimizedNetwork*>(optimized.get());
262  auto graph = optimizedNetwork->GetGraph();
263 
264  BOOST_TEST((graph.GetNumInputs() == 2));
265  BOOST_TEST((graph.GetNumOutputs() == 1));
266  BOOST_TEST((graph.GetNumLayers() == 5));
267 
268  armnn::Layer* inputLayer0 = GetFirstLayerWithName(graph, "Input0");
269  BOOST_TEST((inputLayer0->GetType() == armnn::LayerType::Input));
270  BOOST_TEST(CheckNumberOfInputSlot(inputLayer0, 0));
271  BOOST_TEST(CheckNumberOfOutputSlot(inputLayer0, 1));
272 
273  armnn::Layer* inputLayer1 = GetFirstLayerWithName(graph, "Input1");
274  BOOST_TEST((inputLayer1->GetType() == armnn::LayerType::Input));
275  BOOST_TEST(CheckNumberOfInputSlot(inputLayer1, 0));
276  BOOST_TEST(CheckNumberOfOutputSlot(inputLayer1, 1));
277 
278  armnn::Layer* subLayer = GetFirstLayerWithName(graph, "Sub");
279  BOOST_TEST((subLayer->GetType() == armnn::LayerType::Subtraction));
280  BOOST_TEST(CheckNumberOfInputSlot(subLayer, 2));
281  BOOST_TEST(CheckNumberOfOutputSlot(subLayer, 1));
282 
283  armnn::Layer* addLayer = GetFirstLayerWithName(graph, "Output");
284  BOOST_TEST((addLayer->GetType() == armnn::LayerType::Addition));
285  BOOST_TEST(CheckNumberOfInputSlot(addLayer, 2));
286  BOOST_TEST(CheckNumberOfOutputSlot(addLayer, 1));
287 
289  BOOST_TEST(IsConnected(inputLayer0, subLayer, 0, 0, tensorInfo));
290  BOOST_TEST(IsConnected(inputLayer1, subLayer, 0, 1, tensorInfo));
291  BOOST_TEST(IsConnected(inputLayer0, addLayer, 0, 0, tensorInfo));
292  BOOST_TEST(IsConnected(subLayer, addLayer, 0, 1, tensorInfo));
293 
294  for (auto&& outputLayer : graph.GetOutputLayers())
295  {
296  BOOST_TEST(IsConnected(addLayer, const_cast<armnn::OutputLayer*>(outputLayer), 0, 0, tensorInfo));
297  }
298 }
armnn::Layer * GetFirstLayerWithName(armnn::Graph &graph, const std::string &name)
Definition: GraphUtils.cpp:22
bool IsConnected(armnn::Layer *srcLayer, armnn::Layer *destLayer, unsigned int srcSlot, unsigned int destSlot, const armnn::TensorInfo &expectedTensorInfo)
Definition: GraphUtils.cpp:44
LayerType GetType() const
Definition: Layer.hpp:262
bool CheckNumberOfInputSlot(armnn::Layer *layer, unsigned int num)
Definition: GraphUtils.cpp:34
bool CheckNumberOfOutputSlot(armnn::Layer *layer, unsigned int num)
Definition: GraphUtils.cpp:39