60 KI_TEST::LoadBoard( m_settingsManager,
"drc_arc_arc_edge_clearance/drc_arc_arc_edge_clearance", m_board );
62 std::vector<DRC_ITEM> edgeViolations;
71 [&](
const std::shared_ptr<DRC_ITEM>& aItem,
const VECTOR2I&,
int,
75 edgeViolations.push_back( *aItem );
80 BOOST_CHECK_GE( edgeViolations.size(), 1u );
82 if( edgeViolations.empty() )
85 const KIID trackUuid(
"e918352c-937f-4a75-aac0-7856db5d052e" );
86 const KIID cutoutLeftArcUuid(
"b9bfe430-49e3-430b-b86f-c88b7c1be60e" );
88 bool trackHit =
false;
89 bool cutoutHit =
false;
91 for(
const DRC_ITEM& item : edgeViolations )
93 for(
const KIID& uuid : { item.GetMainItemID(), item.GetAuxItemID() } )
95 if( uuid == trackUuid )
97 else if( uuid == cutoutLeftArcUuid )
102 BOOST_CHECK_MESSAGE( trackHit && cutoutHit,
"Expected at least one DRCE_EDGE_CLEARANCE violation between the "
103 "F.Cu track arc and the Edge.Cuts left cutout arc" );
Container for design settings for a BOARD object.
std::map< int, SEVERITY > m_DRCSeverities
std::shared_ptr< DRC_ENGINE > m_DRCEngine
void RunTests(EDA_UNITS aUnits, bool aReportAllTrackErrors, bool aTestFootprints, BOARD_COMMIT *aCommit=nullptr)
Run the DRC tests.
void SetViolationHandler(DRC_VIOLATION_HANDLER aHandler)
Set an optional DRC violation handler (receives DRC_ITEMs and positions).
void LoadBoard(SETTINGS_MANAGER &aSettingsManager, const wxString &aRelPath, std::unique_ptr< BOARD > &aBoard)
DRC_ARC_ARC_EDGE_CLEARANCE_FIXTURE()
std::unique_ptr< BOARD > m_board
SETTINGS_MANAGER m_settingsManager
BOOST_FIXTURE_TEST_CASE(DRCArcArcEdgeClearance_InternalContainment, DRC_ARC_ARC_EDGE_CLEARANCE_FIXTURE)
BOOST_CHECK_MESSAGE(totalMismatches==0, std::to_string(totalMismatches)+" board(s) with strategy disagreements")
VECTOR2< int32_t > VECTOR2I