78 SCH_SHEET* sheetA = makeTopLevelSheet(
"SheetA",
"sheet_a.kicad_sch" );
79 SCH_SHEET* sheetB = makeTopLevelSheet(
"SheetB",
"sheet_b.kicad_sch" );
80 SCH_SHEET* sheetC = makeTopLevelSheet(
"SheetC",
"sheet_c.kicad_sch" );
82 m_schematic->SetTopLevelSheets( { sheetA, sheetB, sheetC } );
88 addLocalLabel( sheetA,
"LOCAL",
VECTOR2I( 0, 0 ) );
89 addLocalLabel( sheetB,
"LOCAL",
VECTOR2I( 0, 0 ) );
90 addLocalLabel( sheetC,
"LOCAL",
VECTOR2I( 0, 0 ) );
92 m_schematic->RefreshHierarchy();
94 BOOST_REQUIRE_EQUAL( sheets.size(), 3u );
96 m_schematic->ConnectionGraph()->Recalculate( sheets,
true );
101 std::set<int> labelNetCodes;
102 std::set<wxString> labelNetNames;
104 for(
const auto& [key, subgraphs] : m_schematic->ConnectionGraph()->GetNetMap() )
108 const SCH_ITEM* driver = sg->GetDriver();
113 if(
static_cast<const SCH_LABEL*
>( driver )->GetText() == wxT(
"LOCAL" ) )
115 labelNetCodes.insert( key.Netcode );
116 labelNetNames.insert( key.Name );
123 for(
const wxString& n : labelNetNames )
126 BOOST_CHECK_MESSAGE( labelNetCodes.size() == 3u,
"Local labels 'LOCAL' on three different top-level sheets should "
127 "yield three distinct net codes, got "
128 << labelNetCodes.size() );
130 BOOST_CHECK_MESSAGE( labelNetNames.size() == 3u,
"Local labels 'LOCAL' on three different top-level sheets should "
131 "yield three distinct net names, got "
132 << labelNetNames.size() );