ArmNN
 20.02
TestUtils.hpp File Reference
#include <armnn/INetwork.hpp>
#include <Graph.hpp>

Go to the source code of this file.

Functions

void Connect (armnn::IConnectableLayer *from, armnn::IConnectableLayer *to, const armnn::TensorInfo &tensorInfo, unsigned int fromIndex=0, unsigned int toIndex=0)
 
template<typename LayerT >
bool IsLayerOfType (const armnn::Layer *const layer)
 
bool CheckSequence (const armnn::Graph::ConstIterator first, const armnn::Graph::ConstIterator last)
 
template<typename U , typename... Us>
bool CheckSequence (const armnn::Graph::ConstIterator first, const armnn::Graph::ConstIterator last, U &&u, Us &&... us)
 Checks each unary function in Us evaluates true for each correspondent layer in the sequence [first, last). More...
 
template<typename LayerT >
bool CheckRelatedLayers (armnn::Graph &graph, const std::list< std::string > &testRelatedLayers)
 

Function Documentation

◆ CheckRelatedLayers()

bool CheckRelatedLayers ( armnn::Graph graph,
const std::list< std::string > &  testRelatedLayers 
)

Definition at line 33 of file TestUtils.hpp.

34 {
35  for (auto& layer : graph)
36  {
37  if (layer->GetType() == armnn::LayerEnumOf<LayerT>())
38  {
39  auto& relatedLayers = layer->GetRelatedLayerNames();
40  if (!std::equal(relatedLayers.begin(), relatedLayers.end(), testRelatedLayers.begin(),
41  testRelatedLayers.end()))
42  {
43  return false;
44  }
45  }
46  }
47 
48  return true;
49 }

◆ CheckSequence() [1/2]

bool CheckSequence ( const armnn::Graph::ConstIterator  first,
const armnn::Graph::ConstIterator  last 
)
inline

Definition at line 20 of file TestUtils.hpp.

Referenced by BOOST_AUTO_TEST_CASE(), and CheckSequence().

21 {
22  return (first == last);
23 }

◆ CheckSequence() [2/2]

bool CheckSequence ( const armnn::Graph::ConstIterator  first,
const armnn::Graph::ConstIterator  last,
U &&  u,
Us &&...  us 
)

Checks each unary function in Us evaluates true for each correspondent layer in the sequence [first, last).

Definition at line 27 of file TestUtils.hpp.

References CheckSequence().

28 {
29  return u(*first) && CheckSequence(std::next(first), last, us...);
30 }
bool CheckSequence(const armnn::Graph::ConstIterator first, const armnn::Graph::ConstIterator last)
Definition: TestUtils.hpp:20

◆ Connect()

void Connect ( armnn::IConnectableLayer from,
armnn::IConnectableLayer to,
const armnn::TensorInfo tensorInfo,
unsigned int  fromIndex = 0,
unsigned int  toIndex = 0 
)

Definition at line 12 of file TestUtils.cpp.

References IOutputSlot::Connect(), IConnectableLayer::GetInputSlot(), IConnectableLayer::GetOutputSlot(), and IOutputSlot::SetTensorInfo().

Referenced by BOOST_AUTO_TEST_CASE(), OutputSlot::Connect(), CreatePreluLayerHelper(), CreateStackLayerHelper(), OutputSlot::GetOutputHandler(), CaffeParserBase::ParseBatchNormLayer(), CaffeParserBase::ParseEltwiseLayer(), CaffeParserBase::ParseInnerProductLayer(), CaffeParserBase::ParseLRNLayer(), CaffeParserBase::ParsePoolingLayer(), CaffeParserBase::ParseReluLayer(), CaffeParserBase::ParseScaleLayer(), and CaffeParserBase::ParseSoftmaxLayer().

14 {
15  BOOST_ASSERT(from);
16  BOOST_ASSERT(to);
17 
18  from->GetOutputSlot(fromIndex).Connect(to->GetInputSlot(toIndex));
19  from->GetOutputSlot(fromIndex).SetTensorInfo(tensorInfo);
20 }
virtual void SetTensorInfo(const TensorInfo &tensorInfo)=0
virtual const IInputSlot & GetInputSlot(unsigned int index) const =0
Get a const input slot handle by slot index.
virtual const IOutputSlot & GetOutputSlot(unsigned int index) const =0
Get the const output slot handle by slot index.
virtual int Connect(IInputSlot &destination)=0

◆ IsLayerOfType()

bool IsLayerOfType ( const armnn::Layer *const  layer)

Definition at line 15 of file TestUtils.hpp.

References Layer::GetType().

16 {
17  return (layer->GetType() == armnn::LayerEnumOf<LayerT>());
18 }
LayerType GetType() const
Definition: Layer.hpp:259