72    std::vector<wxString> tests = { 
"vme-wren" };
 
   74    for( 
const wxString& relPath : tests )
 
   81        toolMgr.
SetEnvironment( m_board.get(), 
nullptr, 
nullptr, 
nullptr, toolsHolder );
 
   90        auto ruleData = mtTool->
GetData();
 
   93                                              static_cast<int>( ruleData->m_areas.size() ) ) );
 
   99        ruleData->m_replaceExisting = 
true;
 
  104                || ra.
m_sheetName == wxT( 
"pp_driver_2x.kicad_sch" ) )
 
  118        int n_areas_io = 0, n_areas_pp = 0, n_areas_other = 0;
 
  121                                              static_cast<int>(ruleData->m_areas.size() ) ) );
 
  123        for( 
const RULE_AREA& ra : ruleData->m_areas )
 
  127            if( ra.
m_ruleName.Contains( wxT( 
"io_drivers_fp" ) ) )
 
  132            else if( ra.
m_ruleName.Contains( wxT( 
"io_drivers_pp" ) ) )
 
  144                                              n_areas_io, n_areas_pp, n_areas_other ) );
 
  150        const std::vector<wxString> rulesToTest = { wxT( 
"io_drivers_fp" ),
 
  151                                                    wxT( 
"io_drivers_pp" ) };
 
  153        for( 
const wxString& ruleName : rulesToTest )
 
  155            for( 
const RULE_AREA& refArea : ruleData->m_areas )
 
  157                if( !refArea.
m_ruleName.Contains( ruleName ) )
 
  162                for( 
const RULE_AREA& targetArea : ruleData->m_areas )
 
  167                    if( !targetArea.
m_ruleName.Contains( ruleName ) )
 
  170                    auto cgRef = CONNECTION_GRAPH::BuildFromFootprintSet( refArea.
m_components );
 
  172                        CONNECTION_GRAPH::BuildFromFootprintSet( targetArea.
m_components );
 
  176                    CONNECTION_GRAPH::STATUS status =
 
  177                        cgRef->FindIsomorphism( cgTarget.get(), 
result );
 
  180                            "topo match: '%s' [%d] -> '%s' [%d] result %d",
 
  184                            static_cast<int>( targetArea.
m_components.size() ), status ) );
 
  186                    for( 
const auto& iter : 
result )
 
  189                                                              iter.second->GetReference(),
 
  190                                                              iter.first->GetReference() ) );
 
  200        BOOST_ASSERT( refArea );
 
  202        const std::vector<wxString> targetAreaNames( { wxT( 
"io_drivers_fp/bank2/io78/" ),
 
  203                                                       wxT( 
"io_drivers_fp/bank1/io78/" ),
 
  204                                                       wxT( 
"io_drivers_fp/bank0/io01/" ) } );
 
  206        for( 
const wxString& targetRaName : targetAreaNames )
 
  210            BOOST_ASSERT( targetRA != 
nullptr );
 
  214            ruleData->m_compatMap[targetRA].m_doCopy = 
true;
 
  219        BOOST_ASSERT( 
result >= 0 );
 
 
wxString result
Test unit parsing edge cases and error handling.
 
BOOST_CHECK_EQUAL(result, "25.4")