23#include <boost/test/unit_test.hpp>
40 m_schematic = std::make_unique<SCHEMATIC>(
nullptr );
64 m_schematic->CreateDefaultScreens();
67 BOOST_CHECK( m_schematic->IsValid() );
71 BOOST_CHECK( root.
GetScreen() !=
nullptr );
77 std::vector<SCH_SHEET*> topLevelSheets = m_schematic->GetTopLevelSheets();
81 if( !topLevelSheets.empty() && topLevelSheets[0] )
83 BOOST_CHECK( topLevelSheets[0]->GetScreen() !=
nullptr );
89 std::vector<SCH_ITEM*> items;
101 m_schematic->CreateDefaultScreens();
111 m_schematic->AddTopLevelSheet( sheet2 );
114 std::vector<SCH_SHEET*> topLevelSheets = m_schematic->GetTopLevelSheets();
118 BOOST_CHECK( m_schematic->IsTopLevelSheet( topLevelSheets[0] ) );
119 BOOST_CHECK( m_schematic->IsTopLevelSheet( topLevelSheets[1] ) );
129 m_schematic->AddTopLevelSheet( sheet3 );
131 topLevelSheets = m_schematic->GetTopLevelSheets();
141 m_schematic->CreateDefaultScreens();
148 m_schematic->AddTopLevelSheet( sheet2 );
154 m_schematic->AddTopLevelSheet( sheet3 );
156 std::vector<SCH_SHEET*> topLevelSheets = m_schematic->GetTopLevelSheets();
160 bool removed = m_schematic->RemoveTopLevelSheet( sheet2 );
161 BOOST_CHECK( removed );
163 topLevelSheets = m_schematic->GetTopLevelSheets();
167 removed = m_schematic->RemoveTopLevelSheet( sheet2 );
168 BOOST_CHECK( !removed );
177 m_schematic->CreateDefaultScreens();
186 m_schematic->AddTopLevelSheet( sheet2 );
189 SCH_SHEET_LIST sheetList = m_schematic->BuildSheetListSortedByPageNumbers();
195 SCH_SHEET_LIST unorderedList = m_schematic->BuildUnorderedSheetList();
206 wxString projectPath = wxT(
"/tmp/test_project.kicad_pro" );
210 std::vector<TOP_LEVEL_SHEET_INFO>& topLevelSheets = projectFile.
GetTopLevelSheets();
215 wxT(
"main.kicad_sch" ) ) );
219 wxT(
"Power Sheet" ),
220 wxT(
"power.kicad_sch" ) ) );
224 wxT(
"Interface Sheet" ),
225 wxT(
"interface.kicad_sch" ) ) );
287 m_schematic->CreateDefaultScreens();
290 SCH_SCREEN* rootScreen = m_schematic->RootScreen();
291 BOOST_CHECK( rootScreen !=
nullptr );
294 std::vector<SCH_SHEET*> topLevelSheets = m_schematic->GetTopLevelSheets();
295 BOOST_CHECK( !topLevelSheets.empty() );
297 if( !topLevelSheets.empty() && topLevelSheets[0] )
void SetPageNumber(const wxString &aPageNumber)
The backing store for a PROJECT, in JSON format.
std::vector< TOP_LEVEL_SHEET_INFO > & GetTopLevelSheets()
Container for project specific data.
void SetText(const wxString &aText) override
void SetFileName(const wxString &aFileName)
Set the file name for this screen to aFileName.
void GetSheets(std::vector< SCH_ITEM * > *aItems) const
Similar to Items().OfType( SCH_SHEET_T ), but return the sheets in a deterministic order (L-R,...
A container for handling SCH_SHEET_PATH objects in a flattened hierarchy.
Sheet symbol placed in a schematic, and is the entry point for a sub schematic.
SCH_FIELD * GetField(FIELD_T aFieldType)
Return a mandatory field in this sheet.
SCH_SCREEN * GetScreen() const
void SetScreen(SCH_SCREEN *aScreen)
Set the SCH_SCREEN associated with this sheet to aScreen.
Test flat top-level schematic sheets functionality.
~FLAT_HIERARCHY_FIXTURE()
SETTINGS_MANAGER m_settingsManager
std::unique_ptr< SCHEMATIC > m_schematic
Information about a top-level schematic sheet.
BOOST_AUTO_TEST_CASE(HorizontalAlignment)
BOOST_AUTO_TEST_CASE(TestCreateDefaultScreens)
Test that CreateDefaultScreens creates a virtual root with one top-level sheet.
BOOST_AUTO_TEST_SUITE_END()
BOOST_CHECK_EQUAL(result, "25.4")