34 BOOST_REQUIRE_EQUAL( bus.
Members().size(), 2 );
36 for(
size_t i = 0; i < bus.
Members().size(); ++i )
51 BOOST_REQUIRE_EQUAL( bus.
Members().size(), 2 );
53 for(
size_t i = 0; i < bus.
Members().size(); ++i )
66 std::vector<wxString> members;
71 std::vector<wxString>
expected = { wxS(
"D1" ), wxS(
"D2" ) };
80 std::vector<wxString> members;
87 std::vector<wxString>
expected = { wxS(
"D_{[1..2]}" ), wxS(
"~{LATCH}" ) };
96 std::vector<wxString> members;
106 std::vector<wxString> members;
112 std::vector<wxString>
expected = { wxS(
"Data Bus1" ), wxS(
"Data Bus2" ) };
121 std::vector<wxString> members;
127 std::vector<wxString>
expected = { wxS(
"Data Bus1" ), wxS(
"Data Bus2" ) };
136 std::vector<wxString> members;
146 std::vector<wxString> members;
152 std::vector<wxString>
expected = { wxS(
"NET1" ), wxS(
"NET2" ) };
161 std::vector<wxString> members;
167 std::vector<wxString>
expected = { wxS(
"NET1" ), wxS(
"NET2" ) };
176 std::vector<wxString> members;
183 std::vector<wxString>
expected = { wxS(
"Net\\ One" ), wxS(
"Net\\ Two" ) };
192 std::vector<wxString> members;
199 std::vector<wxString>
expected = { wxS(
"Net\\ One" ), wxS(
"Net\\ Two" ) };
208 std::vector<wxString> members;
215 std::vector<wxString>
expected = { wxS(
"Net\\ One" ), wxS(
"Net\\ Two" ), wxS(
"PLAIN" ) };
227 std::vector<wxString> expandedMembers;
228 auto collector = [&expandedMembers](
const wxString& member )
230 expandedMembers.push_back( member );
236 std::vector<wxString>
expected = { wxS(
"Data Bus1" ), wxS(
"Data Bus2" ), wxS(
"PLAIN" ) };
246 std::vector<wxString> expandedMembers;
247 auto collector = [&expandedMembers](
const wxString& member )
249 expandedMembers.push_back( member );
254 std::vector<wxString>
expected = { wxS(
"Data Bus1" ), wxS(
"Data Bus2" ), wxS(
"PLAIN" ) };
266 std::vector<wxString> members;
271 std::vector<wxString>
expected = { wxS(
"bus_~{label}0" ), wxS(
"bus_~{label}1" ),
272 wxS(
"bus_~{label}2" ) };
282 std::vector<wxString> members;
287 std::vector<wxString>
expected = { wxS(
"bus_^{label}0" ), wxS(
"bus_^{label}1" ),
288 wxS(
"bus_^{label}2" ) };
298 std::vector<wxString> members;
303 std::vector<wxString>
expected = { wxS(
"bus__{label}0" ), wxS(
"bus__{label}1" ),
304 wxS(
"bus__{label}2" ) };
315 std::vector<wxString> members;
320 std::vector<wxString>
expected = { wxS(
"net1" ), wxS(
"net2" ) };
330 std::vector<wxString> members;
335 std::vector<wxString>
expected = { wxS(
"net1" ), wxS(
"net2" ) };
345 std::vector<wxString> members;
350 std::vector<wxString>
expected = { wxS(
"net1" ), wxS(
"net2" ) };
362 std::vector<wxString> members;
367 std::vector<wxString>
expected = { wxS(
"~{CAS}" ), wxS(
"~{RAS}" ), wxS(
"~{WE}" ),
378 std::vector<wxString> expandedMembers;
379 auto collector = [&expandedMembers](
const wxString& member )
381 expandedMembers.push_back( member );
386 std::vector<wxString>
expected = { wxS(
"~{CAS}" ), wxS(
"~{RAS}" ),
387 wxS(
"A0" ), wxS(
"A1" ) };
400 std::vector<wxString> members;
405 std::vector<wxString>
expected = { wxS(
"SDA" ), wxS(
"SCL" ) };
415 std::vector<wxString> members;
420 std::vector<wxString>
expected = { wxS(
"I^{2}C0" ), wxS(
"I^{2}C1" ) };
430 std::vector<wxString> expandedMembers;
431 auto collector = [&expandedMembers](
const wxString& member )
433 expandedMembers.push_back( member );
438 std::vector<wxString>
expected = { wxS(
"SDA" ), wxS(
"SCL" ) };
455 wxS(
"bus name.net 1" ) );
459 wxS(
"my net name" ) );
463 wxS(
"simple_net" ) );
502 std::vector<wxString> members;
507 std::vector<wxString>
expected = { wxS(
"~{BE0}" ), wxS(
"~{BE1}" ), wxS(
"~{BE2}" ), wxS(
"~{BE3}" ) };
Calculate the connectivity of a schematic and generate netlists.
static bool ParseBusGroup(const wxString &aGroup, wxString *name, std::vector< wxString > *aMemberList, size_t *aPrefixEnd=nullptr)
Parse a bus group label into the name and a list of components.
static bool ParseBusVector(const wxString &aBus, wxString *aName, std::vector< wxString > *aMemberList)
Parse a bus vector (e.g.
static void ForEachBusMember(const wxString &aBusPattern, const std::function< void(const wxString &)> &aFunction)
Call a function for each member of an expanded bus pattern.
Each graphical item can have a SCH_CONNECTION describing its logical connection (to a bus or net).
void ConfigureFromLabel(const wxString &aLabel)
Configures the connection given a label.
wxString LocalName() const
wxString Name(bool aIgnoreSheet=false) const
const std::vector< std::shared_ptr< SCH_CONNECTION > > & Members() const
static wxString PrintBusForUI(const wxString &aString)
BOOST_AUTO_TEST_CASE(HorizontalAlignment)
BOOST_AUTO_TEST_CASE(EscapedVectorMembersMatchScalarConnections)
BOOST_AUTO_TEST_SUITE(CadstarPartParser)
BOOST_CHECK_EQUAL_COLLECTIONS(mixed.begin(), mixed.end(), expMixed.begin(), expMixed.end())
BOOST_AUTO_TEST_SUITE_END()
VECTOR3I expected(15, 30, 45)
BOOST_CHECK_EQUAL(result, "25.4")