design blocks: fix up tests, API

This commit is contained in:
Mike Williams 2025-08-20 11:15:43 -04:00
parent 1e3c95a1d5
commit 7e4133b9ec
3 changed files with 16 additions and 9 deletions

View File

@ -620,6 +620,7 @@ enum PlacementRuleSourceType
PRST_SHEET_NAME = 1; PRST_SHEET_NAME = 1;
PRST_COMPONENT_CLASS = 2; PRST_COMPONENT_CLASS = 2;
PRST_GROUP = 3; PRST_GROUP = 3;
PRST_DESIGN_BLOCK = 4;
} }
message RuleAreaSettings message RuleAreaSettings

View File

@ -405,6 +405,9 @@ types::PlacementRuleSourceType ToProtoEnum( PLACEMENT_SOURCE_T aValue )
case PLACEMENT_SOURCE_T::GROUP_PLACEMENT: case PLACEMENT_SOURCE_T::GROUP_PLACEMENT:
return types::PlacementRuleSourceType::PRST_GROUP; return types::PlacementRuleSourceType::PRST_GROUP;
case PLACEMENT_SOURCE_T::DESIGN_BLOCK:
return types::PlacementRuleSourceType::PRST_DESIGN_BLOCK;
default: default:
wxCHECK_MSG( false, types::PlacementRuleSourceType::PRST_UNKNOWN, wxCHECK_MSG( false, types::PlacementRuleSourceType::PRST_UNKNOWN,
"Unhandled case in ToProtoEnum<PLACEMENT_SOURCE_T>"); "Unhandled case in ToProtoEnum<PLACEMENT_SOURCE_T>");
@ -427,6 +430,9 @@ PLACEMENT_SOURCE_T FromProtoEnum( types::PlacementRuleSourceType aValue )
case types::PlacementRuleSourceType::PRST_GROUP: case types::PlacementRuleSourceType::PRST_GROUP:
return PLACEMENT_SOURCE_T::GROUP_PLACEMENT; return PLACEMENT_SOURCE_T::GROUP_PLACEMENT;
case types::PlacementRuleSourceType::PRST_DESIGN_BLOCK:
return PLACEMENT_SOURCE_T::DESIGN_BLOCK;
default: default:
wxCHECK_MSG( false, PLACEMENT_SOURCE_T::SHEETNAME, wxCHECK_MSG( false, PLACEMENT_SOURCE_T::SHEETNAME,
"Unhandled case in FromProtoEnum<types::PlacementRuleSourceType>" ); "Unhandled case in FromProtoEnum<types::PlacementRuleSourceType>" );

View File

@ -85,7 +85,7 @@ BOOST_FIXTURE_TEST_CASE( MultichannelToolRegressions, MULTICHANNEL_TEST_FIXTURE
//RULE_AREAS_DATA* raData = m_parentTool->GetData(); //RULE_AREAS_DATA* raData = m_parentTool->GetData();
mtTool->QuerySheetsAndComponentClasses(); mtTool->GeneratePotentialRuleAreas();
auto ruleData = mtTool->GetData(); auto ruleData = mtTool->GetData();
@ -127,12 +127,12 @@ BOOST_FIXTURE_TEST_CASE( MultichannelToolRegressions, MULTICHANNEL_TEST_FIXTURE
if( ra.m_ruleName.Contains( wxT( "io_drivers_fp" ) ) ) if( ra.m_ruleName.Contains( wxT( "io_drivers_fp" ) ) )
{ {
n_areas_io++; n_areas_io++;
BOOST_CHECK_EQUAL( ra.m_raFootprints.size(), 31 ); BOOST_CHECK_EQUAL( ra.m_components.size(), 31 );
} }
else if( ra.m_ruleName.Contains( wxT( "io_drivers_pp" ) ) ) else if( ra.m_ruleName.Contains( wxT( "io_drivers_pp" ) ) )
{ {
n_areas_pp++; n_areas_pp++;
BOOST_CHECK_EQUAL( ra.m_raFootprints.size(), 11 ); BOOST_CHECK_EQUAL( ra.m_components.size(), 11 );
} }
else else
{ {
@ -161,15 +161,15 @@ BOOST_FIXTURE_TEST_CASE( MultichannelToolRegressions, MULTICHANNEL_TEST_FIXTURE
for( const RULE_AREA& targetArea : ruleData->m_areas ) for( const RULE_AREA& targetArea : ruleData->m_areas )
{ {
if( targetArea.m_area == refArea.m_area ) if( targetArea.m_zone == refArea.m_zone )
continue; continue;
if( !targetArea.m_ruleName.Contains( ruleName ) ) if( !targetArea.m_ruleName.Contains( ruleName ) )
continue; continue;
auto cgRef = CONNECTION_GRAPH::BuildFromFootprintSet( refArea.m_raFootprints ); auto cgRef = CONNECTION_GRAPH::BuildFromFootprintSet( refArea.m_components );
auto cgTarget = auto cgTarget =
CONNECTION_GRAPH::BuildFromFootprintSet( targetArea.m_raFootprints ); CONNECTION_GRAPH::BuildFromFootprintSet( targetArea.m_components );
TMATCH::COMPONENT_MATCHES result; TMATCH::COMPONENT_MATCHES result;
@ -179,9 +179,9 @@ BOOST_FIXTURE_TEST_CASE( MultichannelToolRegressions, MULTICHANNEL_TEST_FIXTURE
BOOST_TEST_MESSAGE( wxString::Format( BOOST_TEST_MESSAGE( wxString::Format(
"topo match: '%s' [%d] -> '%s' [%d] result %d", "topo match: '%s' [%d] -> '%s' [%d] result %d",
refArea.m_ruleName.c_str().AsChar(), refArea.m_ruleName.c_str().AsChar(),
static_cast<int>( refArea.m_raFootprints.size() ), static_cast<int>( refArea.m_components.size() ),
targetArea.m_ruleName.c_str().AsChar(), targetArea.m_ruleName.c_str().AsChar(),
static_cast<int>( targetArea.m_raFootprints.size() ), status ) ); static_cast<int>( targetArea.m_components.size() ), status ) );
for( const auto& iter : result ) for( const auto& iter : result )
{ {
@ -214,7 +214,7 @@ BOOST_FIXTURE_TEST_CASE( MultichannelToolRegressions, MULTICHANNEL_TEST_FIXTURE
ruleData->m_compatMap[targetRA].m_doCopy = true; ruleData->m_compatMap[targetRA].m_doCopy = true;
} }
int result = mtTool->RepeatLayout( TOOL_EVENT(), refArea->m_area ); int result = mtTool->RepeatLayout( TOOL_EVENT(), refArea->m_zone );
BOOST_ASSERT( result >= 0 ); BOOST_ASSERT( result >= 0 );
} }