69 BOOST_REQUIRE_MESSAGE( m_board,
"Failed to load board issue24853" );
74 BOOST_REQUIRE_MESSAGE( netA && netB,
"Nets 'a' and 'b' not found in board" );
82 std::vector<ViolationInfo> creepageViolations;
85 BOOST_REQUIRE_MESSAGE( bds.
m_DRCEngine,
"DRC engine not initialized" );
93 [&](
const std::shared_ptr<DRC_ITEM>& aItem,
const VECTOR2I& ,
int aLayer,
102 if(
DRC_RULE* rule = aItem->GetViolatingRule() )
103 vi.rule = rule->m_Name;
105 creepageViolations.push_back( vi );
113 (
int) creepageViolations.size() ) );
115 for(
const ViolationInfo& vi : creepageViolations )
118 BOOST_REQUIRE_MESSAGE( !creepageViolations.empty(),
119 "Expected a creepage violation between the two tracks inside the area" );
126 for(
const ViolationInfo& vi : creepageViolations )
128 BOOST_CHECK_MESSAGE( vi.rule == wxT(
"creep" ),
129 wxString::Format(
"Creepage violation resolved from rule '%s'; the conductors are "
130 "inside 'forcreepage' so it must resolve from 'creep'. Rule-area "
131 "conditions are being ignored for creepage.",
SETTINGS_MANAGER m_settingsManager
std::unique_ptr< BOARD > m_board
DRC_CREEPAGE_RULE_AREA_FIXTURE()=default
~DRC_CREEPAGE_RULE_AREA_FIXTURE()
BOOST_FIXTURE_TEST_CASE(CreepageRuleAreaConditionIssue24853, DRC_CREEPAGE_RULE_AREA_FIXTURE)