⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ctokenreadertester.cpp

📁 这是一个能够自动生成文档的程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/**************************************************
//$$ BEGIN
unsigned_int@UINT$DWORD@0@3@0$1$0xFFFFFFFF
PFReadToken@@1@1@()
int@INT4@0@5@-2147483647$-1$0$1$2147483647
BOOL@@0@2@0$1
CString@@0@3@"Visual Unit"$""$"中文怎么样?"
CTokenList@@1@1@()
POSITION@@0@1@0
LPCTSTR@@0@2@""$0
//$$ END
**************************************************/


/**************************************************
作    者:user1
建立日期:2006-8-14
修改日期:
说    明:测试文件,用于测试[CTokenReader]。
**************************************************/

#include "stdafx.h"
//
/////////////////////////////////////////////////////////////////////////////
#include "CTokenReaderTester.h"

//
/////////////////////////////////////////////////////////////////////////////

void CTokenReaderTester::ClassTest()
{
    TEST_SOURCE_NAME(TokenReader.cpp);
    CUSTOM_TEST(CTokenReader);
 
    //$$
    TEST_CALL_BEGIN(CTokenReader,1,0)
    TEST_CALL1(NextToken_())//NextToken()
    TEST_CALL1(ReadCodeToken_UINT_PFReadToken_int_BOOL())//ReadCodeToken(UINT,PFReadToken,int,BOOL)
    TEST_CALL1(TokenListToString_CStringR_CTokenListR_POSITIONR_UINT_UINT_UINT())//TokenListToString(CString&,CTokenList&,POSITION&,UINT,UINT,UINT)
    TEST_CALL1(BeforeNextToken_UINTR())//BeforeNextToken(UINT&)
    TEST_CALL1(TokenListToCString_CStringR_CTokenListR_POSITIONR_UINT_UINT_UINT())//TokenListToCString(CString&,CTokenList&,POSITION&,UINT,UINT,UINT)
    TEST_CALL1(ReadTokenList_CTokenListR_LPCTSTR())//ReadTokenList(CTokenList&,LPCTSTR)
    TEST_CALL1(ClearTokenList_CTokenListR())//ClearTokenList(CTokenList&)
    TEST_CALL_END()
    //$$
}

//
/////////////////////////////////////////////////////////////////////////////

CTokenReaderTester::CTokenReaderTester()
{
    pObj = 0;
}

CTokenReaderTester::~CTokenReaderTester()
{

}

void CTokenReaderTester::BeginCase(int arg)
{
    switch(arg)
    {

    case ARG_DEFAULT:
    {
        pObj = new TESTCLASS();
        break;
    }
    /*
    case :
    {
        pObj = new TESTCLASS();
        break;
    }
    case :
    {
        pObj = new TESTCLASS();
        break;
    }
    */

    }
}

void CTokenReaderTester::EndCase(int /*arg*/)
{
    delete pObj;
    pObj = 0;
}

//自定义测试,用MY_ASSERT(布尔表达式)断言预期输出
/////////////////////////////////////////////////////////////////////////////

void CTokenReaderTester::CustomTest()
{

}

//
/////////////////////////////////////////////////////////////////////////////

