<!-- Copyright (c) 2020 ARM Limited. -->
<!--                                 -->
<!-- SPDX-License-Identifier: MIT    -->
<!--                                 -->
<!-- HTML header for doxygen 1.8.13-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="robots" content="NOINDEX, NOFOLLOW" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ArmNN: src/armnnTfLiteParser/test/GetBuffer.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <img alt="ArmNN" src="Arm_NN_horizontal_blue.png" style="max-width: 10rem; margin-top: .5rem; margin-left 10px"/>
  <td style="padding-left: 0.5em;">
   <div id="projectname">
   &#160;<span id="projectnumber">20.02</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('_get_buffer_8cpp.xhtml','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">GetBuffer.cpp File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;boost/test/unit_test.hpp&gt;</code><br />
<code>#include &quot;<a class="el" href="_parser_flatbuffers_fixture_8hpp_source.xhtml">ParserFlatbuffersFixture.hpp</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_tf_lite_parser_8hpp_source.xhtml">../TfLiteParser.hpp</a>&quot;</code><br />
<code>#include &lt;sstream&gt;</code><br />
</div>
<p><a href="_get_buffer_8cpp_source.xhtml">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:af87012670e69967ce447ca7759c693e3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_get_buffer_8cpp.xhtml#af87012670e69967ce447ca7759c693e3">BOOST_FIXTURE_TEST_CASE</a> (GetBufferCheckContents, GetBufferFixture)</td></tr>
<tr class="separator:af87012670e69967ce447ca7759c693e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99750ddf30b6f89b65d2ed5243e28788"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_get_buffer_8cpp.xhtml#a99750ddf30b6f89b65d2ed5243e28788">BOOST_FIXTURE_TEST_CASE</a> (GetBufferCheckEmpty, GetBufferFixture)</td></tr>
<tr class="separator:a99750ddf30b6f89b65d2ed5243e28788"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa688c8d353b16bc274ff4b5f361becb6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_get_buffer_8cpp.xhtml#aa688c8d353b16bc274ff4b5f361becb6">BOOST_FIXTURE_TEST_CASE</a> (GetBufferCheckParseException, GetBufferFixture)</td></tr>
<tr class="separator:aa688c8d353b16bc274ff4b5f361becb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a id="af87012670e69967ce447ca7759c693e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af87012670e69967ce447ca7759c693e3">&#9670;&nbsp;</a></span>BOOST_FIXTURE_TEST_CASE() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">BOOST_FIXTURE_TEST_CASE </td>
          <td>(</td>
          <td class="paramtype">GetBufferCheckContents&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GetBufferFixture&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_get_buffer_8cpp_source.xhtml#l00101">101</a> of file <a class="el" href="_get_buffer_8cpp_source.xhtml">GetBuffer.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;{</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    <span class="comment">//Check contents of buffer are correct</span></div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    <a class="code" href="namespacearmnn_onnx_parser.xhtml#a503ae4f55dae1486e53978657083b35d">TfLiteParser::ModelPtr</a> model = TfLiteParser::LoadModelFromBinary(m_GraphBinary.data(), m_GraphBinary.size());</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    std::vector&lt;int32_t&gt; bufferValues = {2,1,0,6,2,1,4,1,2};</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    CheckBufferContents(model, bufferValues, 2);</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;}</div><div class="ttc" id="namespacearmnn_onnx_parser_xhtml_a503ae4f55dae1486e53978657083b35d"><div class="ttname"><a href="namespacearmnn_onnx_parser.xhtml#a503ae4f55dae1486e53978657083b35d">armnnOnnxParser::ModelPtr</a></div><div class="ttdeci">std::unique_ptr&lt; onnx::ModelProto &gt; ModelPtr</div><div class="ttdef"><b>Definition:</b> <a href="_onnx_parser_8hpp_source.xhtml#l00023">OnnxParser.hpp:23</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a99750ddf30b6f89b65d2ed5243e28788"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a99750ddf30b6f89b65d2ed5243e28788">&#9670;&nbsp;</a></span>BOOST_FIXTURE_TEST_CASE() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">BOOST_FIXTURE_TEST_CASE </td>
          <td>(</td>
          <td class="paramtype">GetBufferCheckEmpty&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GetBufferFixture&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_get_buffer_8cpp_source.xhtml#l00109">109</a> of file <a class="el" href="_get_buffer_8cpp_source.xhtml">GetBuffer.cpp</a>.</p>

<p class="reference">References <a class="el" href="_file_only_profiling_decorator_tests_8cpp.xhtml#a0c262ba6f6c189a2d092d127c1b7627b">BOOST_CHECK()</a>.</p>
<div class="fragment"><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;{</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    <span class="comment">//Check if test fixture buffers are empty or not</span></div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    <a class="code" href="namespacearmnn_onnx_parser.xhtml#a503ae4f55dae1486e53978657083b35d">TfLiteParser::ModelPtr</a> model = TfLiteParser::LoadModelFromBinary(m_GraphBinary.data(), m_GraphBinary.size());</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    <a class="code" href="_file_only_profiling_decorator_tests_8cpp.xhtml#a0c262ba6f6c189a2d092d127c1b7627b">BOOST_CHECK</a>(TfLiteParser::GetBuffer(model, 0)-&gt;data.empty());</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <a class="code" href="_file_only_profiling_decorator_tests_8cpp.xhtml#a0c262ba6f6c189a2d092d127c1b7627b">BOOST_CHECK</a>(TfLiteParser::GetBuffer(model, 1)-&gt;data.empty());</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    <a class="code" href="_file_only_profiling_decorator_tests_8cpp.xhtml#a0c262ba6f6c189a2d092d127c1b7627b">BOOST_CHECK</a>(!TfLiteParser::GetBuffer(model, 2)-&gt;data.empty());</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <a class="code" href="_file_only_profiling_decorator_tests_8cpp.xhtml#a0c262ba6f6c189a2d092d127c1b7627b">BOOST_CHECK</a>(TfLiteParser::GetBuffer(model, 3)-&gt;data.empty());</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;}</div><div class="ttc" id="_file_only_profiling_decorator_tests_8cpp_xhtml_a0c262ba6f6c189a2d092d127c1b7627b"><div class="ttname"><a href="_file_only_profiling_decorator_tests_8cpp.xhtml#a0c262ba6f6c189a2d092d127c1b7627b">BOOST_CHECK</a></div><div class="ttdeci">BOOST_CHECK(profilingService.GetCurrentState()==ProfilingState::WaitingForAck)</div></div>
<div class="ttc" id="namespacearmnn_onnx_parser_xhtml_a503ae4f55dae1486e53978657083b35d"><div class="ttname"><a href="namespacearmnn_onnx_parser.xhtml#a503ae4f55dae1486e53978657083b35d">armnnOnnxParser::ModelPtr</a></div><div class="ttdeci">std::unique_ptr&lt; onnx::ModelProto &gt; ModelPtr</div><div class="ttdef"><b>Definition:</b> <a href="_onnx_parser_8hpp_source.xhtml#l00023">OnnxParser.hpp:23</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="aa688c8d353b16bc274ff4b5f361becb6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa688c8d353b16bc274ff4b5f361becb6">&#9670;&nbsp;</a></span>BOOST_FIXTURE_TEST_CASE() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">BOOST_FIXTURE_TEST_CASE </td>
          <td>(</td>
          <td class="paramtype">GetBufferCheckParseException&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GetBufferFixture&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_get_buffer_8cpp_source.xhtml#l00119">119</a> of file <a class="el" href="_get_buffer_8cpp_source.xhtml">GetBuffer.cpp</a>.</p>

<p class="reference">References <a class="el" href="_profiler_tests_8cpp.xhtml#af7f71af5c6c124222dd1c42c5df892f4">BOOST_AUTO_TEST_SUITE_END()</a>.</p>
<div class="fragment"><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;{</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    <span class="comment">//Check if armnn::ParseException thrown when invalid buffer index used</span></div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    <a class="code" href="namespacearmnn_onnx_parser.xhtml#a503ae4f55dae1486e53978657083b35d">TfLiteParser::ModelPtr</a> model = TfLiteParser::LoadModelFromBinary(m_GraphBinary.data(), m_GraphBinary.size());</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    BOOST_CHECK_THROW(TfLiteParser::GetBuffer(model, 4)-&gt;data.empty(), <a class="code" href="classarmnn_1_1_exception.xhtml">armnn::Exception</a>);</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;}</div><div class="ttc" id="namespacearmnn_onnx_parser_xhtml_a503ae4f55dae1486e53978657083b35d"><div class="ttname"><a href="namespacearmnn_onnx_parser.xhtml#a503ae4f55dae1486e53978657083b35d">armnnOnnxParser::ModelPtr</a></div><div class="ttdeci">std::unique_ptr&lt; onnx::ModelProto &gt; ModelPtr</div><div class="ttdef"><b>Definition:</b> <a href="_onnx_parser_8hpp_source.xhtml#l00023">OnnxParser.hpp:23</a></div></div>
<div class="ttc" id="classarmnn_1_1_exception_xhtml"><div class="ttname"><a href="classarmnn_1_1_exception.xhtml">armnn::Exception</a></div><div class="ttdoc">Base class for all ArmNN exceptions so that users can filter to just those. </div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00046">Exceptions.hpp:46</a></div></div>
</div><!-- fragment -->
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.xhtml">src</a></li><li class="navelem"><a class="el" href="dir_510324e450b9df55f9aac2d01fae83d8.xhtml">armnnTfLiteParser</a></li><li class="navelem"><a class="el" href="dir_6d8d07609c57029a35488d2120e28fbd.xhtml">test</a></li><li class="navelem"><a class="el" href="_get_buffer_8cpp.xhtml">GetBuffer.cpp</a></li>
    <li class="footer">Generated on Fri Mar 13 2020 16:09:14 for ArmNN by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>
