128    std::vector<std::reference_wrapper<const SIM_MODEL_PIN>> pins = 
m_model.GetPins();
 
  133    std::sort( pins.begin(), pins.end(),
 
  136                   return StrNumCmp( lhs.symbolPinNumber, rhs.symbolPinNumber, true ) < 0;
 
  141        std::string symbolPinNumber( 
pin.symbolPinNumber.ToUTF8() );
 
  143        if( symbolPinNumber != 
"" )
 
  148            result.append( fmt::format( 
"{}={}", symbolPinNumber, 
pin.modelPinName ) );
 
 
  195    tao::pegtl::string_input<> in( aParams, 
"Sim.Params field" );
 
  196    std::unique_ptr<tao::pegtl::parse_tree::node> root;
 
  208    catch( 
const tao::pegtl::parse_error& e )
 
  213    std::string paramName;
 
  214    bool        isPrimaryValueSet = 
false;
 
  216    for( 
const auto& node : root->children )
 
  220            paramName = node->string();
 
  227            wxASSERT( paramName != 
"" );
 
  231            if( 
m_model.GetParam( 0 ).Matches( paramName ) )
 
  232                isPrimaryValueSet = 
true;
 
  236            std::string str = node->string();
 
  239            boost::replace_all( str, 
"\\\"", 
"\"" );
 
  245            std::string token = node->string();
 
  255    return !
m_model.HasPrimaryValue() || 
m_model.HasAutofill() || isPrimaryValueSet;
 
 
  264    tao::pegtl::string_input<> in( aPins, 
"Sim.Pins field" );
 
  265    std::unique_ptr<tao::pegtl::parse_tree::node> root;
 
  275        for( 
const auto& node : root->children )
 
  277            std::string symbolPinNumber = node->children.at( 0 )->string();
 
  278            std::string modelPinName = node->children.at( 1 )->string();
 
  280            m_model.AssignSymbolPinNumberToModelPin( modelPinName, symbolPinNumber );
 
  283    catch( 
const tao::pegtl::parse_error& e )
 
 
wxString result
Test unit parsing edge cases and error handling.