20#include <boost/test/unit_test.hpp>
33constexpr int PAD_SIZE_NM = 500'000;
41 pad->SetPosition( aPos );
48NETINFO_ITEM* addNet(
BOARD* aBoard,
const wxString& aName,
int aCode,
const wxString& aChain )
75 NETINFO_ITEM* nA = addNet( &board, wxS(
"/A" ), 1, wxS(
"SIG" ) );
76 NETINFO_ITEM* nB = addNet( &board, wxS(
"/B" ), 2, wxS(
"SIG" ) );
77 NETINFO_ITEM* nC = addNet( &board, wxS(
"/C" ), 3, wxS(
"SIG" ) );
80 addPad( r1, nA,
VECTOR2I( -2'000'000, 0 ) );
81 PAD* startPad = addPad( r1, nB,
VECTOR2I( -1'000'000, 0 ) );
84 PAD* endPad = addPad( r2, nB,
VECTOR2I( 1'000'000, 0 ) );
85 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 ) );
111 FOOTPRINT* loose = addFootprint( &board );
112 PAD* endPad = addPad( loose, nA,
VECTOR2I( -10'000'000, 0 ) );
130 NETINFO_ITEM* nQ = addNet( &board, wxS(
"/Q" ), 1, wxS(
"SIG" ) );
131 NETINFO_ITEM* nN1 = addNet( &board, wxS(
"/N1" ), 2, wxS(
"SIG" ) );
132 NETINFO_ITEM* nN2 = addNet( &board, wxS(
"/N2" ), 3, wxS(
"SIG" ) );
133 NETINFO_ITEM* nE = addNet( &board, wxS(
"/E" ), 4, wxS(
"SIG" ) );
137 PAD* startPad = addPad( tri, nQ,
VECTOR2I( 0, 0 ) );
138 addPad( tri, nN1,
VECTOR2I( 1'000'000, 0 ) );
139 addPad( tri, nN2,
VECTOR2I( 0, 1'000'000 ) );
143 PAD* endPad = addPad( r, nQ,
VECTOR2I( 5'000'000, 0 ) );
144 addPad( r, nE,
VECTOR2I( 6'000'000, 0 ) );
164 NETINFO_ITEM* nA = addNet( &board, wxS(
"/A" ), 1, wxS(
"SIG" ) );
165 NETINFO_ITEM* nB = addNet( &board, wxS(
"/B" ), 2, wxS(
"SIG" ) );
166 NETINFO_ITEM* nC = addNet( &board, wxS(
"/C" ), 3, wxS(
"SIG" ) );
170 addPad( r1, nA,
VECTOR2I( -2'000'000, 0 ) );
171 PAD* startPad = addPad( r1, nB,
VECTOR2I( -1'000'000, 0 ) );
175 PAD* endPad = addPad( r2, nB,
VECTOR2I( 1'000'000, 0 ) );
176 addPad( r2, nC,
VECTOR2I( 2'000'000, 0 ) );
180 addPad( r3, nA,
VECTOR2I( -2'000'000, 5'000'000 ) );
181 addPad( r3, nC,
VECTOR2I( 2'000'000, 5'000'000 ) );
199 NETINFO_ITEM* nA = addNet( &board, wxS(
"/A" ), 1, wxS(
"SIG" ) );
200 NETINFO_ITEM* nB = addNet( &board, wxS(
"/B" ), 2, wxS(
"SIG" ) );
203 PAD* aPad = addPad( r1, nA,
VECTOR2I( -1'000'000, 0 ) );
204 PAD* bPad = addPad( r1, nB,
VECTOR2I( 1'000'000, 0 ) );
220 NETINFO_ITEM* nA = addNet( &board, wxS(
"/A" ), 1, wxS(
"SIG" ) );
221 NETINFO_ITEM* nB = addNet( &board, wxS(
"/B" ), 2, wxS(
"SIG" ) );
224 PAD* startPad = addPad( r1, nA,
VECTOR2I( -1'000'000, 0 ) );
225 addPad( r1, nB,
VECTOR2I( 1'000'000, 0 ) );
228 startPad, startPad );
239 NETINFO_ITEM* nA = addNet( &board, wxS(
"/A" ), 1, wxString() );
240 NETINFO_ITEM* nB = addNet( &board, wxS(
"/B" ), 2, wxString() );
244 addPad( fp, nB,
VECTOR2I( 1'000'000, 0 ) );
247 PAD* a2 = addPad( fp2, nA,
VECTOR2I( 10'000'000, 0 ) );
260 NETINFO_ITEM* nA = addNet( &board, wxS(
"/A" ), 1, wxS(
"SIG" ) );
264 PAD* p2 = addPad( fp, nA,
VECTOR2I( 1'000'000, 0 ) );
278 NETINFO_ITEM* nQ = addNet( &board, wxS(
"/Q" ), 1, wxS(
"SIG" ) );
279 NETINFO_ITEM* nA = addNet( &board, wxS(
"/A" ), 2, wxS(
"SIG" ) );
280 NETINFO_ITEM* nB = addNet( &board, wxS(
"/B" ), 3, wxS(
"SIG" ) );
284 addPad( r, nA,
VECTOR2I( -1'000'000, 0 ) );
285 addPad( r, nB,
VECTOR2I( 1'000'000, 0 ) );
289 PAD* startPad = addPad( fp1, nQ,
VECTOR2I( 10'000'000, 0 ) );
292 PAD* endPad = addPad( fp2, nQ,
VECTOR2I( 20'000'000, 0 ) );
309 NETINFO_ITEM* nA = addNet( &boardA, wxS(
"/A" ), 1, wxS(
"SIG" ) );
310 NETINFO_ITEM* nB = addNet( &boardA, wxS(
"/B" ), 2, wxS(
"SIG" ) );
314 addPad( r, nB,
VECTOR2I( 1'000'000, 0 ) );
317 NETINFO_ITEM* nA_b = addNet( &boardB, wxS(
"/A" ), 1, wxS(
"SIG" ) );
318 FOOTPRINT* r_b = addFootprint( &boardB );
319 PAD* foreignPad = addPad( r_b, nA_b,
VECTOR2I( 0, 0 ) );
322 startPad, foreignPad );
333 NETINFO_ITEM* nA = addNet( &board, wxS(
"/A" ), 1, wxS(
"SIG" ) );
334 NETINFO_ITEM* nB = addNet( &board, wxS(
"/B" ), 2, wxS(
"SIG" ) );
335 NETINFO_ITEM* nC = addNet( &board, wxS(
"/C" ), 3, wxS(
"SIG" ) );
338 addPad( r1, nA,
VECTOR2I( -2'000'000, 0 ) );
339 PAD* startPad = addPad( r1, nB,
VECTOR2I( -1'000'000, 0 ) );
342 PAD* endPad = addPad( r2, nB,
VECTOR2I( 1'000'000, 0 ) );
343 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)
static constexpr PCB_LAYER_ID ALL_LAYERS
! Temporary layer identifier to identify code that is not padstack-aware
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()
BOOST_AUTO_TEST_CASE(LinearChainSplitsCleanly)
BOOST_CHECK_EQUAL(result, "25.4")
VECTOR2< int32_t > VECTOR2I