ArmNN
 20.11
LoadModel.cpp File Reference
#include <boost/test/unit_test.hpp>
#include "ParserFlatbuffersFixture.hpp"
#include "../TfLiteParser.hpp"
#include <Filesystem.hpp>

Go to the source code of this file.

Typedefs

using ModelPtr = TfLiteParser::ModelPtr
 
using SubgraphPtr = TfLiteParser::SubgraphPtr
 
using OperatorPtr = TfLiteParser::OperatorPtr
 

Functions

 BOOST_FIXTURE_TEST_CASE (LoadModelFromBinary, LoadModelFixture)
 
 BOOST_FIXTURE_TEST_CASE (LoadModelFromFile, LoadModelFixture)
 
 BOOST_AUTO_TEST_CASE (LoadNullBinary)
 
 BOOST_AUTO_TEST_CASE (LoadInvalidBinary)
 
 BOOST_AUTO_TEST_CASE (LoadFileNotFound)
 
 BOOST_AUTO_TEST_CASE (LoadNullPtrFile)
 

Typedef Documentation

◆ ModelPtr

using ModelPtr = TfLiteParser::ModelPtr

Definition at line 12 of file LoadModel.cpp.

◆ OperatorPtr

using OperatorPtr = TfLiteParser::OperatorPtr

Definition at line 14 of file LoadModel.cpp.

◆ SubgraphPtr

using SubgraphPtr = TfLiteParser::SubgraphPtr

Definition at line 13 of file LoadModel.cpp.

Function Documentation

◆ BOOST_AUTO_TEST_CASE() [1/4]

BOOST_AUTO_TEST_CASE ( LoadNullBinary  )

Definition at line 220 of file LoadModel.cpp.

221 {
222  BOOST_CHECK_THROW(TfLiteParser::LoadModelFromBinary(nullptr, 0), armnn::InvalidArgumentException);
223 }

◆ BOOST_AUTO_TEST_CASE() [2/4]

BOOST_AUTO_TEST_CASE ( LoadInvalidBinary  )

Definition at line 225 of file LoadModel.cpp.

226 {
227  std::string testData = "invalid data";
228  BOOST_CHECK_THROW(TfLiteParser::LoadModelFromBinary(reinterpret_cast<const uint8_t*>(&testData),
229  testData.length()), armnn::ParseException);
230 }

◆ BOOST_AUTO_TEST_CASE() [3/4]

BOOST_AUTO_TEST_CASE ( LoadFileNotFound  )

Definition at line 232 of file LoadModel.cpp.

233 {
234  BOOST_CHECK_THROW(TfLiteParser::LoadModelFromFile("invalidfile.tflite"), armnn::FileNotFoundException);
235 }

◆ BOOST_AUTO_TEST_CASE() [4/4]

BOOST_AUTO_TEST_CASE ( LoadNullPtrFile  )

Definition at line 237 of file LoadModel.cpp.

References BOOST_AUTO_TEST_SUITE_END().

238 {
239  BOOST_CHECK_THROW(TfLiteParser::LoadModelFromFile(nullptr), armnn::InvalidArgumentException);
240 }

◆ BOOST_FIXTURE_TEST_CASE() [1/2]

BOOST_FIXTURE_TEST_CASE ( LoadModelFromBinary  ,
LoadModelFixture   
)

Definition at line 186 of file LoadModel.cpp.

187 {
188  TfLiteParser::ModelPtr model = TfLiteParser::LoadModelFromBinary(m_GraphBinary.data(), m_GraphBinary.size());
189  CheckModel(model, 3, 2, { tflite::BuiltinOperator_AVERAGE_POOL_2D, tflite::BuiltinOperator_CONV_2D },
190  2, "Test loading a model", 2);
191  CheckSubgraph(model->subgraphs[0], 2, { 1 }, { 0 }, 1, "");
192  CheckSubgraph(model->subgraphs[1], 3, { 0 }, { 1 }, 1, "");
193  CheckOperator(model->subgraphs[0]->operators[0], 0, { 1 }, { 0 }, tflite::BuiltinOptions_Pool2DOptions,
194  tflite::CustomOptionsFormat_FLEXBUFFERS);
195  CheckOperator(model->subgraphs[1]->operators[0], 1, { 0, 2 }, { 1 }, tflite::BuiltinOptions_Conv2DOptions,
196  tflite::CustomOptionsFormat_FLEXBUFFERS);
197 }
TfLiteParser::ModelPtr ModelPtr
Definition: LoadModel.cpp:12

◆ BOOST_FIXTURE_TEST_CASE() [2/2]

BOOST_FIXTURE_TEST_CASE ( LoadModelFromFile  ,
LoadModelFixture   
)

Definition at line 199 of file LoadModel.cpp.

References armnnUtils::Filesystem::NamedTempFile().

200 {
201  using namespace fs;
202  fs::path fname = armnnUtils::Filesystem::NamedTempFile("Armnn-tfLite-LoadModelFromFile-TempFile.csv");
203  bool saved = flatbuffers::SaveFile(fname.c_str(),
204  reinterpret_cast<char *>(m_GraphBinary.data()),
205  m_GraphBinary.size(), true);
206  BOOST_CHECK_MESSAGE(saved, "Cannot save test file");
207 
208  TfLiteParser::ModelPtr model = TfLiteParser::LoadModelFromFile(fname.c_str());
209  CheckModel(model, 3, 2, { tflite::BuiltinOperator_AVERAGE_POOL_2D, tflite::BuiltinOperator_CONV_2D },
210  2, "Test loading a model", 2);
211  CheckSubgraph(model->subgraphs[0], 2, { 1 }, { 0 }, 1, "");
212  CheckSubgraph(model->subgraphs[1], 3, { 0 }, { 1 }, 1, "");
213  CheckOperator(model->subgraphs[0]->operators[0], 0, { 1 }, { 0 }, tflite::BuiltinOptions_Pool2DOptions,
214  tflite::CustomOptionsFormat_FLEXBUFFERS);
215  CheckOperator(model->subgraphs[1]->operators[0], 1, { 0, 2 }, { 1 }, tflite::BuiltinOptions_Conv2DOptions,
216  tflite::CustomOptionsFormat_FLEXBUFFERS);
217  remove(fname);
218 }
TfLiteParser::ModelPtr ModelPtr
Definition: LoadModel.cpp:12
fs::path NamedTempFile(const char *fileName)
Construct a temporary file name.
Definition: Filesystem.cpp:23