27#include <boost/test/unit_test.hpp>
44 m_schematic = std::make_unique<SCHEMATIC>(
nullptr );
68 m_schematic->CreateDefaultScreens();
71 BOOST_CHECK( m_schematic->IsValid() );
75 BOOST_CHECK( root.
GetScreen() !=
nullptr );
81 std::vector<SCH_SHEET*> topLevelSheets = m_schematic->GetTopLevelSheets();
85 if( !topLevelSheets.empty() && topLevelSheets[0] )
87 BOOST_CHECK( topLevelSheets[0]->GetScreen() !=
nullptr );
93 std::vector<SCH_ITEM*> items;
105 m_schematic->CreateDefaultScreens();
115 m_schematic->AddTopLevelSheet( sheet2 );
118 std::vector<SCH_SHEET*> topLevelSheets = m_schematic->GetTopLevelSheets();
122 BOOST_CHECK( m_schematic->IsTopLevelSheet( topLevelSheets[0] ) );
123 BOOST_CHECK( m_schematic->IsTopLevelSheet( topLevelSheets[1] ) );
133 m_schematic->AddTopLevelSheet( sheet3 );
135 topLevelSheets = m_schematic->GetTopLevelSheets();
145 m_schematic->CreateDefaultScreens();
152 m_schematic->AddTopLevelSheet( sheet2 );
158 m_schematic->AddTopLevelSheet( sheet3 );
160 std::vector<SCH_SHEET*> topLevelSheets = m_schematic->GetTopLevelSheets();
164 bool removed = m_schematic->RemoveTopLevelSheet( sheet2 );
165 BOOST_CHECK( removed );
167 topLevelSheets = m_schematic->GetTopLevelSheets();
171 removed = m_schematic->RemoveTopLevelSheet( sheet2 );
172 BOOST_CHECK( !removed );
181 m_schematic->CreateDefaultScreens();
190 m_schematic->AddTopLevelSheet( sheet2 );
193 SCH_SHEET_LIST sheetList = m_schematic->BuildSheetListSortedByPageNumbers();
199 SCH_SHEET_LIST unorderedList = m_schematic->BuildUnorderedSheetList();
210 wxString projectPath = wxT(
"/tmp/test_project.kicad_pro" );
214 std::vector<TOP_LEVEL_SHEET_INFO>& topLevelSheets = projectFile.
GetTopLevelSheets();
219 wxT(
"main.kicad_sch" ) ) );
223 wxT(
"Power Sheet" ),
224 wxT(
"power.kicad_sch" ) ) );
228 wxT(
"Interface Sheet" ),
229 wxT(
"interface.kicad_sch" ) ) );
291 m_schematic->CreateDefaultScreens();
294 SCH_SCREEN* rootScreen = m_schematic->RootScreen();
295 BOOST_CHECK( rootScreen !=
nullptr );
298 std::vector<SCH_SHEET*> topLevelSheets = m_schematic->GetTopLevelSheets();
299 BOOST_CHECK( !topLevelSheets.empty() );
301 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")