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_COMPONENT_CLASS = 2;
PRST_GROUP = 3;
PRST_DESIGN_BLOCK = 4;
}
message RuleAreaSettings

View File

@ -405,6 +405,9 @@ types::PlacementRuleSourceType ToProtoEnum( PLACEMENT_SOURCE_T aValue )
case PLACEMENT_SOURCE_T::GROUP_PLACEMENT:
return types::PlacementRuleSourceType::PRST_GROUP;
case PLACEMENT_SOURCE_T::DESIGN_BLOCK:
return types::PlacementRuleSourceType::PRST_DESIGN_BLOCK;
default:
wxCHECK_MSG( false, types::PlacementRuleSourceType::PRST_UNKNOWN,
"Unhandled case in ToProtoEnum<PLACEMENT_SOURCE_T>");
@ -427,6 +430,9 @@ PLACEMENT_SOURCE_T FromProtoEnum( types::PlacementRuleSourceType aValue )
case types::PlacementRuleSourceType::PRST_GROUP:
return PLACEMENT_SOURCE_T::GROUP_PLACEMENT;
case types::PlacementRuleSourceType::PRST_DESIGN_BLOCK:
return PLACEMENT_SOURCE_T::DESIGN_BLOCK;
default:
wxCHECK_MSG( false, PLACEMENT_SOURCE_T::SHEETNAME,
"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();
mtTool->QuerySheetsAndComponentClasses();
mtTool->GeneratePotentialRuleAreas();
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" ) ) )
{
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" ) ) )
{
n_areas_pp++;
BOOST_CHECK_EQUAL( ra.m_raFootprints.size(), 11 );
BOOST_CHECK_EQUAL( ra.m_components.size(), 11 );
}
else
{
@ -161,15 +161,15 @@ BOOST_FIXTURE_TEST_CASE( MultichannelToolRegressions, MULTICHANNEL_TEST_FIXTURE
for( const RULE_AREA& targetArea : ruleData->m_areas )
{
if( targetArea.m_area == refArea.m_area )
if( targetArea.m_zone == refArea.m_zone )
continue;
if( !targetArea.m_ruleName.Contains( ruleName ) )
continue;
auto cgRef = CONNECTION_GRAPH::BuildFromFootprintSet( refArea.m_raFootprints );
auto cgRef = CONNECTION_GRAPH::BuildFromFootprintSet( refArea.m_components );
auto cgTarget =
CONNECTION_GRAPH::BuildFromFootprintSet( targetArea.m_raFootprints );
CONNECTION_GRAPH::BuildFromFootprintSet( targetArea.m_components );
TMATCH::COMPONENT_MATCHES result;
@ -179,9 +179,9 @@ BOOST_FIXTURE_TEST_CASE( MultichannelToolRegressions, MULTICHANNEL_TEST_FIXTURE
BOOST_TEST_MESSAGE( wxString::Format(
"topo match: '%s' [%d] -> '%s' [%d] result %d",
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(),
static_cast<int>( targetArea.m_raFootprints.size() ), status ) );
static_cast<int>( targetArea.m_components.size() ), status ) );
for( const auto& iter : result )
{
@ -214,7 +214,7 @@ BOOST_FIXTURE_TEST_CASE( MultichannelToolRegressions, MULTICHANNEL_TEST_FIXTURE
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 );
}