void CTokenReaderTester::NextToken_()
{
    TEST_BEGIN(CTokenReader::NextToken());
    CToken* ret;

    //$$CASE_BEGIN(NextToken_())

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    pObj->mpCode = NULL;
    TEST_RUN( ret = pObj->NextToken() );
    TEST_ASSERT( ret == NULL );
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [1] [正常] [2006-8-14 20:20:8]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char temp[1024] = "abcde";
    pObj->mpCode = temp;
    pObj->Init();
    TEST_RUN( ret = pObj->NextToken() );
    TEST_ASSERT( strcmp(ret->GetContent(), "abcde") == 0 );
    TEST_ASSERT( ret->GetType() == TT_WORD );
    delete ret; //!
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [2] [正常] [2006-8-14 20:12:16]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char temp[1024] = " \\\ncde";
    pObj->mpCode = temp;
    pObj->Init();
    TEST_RUN( ret = pObj->NextToken() );
    TEST_ASSERT( strcmp(ret->GetContent(), "cde") == 0 );
    TEST_ASSERT( ret->GetType() == TT_WORD );
    delete ret; //!
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [3] [正常] [2006-8-26 19:49:3]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char temp[1024] = "L\"abcde\"akd";
    pObj->mpCode = temp;
    pObj->Init();
    LPCTSTR out = "L\"abcde\"";
    TEST_RUN( ret = pObj->NextToken() );
    TEST_ASSERT( strcmp(ret->GetContent(), out) == 0 );
    TEST_ASSERT( ret->GetType() == TT_WSTRING );
    delete ret; //!
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [4] [正常] [2006-8-16 15:5:10]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char temp[1024] = "->//dkei\nkkei";
    pObj->mpCode = temp;
    pObj->Init();
    TEST_RUN( ret = pObj->NextToken() );
    TEST_ASSERT( ret->GetType() == TT_ARROW );
    delete ret; //!
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [5] [正常] [2006-8-15 11:48:28]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char temp[1024] = "Labcde";
    pObj->mpCode = temp;
    pObj->Init();
    TEST_RUN( ret = pObj->NextToken() );
    TEST_ASSERT( strcmp(ret->GetContent(), "Labcde") == 0 );
    TEST_ASSERT( ret->GetType() == TT_WORD );
    delete ret; //!
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [6] [正常] [2006-8-16 14:58:10]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char temp[1024] = "12345 dk";
    pObj->mpCode = temp;
    pObj->Init();
    TEST_RUN( ret = pObj->NextToken() );
    TEST_ASSERT( ret->GetType() == TT_DIGIT );
    TEST_ASSERT( strcmp(ret->GetContent(), "12345") == 0 );
    TEST_ASSERT( ret->GetType() == TT_DIGIT );
    delete ret; //!
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [7] [正常] [2006-8-16 14:58:31]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char temp[1024] = "12345E1 dk";
    pObj->mpCode = temp;
    pObj->Init();
    TEST_RUN( ret = pObj->NextToken() );
    TEST_ASSERT( ret->GetType() == TT_DIGIT );
    TEST_ASSERT( strcmp(ret->GetContent(), "12345E1") == 0 );
    TEST_ASSERT( ret->GetType() == TT_DIGIT );
    delete ret; //!
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [8] [正常] [2006-8-16 14:59:36]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char temp[1024] = "0x1234 dk";
    pObj->mpCode = temp;
    pObj->Init();
    TEST_RUN( ret = pObj->NextToken() );
    TEST_ASSERT( ret->GetType() == TT_DIGIT );
    TEST_ASSERT( strcmp(ret->GetContent(), "0x1234") == 0 );
    TEST_ASSERT( ret->GetType() == TT_DIGIT );
    delete ret; //!
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [9] [正常] [2006-8-16 14:59:51]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char temp[1024] = "0x12b3a4 dk";
    pObj->mpCode = temp;
    pObj->Init();
    TEST_RUN( ret = pObj->NextToken() );
    TEST_ASSERT( ret->GetType() == TT_DIGIT );
    TEST_ASSERT( strcmp(ret->GetContent(), "0x12b3a4") == 0 );
    TEST_ASSERT( ret->GetType() == TT_DIGIT );
    delete ret; //!
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [10] [正常] [2006-8-16 15:0:14]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char temp[1024] = "<<=";
    pObj->mpCode = temp;
    pObj->Init();
    TEST_RUN( ret = pObj->NextToken() );
    TEST_ASSERT( ret->GetType() == TT_LMB_ASSIGN );
    delete ret; //!
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [11] [正常] [2006-8-16 15:0:37]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char temp[1024] = ">>= i";
    pObj->mpCode = temp;
    pObj->Init();
    TEST_RUN( ret = pObj->NextToken() );
    TEST_ASSERT( ret->GetType() == TT_RMB_ASSIGN );
    delete ret; //!
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [12] [正常] [2006-8-16 15:1:12]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char temp[1024] = "->*func*()//dkei\nkkei";
    pObj->mpCode = temp;
    pObj->Init();
    TEST_RUN( ret = pObj->NextToken() );
    TEST_ASSERT( ret->GetType() == TT_ARROW_STAR );
    delete ret; //!
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [13] [正常] [2006-8-16 15:1:49]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char temp[1024] = "/*dkei*/kkei";
    pObj->mpCode = temp;
    pObj->Init();
    TEST_RUN( ret = pObj->NextToken() );
    TEST_ASSERT( strcmp(ret->GetContent(), "/*dkei*/") == 0 );
    TEST_ASSERT( ret->GetType() == TT_MULCOMMENT );
    TEST_ASSERT( ret->GetLine() == 1 );
    delete ret; //!
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [14] [正常] [2006-8-16 15:3:47]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char temp[1024] = "\"String\"kakd";
    pObj->mpCode = temp;
    pObj->Init();
    LPCTSTR out = "\"String\"";
    TEST_RUN( ret = pObj->NextToken() );
    TEST_ASSERT( strcmp(ret->GetContent(), out) == 0 );
    TEST_ASSERT( ret->GetType() == TT_STRING );
    TEST_ASSERT( ret->GetLine() == 1 );
    delete ret; //!
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [15] [正常] [2006-8-16 15:7:5]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char temp[1024] = "\'C\'kakd";
    pObj->mpCode = temp;
    pObj->Init();
    LPCTSTR out = "\'C\'";
    TEST_RUN( ret = pObj->NextToken() );
    TEST_ASSERT( strcmp(ret->GetContent(), out) == 0 );
    TEST_ASSERT( ret->GetType() == TT_DIGIT );
    TEST_ASSERT( ret->GetLine() == 1 );
    delete ret; //!
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [16] [正常] [2006-8-16 15:8:16]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char temp[1024] = "*(\'kakd";
    pObj->mpCode = temp;
    pObj->Init();
    TEST_RUN( ret = pObj->NextToken() );
    TEST_ASSERT( ret->GetType() == TT_TIMES );
    delete ret; //!
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [17] [正常] [2006-8-16 15:8:48]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char temp[1024] = "<";
    pObj->mpCode = temp;
    pObj->Init();
    TEST_RUN( ret = pObj->NextToken() );
    TEST_ASSERT( ret->GetType() == TT_LT );
    delete ret; //!
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [18] [正常] [2006-8-16 16:28:36]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char temp[1024] = ">> 5 i";
    pObj->mpCode = temp;
    pObj->Init();
    TEST_RUN( ret = pObj->NextToken() );
    TEST_ASSERT( ret->GetType() == TT_RMB );
    delete ret; //!
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [19] [正常] [2006-8-16 16:29:31]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char temp[1024] = "<<66";
    pObj->mpCode = temp;
    pObj->Init();
    TEST_RUN( ret = pObj->NextToken() );
    TEST_ASSERT( ret->GetType() == TT_LMB );
    delete ret; //!
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [20] [正常] [2006-8-16 16:29:56]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char temp[1024] = "L\'C'kkei";
    pObj->mpCode = temp;
    pObj->Init();
    TEST_RUN( ret = pObj->NextToken() );
    TEST_ASSERT( strcmp(ret->GetContent(), "L\'C'") == 0 );
    TEST_ASSERT( ret->GetType() == TT_DIGIT );
    TEST_ASSERT( ret->GetLine() == 1 );
    delete ret; //!
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [21] [正常] [2006-8-17 9:32:24]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char temp[1024] = ")(20)";
    pObj->mpCode = temp;
    pObj->Init();
    TEST_RUN( ret = pObj->NextToken() );
    TEST_ASSERT( strcmp(ret->GetContent(), ")") == 0 );
    TEST_ASSERT( ret->GetType() == TT_RPARAN );
    TEST_ASSERT( ret->GetLine() == 1 );
    delete ret; //!
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [22] [正常] [2006-8-28 15:15:15]

    /// 跳过连行符
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char temp[1024] = "\\\rkkei";
    pObj->mpCode = temp;
    pObj->Init();
    TEST_RUN( ret = pObj->NextToken() );
    TEST_ASSERT( ret->GetType() == TT_WORD /*读取的下一个token*/ );
    TEST_ASSERT( strcmp(ret->GetContent(), "kkei") == 0 );
    delete ret; //!
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [23] [正常] [2006-8-29 16:23:38]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char temp[1024] = "//dkeikkei";
    pObj->mpCode = temp;
    pObj->Init();
    TEST_RUN( ret = pObj->NextToken() );
    TEST_ASSERT( strcmp(ret->GetContent(), "//dkeikkei") == 0 );
    TEST_ASSERT( ret->GetType() == TT_SINCOMMENT );
    TEST_ASSERT( ret->GetLine() == 1 );
    delete ret; //!
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [24] [正常] [2006-8-29 16:32:0]

    /// 跳过连行符
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char temp[1024] = "\\\r\nkkei";
    pObj->mpCode = temp;
    pObj->Init();
    TEST_RUN( ret = pObj->NextToken() );
    TEST_ASSERT( ret->GetType() == TT_WORD /*读取的下一个token*/ );
    TEST_ASSERT( strcmp(ret->GetContent(), "kkei") == 0 );
    delete ret; //!
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [25] [正常] [2006-8-29 16:32:41]

    /// 跳过连行符
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char temp[1024] = "'\\', '\n'";
    pObj->mpCode = temp;
    pObj->Init();
    TEST_RUN( ret = pObj->NextToken() );
    TEST_ASSERT( strcmp(ret->GetContent(), "\'\\\'") == 0 );
    TEST_ASSERT( ret->GetType() == TT_DIGIT );
    TEST_ASSERT( ret->GetLine() == 1 );
    delete ret; //!
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [26] [正常] [2006-9-12 15:33:47]

    /// 跳过连行符
    TEST_CASE_BEGINO( ARG_DEFAULT );
    char temp[1024] = "\"include\"";
    pObj->mpCode = temp;
    pObj->Init();
    LPCTSTR out = "\"include\"";
    TEST_RUN( ret = pObj->NextToken() );
    TEST_ASSERT( strcmp(ret->GetContent(), out) == 0 );
    TEST_ASSERT( ret->GetType() == TT_STRING );
    TEST_ASSERT( ret->GetLine() == 1 );
    delete ret; //!
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [27] [正常] [2006-9-23 12:15:14]

    BVTEST_BEGIN_0(O)
    //自动边界测试用例,可用TEST_FILTER()过滤输入数据
    //TEST_FILTER();
    TEST_RUN( ret = pObj->NextToken() );
    //TEST_ASSERT();
    BVTEST_END0(O)
    //$$ [28] [自动] [2006-8-14 20:12:16]

    //$$CASE_END(NextToken_())

    TEST_RATE(1000);
    TEST_END();
}
//$$NextToken_()













⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -