48 SCH_SHEET_LIST sheets = m_schematic->BuildSheetListSortedByPageNumbers();
52 auto& manager = m_schematic->NetChains();
55 for(
const auto& sig : manager.GetPotentialNetChains() )
57 if( sig && sig->GetNets().size() == 4 )
61 BOOST_REQUIRE_MESSAGE( four,
"Expected initial 4-net signal present" );
63 SCH_NETCHAIN*
chain = manager.CreateNetChainFromPotential( four, wxS(
"REMOVE" ) );
66 const wxString net = *
chain->GetNets().begin();
67 const auto bridges = manager.GetBridgeSymbols( *
chain, net );
69 BOOST_REQUIRE_MESSAGE( !bridges.empty(),
"No bridging symbol reported for a chain member" );
70 BOOST_CHECK( manager.GetBridgeSymbols( *
chain, wxS(
"NOT_A_MEMBER" ) ).
empty() );
72 for(
const auto& [symbol, screen] : bridges )
74 BOOST_CHECK( screen == m_schematic->CurrentSheet().LastScreen() );
75 BOOST_CHECK(
chain->GetSymbols().contains( symbol ) );
81 for(
const auto& sig : manager.GetPotentialNetChains() )
83 BOOST_CHECK_MESSAGE( sig->GetNets().size() < 4,
"Expected removal to split the 4-net signal" );
84 BOOST_CHECK_MESSAGE( !sig->GetNets().contains( net ),
"Removed net still bridged into a chain" );
void Recalculate(const SCH_SHEET_LIST &aSheetList, bool aUnconditional=false, std::function< void(SCH_ITEM *)> *aChangedItemHandler=nullptr, PROGRESS_REPORTER *aProgressReporter=nullptr)
Update the connection graph for the given list of sheets.