91 t = m_symbol.GetTransform();
94 t = m_symbol.GetTransform();
97 t = m_symbol.GetTransform();
108 fn.AppendDir( wxS(
"variant_test" ) );
109 fn.SetName( wxS(
"variant_test" ) );
115 BOOST_CHECK( symbol );
118 wxString variantName = wxS(
"Variant1" );
119 std::optional<SCH_SYMBOL_VARIANT> variant = symbol->
GetVariant( m_schematic->Hierarchy()[0], variantName );
120 BOOST_CHECK( !variant );
123 BOOST_CHECK( !symbol->
GetDNP() );
124 symbol->
SetDNP(
true, &m_schematic->Hierarchy()[0], variantName );
125 BOOST_CHECK( symbol->
GetDNP( &m_schematic->Hierarchy()[0], variantName ) );
130 BOOST_CHECK( symbol->
GetExcludedFromBOM( &m_schematic->Hierarchy()[0], variantName ) );
135 BOOST_CHECK( symbol->
GetExcludedFromSim( &m_schematic->Hierarchy()[0], variantName ) );
149 false, 0 ) == wxS(
"1K" ) );
152 false, 0, variantName ) == wxS(
"10K" ) );
166 fn.AppendDir( wxS(
"variant_test" ) );
167 fn.SetName( wxS(
"variant_test" ) );
175 wxString newFieldName = wxS(
"Sim.Library" );
179 BOOST_CHECK( existing ==
nullptr );
183 newField.
SetText( wxS(
"test_model.lib" ) );
191 BOOST_CHECK( addedField->
GetParent() == symbol );
196 BOOST_CHECK( found->
GetText() == wxS(
"test_model.lib" ) );
216 fn.AppendDir( wxS(
"variant_test" ) );
217 fn.SetName( wxS(
"variant_test" ) );
227 wxString variantName = wxS(
"DialogTest" );
230 BOOST_CHECK( !symbol->
GetDNP() );
242 symbol->
SetDNP(
true, &sheet, variantName );
245 BOOST_CHECK( symbol->
GetDNP( &sheet, variantName ) );
252 BOOST_CHECK( !symbol->
GetDNP() );
266 fn.AppendDir( wxS(
"variant_test" ) );
267 fn.SetName( wxS(
"variant_test" ) );
273 wxString variantName = wxS(
"TestVariant" );
274 wxString description = wxS(
"This is a test variant description" );
277 m_schematic->AddVariant( variantName );
278 BOOST_CHECK( m_schematic->GetVariantNames().contains( variantName ) );
281 m_schematic->SetVariantDescription( variantName, description );
282 BOOST_CHECK_EQUAL( m_schematic->GetVariantDescription( variantName ), description );
285 BOOST_CHECK( m_schematic->GetVariantDescription( wxS(
"NonExistent" ) ).IsEmpty() );
288 m_schematic->SetVariantDescription( variantName, wxEmptyString );
289 BOOST_CHECK( m_schematic->GetVariantDescription( variantName ).IsEmpty() );
300 fn.AppendDir( wxS(
"variant_test" ) );
301 fn.SetName( wxS(
"variant_test" ) );
307 wxString variantName = wxS(
"MilitaryGrade" );
310 m_schematic->AddVariant( variantName );
311 m_schematic->SetCurrentVariant( variantName );
314 wxString token = wxS(
"VARIANT" );
315 bool resolved = m_schematic->ResolveTextVar( &m_schematic->Hierarchy()[0], &token, 0 );
316 BOOST_CHECK( resolved );
320 token = wxS(
"VARIANTNAME" );
321 resolved = m_schematic->ResolveTextVar( &m_schematic->Hierarchy()[0], &token, 0 );
322 BOOST_CHECK( resolved );
326 m_schematic->SetCurrentVariant( wxEmptyString );
327 token = wxS(
"VARIANT" );
328 resolved = m_schematic->ResolveTextVar( &m_schematic->Hierarchy()[0], &token, 0 );
329 BOOST_CHECK( resolved );
330 BOOST_CHECK( token.IsEmpty() );
341 fn.AppendDir( wxS(
"variant_test" ) );
342 fn.SetName( wxS(
"variant_test" ) );
348 wxString variantName = wxS(
"IndustrialVariant" );
349 wxString description = wxS(
"Industrial temperature range components" );
352 m_schematic->AddVariant( variantName );
353 m_schematic->SetVariantDescription( variantName, description );
354 m_schematic->SetCurrentVariant( variantName );
357 wxString token = wxS(
"VARIANT_DESC" );
358 bool resolved = m_schematic->ResolveTextVar( &m_schematic->Hierarchy()[0], &token, 0 );
359 BOOST_CHECK( resolved );
363 m_schematic->SetVariantDescription( variantName, wxEmptyString );
364 token = wxS(
"VARIANT_DESC" );
365 resolved = m_schematic->ResolveTextVar( &m_schematic->Hierarchy()[0], &token, 0 );
366 BOOST_CHECK( resolved );
367 BOOST_CHECK( token.IsEmpty() );
378 fn.AppendDir( wxS(
"variant_test" ) );
379 fn.SetName( wxS(
"variant_test" ) );
388 wxString oldName = wxS(
"OriginalVariant" );
389 wxString newName = wxS(
"RenamedVariant" );
390 wxString description = wxS(
"Original description" );
393 m_schematic->AddVariant( oldName );
394 m_schematic->SetVariantDescription( oldName, description );
395 m_schematic->SetCurrentVariant( oldName );
398 symbol->
SetDNP(
true, &m_schematic->Hierarchy()[0], oldName );
402 BOOST_CHECK( symbol->
GetDNP( &m_schematic->Hierarchy()[0], oldName ) );
404 false, 0, oldName ), wxS(
"100K" ) );
407 m_schematic->RenameVariant( oldName, newName );
410 BOOST_CHECK( !m_schematic->GetVariantNames().contains( oldName ) );
413 BOOST_CHECK( m_schematic->GetVariantNames().contains( newName ) );
422 BOOST_CHECK( symbol->
GetDNP( &m_schematic->Hierarchy()[0], newName ) );
424 false, 0, newName ), wxS(
"100K" ) );
435 fn.AppendDir( wxS(
"variant_test" ) );
436 fn.SetName( wxS(
"variant_test" ) );
445 wxString sourceVariant = wxS(
"SourceVariant" );
446 wxString copyVariant = wxS(
"CopiedVariant" );
447 wxString description = wxS(
"Source description" );
450 m_schematic->AddVariant( sourceVariant );
451 m_schematic->SetVariantDescription( sourceVariant, description );
454 symbol->
SetDNP(
true, &m_schematic->Hierarchy()[0], sourceVariant );
461 m_schematic->CopyVariant( sourceVariant, copyVariant );
464 BOOST_CHECK( m_schematic->GetVariantNames().contains( sourceVariant ) );
465 BOOST_CHECK( m_schematic->GetVariantNames().contains( copyVariant ) );
468 BOOST_CHECK_EQUAL( m_schematic->GetVariantDescription( copyVariant ), description );
471 BOOST_CHECK( symbol->
GetDNP( &m_schematic->Hierarchy()[0], copyVariant ) );
472 BOOST_CHECK( symbol->
GetExcludedFromBOM( &m_schematic->Hierarchy()[0], copyVariant ) );
476 false, 0, copyVariant ), wxS(
"47K" ) );
479 symbol->
SetDNP(
false, &m_schematic->Hierarchy()[0], copyVariant );
483 BOOST_CHECK( symbol->
GetDNP( &m_schematic->Hierarchy()[0], sourceVariant ) );
485 false, 0, sourceVariant ), wxS(
"47K" ) );
488 BOOST_CHECK( !symbol->
GetDNP( &m_schematic->Hierarchy()[0], copyVariant ) );
490 false, 0, copyVariant ), wxS(
"100K" ) );
501 fn.AppendDir( wxS(
"variant_test" ) );
502 fn.SetName( wxS(
"variant_test" ) );
511 wxString variantName1 = wxS(
"DiffTestVariant1" );
512 wxString variantName2 = wxS(
"DiffTestVariant2" );
520 m_schematic->AddVariant( variantName1 );
525 false, 0, variantName1 );
529 BOOST_CHECK( defaultValue != variantValue );
532 m_schematic->AddVariant( variantName2 );
535 false, 0, variantName2 );
549 fn.AppendDir( wxS(
"variant_test" ) );
550 fn.SetName( wxS(
"variant_test" ) );
559 wxString variantName = wxS(
"DNPVariant" );
562 BOOST_CHECK( !symbol->
GetDNP() );
563 BOOST_CHECK( !symbol->
GetDNP( &m_schematic->Hierarchy()[0], wxEmptyString ) );
566 m_schematic->AddVariant( variantName );
567 symbol->
SetDNP(
true, &m_schematic->Hierarchy()[0], variantName );
570 BOOST_CHECK( !symbol->
GetDNP() );
571 BOOST_CHECK( !symbol->
GetDNP( &m_schematic->Hierarchy()[0], wxEmptyString ) );
574 BOOST_CHECK( symbol->
GetDNP( &m_schematic->Hierarchy()[0], variantName ) );
579 BOOST_CHECK( symbol->
GetExcludedFromBOM( &m_schematic->Hierarchy()[0], variantName ) );
580 BOOST_CHECK( !symbol->
GetExcludedFromBOM( &m_schematic->Hierarchy()[0], wxEmptyString ) );
603 fn.AppendDir( wxS(
"variant_test" ) );
604 fn.SetName( wxS(
"variant_test" ) );
611 m_schematic->AddVariant( wxS(
"Zebra" ) );
612 m_schematic->AddVariant( wxS(
"Alpha" ) );
613 m_schematic->AddVariant( wxS(
"Beta" ) );
615 wxArrayString variantNames = m_schematic->GetVariantNamesForUI();
618 BOOST_CHECK( variantNames.GetCount() >= 4 );
622 BOOST_CHECK( !variantNames[0].IsEmpty() );
626 bool foundAlpha =
false;
627 bool foundBeta =
false;
628 bool foundZebra =
false;
630 for(
size_t i = 1; i < variantNames.GetCount(); i++ )
632 if( variantNames[i] == wxS(
"Alpha" ) )
634 else if( variantNames[i] == wxS(
"Beta" ) )
636 else if( variantNames[i] == wxS(
"Zebra" ) )
640 BOOST_CHECK( foundAlpha );
641 BOOST_CHECK( foundBeta );
642 BOOST_CHECK( foundZebra );
655 fn.AppendDir( wxS(
"variant_test" ) );
656 fn.SetName( wxS(
"variant_test" ) );
665 wxString variantName = wxS(
"PersistenceTest" );
666 wxString newValue = wxS(
"4.7K" );
670 m_schematic->AddVariant( variantName );
673 symbol->
SetValueFieldText( newValue, &m_schematic->Hierarchy()[0], variantName );
676 std::optional<SCH_SYMBOL_VARIANT> variant = symbol->
GetVariant( m_schematic->Hierarchy()[0], variantName );
680 BOOST_CHECK( variant->m_Fields.contains( fieldName ) );
684 wxString retrievedValue = symbol->
GetValue(
false, &m_schematic->Hierarchy()[0],
false, variantName );
688 wxString retrievedDefault = symbol->
GetValue(
false, &m_schematic->Hierarchy()[0],
false, wxEmptyString );
700 fn.AppendDir( wxS(
"variant_test" ) );
701 fn.SetName( wxS(
"variant_test" ) );
710 wxString variantName1 = wxS(
"MethodTest1" );
711 wxString variantName2 = wxS(
"MethodTest2" );
712 wxString value1 = wxS(
"10K" );
713 wxString value2 = wxS(
"22K" );
716 m_schematic->AddVariant( variantName1 );
717 m_schematic->AddVariant( variantName2 );
723 symbol->
SetFieldText( fieldName, value2, &m_schematic->Hierarchy()[0], variantName2 );
726 std::optional<SCH_SYMBOL_VARIANT> variant1 = symbol->
GetVariant( m_schematic->Hierarchy()[0], variantName1 );
727 std::optional<SCH_SYMBOL_VARIANT> variant2 = symbol->
GetVariant( m_schematic->Hierarchy()[0], variantName2 );
732 BOOST_CHECK( variant1->m_Fields.contains( fieldName ) );
733 BOOST_CHECK( variant2->m_Fields.contains( fieldName ) );
756 fn.AppendDir( wxS(
"variant_test" ) );
757 fn.SetName( wxS(
"variant_test" ) );
766 wxString variantName = wxS(
"ProductionVariant" );
769 m_schematic->AddVariant( variantName );
772 symbol->
SetDNP(
true, &m_schematic->Hierarchy()[0], variantName );
775 BOOST_CHECK( symbol->
GetDNP( &m_schematic->Hierarchy()[0], wxS(
"ProductionVariant" ) ) );
778 BOOST_CHECK( m_schematic->GetVariantNames().contains( wxS(
"ProductionVariant" ) ) );
781 m_schematic->SetCurrentVariant( variantName );
785 BOOST_CHECK( !symbol->
GetDNP( &m_schematic->Hierarchy()[0], wxS(
"NonExistentVariant" ) ) );
796 fn.AppendDir( wxS(
"variant_test" ) );
797 fn.SetName( wxS(
"variant_test" ) );
806 wxString variantName = wxS(
"DeleteMe" );
809 m_schematic->AddVariant( variantName );
810 symbol->
SetDNP(
true, &m_schematic->Hierarchy()[0], variantName );
814 BOOST_CHECK( symbol->
GetDNP( &m_schematic->Hierarchy()[0], variantName ) );
815 std::optional<SCH_SYMBOL_VARIANT> variant = symbol->
GetVariant( m_schematic->Hierarchy()[0], variantName );
816 BOOST_CHECK( variant.has_value() );
819 m_schematic->DeleteVariant( variantName );
822 BOOST_CHECK( !m_schematic->GetVariantNames().contains( variantName ) );
825 BOOST_CHECK( !symbol->
GetDNP( &m_schematic->Hierarchy()[0], variantName ) );
836 fn.AppendDir( wxS(
"variant_test" ) );
837 fn.SetName( wxS(
"variant_test" ) );
846 wxString variantName = wxS(
"UnicodeTest" );
847 m_schematic->AddVariant( variantName );
850 wxString unicodeValue = wxS(
"1kΩ ±5% 日本語" );
854 false, 0, variantName );
858 wxString specialChars = wxS(
"R<1K>\"test\"'value'" );
862 false, 0, variantName );
868 false, 0, variantName );
869 BOOST_CHECK( retrieved.IsEmpty() );
872 wxString unicodeDesc = wxS(
"Variante für Produktion — 测试" );
873 m_schematic->SetVariantDescription( variantName, unicodeDesc );
874 BOOST_CHECK_EQUAL( m_schematic->GetVariantDescription( variantName ), unicodeDesc );
885 fn.AppendDir( wxS(
"variant_test" ) );
886 fn.SetName( wxS(
"variant_test" ) );
895 wxString variantName = wxS(
"MilitaryGrade" );
896 wxString variantValue = wxS(
"1K-MIL" );
897 wxString defaultValue = wxS(
"1K" );
900 m_schematic->AddVariant( variantName );
908 wxString symbolRef = symbol->
GetRef( &m_schematic->Hierarchy()[0],
false );
911 wxString token = symbolRef + wxS(
":VALUE:" ) + variantName;
912 bool resolved = m_schematic->ResolveCrossReference( &token, 0 );
913 BOOST_CHECK( resolved );
917 token = symbolRef + wxS(
":VALUE" );
918 resolved = m_schematic->ResolveCrossReference( &token, 0 );
919 BOOST_CHECK( resolved );
923 token = symbolRef + wxS(
":VALUE:NonExistentVariant" );
924 resolved = m_schematic->ResolveCrossReference( &token, 0 );
925 BOOST_CHECK( resolved );
929 token = wxS(
"VALUE" );
930 resolved = symbol->
ResolveTextVar( &m_schematic->Hierarchy()[0], &token, variantName, 0 );
931 BOOST_CHECK( resolved );
935 token = wxS(
"VALUE" );
936 resolved = symbol->
ResolveTextVar( &m_schematic->Hierarchy()[0], &token, wxEmptyString, 0 );
937 BOOST_CHECK( resolved );
951 fn.AppendDir( wxS(
"variant_test" ) );
952 fn.SetName( wxS(
"variant_test" ) );
961 wxString variantName = wxS(
"FootprintVariant" );
962 wxString baseFootprint = wxS(
"Resistor_SMD:R_0805_2012Metric" );
963 wxString variantFootprint = wxS(
"Resistor_SMD:R_0402_1005Metric" );
971 m_schematic->AddVariant( variantName );
974 symbol->
SetFieldText( fieldName, variantFootprint, &m_schematic->Hierarchy()[0], variantName );
981 wxString retrievedDefault = symbol->
GetFieldText( fieldName, &m_schematic->Hierarchy()[0], wxEmptyString );
985 wxString retrievedVariant = symbol->
GetFieldText( fieldName, &m_schematic->Hierarchy()[0], variantName );
989 std::optional<SCH_SYMBOL_VARIANT> variant = symbol->
GetVariant( m_schematic->Hierarchy()[0], variantName );
991 BOOST_CHECK( variant->m_Fields.contains( fieldName ) );
1004 fn.AppendDir( wxS(
"variant_test" ) );
1005 fn.SetName( wxS(
"variant_test" ) );
1014 wxString variantName = wxS(
"NoOpTest" );
1015 wxString baseFootprint = wxS(
"Resistor_SMD:R_0805_2012Metric" );
1022 m_schematic->AddVariant( variantName );
1025 symbol->
SetFieldText( fieldName, baseFootprint, &m_schematic->Hierarchy()[0], variantName );
1028 std::optional<SCH_SYMBOL_VARIANT> variant = symbol->
GetVariant( m_schematic->Hierarchy()[0], variantName );
1031 if( variant.has_value() )
1033 BOOST_CHECK( !variant->m_Fields.contains( fieldName ) );
1046 fn.AppendDir( wxS(
"variant_test" ) );
1047 fn.SetName( wxS(
"variant_test" ) );
1054 m_schematic->SetCurrentSheet( m_schematic->Hierarchy()[0] );
1062 wxString variantName = wxS(
"BboxVariant" );
1063 wxString shortFp = wxS(
"R_0402" );
1064 wxString longFp = wxS(
"Resistor_SMD:R_2512_6332Metric_Pad1.52x3.35mm_HandSolder" );
1070 m_schematic->AddVariant( variantName );
1071 symbol->
SetFieldText( fpField->
GetName(), longFp, &m_schematic->Hierarchy()[0], variantName );
1074 wxString resolvedDefault = fpField->
GetShownText( &m_schematic->Hierarchy()[0],
false, 0, wxEmptyString );
1075 wxString resolvedVariant = fpField->
GetShownText( &m_schematic->Hierarchy()[0],
false, 0, variantName );
1080 m_schematic->SetCurrentVariant( wxEmptyString );
1081 wxString implicitDefault = fpField->
GetShownText(
false );
1083 m_schematic->SetCurrentVariant( variantName );
1084 wxString implicitVariant = fpField->
GetShownText(
false );
1090 m_schematic->SetCurrentVariant( wxEmptyString );
1096 m_schematic->SetCurrentVariant( variantName );
1104 m_schematic->SetCurrentVariant( wxEmptyString );
1124 fn.AppendDir( wxS(
"variant_test" ) );
1125 fn.SetName( wxS(
"variant_test" ) );
1143 BOOST_CHECK( !defaultVariant.
m_DNP );
1154 "InitializeAttributes should copy DNP from symbol" );
1156 "InitializeAttributes should copy ExcludedFromBOM from symbol" );
1158 "InitializeAttributes should copy ExcludedFromSim from symbol" );
1160 "InitializeAttributes should copy ExcludedFromBoard from symbol" );
1162 "InitializeAttributes should copy ExcludedFromPosFiles from symbol" );
1195 "'+5VA' symbol must not match whole-word search for '+5V'" );
1200 "'+5VA' symbol must match plain search for '+5V'" );
1206 "'+5VA' symbol must match whole-word search for '+5VA'" );
constexpr size_type GetWidth() const
EDA_ITEM * GetParent() const
virtual void SetParent(EDA_ITEM *aParent)
BOX2I GetTextBox(const RENDER_SETTINGS *aSettings, int aLine=-1) const
Useful in multiline texts to calculate the full text or a line area (for zones filling,...
virtual void SetVisible(bool aVisible)
virtual void ClearBoundingBoxCache()
EE_TYPE OfType(KICAD_T aType) const
A generic fixture for loading schematics and associated settings for qa tests.
std::unique_ptr< SCHEMATIC > m_schematic
Define a library symbol object.
const LIB_ID & GetLibId() const override
SCH_FIELD & GetValueField()
Return reference to the value field.
virtual const wxString & GetText() const override
Return the string associated with the text object.
wxString GetShownText(const SCH_SHEET_PATH *aPath, bool aAllowExtraText, int aDepth=0, const wxString &aVariantName=wxEmptyString) const
wxString GetName(bool aUseDefaultName=true) const
Return the field name (not translated).
void SetText(const wxString &aText) override
Base class for any item which can be embedded within the SCHEMATIC container class,...
EE_RTREE & Items()
Get the full RTree, usually for iterating.
A container for handling SCH_SHEET_PATH objects in a flattened hierarchy.
Handle access to a stack of flattened SCH_SHEET objects by way of a path for creating a flattened sch...
Variant information for a schematic symbol.
void InitializeAttributes(const SCH_SYMBOL &aSymbol)
bool GetExcludedFromSim(const SCH_SHEET_PATH *aInstance=nullptr, const wxString &aVariantName=wxEmptyString) const override
virtual void SetDNP(bool aEnable, const SCH_SHEET_PATH *aInstance=nullptr, const wxString &aVariantName=wxEmptyString) override
void SetFieldText(const wxString &aFieldName, const wxString &aFieldText, const SCH_SHEET_PATH *aPath=nullptr, const wxString &aVariantName=wxEmptyString)
wxString GetFieldText(const wxString &aFieldName, const SCH_SHEET_PATH *aPath=nullptr, const wxString &aVariantName=wxEmptyString) const
void SetExcludedFromSim(bool aEnable, const SCH_SHEET_PATH *aInstance=nullptr, const wxString &aVariantName=wxEmptyString) override
Set or clear the exclude from simulation flag.
std::optional< SCH_SYMBOL_VARIANT > GetVariant(const SCH_SHEET_PATH &aInstance, const wxString &aVariantName) const
bool GetExcludedFromBOM(const SCH_SHEET_PATH *aInstance=nullptr, const wxString &aVariantName=wxEmptyString) const override
bool Matches(const EDA_SEARCH_DATA &aSearchData, void *aAuxData) const override
Compare the item against the search criteria in aSearchData.
const wxString GetValue(bool aResolve, const SCH_SHEET_PATH *aPath, bool aAllowExtraText, const wxString &aVariantName=wxEmptyString) const override
const wxString GetFootprintFieldText(bool aResolve, const SCH_SHEET_PATH *aPath, bool aAllowExtraText, const wxString &aVariantName=wxEmptyString) const
void SetFootprintFieldText(const wxString &aFootprint)
void SetExcludedFromPosFiles(bool aEnable, const SCH_SHEET_PATH *aInstance=nullptr, const wxString &aVariantName=wxEmptyString) override
bool ResolveTextVar(const SCH_SHEET_PATH *aPath, wxString *token, int aDepth=0) const
Resolve any references to system tokens supported by the symbol.
void SetValueFieldText(const wxString &aValue, const SCH_SHEET_PATH *aInstance=nullptr, const wxString &aVariantName=wxEmptyString)
bool GetExcludedFromPosFiles(const SCH_SHEET_PATH *aInstance=nullptr, const wxString &aVariantName=wxEmptyString) const override
SCH_FIELD * AddField(const SCH_FIELD &aField)
Add a field to the symbol.
bool GetExcludedFromBoard(const SCH_SHEET_PATH *aInstance=nullptr, const wxString &aVariantName=wxEmptyString) const override
void SetExcludedFromBOM(bool aEnable, const SCH_SHEET_PATH *aInstance=nullptr, const wxString &aVariantName=wxEmptyString) override
Set or clear the exclude from schematic bill of materials flag.
virtual bool GetDNP(const SCH_SHEET_PATH *aInstance=nullptr, const wxString &aVariantName=wxEmptyString) const override
Set or clear the 'Do Not Populate' flag.
const wxString GetRef(const SCH_SHEET_PATH *aSheet, bool aIncludeUnit=false) const override
void SetExcludedFromBoard(bool aEnable, const SCH_SHEET_PATH *aInstance=nullptr, const wxString &aVariantName=wxEmptyString) override
SCH_FIELD * GetField(FIELD_T aFieldType)
Return a mandatory field in this symbol.
SCH_SYMBOL * GetFirstSymbol()
SCH_SYMBOL object with no extra data set.
bool m_ExcludedFromPosFiles
static const std::string KiCadSchematicFileExtension
std::string GetEeschemaTestDataDir()
Get the configured location of Eeschema test data.
static void LoadSchematic(SCHEMATIC *aSchematic, SCH_SHEET *aRootSheet, const wxString &aFileName)
EDA_SEARCH_MATCH_MODE matchMode
@ USER
The field ID hasn't been set yet; field is invalid.
@ FOOTPRINT
Field Name Module PCB, i.e. "16DIP300".
@ VALUE
Field Value of part, i.e. "3.3K".
BOOST_AUTO_TEST_CASE(HorizontalAlignment)
BOOST_REQUIRE(intersection.has_value()==c.ExpectedIntersection.has_value())
BOOST_AUTO_TEST_SUITE_END()
BOOST_CHECK_MESSAGE(totalMismatches==0, std::to_string(totalMismatches)+" board(s) with strategy disagreements")
BOOST_AUTO_TEST_CASE(DefaultProperties)
Declare the test suite.
BOOST_CHECK_EQUAL(result, "25.4")
VECTOR2< int32_t > VECTOR2I
Definition of file extensions used in Kicad.