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 std::vector<TMATCH::TOPOLOGY_MISMATCH_REASON> details;
177 bool status = cgRef->FindIsomorphism( cgTarget.get(),
result, details );
180 "topo match: '%s' [%d] -> '%s' [%d] result %d", refArea.
m_ruleName.c_str().AsChar(),
182 static_cast<int>( targetArea.
m_components.size() ), status ? 1 : 0 ) );
184 for(
const auto& iter :
result )
187 iter.second->GetReference(),
188 iter.first->GetReference() ) );
191 BOOST_CHECK( status );
192 BOOST_CHECK( details.empty() );
199 BOOST_ASSERT( refArea );
201 const std::vector<wxString> targetAreaNames( { wxT(
"io_drivers_fp/bank2/io78/" ),
202 wxT(
"io_drivers_fp/bank1/io78/" ),
203 wxT(
"io_drivers_fp/bank0/io01/" ) } );
205 for(
const wxString& targetRaName : targetAreaNames )
209 BOOST_ASSERT( targetRA !=
nullptr );
213 ruleData->m_compatMap[targetRA].m_doCopy =
true;
218 BOOST_ASSERT(
result >= 0 );
wxString result
Test unit parsing edge cases and error handling.
BOOST_CHECK_EQUAL(result, "25.4")