ArmNN
 21.02
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 = TfLiteParserImpl::ModelPtr
 
using SubgraphPtr = TfLiteParserImpl::SubgraphPtr
 
using OperatorPtr = TfLiteParserImpl::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 = TfLiteParserImpl::ModelPtr

Definition at line 12 of file LoadModel.cpp.

◆ OperatorPtr

using OperatorPtr = TfLiteParserImpl::OperatorPtr

Definition at line 14 of file LoadModel.cpp.

◆ SubgraphPtr

using SubgraphPtr = TfLiteParserImpl::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 221 of file LoadModel.cpp.

222 {
223  BOOST_CHECK_THROW(TfLiteParserImpl::LoadModelFromBinary(nullptr, 0), armnn::InvalidArgumentException);
224 }

◆ BOOST_AUTO_TEST_CASE() [2/4]

BOOST_AUTO_TEST_CASE ( LoadInvalidBinary  )

Definition at line 226 of file LoadModel.cpp.

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

◆ BOOST_AUTO_TEST_CASE() [3/4]

BOOST_AUTO_TEST_CASE ( LoadFileNotFound  )

Definition at line 233 of file LoadModel.cpp.

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

◆ BOOST_AUTO_TEST_CASE() [4/4]

BOOST_AUTO_TEST_CASE ( LoadNullPtrFile  )

Definition at line 238 of file LoadModel.cpp.

References BOOST_AUTO_TEST_SUITE_END().

239 {
240  BOOST_CHECK_THROW(TfLiteParserImpl::LoadModelFromFile(nullptr), armnn::InvalidArgumentException);
241 }

◆ BOOST_FIXTURE_TEST_CASE() [1/2]

BOOST_FIXTURE_TEST_CASE ( LoadModelFromBinary  ,
LoadModelFixture   
)

Definition at line 186 of file LoadModel.cpp.

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

◆ BOOST_FIXTURE_TEST_CASE() [2/2]

BOOST_FIXTURE_TEST_CASE ( LoadModelFromFile  ,
LoadModelFixture   
)

Definition at line 200 of file LoadModel.cpp.

References armnnUtils::Filesystem::NamedTempFile().

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