Sim: Minor SIM_LIBRARY cleanup
This commit is contained in:
parent
b95f4ec6bb
commit
6f2b2d7e19
|
@ -574,12 +574,9 @@ void DIALOG_SIM_MODEL<T>::loadLibrary( const wxString& aFilePath )
|
|||
|
||||
try
|
||||
{
|
||||
for( unsigned i = 0; i < m_library->GetModels().size(); ++i )
|
||||
for( auto& [baseModelName, baseModel] : m_library->GetModels() )
|
||||
{
|
||||
const SIM_MODEL& baseModel = m_library->GetModels().at( i );
|
||||
wxString baseModelName = m_library->GetModelNames().at( i );
|
||||
wxString expectedModelName;
|
||||
|
||||
expectedModelName =
|
||||
SIM_MODEL::GetFieldValue( &m_fields, SIM_LIBRARY_KIBIS::NAME_FIELD );
|
||||
|
||||
|
@ -604,8 +601,8 @@ void DIALOG_SIM_MODEL<T>::loadLibrary( const wxString& aFilePath )
|
|||
}
|
||||
|
||||
wxArrayString modelNames;
|
||||
for( const std::string& name : m_library->GetModelNames() )
|
||||
modelNames.Add( name );
|
||||
for( auto& [modelName, model] : m_library->GetModels() )
|
||||
modelNames.Add( modelName );
|
||||
|
||||
auto validator = dynamic_cast<MODEL_NAME_VALIDATOR*>( m_modelNameCombobox->GetValidator() );
|
||||
|
||||
|
|
|
@ -50,11 +50,11 @@ void SIM_LIBRARY::ReadFile( const std::string& aFilePath )
|
|||
|
||||
SIM_MODEL* SIM_LIBRARY::FindModel( const std::string& aModelName ) const
|
||||
{
|
||||
for( int i = 0; i < static_cast<int>( GetModelNames().size() ); ++i )
|
||||
for( int i = 0; i < static_cast<int>( m_modelNames.size() ); ++i )
|
||||
{
|
||||
std::string curModelName = GetModelNames().at( i );
|
||||
const std::string& modelName = m_modelNames.at( i );
|
||||
|
||||
if( curModelName == aModelName )
|
||||
if( modelName == aModelName )
|
||||
return m_models.at( i ).get();
|
||||
}
|
||||
|
||||
|
@ -62,12 +62,12 @@ SIM_MODEL* SIM_LIBRARY::FindModel( const std::string& aModelName ) const
|
|||
}
|
||||
|
||||
|
||||
std::vector<std::reference_wrapper<SIM_MODEL>> SIM_LIBRARY::GetModels() const
|
||||
std::vector<SIM_LIBRARY::MODEL> SIM_LIBRARY::GetModels() const
|
||||
{
|
||||
std::vector<std::reference_wrapper<SIM_MODEL>> ret;
|
||||
std::vector<MODEL> result;
|
||||
|
||||
for( const std::unique_ptr<SIM_MODEL>& model : m_models )
|
||||
ret.emplace_back( *model );
|
||||
for( int i = 0; i < static_cast<int>( m_modelNames.size() ); ++i )
|
||||
result.push_back( { m_modelNames.at( i ), *m_models.at( i ) } );
|
||||
|
||||
return ret;
|
||||
return result;
|
||||
}
|
||||
|
|
|
@ -34,6 +34,12 @@ public:
|
|||
static constexpr auto LIBRARY_FIELD = "Sim_Library";
|
||||
static constexpr auto NAME_FIELD = "Sim_Name";
|
||||
|
||||
struct MODEL
|
||||
{
|
||||
std::string name;
|
||||
SIM_MODEL& model;
|
||||
};
|
||||
|
||||
virtual ~SIM_LIBRARY() = default;
|
||||
SIM_LIBRARY() = default;
|
||||
|
||||
|
@ -65,8 +71,7 @@ public:
|
|||
|
||||
SIM_MODEL* FindModel( const std::string& aModelName ) const;
|
||||
|
||||
std::vector<std::reference_wrapper<SIM_MODEL>> GetModels() const;
|
||||
const std::vector<std::string>& GetModelNames() const { return m_modelNames; }
|
||||
std::vector<MODEL> GetModels() const;
|
||||
|
||||
std::string GetFilePath() const { return m_filePath; }
|
||||
std::string GetError() const { return m_error; }
|
||||
|
@ -76,8 +81,8 @@ public:
|
|||
virtual SIM_LIBRARY::LIBRARY_TYPE GetType() { return SIM_LIBRARY::LIBRARY_TYPE::NONE; };
|
||||
|
||||
protected:
|
||||
std::vector<std::string> m_modelNames;
|
||||
std::vector<std::unique_ptr<SIM_MODEL>> m_models;
|
||||
std::vector<std::string> m_modelNames;
|
||||
|
||||
std::string m_filePath;
|
||||
std::string m_error;
|
||||
|
|
|
@ -131,15 +131,13 @@ BOOST_AUTO_TEST_CASE( Diodes )
|
|||
|
||||
LoadLibrary( "diodes" );
|
||||
|
||||
const std::vector<std::reference_wrapper<SIM_MODEL>> models = m_library->GetModels();
|
||||
const std::vector<std::string>& modelNames = m_library->GetModelNames();
|
||||
const std::vector<SIM_LIBRARY::MODEL> models = m_library->GetModels();
|
||||
|
||||
BOOST_CHECK_EQUAL( models.size(), 22 );
|
||||
|
||||
for( int i = 0; i < models.size(); ++i )
|
||||
{
|
||||
const SIM_MODEL& model = models.at( i );
|
||||
const std::string& modelName = modelNames.at( i );
|
||||
const auto& [modelName, model] = models.at( i );
|
||||
|
||||
switch( i )
|
||||
{
|
||||
|
@ -238,15 +236,13 @@ BOOST_AUTO_TEST_CASE( Bjts )
|
|||
|
||||
LoadLibrary( "bjts" );
|
||||
|
||||
const std::vector<std::reference_wrapper<SIM_MODEL>> models = m_library->GetModels();
|
||||
const std::vector<std::string>& modelNames = m_library->GetModelNames();
|
||||
const std::vector<SIM_LIBRARY::MODEL> models = m_library->GetModels();
|
||||
|
||||
BOOST_CHECK_EQUAL( models.size(), 6 );
|
||||
|
||||
for( int i = 0; i < models.size(); ++i )
|
||||
{
|
||||
const SIM_MODEL& model = models.at( i );
|
||||
const std::string& modelName = modelNames.at( i );
|
||||
const auto& [modelName, model] = models.at( i );
|
||||
|
||||
switch( i )
|
||||
{
|
||||
|
@ -294,15 +290,13 @@ BOOST_AUTO_TEST_CASE( Fets )
|
|||
|
||||
LoadLibrary( "fets" );
|
||||
|
||||
const std::vector<std::reference_wrapper<SIM_MODEL>> models = m_library->GetModels();
|
||||
const std::vector<std::string>& modelNames = m_library->GetModelNames();
|
||||
const std::vector<SIM_LIBRARY::MODEL> models = m_library->GetModels();
|
||||
|
||||
BOOST_CHECK_EQUAL( models.size(), 44 );
|
||||
|
||||
for( int i = 0; i < models.size(); ++i )
|
||||
{
|
||||
const SIM_MODEL& model = models.at( i );
|
||||
const std::string& modelName = modelNames.at( i );
|
||||
const auto& [modelName, model] = models.at( i );
|
||||
|
||||
switch( i )
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue