📄 cvariabletester.cpp
字号:
/**************************************************
//$$ BEGIN
CToken@@1@1@()
CVariable@@1@1@()
CTokenList@@1@1@()
POSITION@@0@1@0
LPCTSTR@@0@2@""$0
unsigned_int@UINT$DWORD@0@3@0$1$0xFFFFFFFF
CVariableList@@1@1@()
BOOL@@0@2@0$1
CString@@0@3@"Visual Unit"$""$"中文怎么样?"
//$$ END
**************************************************/
/**************************************************
作 者:user1
建立日期:2006-9-2
修改日期:
说 明:测试文件,用于测试[CVariable]。
**************************************************/
#include "stdafx.h"
//
/////////////////////////////////////////////////////////////////////////////
#include "CVariableTester.h"
//
/////////////////////////////////////////////////////////////////////////////
void CVariableTester::ClassTest()
{
TEST_SOURCE_NAME(Variable.cpp);
CUSTOM_TEST(CVariable);
//$$
TEST_CALL_BEGIN(CVariable,1,0)
TEST_CALL1(UniteType_CTokenP())//UniteType(CToken*)
TEST_CALL1(ParseOneVariable_CVariablePR_CTokenListR_POSITIONR_LPCTSTR())//ParseOneVariable(CVariable*&,CTokenList&,POSITION&,LPCTSTR)
TEST_CALL1(ParseVariable_CTokenListR_UINT_CVariableListR_BOOL())//ParseVariable(CTokenList&,UINT,CVariableList&,BOOL)
TEST_CALL1(ParseVariableType_CTokenListR_POSITIONR_BOOLR_CStringR_UINTR())//ParseVariableType(CTokenList&,POSITION&,BOOL&,CString&,UINT&)
TEST_CALL_END()
//$$
}
//
/////////////////////////////////////////////////////////////////////////////
CVariableTester::CVariableTester()
{
pObj = 0;
}
CVariableTester::~CVariableTester()
{
}
void CVariableTester::BeginCase(int arg)
{
switch(arg)
{
case ARG_DEFAULT:
{
pObj = new TESTCLASS("", "", "");
break;
}
/*
case :
{
pObj = new TESTCLASS();
break;
}
case :
{
pObj = new TESTCLASS();
break;
}
*/
}
}
void CVariableTester::EndCase(int /*arg*/)
{
delete pObj;
pObj = 0;
}
//自定义测试,用MY_ASSERT(布尔表达式)断言预期输出
/////////////////////////////////////////////////////////////////////////////
void CVariableTester::CustomTest()
{
}
//
/////////////////////////////////////////////////////////////////////////////
void CVariableTester::UniteType_CTokenP()
{
TEST_BEGIN(CVariable::UniteType(CToken*));
//$$CASE_BEGIN(UniteType_CTokenP())
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CToken ipOperator(1, 1, TT_TIMES);
pObj->mType = "int**";
TEST_RUN( pObj->UniteType(&ipOperator) );
TEST_ASSERT( pObj->mType == "int*" );
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [1] [正常] [2006-9-6 10:40:29]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CToken ipOperator(1, 1, TT_BIT_AND);
pObj->mType = "int";
TEST_RUN( pObj->UniteType(&ipOperator) );
TEST_ASSERT( pObj->mType == "int*" );
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [2] [正常] [2006-9-6 10:51:54]
//??BVTEST_BEGIN_1(O,CToken,ipOperator,P,0)
//自动边界测试用例,可用TEST_FILTER()过滤输入数据
//TEST_FILTER();
//??TEST_RUN( pObj->UniteType(ipOperator) );
//TEST_ASSERT();
//??BVTEST_END(O,1)
//$$ [3] [自动] [2006-9-6 10:40:29]
//$$CASE_END(UniteType_CTokenP())
TEST_RATE(1000);
TEST_END();
}
//$$UniteType_CTokenP()
void CVariableTester::ParseOneVariable_CVariablePR_CTokenListR_POSITIONR_LPCTSTR()
{
TEST_BEGIN(CVariable::ParseOneVariable(CVariable*&,CTokenList&,POSITION&,LPCTSTR));
BOOL ret;
//$$CASE_BEGIN(ParseOneVariable_CVariablePR_CTokenListR_POSITIONR_LPCTSTR())
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CVariable* opVar;
CTokenList iList;
CTokenReader reader;
reader.ReadTokenList(iList, "i;");
POSITION ioPos = iList.GetHeadPosition();
LPCTSTR iType = "int";
TEST_RUN( ret = pObj->ParseOneVariable(opVar, iList, ioPos, iType) );
TEST_ASSERT( ret == FALSE );
TEST_ASSERT( opVar->GetName() == "i" );
CString type; opVar->GetType(type); //!
TEST_ASSERT( type == "int" );
reader.ClearTokenList(iList); //!
delete opVar; //!
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [1] [正常] [2006-9-11 22:47:16]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CVariable* opVar;
CTokenList iList;
CTokenReader reader;
reader.ReadTokenList(iList, "(i);");
POSITION ioPos = iList.GetHeadPosition();
LPCTSTR iType = "int";
TEST_RUN( ret = pObj->ParseOneVariable(opVar, iList, ioPos, iType) );
TEST_ASSERT( ret == FALSE );
TEST_ASSERT( opVar->GetName() == "i" );
CString type; opVar->GetType(type); //!
TEST_ASSERT( type == "int" );
reader.ClearTokenList(iList); //!
delete opVar; //!
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [2] [正常] [2006-9-11 22:53:48]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CVariable* opVar;
CTokenList iList;
CTokenReader reader;
reader.ReadTokenList(iList, "i[10][20];");
POSITION ioPos = iList.GetHeadPosition();
LPCTSTR iType = "int";
TEST_RUN( ret = pObj->ParseOneVariable(opVar, iList, ioPos, iType) );
TEST_ASSERT( ret == FALSE );
TEST_ASSERT( opVar->GetName() == "i" );
CString type; opVar->GetType(type); //!
TEST_ASSERT( type == "int" );
reader.ClearTokenList(iList); //!
delete opVar; //!
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [3] [正常] [2006-9-11 22:54:30]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CVariable* opVar;
CTokenList iList;
CTokenReader reader;
reader.ReadTokenList(iList, "((i));");
POSITION ioPos = iList.GetHeadPosition();
LPCTSTR iType = "int";
TEST_RUN( ret = pObj->ParseOneVariable(opVar, iList, ioPos, iType) );
TEST_ASSERT( ret == FALSE );
TEST_ASSERT( opVar->GetName() == "i" );
CString type; opVar->GetType(type); //!
TEST_ASSERT( type == "int" );
reader.ClearTokenList(iList); //!
delete opVar; //!
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [4] [正常] [2006-9-11 22:54:5]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CVariable* opVar;
CTokenList iList;
CTokenReader reader;
reader.ReadTokenList(iList, "i,j;");
POSITION ioPos = iList.GetHeadPosition();
LPCTSTR iType = "int";
TEST_RUN( ret = pObj->ParseOneVariable(opVar, iList, ioPos, iType) );
TEST_ASSERT( ret == TRUE );
TEST_ASSERT( opVar->GetName() == "i" );
CString type; opVar->GetType(type); //!
TEST_ASSERT( type == "int" );
reader.ClearTokenList(iList); //!
delete opVar; //!
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [5] [正常] [2006-9-11 22:48:58]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CVariable* opVar;
CTokenList iList;
CTokenReader reader;
reader.ReadTokenList(iList, "*i,j;");
POSITION ioPos = iList.GetHeadPosition();
LPCTSTR iType = "int";
TEST_RUN( ret = pObj->ParseOneVariable(opVar, iList, ioPos, iType) );
TEST_ASSERT( ret == TRUE );
TEST_ASSERT( opVar->GetName() == "i" );
CString type; opVar->GetType(type); //!
TEST_ASSERT( type == "int*" );
reader.ClearTokenList(iList); //!
delete opVar; //!
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [6] [正常] [2006-9-11 23:5:18]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -