50    std::unique_ptr<LINE_READER> GetReader( 
const wxString& aURI )
 const override 
   52        return std::make_unique<STRING_LINE_READER>( 
"", 
"DUMMY_LIB_TABLE_IO Data" );
 
   55    bool CanSaveToUri( 
const wxString& aURI )
 const override 
   61    bool UrisAreEquivalent( 
const wxString& aURI1, 
const wxString& aURI2 )
 const override 
   63        return aURI1 == aURI2;
 
   66    std::unique_ptr<OUTPUTFORMATTER> GetWriter( 
const wxString& aURI )
 const override 
   68        return std::make_unique<STRING_FORMATTER>();
 
   80    TEST_LIB_TABLE_ROW( 
const wxString& aNick, 
const wxString& aURI, 
const wxString& aOptions,
 
   81            const wxString& aDescr )
 
   82            : LIB_TABLE_ROW( aNick, aURI, aOptions, aDescr )
 
   86    const wxString GetType()
 const override { 
return m_type; }
 
   87    void SetType( 
const wxString& aType )
 override { m_type = aType; }
 
   89    bool LibraryExists()
 const override { 
return true; }
 
   92    LIB_TABLE_ROW* do_clone()
 const override 
   94        return new TEST_LIB_TABLE_ROW( *
this );
 
  111    TEST_LIB_TABLE( LIB_TABLE* aFallback = 
nullptr ) :
 
  112            LIB_TABLE( aFallback, std::make_unique<DUMMY_LIB_TABLE_IO>() )
 
  123    void Parse( LIB_TABLE_LEXER* aLexer )
 override 
  129    void Format( OUTPUTFORMATTER* aOutput, 
int aIndentLevel )
 const override 
  139struct LIB_ROW_DEFINITION
 
  141    std::string m_nickname;
 
  143    std::string m_description;
 
  152static const std::vector<LIB_ROW_DEFINITION> main_lib_defs = {
 
  162        "The second library",
 
  173static const std::vector<LIB_ROW_DEFINITION> fallback_lib_defs = {
 
  177        "The first fallback library",
 
  183        "The second fallback library",
 
  193struct LIB_TABLE_TEST_FIXTURE
 
  195    LIB_TABLE_TEST_FIXTURE() : m_mainTableWithFb( &m_fallbackTable )
 
  197        for( 
const auto& lib : main_lib_defs )
 
  199            m_mainTableNoFb.InsertRow( makeRowFromDef( lib ).release() );
 
  200            m_mainTableWithFb.InsertRow( makeRowFromDef( lib ).release() );
 
  203        for( 
const auto& lib : fallback_lib_defs )
 
  205            m_fallbackTable.InsertRow( makeRowFromDef( lib ).release() );
 
  212    std::unique_ptr<TEST_LIB_TABLE_ROW> makeRowFromDef( 
const LIB_ROW_DEFINITION& aDef )
 
  214        auto row = std::make_unique<TEST_LIB_TABLE_ROW>(
 
  215                aDef.m_nickname, aDef.m_uri, 
"", aDef.m_description );
 
  217        row->SetEnabled( aDef.m_enabled );
 
  223    TEST_LIB_TABLE m_mainTableNoFb;
 
  226    TEST_LIB_TABLE m_mainTableWithFb;
 
  229    TEST_LIB_TABLE m_fallbackTable;
 
  237BOOST_FIXTURE_TEST_SUITE( LibTable, LIB_TABLE_TEST_FIXTURE )
 
  244    TEST_LIB_TABLE 
table;
 
 
  258    TEST_LIB_TABLE interposer_table( &m_fallbackTable );
 
  259    TEST_LIB_TABLE 
table( &interposer_table );
 
 
  281    m_mainTableWithFb.At( 1 ).SetNickName( 
"NewNickname" );
 
  286    TEST_LIB_TABLE empty_table;
 
 
  300    const auto& row0 = m_mainTableNoFb.At( 0 );
 
  303    const auto& row1 = m_mainTableNoFb.At( 1 );
 
  307    const auto& row2 = m_mainTableNoFb.At( 2 );
 
 
  336    BOOST_CHECK_EQUAL( 
"The first library", m_mainTableNoFb.GetDescription( 
"Lib1" ) );
 
  339    BOOST_CHECK_EQUAL( 
"The third library", m_mainTableNoFb.GetDescription( 
"Lib3" ) );
 
 
  350    const LIB_TABLE_ROW* row = m_mainTableNoFb.FindRowByURI( 
"://lib/1" );
 
  353    BOOST_CHECK_NE( 
nullptr, row );
 
  360    row = m_mainTableNoFb.FindRowByURI( 
"this_uri_is_not_found" );
 
 
  371    auto logical_libs = m_mainTableNoFb.GetLogicalLibs();
 
  374    const std::vector<wxString> exp_libs = {
 
  379    BOOST_CHECK_EQUAL_COLLECTIONS(
 
  380            logical_libs.begin(), logical_libs.end(), exp_libs.begin(), exp_libs.end() );
 
 
LIB_TABLE_IO abstracts the file I/O operations for the library table loading and saving.
 
Hold a record identifying a library accessed by the appropriate plug in object in the LIB_TABLE.
 
const wxString & GetNickName() const
 
Manage LIB_TABLE_ROW records (rows), and can be searched based on library nickname.
 
ELEM
The set of #_ELEMs that a PROJECT can hold.
 
PARSE_RESULT Parse(const std::string &aString, NOTATION aNotation=NOTATION::SI, SIM_VALUE::TYPE aValueType=SIM_VALUE::TYPE_FLOAT)
 
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, const CPTREE &aTree)
Output a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
 
BOOST_AUTO_TEST_CASE(HorizontalAlignment)
 
BOOST_AUTO_TEST_SUITE_END()
 
BOOST_AUTO_TEST_CASE(Empty)
Declare the test suite.
 
BOOST_CHECK_EQUAL(result, "25.4")