20#include <boost/test/unit_test.hpp>
33constexpr int PAD_SIZE_NM = 500'000;
42 pad->SetPosition( aPos );
49NETINFO_ITEM* addNet(
BOARD* aBoard,
const wxString& aName,
int aCode,
const wxString& aChain )
76 NETINFO_ITEM* nA = addNet( &board, wxS(
"/A" ), 1, wxS(
"SIG" ) );
77 NETINFO_ITEM* nB = addNet( &board, wxS(
"/B" ), 2, wxS(
"SIG" ) );
78 NETINFO_ITEM* nC = addNet( &board, wxS(
"/C" ), 3, wxS(
"SIG" ) );
81 addPad( r1, nA,
VECTOR2I( -2'000'000, 0 ) );
82 PAD* startPad = addPad( r1, nB,
VECTOR2I( -1'000'000, 0 ) );
85 PAD* endPad = addPad( r2, nB,
VECTOR2I( 1'000'000, 0 ) );
86 addPad( r2, nC,
VECTOR2I( 2'000'000, 0 ) );
103 NETINFO_ITEM* nA = addNet( &board, wxS(
"/A" ), 1, wxS(
"SIG" ) );
104 NETINFO_ITEM* nB = addNet( &board, wxS(
"/B" ), 2, wxS(
"SIG" ) );
107 PAD* startPad = addPad( r1, nA,
VECTOR2I( -1'000'000, 0 ) );
108 addPad( r1, nB,
VECTOR2I( 1'000'000, 0 ) );
112 PAD* endPad = addPad( loose, nA,
VECTOR2I( -10'000'000, 0 ) );
129 NETINFO_ITEM* nQ = addNet( &board, wxS(
"/Q" ), 1, wxS(
"SIG" ) );
130 NETINFO_ITEM* nN1 = addNet( &board, wxS(
"/N1" ), 2, wxS(
"SIG" ) );
131 NETINFO_ITEM* nN2 = addNet( &board, wxS(
"/N2" ), 3, wxS(
"SIG" ) );
132 NETINFO_ITEM* nE = addNet( &board, wxS(
"/E" ), 4, wxS(
"SIG" ) );
136 PAD* startPad = addPad( tri, nQ,
VECTOR2I( 0, 0 ) );
137 addPad( tri, nN1,
VECTOR2I( 1'000'000, 0 ) );
138 addPad( tri, nN2,
VECTOR2I( 0, 1'000'000 ) );
142 PAD* endPad = addPad( r, nQ,
VECTOR2I( 5'000'000, 0 ) );
143 addPad( r, nE,
VECTOR2I( 6'000'000, 0 ) );
162 NETINFO_ITEM* nA = addNet( &board, wxS(
"/A" ), 1, wxS(
"SIG" ) );
163 NETINFO_ITEM* nB = addNet( &board, wxS(
"/B" ), 2, wxS(
"SIG" ) );
164 NETINFO_ITEM* nC = addNet( &board, wxS(
"/C" ), 3, wxS(
"SIG" ) );
168 addPad( r1, nA,
VECTOR2I( -2'000'000, 0 ) );
169 PAD* startPad = addPad( r1, nB,
VECTOR2I( -1'000'000, 0 ) );
173 PAD* endPad = addPad( r2, nB,
VECTOR2I( 1'000'000, 0 ) );
174 addPad( r2, nC,
VECTOR2I( 2'000'000, 0 ) );
178 addPad( r3, nA,
VECTOR2I( -2'000'000, 5'000'000 ) );
179 addPad( r3, nC,
VECTOR2I( 2'000'000, 5'000'000 ) );
196 NETINFO_ITEM* nA = addNet( &board, wxS(
"/A" ), 1, wxS(
"SIG" ) );
197 NETINFO_ITEM* nB = addNet( &board, wxS(
"/B" ), 2, wxS(
"SIG" ) );
200 PAD* aPad = addPad( r1, nA,
VECTOR2I( -1'000'000, 0 ) );
201 PAD* bPad = addPad( r1, nB,
VECTOR2I( 1'000'000, 0 ) );
216 NETINFO_ITEM* nA = addNet( &board, wxS(
"/A" ), 1, wxS(
"SIG" ) );
217 NETINFO_ITEM* nB = addNet( &board, wxS(
"/B" ), 2, wxS(
"SIG" ) );
220 PAD* startPad = addPad( r1, nA,
VECTOR2I( -1'000'000, 0 ) );
221 addPad( r1, nB,
VECTOR2I( 1'000'000, 0 ) );
234 NETINFO_ITEM* nA = addNet( &board, wxS(
"/A" ), 1, wxString() );
235 NETINFO_ITEM* nB = addNet( &board, wxS(
"/B" ), 2, wxString() );
239 addPad( fp, nB,
VECTOR2I( 1'000'000, 0 ) );
242 PAD* a2 = addPad( fp2, nA,
VECTOR2I( 10'000'000, 0 ) );
255 NETINFO_ITEM* nA = addNet( &board, wxS(
"/A" ), 1, wxS(
"SIG" ) );
259 PAD* p2 = addPad( fp, nA,
VECTOR2I( 1'000'000, 0 ) );
273 NETINFO_ITEM* nQ = addNet( &board, wxS(
"/Q" ), 1, wxS(
"SIG" ) );
274 NETINFO_ITEM* nA = addNet( &board, wxS(
"/A" ), 2, wxS(
"SIG" ) );
275 NETINFO_ITEM* nB = addNet( &board, wxS(
"/B" ), 3, wxS(
"SIG" ) );
279 addPad( r, nA,
VECTOR2I( -1'000'000, 0 ) );
280 addPad( r, nB,
VECTOR2I( 1'000'000, 0 ) );
284 PAD* startPad = addPad( fp1, nQ,
VECTOR2I( 10'000'000, 0 ) );
287 PAD* endPad = addPad( fp2, nQ,
VECTOR2I( 20'000'000, 0 ) );
303 NETINFO_ITEM* nA = addNet( &boardA, wxS(
"/A" ), 1, wxS(
"SIG" ) );
304 NETINFO_ITEM* nB = addNet( &boardA, wxS(
"/B" ), 2, wxS(
"SIG" ) );
308 addPad( r, nB,
VECTOR2I( 1'000'000, 0 ) );
311 NETINFO_ITEM* nA_b = addNet( &boardB, wxS(
"/A" ), 1, wxS(
"SIG" ) );
313 PAD* foreignPad = addPad( r_b, nA_b,
VECTOR2I( 0, 0 ) );
326 NETINFO_ITEM* nA = addNet( &board, wxS(
"/A" ), 1, wxS(
"SIG" ) );
327 NETINFO_ITEM* nB = addNet( &board, wxS(
"/B" ), 2, wxS(
"SIG" ) );
328 NETINFO_ITEM* nC = addNet( &board, wxS(
"/C" ), 3, wxS(
"SIG" ) );
331 addPad( r1, nA,
VECTOR2I( -2'000'000, 0 ) );
332 PAD* startPad = addPad( r1, nB,
VECTOR2I( -1'000'000, 0 ) );
335 PAD* endPad = addPad( r2, nB,
VECTOR2I( 1'000'000, 0 ) );
336 addPad( r2, nC,
VECTOR2I( 2'000'000, 0 ) );
Information pertinent to a Pcbnew printed circuit board.
void Add(BOARD_ITEM *aItem, ADD_MODE aMode=ADD_MODE::INSERT, bool aSkipConnectivity=false) override
Removes an item from the container.
Handle the data for a net.
void SetNetChain(const wxString &aNetChain)
@ NORMAL
Shape is the same on all layers.
static constexpr PCB_LAYER_ID ALL_LAYERS
! The layer identifier to use for the single defintion on normal padstacks
NET_CHAIN_PARTITION PartitionNetChainAroundNet(const BOARD *aBoard, int aQueryNet, const PAD *aStartPad, const PAD *aEndPad)
Partition the chain containing aQueryNet around it, cut at the bridges incident on aStartPad and aEnd...
Result of PartitionNetChainAroundNet().
std::set< int > beforeStart
NET_CHAIN_PARTITION_STATUS status
BOOST_AUTO_TEST_CASE(HorizontalAlignment)
BOOST_AUTO_TEST_SUITE(CadstarPartParser)
BOOST_REQUIRE(intersection.has_value()==c.ExpectedIntersection.has_value())
BOOST_AUTO_TEST_SUITE_END()
static FOOTPRINT * addFootprint(BOARD &aBoard, const wxString &aReference)
BOOST_AUTO_TEST_CASE(LinearChainSplitsCleanly)
BOOST_CHECK_EQUAL(result, "25.4")
VECTOR2< int32_t > VECTOR2I