<!-- 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/Unsupported.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('_unsupported_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">Unsupported.cpp File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><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;<a class="el" href="_layer_visitor_base_8hpp_source.xhtml">armnn/LayerVisitorBase.hpp</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="_stand_in_layer_8hpp_source.xhtml">layers/StandInLayer.hpp</a>&gt;</code><br />
<code>#include &lt;boost/assert.hpp&gt;</code><br />
<code>#include &lt;boost/polymorphic_cast.hpp&gt;</code><br />
<code>#include &lt;boost/test/unit_test.hpp&gt;</code><br />
<code>#include &lt;sstream&gt;</code><br />
<code>#include &lt;string&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
</div>
<p><a href="_unsupported_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:aae7fa857598a8590c2efe13832774dc9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_unsupported_8cpp.xhtml#aae7fa857598a8590c2efe13832774dc9">BOOST_FIXTURE_TEST_CASE</a> (UnsupportedCustomOperator1Input1Output, DummyCustom1Input1OutputFixture)</td></tr>
<tr class="separator:aae7fa857598a8590c2efe13832774dc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa79dc79c1094831a55a21fbb8d4c12f5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_unsupported_8cpp.xhtml#aa79dc79c1094831a55a21fbb8d4c12f5">BOOST_FIXTURE_TEST_CASE</a> (UnsupportedCustomOperator2Inputs1Output, DummyCustom2Inputs1OutputFixture)</td></tr>
<tr class="separator:aa79dc79c1094831a55a21fbb8d4c12f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a id="aae7fa857598a8590c2efe13832774dc9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aae7fa857598a8590c2efe13832774dc9">&#9670;&nbsp;</a></span>BOOST_FIXTURE_TEST_CASE() <span class="overload">[1/2]</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">UnsupportedCustomOperator1Input1Output&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DummyCustom1Input1OutputFixture&#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="_unsupported_8cpp_source.xhtml#l00239">239</a> of file <a class="el" href="_unsupported_8cpp_source.xhtml">Unsupported.cpp</a>.</p>

<p class="reference">References <a class="el" href="_network_execution_utils_8hpp_source.xhtml#l00537">RunTest()</a>.</p>
<div class="fragment"><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;{</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    <a class="code" href="_network_execution_utils_8hpp.xhtml#ab182729acbd2161a0358d85906d30703">RunTest</a>();</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;}</div><div class="ttc" id="_network_execution_utils_8hpp_xhtml_ab182729acbd2161a0358d85906d30703"><div class="ttname"><a href="_network_execution_utils_8hpp.xhtml#ab182729acbd2161a0358d85906d30703">RunTest</a></div><div class="ttdeci">int RunTest(const std::string &amp;format, const std::string &amp;inputTensorShapesStr, const vector&lt; armnn::BackendId &gt; &amp;computeDevices, const std::string &amp;dynamicBackendsPath, const std::string &amp;path, const std::string &amp;inputNames, const std::string &amp;inputTensorDataFilePaths, const std::string &amp;inputTypes, bool quantizeInput, const std::string &amp;outputTypes, const std::string &amp;outputNames, const std::string &amp;outputTensorFiles, bool dequantizeOuput, bool enableProfiling, bool enableFp16TurboMode, const double &amp;thresholdTime, bool printIntermediate, const size_t subgraphId, bool enableLayerDetails=false, bool parseUnsupported=false, const std::shared_ptr&lt; armnn::IRuntime &gt; &amp;runtime=nullptr)</div><div class="ttdef"><b>Definition:</b> <a href="_network_execution_utils_8hpp_source.xhtml#l00537">NetworkExecutionUtils.hpp:537</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="aa79dc79c1094831a55a21fbb8d4c12f5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa79dc79c1094831a55a21fbb8d4c12f5">&#9670;&nbsp;</a></span>BOOST_FIXTURE_TEST_CASE() <span class="overload">[2/2]</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">UnsupportedCustomOperator2Inputs1Output&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DummyCustom2Inputs1OutputFixture&#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="_unsupported_8cpp_source.xhtml#l00244">244</a> of file <a class="el" href="_unsupported_8cpp_source.xhtml">Unsupported.cpp</a>.</p>

<p class="reference">References <a class="el" href="_profiler_tests_8cpp.xhtml#af7f71af5c6c124222dd1c42c5df892f4">BOOST_AUTO_TEST_SUITE_END()</a>, and <a class="el" href="_network_execution_utils_8hpp_source.xhtml#l00537">RunTest()</a>.</p>
<div class="fragment"><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;{</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;    <a class="code" href="_network_execution_utils_8hpp.xhtml#ab182729acbd2161a0358d85906d30703">RunTest</a>();</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;}</div><div class="ttc" id="_network_execution_utils_8hpp_xhtml_ab182729acbd2161a0358d85906d30703"><div class="ttname"><a href="_network_execution_utils_8hpp.xhtml#ab182729acbd2161a0358d85906d30703">RunTest</a></div><div class="ttdeci">int RunTest(const std::string &amp;format, const std::string &amp;inputTensorShapesStr, const vector&lt; armnn::BackendId &gt; &amp;computeDevices, const std::string &amp;dynamicBackendsPath, const std::string &amp;path, const std::string &amp;inputNames, const std::string &amp;inputTensorDataFilePaths, const std::string &amp;inputTypes, bool quantizeInput, const std::string &amp;outputTypes, const std::string &amp;outputNames, const std::string &amp;outputTensorFiles, bool dequantizeOuput, bool enableProfiling, bool enableFp16TurboMode, const double &amp;thresholdTime, bool printIntermediate, const size_t subgraphId, bool enableLayerDetails=false, bool parseUnsupported=false, const std::shared_ptr&lt; armnn::IRuntime &gt; &amp;runtime=nullptr)</div><div class="ttdef"><b>Definition:</b> <a href="_network_execution_utils_8hpp_source.xhtml#l00537">NetworkExecutionUtils.hpp:537</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="_unsupported_8cpp.xhtml">Unsupported.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>
