38 const std::array<const char*, 3> boardNames = {
"connect/connect.kicad_pcb",
39 "issue19325/issue19325.kicad_pcb",
40 "issue14130.kicad_pcb" };
42 size_t castellated = 0;
44 size_t issue14130NpthTht = 0;
45 size_t issue14130NpthHole = 0;
48 std::set<wxString> issue14130NpthNames;
50 for(
const char* boardName : boardNames )
54 BOOST_REQUIRE_MESSAGE( board, boardName );
56 for(
const FOOTPRINT* footprint : board->Footprints() )
62 std::string
location = std::string( boardName ) +
"/" + footprint->GetReference().ToStdString() +
"/"
63 + std::to_string(
index );
83 BOOST_CHECK(
pad->HasHole() );
88 if( std::string( boardName ) ==
"issue14130.kicad_pcb"
91 BOOST_CHECK_MESSAGE( issue14130NpthNames.insert( fabPin.
m_name ).second,
92 location <<
" repeats an NPTH pin name" );
100 ++issue14130NpthHole;
104 if( std::string( boardName ) ==
"connect/connect.kicad_pcb"
106 &&
pad->IsOnCopperLayer() )
115 BOOST_CHECK_GT( fiducials, 0 );
116 BOOST_CHECK_GT( castellated, 0 );
117 BOOST_CHECK_GT( tooling, 0 );
118 BOOST_CHECK_GT( plated, 0 );
122 BOOST_CHECK_GT( padCount, 0 );
FAB_PIN MakeFabPin(const PAD &aPad, size_t aIndexInFootprint)
aIndexInFootprint is the pad's position in its footprint, used to name NPTH and unnumbered pads
std::unique_ptr< BOARD > ReadBoardFromFileOrStream(const std::string &aFilename, std::istream &aFallback)
Read a board from a file, or another stream, as appropriate.
BOOST_CHECK_EQUAL(result, "25.4")