21#include <boost/test/unit_test.hpp>
34constexpr 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 ) );
104 NETINFO_ITEM* nA = addNet( &board, wxS(
"/A" ), 1, wxS(
"SIG" ) );
105 NETINFO_ITEM* nB = addNet( &board, wxS(
"/B" ), 2, wxS(
"SIG" ) );
108 PAD* startPad = addPad( r1, nA,
VECTOR2I( -1'000'000, 0 ) );
109 addPad( r1, nB,
VECTOR2I( 1'000'000, 0 ) );
112 FOOTPRINT* loose = addFootprint( &board );
113 PAD* endPad = addPad( loose, nA,
VECTOR2I( -10'000'000, 0 ) );
131 NETINFO_ITEM* nQ = addNet( &board, wxS(
"/Q" ), 1, wxS(
"SIG" ) );
132 NETINFO_ITEM* nN1 = addNet( &board, wxS(
"/N1" ), 2, wxS(
"SIG" ) );
133 NETINFO_ITEM* nN2 = addNet( &board, wxS(
"/N2" ), 3, wxS(
"SIG" ) );
134 NETINFO_ITEM* nE = addNet( &board, wxS(
"/E" ), 4, wxS(
"SIG" ) );
138 PAD* startPad = addPad( tri, nQ,
VECTOR2I( 0, 0 ) );
139 addPad( tri, nN1,
VECTOR2I( 1'000'000, 0 ) );
140 addPad( tri, nN2,
VECTOR2I( 0, 1'000'000 ) );
144 PAD* endPad = addPad( r, nQ,
VECTOR2I( 5'000'000, 0 ) );
145 addPad( r, nE,
VECTOR2I( 6'000'000, 0 ) );
165 NETINFO_ITEM* nA = addNet( &board, wxS(
"/A" ), 1, wxS(
"SIG" ) );
166 NETINFO_ITEM* nB = addNet( &board, wxS(
"/B" ), 2, wxS(
"SIG" ) );
167 NETINFO_ITEM* nC = addNet( &board, wxS(
"/C" ), 3, wxS(
"SIG" ) );
171 addPad( r1, nA,
VECTOR2I( -2'000'000, 0 ) );
172 PAD* startPad = addPad( r1, nB,
VECTOR2I( -1'000'000, 0 ) );
176 PAD* endPad = addPad( r2, nB,
VECTOR2I( 1'000'000, 0 ) );
177 addPad( r2, nC,
VECTOR2I( 2'000'000, 0 ) );
181 addPad( r3, nA,
VECTOR2I( -2'000'000, 5'000'000 ) );
182 addPad( r3, nC,
VECTOR2I( 2'000'000, 5'000'000 ) );
200 NETINFO_ITEM* nA = addNet( &board, wxS(
"/A" ), 1, wxS(
"SIG" ) );
201 NETINFO_ITEM* nB = addNet( &board, wxS(
"/B" ), 2, wxS(
"SIG" ) );
204 PAD* aPad = addPad( r1, nA,
VECTOR2I( -1'000'000, 0 ) );
205 PAD* bPad = addPad( r1, nB,
VECTOR2I( 1'000'000, 0 ) );
221 NETINFO_ITEM* nA = addNet( &board, wxS(
"/A" ), 1, wxS(
"SIG" ) );
222 NETINFO_ITEM* nB = addNet( &board, wxS(
"/B" ), 2, wxS(
"SIG" ) );
225 PAD* startPad = addPad( r1, nA,
VECTOR2I( -1'000'000, 0 ) );
226 addPad( r1, nB,
VECTOR2I( 1'000'000, 0 ) );
229 startPad, startPad );
240 NETINFO_ITEM* nA = addNet( &board, wxS(
"/A" ), 1, wxString() );
241 NETINFO_ITEM* nB = addNet( &board, wxS(
"/B" ), 2, wxString() );
245 addPad( fp, nB,
VECTOR2I( 1'000'000, 0 ) );
248 PAD* a2 = addPad( fp2, nA,
VECTOR2I( 10'000'000, 0 ) );
261 NETINFO_ITEM* nA = addNet( &board, wxS(
"/A" ), 1, wxS(
"SIG" ) );
265 PAD* p2 = addPad( fp, nA,
VECTOR2I( 1'000'000, 0 ) );
279 NETINFO_ITEM* nQ = addNet( &board, wxS(
"/Q" ), 1, wxS(
"SIG" ) );
280 NETINFO_ITEM* nA = addNet( &board, wxS(
"/A" ), 2, wxS(
"SIG" ) );
281 NETINFO_ITEM* nB = addNet( &board, wxS(
"/B" ), 3, wxS(
"SIG" ) );
285 addPad( r, nA,
VECTOR2I( -1'000'000, 0 ) );
286 addPad( r, nB,
VECTOR2I( 1'000'000, 0 ) );
290 PAD* startPad = addPad( fp1, nQ,
VECTOR2I( 10'000'000, 0 ) );
293 PAD* endPad = addPad( fp2, nQ,
VECTOR2I( 20'000'000, 0 ) );
310 NETINFO_ITEM* nA = addNet( &boardA, wxS(
"/A" ), 1, wxS(
"SIG" ) );
311 NETINFO_ITEM* nB = addNet( &boardA, wxS(
"/B" ), 2, wxS(
"SIG" ) );
315 addPad( r, nB,
VECTOR2I( 1'000'000, 0 ) );
318 NETINFO_ITEM* nA_b = addNet( &boardB, wxS(
"/A" ), 1, wxS(
"SIG" ) );
319 FOOTPRINT* r_b = addFootprint( &boardB );
320 PAD* foreignPad = addPad( r_b, nA_b,
VECTOR2I( 0, 0 ) );
323 startPad, foreignPad );
334 NETINFO_ITEM* nA = addNet( &board, wxS(
"/A" ), 1, wxS(
"SIG" ) );
335 NETINFO_ITEM* nB = addNet( &board, wxS(
"/B" ), 2, wxS(
"SIG" ) );
336 NETINFO_ITEM* nC = addNet( &board, wxS(
"/C" ), 3, wxS(
"SIG" ) );
339 addPad( r1, nA,
VECTOR2I( -2'000'000, 0 ) );
340 PAD* startPad = addPad( r1, nB,
VECTOR2I( -1'000'000, 0 ) );
343 PAD* endPad = addPad( r2, nB,
VECTOR2I( 1'000'000, 0 ) );
344 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