<!-- 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: YoloTestCaseProvider&lt; Model &gt; Class Template 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('class_yolo_test_case_provider.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="#pub-methods">Public Member Functions</a> &#124;
<a href="class_yolo_test_case_provider-members.xhtml">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">YoloTestCaseProvider&lt; Model &gt; Class Template Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="_yolo_inference_test_8hpp_source.xhtml">YoloInferenceTest.hpp</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for YoloTestCaseProvider&lt; Model &gt;:</div>
<div class="dyncontent">
 <div class="center">
  <img src="class_yolo_test_case_provider.png" usemap="#YoloTestCaseProvider_3C_20Model_20_3E_map" alt=""/>
  <map id="YoloTestCaseProvider_3C_20Model_20_3E_map" name="YoloTestCaseProvider_3C_20Model_20_3E_map">
<area href="classarmnn_1_1test_1_1_i_inference_test_case_provider.xhtml" alt="IInferenceTestCaseProvider" shape="rect" coords="0,0,198,24"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a4a2f48e18a4225a16bd42d57c0019b2e"><td class="memTemplParams" colspan="2">template&lt;typename TConstructModelCallable &gt; </td></tr>
<tr class="memitem:a4a2f48e18a4225a16bd42d57c0019b2e"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_yolo_test_case_provider.xhtml#a4a2f48e18a4225a16bd42d57c0019b2e">YoloTestCaseProvider</a> (TConstructModelCallable constructModel)</td></tr>
<tr class="separator:a4a2f48e18a4225a16bd42d57c0019b2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0afe329e01f054a13860244e24514041"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_yolo_test_case_provider.xhtml#a0afe329e01f054a13860244e24514041">AddCommandLineOptions</a> (boost::program_options::options_description &amp;<a class="el" href="_file_only_profiling_decorator_tests_8cpp.xhtml#a6560146509197f3e197d8d36f76c1347">options</a>) override</td></tr>
<tr class="separator:a0afe329e01f054a13860244e24514041"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3db0a72dcdf01942b66d4537087a931e"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_yolo_test_case_provider.xhtml#a3db0a72dcdf01942b66d4537087a931e">ProcessCommandLineOptions</a> (const <a class="el" href="structarmnn_1_1test_1_1_inference_test_options.xhtml">InferenceTestOptions</a> &amp;commonOptions) override</td></tr>
<tr class="separator:a3db0a72dcdf01942b66d4537087a931e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61a75d35706bb8dd986431ae6aec3440"><td class="memItemLeft" align="right" valign="top">virtual std::unique_ptr&lt; <a class="el" href="classarmnn_1_1test_1_1_i_inference_test_case.xhtml">IInferenceTestCase</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_yolo_test_case_provider.xhtml#a61a75d35706bb8dd986431ae6aec3440">GetTestCase</a> (unsigned int testCaseId) override</td></tr>
<tr class="separator:a61a75d35706bb8dd986431ae6aec3440"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classarmnn_1_1test_1_1_i_inference_test_case_provider"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classarmnn_1_1test_1_1_i_inference_test_case_provider')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classarmnn_1_1test_1_1_i_inference_test_case_provider.xhtml">IInferenceTestCaseProvider</a></td></tr>
<tr class="memitem:a63e4bc6c42594357e52b06e386b48d30 inherit pub_methods_classarmnn_1_1test_1_1_i_inference_test_case_provider"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1test_1_1_i_inference_test_case_provider.xhtml#a63e4bc6c42594357e52b06e386b48d30">~IInferenceTestCaseProvider</a> ()</td></tr>
<tr class="separator:a63e4bc6c42594357e52b06e386b48d30 inherit pub_methods_classarmnn_1_1test_1_1_i_inference_test_case_provider"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88bbd5a851f1148bf5a90db7779be261 inherit pub_methods_classarmnn_1_1test_1_1_i_inference_test_case_provider"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1test_1_1_i_inference_test_case_provider.xhtml#a88bbd5a851f1148bf5a90db7779be261">OnInferenceTestFinished</a> ()</td></tr>
<tr class="separator:a88bbd5a851f1148bf5a90db7779be261 inherit pub_methods_classarmnn_1_1test_1_1_i_inference_test_case_provider"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename Model&gt;<br />
class YoloTestCaseProvider&lt; Model &gt;</h3>


<p class="definition">Definition at line <a class="el" href="_yolo_inference_test_8hpp_source.xhtml#l00181">181</a> of file <a class="el" href="_yolo_inference_test_8hpp_source.xhtml">YoloInferenceTest.hpp</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a4a2f48e18a4225a16bd42d57c0019b2e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4a2f48e18a4225a16bd42d57c0019b2e">&#9670;&nbsp;</a></span>YoloTestCaseProvider()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_yolo_test_case_provider.xhtml">YoloTestCaseProvider</a> </td>
          <td>(</td>
          <td class="paramtype">TConstructModelCallable&#160;</td>
          <td class="paramname"><em>constructModel</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_yolo_inference_test_8hpp_source.xhtml#l00185">185</a> of file <a class="el" href="_yolo_inference_test_8hpp_source.xhtml">YoloInferenceTest.hpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;        : m_ConstructModel(constructModel)</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;    {</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;    }</div></div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a0afe329e01f054a13860244e24514041"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0afe329e01f054a13860244e24514041">&#9670;&nbsp;</a></span>AddCommandLineOptions()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void AddCommandLineOptions </td>
          <td>(</td>
          <td class="paramtype">boost::program_options::options_description &amp;&#160;</td>
          <td class="paramname"><em>options</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Reimplemented from <a class="el" href="classarmnn_1_1test_1_1_i_inference_test_case_provider.xhtml#a27a71d8461ce2165add6978c34a625f1">IInferenceTestCaseProvider</a>.</p>

<p class="definition">Definition at line <a class="el" href="_yolo_inference_test_8hpp_source.xhtml#l00190">190</a> of file <a class="el" href="_yolo_inference_test_8hpp_source.xhtml">YoloInferenceTest.hpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    {</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;        <span class="keyword">namespace </span>po = boost::program_options;</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;        <a class="code" href="_file_only_profiling_decorator_tests_8cpp.xhtml#a6560146509197f3e197d8d36f76c1347">options</a>.add_options()</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;            (<span class="stringliteral">&quot;data-dir,d&quot;</span>, po::value&lt;std::string&gt;(&amp;m_DataDir)-&gt;required(),</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;                <span class="stringliteral">&quot;Path to directory containing test data&quot;</span>);</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;        Model::AddCommandLineOptions(<a class="code" href="_file_only_profiling_decorator_tests_8cpp.xhtml#a6560146509197f3e197d8d36f76c1347">options</a>, m_ModelCommandLineOptions);</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    }</div><div class="ttc" id="_file_only_profiling_decorator_tests_8cpp_xhtml_a6560146509197f3e197d8d36f76c1347"><div class="ttname"><a href="_file_only_profiling_decorator_tests_8cpp.xhtml#a6560146509197f3e197d8d36f76c1347">options</a></div><div class="ttdeci">armnn::Runtime::CreationOptions::ExternalProfilingOptions options</div><div class="ttdef"><b>Definition:</b> <a href="_file_only_profiling_decorator_tests_8cpp_source.xhtml#l00045">FileOnlyProfilingDecoratorTests.cpp:45</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a61a75d35706bb8dd986431ae6aec3440"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a61a75d35706bb8dd986431ae6aec3440">&#9670;&nbsp;</a></span>GetTestCase()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual std::unique_ptr&lt;<a class="el" href="classarmnn_1_1test_1_1_i_inference_test_case.xhtml">IInferenceTestCase</a>&gt; GetTestCase </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>testCaseId</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implements <a class="el" href="classarmnn_1_1test_1_1_i_inference_test_case_provider.xhtml#a04734602cd9aa5125174458128b3b418">IInferenceTestCaseProvider</a>.</p>

<p class="definition">Definition at line <a class="el" href="_yolo_inference_test_8hpp_source.xhtml#l00223">223</a> of file <a class="el" href="_yolo_inference_test_8hpp_source.xhtml">YoloInferenceTest.hpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;    {</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;        std::unique_ptr&lt;YoloTestCaseData&gt; testCaseData = m_Database-&gt;GetTestCaseData(testCaseId);</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;        <span class="keywordflow">if</span> (!testCaseData)</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;        {</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;        }</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;        <span class="keywordflow">return</span> std::make_unique&lt;YoloTestCase&lt;Model&gt;&gt;(*m_Model, testCaseId, *testCaseData);</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    }</div></div><!-- fragment -->
</div>
</div>
<a id="a3db0a72dcdf01942b66d4537087a931e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3db0a72dcdf01942b66d4537087a931e">&#9670;&nbsp;</a></span>ProcessCommandLineOptions()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool ProcessCommandLineOptions </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structarmnn_1_1test_1_1_inference_test_options.xhtml">InferenceTestOptions</a> &amp;&#160;</td>
          <td class="paramname"><em>commonOptions</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Reimplemented from <a class="el" href="classarmnn_1_1test_1_1_i_inference_test_case_provider.xhtml#a0b5cdedc222fce2b18000949f0699880">IInferenceTestCaseProvider</a>.</p>

<p class="definition">Definition at line <a class="el" href="_yolo_inference_test_8hpp_source.xhtml#l00201">201</a> of file <a class="el" href="_yolo_inference_test_8hpp_source.xhtml">YoloInferenceTest.hpp</a>.</p>

<p class="reference">References <a class="el" href="_inference_test_8cpp_source.xhtml#l00092">armnn::test::ValidateDirectory()</a>.</p>
<div class="fragment"><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    {</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;        <span class="keywordflow">if</span> (!<a class="code" href="namespacearmnn_1_1test.xhtml#a8a678fb3a8864e31aeb77f857ae6fc43">ValidateDirectory</a>(m_DataDir))</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;        {</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;        }</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;        m_Model = m_ConstructModel(commonOptions, m_ModelCommandLineOptions);</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;        <span class="keywordflow">if</span> (!m_Model)</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        {</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;        }</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;        m_Database = std::make_unique&lt;YoloDatabase&gt;(m_DataDir.c_str());</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;        <span class="keywordflow">if</span> (!m_Database)</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;        {</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;        }</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    }</div><div class="ttc" id="namespacearmnn_1_1test_xhtml_a8a678fb3a8864e31aeb77f857ae6fc43"><div class="ttname"><a href="namespacearmnn_1_1test.xhtml#a8a678fb3a8864e31aeb77f857ae6fc43">armnn::test::ValidateDirectory</a></div><div class="ttdeci">bool ValidateDirectory(std::string &amp;dir)</div><div class="ttdef"><b>Definition:</b> <a href="_inference_test_8cpp_source.xhtml#l00092">InferenceTest.cpp:92</a></div></div>
</div><!-- fragment -->
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>tests/<a class="el" href="_yolo_inference_test_8hpp_source.xhtml">YoloInferenceTest.hpp</a></li>
</ul>
</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="class_yolo_test_case_provider.xhtml">YoloTestCaseProvider</a></li>
    <li class="footer">Generated on Fri Mar 13 2020 16:09:16 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>
