37LIB_ID makeFp(
const wxString& aLibNick,
const wxString& aName )
41 id.SetLibItemName( aName );
49 pin->SetNumber( aNumber );
61 m_dfn = makeFp( wxS(
"Package_DFN_QFN" ), wxS(
"DFN-8-1EP" ) );
63 m_lib = std::make_unique<LIB_SYMBOL>( wxS(
"LM358" ),
nullptr );
64 addPin( *
m_lib, wxS(
"1" ) );
65 addPin( *
m_lib, wxS(
"4" ) );
66 addPin( *
m_lib, wxS(
"8" ) );
68 PIN_MAP map( wxS(
"DFN-8-EP" ) );
69 map.
SetEntry( wxS(
"4" ), wxS(
"[4,9]" ) );
70 m_lib->PinMaps().AddOrReplace( map );
71 m_lib->SetAssociatedFootprints( { {
m_dfn, wxS(
"DFN-8-EP" ) } } );
81 std::unique_ptr<LIB_SYMBOL>
m_lib;
92 std::set<wxString> dfnPads = { wxS(
"1" ), wxS(
"2" ), wxS(
"3" ), wxS(
"4" ),
93 wxS(
"5" ), wxS(
"6" ), wxS(
"7" ), wxS(
"9" ) };
101 BOOST_CHECK( state == PAD_RESOLUTION::MAPPED );
107 BOOST_CHECK( state == PAD_RESOLUTION::IDENTITY );
110 BOOST_CHECK(
pin( wxS(
"8" ) )->GetEffectivePadNumber( m_sheet, wxEmptyString, m_dfn, &dfnPads,
111 &state ).IsEmpty() );
112 BOOST_CHECK( state == PAD_RESOLUTION::UNMAPPED );
124 BOOST_CHECK( state == PAD_RESOLUTION::MAPPED );
130 BOOST_CHECK( state == PAD_RESOLUTION::IDENTITY );
141 m_symbol->SetPinMapOverride( forceIdentity );
143 std::set<wxString> pads = { wxS(
"4" ) };
147 BOOST_CHECK( state == PAD_RESOLUTION::IDENTITY );
150 forceIdentity.
m_Edits.push_back( { wxS(
"4" ), wxS(
"99" ) } );
151 m_symbol->SetPinMapOverride( forceIdentity );
155 BOOST_CHECK( state == PAD_RESOLUTION::IDENTITY );
160 edited.
m_Edits.push_back( { wxS(
"4" ), wxS(
"99" ) } );
161 m_symbol->SetPinMapOverride( edited );
166 BOOST_CHECK( state == PAD_RESOLUTION::MAPPED );
175 m_lib->PinMaps().AddOrReplace(
PIN_MAP( wxS(
"SWAP" ) ) );
176 m_lib->PinMaps().FindByName( wxS(
"SWAP" ) )->SetEntry( wxS(
"1" ), wxS(
"8" ) );
179 m_symbol = std::make_unique<SCH_SYMBOL>( *m_lib, m_lib->GetLibId(),
nullptr, 0, 0,
181 m_symbol->UpdatePins();
186 m_symbol->SetPinMapOverride( named );
191 BOOST_CHECK( state == PAD_RESOLUTION::MAPPED );
A logical library item identifier and consists of various portions much like a URI.
int SetLibNickname(const UTF8 &aLibNickname)
Override the logical library name portion of the LIB_ID to aLibNickname.
Define a library symbol object.
void AddDrawItem(SCH_ITEM *aItem, bool aSort=true)
Add a new draw aItem to the draw object list and sort according to aSort.
void SetEntry(const wxString &aPinNumber, const wxString &aPadNumber)
Set the pad number for a symbol pin.
PAD_RESOLUTION
Outcome of pin-to-pad resolution (issue #2282).
Handle access to a stack of flattened SCH_SHEET objects by way of a path for creating a flattened sch...
@ PT_PASSIVE
pin for passive symbols: must be connected, and can be connected to any pin.
Definition of the SCH_SHEET_PATH and SCH_SHEET_LIST classes for Eeschema.
Per-instance override of the active pin map and a sparse delta on top.
std::vector< PIN_MAP_ENTRY > m_Edits
PIN_MAP_OVERRIDE_MODE m_Mode
std::unique_ptr< SCH_SYMBOL > m_symbol
std::unique_ptr< LIB_SYMBOL > m_lib
PIN_MAP_RESOLVER_FIXTURE()
SCH_PIN * pin(const wxString &aNumber) const
BOOST_AUTO_TEST_CASE(HorizontalAlignment)
BOOST_AUTO_TEST_SUITE_END()
BOOST_AUTO_TEST_CASE(ThreeResolutionStates)
SCH_PIN::PAD_RESOLUTION PAD_RESOLUTION
BOOST_CHECK_EQUAL(result, "25.4")
VECTOR2< int32_t > VECTOR2I