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")