77 SCH_SHEET* sheetA = makeTopLevelSheet(
"SheetA",
"sheet_a.kicad_sch" );
78 SCH_SHEET* sheetB = makeTopLevelSheet(
"SheetB",
"sheet_b.kicad_sch" );
79 SCH_SHEET* sheetC = makeTopLevelSheet(
"SheetC",
"sheet_c.kicad_sch" );
81 m_schematic->SetTopLevelSheets( { sheetA, sheetB, sheetC } );
87 addLocalLabel( sheetA,
"LOCAL",
VECTOR2I( 0, 0 ) );
88 addLocalLabel( sheetB,
"LOCAL",
VECTOR2I( 0, 0 ) );
89 addLocalLabel( sheetC,
"LOCAL",
VECTOR2I( 0, 0 ) );
91 m_schematic->RefreshHierarchy();
93 BOOST_REQUIRE_EQUAL( sheets.size(), 3u );
95 m_schematic->ConnectionGraph()->Recalculate( sheets,
true );
100 std::set<int> labelNetCodes;
101 std::set<wxString> labelNetNames;
103 for(
const auto& [key, subgraphs] : m_schematic->ConnectionGraph()->GetNetMap() )
107 const SCH_ITEM* driver = sg->GetDriver();
112 if(
static_cast<const SCH_LABEL*
>( driver )->GetText() == wxT(
"LOCAL" ) )
114 labelNetCodes.insert( key.Netcode );
115 labelNetNames.insert( key.Name );
122 for(
const wxString& n : labelNetNames )
125 BOOST_CHECK_MESSAGE( labelNetCodes.size() == 3u,
"Local labels 'LOCAL' on three different top-level sheets should "
126 "yield three distinct net codes, got "
127 << labelNetCodes.size() );
129 BOOST_CHECK_MESSAGE( labelNetNames.size() == 3u,
"Local labels 'LOCAL' on three different top-level sheets should "
130 "yield three distinct net names, got "
131 << labelNetNames.size() );