Example #1
0
/// Tests the Complex Symbol Functions
/// @return True if all tests were executed, false if not
bool PositionTestSuite::TestCaseComplexSymbol()
{
    //------Last Checked------//
    // - Jan 19, 2005
    
    // TEST CASE: IsValidComplexSymbolType
    {
        wxByte i = 0;
        for (;;i++)
        {
            TEST(wxString::Format(wxT("IsValidComplexSymbolType - %d"), i),
                (Position::IsValidComplexSymbolType(i) == 
                ((i == Position::volumeSwell) || (i == Position::tremoloBar) ||
                (i == Position::multibarRest)))
            );
            
            // block overflow
            if (i == 255)
                break;
        }
    }
    
    // TEST CASE: AddComplexSymbol
    {
        Position position;
        TEST(wxT("AddComplexSymbol - invalid type"),
            !position.AddComplexSymbol(0));
        position.SetVolumeSwell(Dynamic::off, Dynamic::mp, 1);
        position.SetTremoloBar(Position::invertedDip, 1, 12);
        TEST(wxT("AddComplexSymbol - full"), !position.SetMultibarRest(10));
    }
    
    // TEST CASE: GetComplexSymbolCount
    {
        Position position;
        TEST(wxT("GetComplexSymbolCount - 0"),
            (position.GetComplexSymbolCount() == 0)
        );
        
        position.SetVolumeSwell(Dynamic::off, Dynamic::mp, 1);
        position.SetTremoloBar(Position::invertedDip, 1, 12);
        
        TEST(wxT("GetComplexSymbolCount - 2"), 
            (position.GetComplexSymbolCount() == 2)
        );
        
        position.ClearComplexSymbolArrayContents();
        TEST(wxT("GetComplexSymbolCount - 0"),
            (position.GetComplexSymbolCount() == 0)
        );
    }
    
    // TEST CASE: FindComplexSymbol
    {
        Position position;
        position.SetVolumeSwell(Dynamic::off, Dynamic::mp, 1);
        position.SetTremoloBar(Position::invertedDip, 1, 12);
        
        TEST(wxT("FindComplexSymbol - volume swell"),
            (position.FindComplexSymbol(Position::volumeSwell) == 0));
        TEST(wxT("FindComplexSymbol - tremolo bar"),
            (position.FindComplexSymbol(Position::tremoloBar) == 1));
    }

    // TEST CASE: RemoveComplexSymbol
    {
        Position position;
        position.SetVolumeSwell(Dynamic::off, Dynamic::mp, 1);
        position.SetTremoloBar(Position::invertedDip, 1, 12);
        
        TEST(wxT("RemoveComplexSymbol - tremolo bar"), 
            (position.RemoveComplexSymbol(Position::tremoloBar)) &&
            (!position.HasTremoloBar())
        );
        
        TEST(wxT("RemoveComplexSymbol - volume swell"), 
            (position.RemoveComplexSymbol(Position::volumeSwell)) &&
            (!position.HasVolumeSwell())
        );
    }
        
    return (true);
}