DragonNest/GameCommon/UnitTest/SkillTreeSystem_unittest.cpp

299 lines
22 KiB
C++
Raw Normal View History

2024-12-20 16:56:44 +08:00
<EFBFBD><EFBFBD>#include "stdafx.h"
#include "DNUserSession.h"
#include "DnSkillTreeSystem.h"
#if !defined( _FINAL_BUILD ) && !defined (__COVERITY__)
extern TVillageConfig g_Config;
class SkillTreeSystem_unittest:public testing::Test
{
public:
static CDnSkillTreeSystem* s_pSkillTreeSystem;
protected:
virtual void SetUp()
{
}
virtual void TearDown()
{
}
static void SetUpTestCase( void )
{
s_pSkillTreeSystem = new CDnSkillTreeSystem;
s_pSkillTreeSystem->InitializeTable();
}
static void TearDownTestCase( void )
{
delete s_pSkillTreeSystem;
}
};
CDnSkillTreeSystem* SkillTreeSystem_unittest::s_pSkillTreeSystem = NULL;
// NOTE: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD>¬иҬ<EFBFBD> p<EFBFBD>t<EFBFBD>0<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>D<EFBFBD> L<EFBFBD> t<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><<EFBFBD>\<EFBFBD> <EFBFBD>ԯ <EFBFBD>Ȳ<EFBFBD><EFBFBD>~
// <EFBFBD>ǻ<EFBFBD><EFBFBD> <EFBFBD>¬Ё<EFBFBD> D<EFBFBD>t<EFBFBD>\<EFBFBD> ID |<EFBFBD> L<EFBFBD> <EFBFBD><EFBFBD>}<EFBFBD> ¸<EFBFBD>.
TEST_F( SkillTreeSystem_unittest, TRY_ACQUIRE_INVALID_SKILLBOOK_ITEMID )
{
//vector<CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO> vlPossessedSkillInfo;
//CDnSkillTreeSystem::S_TRY_UNLOCK CurrentSkillInfo( vlPossessedSkillInfo );
CDnSkillTreeSystem::S_TRY_UNLOCK CurrentSkillInfo;
CDnSkillTreeSystem::S_OUTPUT Output;
CurrentSkillInfo.iCurrentCharLevel = 99;
CurrentSkillInfo.iTryUnlockSkillID = 3;
CurrentSkillInfo.iSkillBookItemID = 100;
CurrentSkillInfo.iJobID = 1;
//// <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¬<EFBFBD> 2<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>.
//vlPossessedSkillInfo.push_back( CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO( 1, 3, false ) );
//vlPossessedSkillInfo.push_back( CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO( 2, 2, false ) );
SkillTreeSystem_unittest::s_pSkillTreeSystem->TryUnLockSkill( CurrentSkillInfo, &Output );
EXPECT_EQ( Output.eErrorCode, CDnSkillTreeSystem::E_NONE );
EXPECT_EQ( Output.eResult, CDnSkillTreeSystem::R_INVALID_SKILLBOOK_ITEMID );
}
// <EFBFBD><EFBFBD>\<EFBFBD> <EFBFBD> p<EFBFBD>t<EFBFBD>|<EFBFBD> L<EFBFBD> <EFBFBD>¬<EFBFBD> <EFBFBD><EFBFBD>}<EFBFBD> ¸<EFBFBD>.
TEST_F( SkillTreeSystem_unittest, UNLOCK_SKILL )
{
//vector<CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO> vlPossessedSkillInfo;
//CDnSkillTreeSystem::S_TRY_UNLOCK CurrentSkillInfo( vlPossessedSkillInfo );
CDnSkillTreeSystem::S_TRY_UNLOCK CurrentSkillInfo;
CDnSkillTreeSystem::S_OUTPUT Output;
CurrentSkillInfo.iCurrentCharLevel = 99;
CurrentSkillInfo.iTryUnlockSkillID = 3;
CurrentSkillInfo.iSkillBookItemID = 300;
CurrentSkillInfo.iJobID = 1;
//// <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¬<EFBFBD> 2<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>.
//vlPossessedSkillInfo.push_back( CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO( 1, 3, false ) );
//vlPossessedSkillInfo.push_back( CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO( 2, 2, false ) );
SkillTreeSystem_unittest::s_pSkillTreeSystem->TryUnLockSkill( CurrentSkillInfo, &Output );
EXPECT_EQ( Output.eErrorCode, CDnSkillTreeSystem::E_NONE );
EXPECT_EQ( Output.eResult, CDnSkillTreeSystem::R_SUCCESS );
}
// <EFBFBD>Ŕ<EFBFBD> <EFBFBD>¬<EFBFBD>(<EFBFBD>ǻ<EFBFBD><EFBFBD> <EFBFBD>¬<EFBFBD> ID) <EFBFBD><EFBFBD>}<EFBFBD> ¸<EFBFBD>.
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD> <EFBFBD>ǻ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij t<EFBFBD><EFBFBD><EFBFBD>(<EFBFBD>.
TEST_F( SkillTreeSystem_unittest, TRY_ACQUIRE_INVALID_SKILLID )
{
vector<CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO> vlPossessedSkillInfo;
CDnSkillTreeSystem::S_TRY_ACQUIRE TryAcquire( vlPossessedSkillInfo );
CDnSkillTreeSystem::S_OUTPUT Output;
TryAcquire.iCurrentCharLevel = 99;
TryAcquire.iTryAcquireSkillID = 999;
TryAcquire.iHasSkillPoint = 100;
TryAcquire.iJobID = 1;
// <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¬<EFBFBD> 2<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>.
vlPossessedSkillInfo.push_back( CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO( 1, 3, false ) );
vlPossessedSkillInfo.push_back( CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO( 2, 2, false ) );
SkillTreeSystem_unittest::s_pSkillTreeSystem->TryAcquireSkill( TryAcquire, &Output );
EXPECT_EQ( Output.eErrorCode, CDnSkillTreeSystem::E_CANT_FIND_SKILLNODE );
}
// <EFBFBD>\<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>¬<EFBFBD>t<EFBFBD> <EFBFBD><EFBFBD>D<EFBFBD> L<EFBFBD> <EFBFBD><EFBFBD>}<EFBFBD> ¸<EFBFBD>.
TEST_F( SkillTreeSystem_unittest, TRY_ACQUIRE_DONT_HAVE_PARENTSKILL )
{
vector<CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO> vlPossessedSkillInfo;
CDnSkillTreeSystem::S_TRY_ACQUIRE TryAcquire( vlPossessedSkillInfo );
CDnSkillTreeSystem::S_OUTPUT Output;
TryAcquire.iCurrentCharLevel = 99;
TryAcquire.iTryAcquireSkillID = 3;
TryAcquire.iHasSkillPoint = 100;
TryAcquire.iJobID = 1;
// <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¬<EFBFBD> 1<EFBFBD>̹ <EFBFBD><EFBFBD><EFBFBD>.
vlPossessedSkillInfo.push_back( CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO( 1, 3, false ) );
SkillTreeSystem_unittest::s_pSkillTreeSystem->TryAcquireSkill( TryAcquire, &Output );
EXPECT_EQ( Output.eErrorCode, CDnSkillTreeSystem::E_NONE );
EXPECT_EQ( Output.eResult, CDnSkillTreeSystem::R_DONT_HAVE_PARENT_SKILL );
}
// <EFBFBD>\<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>¬<EFBFBD>X<EFBFBD> }<EFBFBD>t<EFBFBD> <EFBFBD>Ԭ<EFBFBD><EFBFBD><EFBFBD> J<EFBFBD>X<EFBFBD>D<EFBFBD> L<EFBFBD> <EFBFBD><EFBFBD>}<EFBFBD> ¸<EFBFBD>.
TEST_F( SkillTreeSystem_unittest, TRY_ACQUIRE_UNLOCKED_PARENTSKILL )
{
vector<CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO> vlPossessedSkillInfo;
CDnSkillTreeSystem::S_TRY_ACQUIRE TryAcquire( vlPossessedSkillInfo );
CDnSkillTreeSystem::S_OUTPUT Output;
TryAcquire.iCurrentCharLevel = 99;
TryAcquire.iTryAcquireSkillID = 3;
TryAcquire.iHasSkillPoint = 100;
TryAcquire.iJobID = 1;
// <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¬<EFBFBD> 2<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>.
vlPossessedSkillInfo.push_back( CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO( 1, 3, true ) ); // }<EFBFBD>x<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>\<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
vlPossessedSkillInfo.push_back( CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO( 2, 2, false ) );
SkillTreeSystem_unittest::s_pSkillTreeSystem->TryAcquireSkill( TryAcquire, &Output );
EXPECT_EQ( Output.eErrorCode, CDnSkillTreeSystem::E_NONE );
EXPECT_EQ( Output.eResult, CDnSkillTreeSystem::R_LOCKED_PARENTSKILL );
}
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>¬<EFBFBD>t<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>¬<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>t<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>DŽ<EFBFBD> L<EFBFBD> <EFBFBD><EFBFBD>ݴ ¸<EFBFBD>.
TEST_F( SkillTreeSystem_unittest, TRY_ACQUIRE_NOT_ENOUGH_PARENTSKILL_LEVEL )
{
vector<CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO> vlPossessedSkillInfo;
CDnSkillTreeSystem::S_TRY_ACQUIRE TryAcquire( vlPossessedSkillInfo );
CDnSkillTreeSystem::S_OUTPUT Output;
TryAcquire.iCurrentCharLevel = 99;
TryAcquire.iTryAcquireSkillID = 3;
TryAcquire.iHasSkillPoint = 100;
TryAcquire.iJobID = 1;
// <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¬<EFBFBD> 2<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>.
vlPossessedSkillInfo.push_back( CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO( 1, 3, false ) );
vlPossessedSkillInfo.push_back( CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO( 2, 1, false ) ); // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¬<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>t<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>|<EFBFBD>.
SkillTreeSystem_unittest::s_pSkillTreeSystem->TryAcquireSkill( TryAcquire, &Output );
EXPECT_EQ( Output.eErrorCode, CDnSkillTreeSystem::E_NONE );
EXPECT_EQ( Output.eResult, CDnSkillTreeSystem::R_NOT_ENOUGH_PARENT_SKILL_LEVEL );
}
// <EFBFBD>έ<EFBFBD>0<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>DŽ<EFBFBD> L<EFBFBD> <EFBFBD><EFBFBD>ݴ ¸<EFBFBD>.
TEST_F( SkillTreeSystem_unittest, TRY_ACQUIRE_NOT_ENOUGH_CHAR_LEVEL )
{
vector<CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO> vlPossessedSkillInfo;
CDnSkillTreeSystem::S_TRY_ACQUIRE TryAcquire( vlPossessedSkillInfo );
CDnSkillTreeSystem::S_OUTPUT Output;
TryAcquire.iCurrentCharLevel = 1;
TryAcquire.iTryAcquireSkillID = 3;
TryAcquire.iHasSkillPoint = 100;
TryAcquire.iJobID = 1;
// <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¬<EFBFBD> 2<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>.
vlPossessedSkillInfo.push_back( CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO( 1, 3, false ) );
vlPossessedSkillInfo.push_back( CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO( 2, 2, false ) );
SkillTreeSystem_unittest::s_pSkillTreeSystem->TryAcquireSkill( TryAcquire, &Output );
EXPECT_EQ( Output.eErrorCode, CDnSkillTreeSystem::E_NONE );
EXPECT_EQ( Output.eResult, CDnSkillTreeSystem::R_NOT_ENOUGH_CHAR_LEVEL );
}
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD> p<EFBFBD>t<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>L<EFBFBD>D<EFBFBD> L<EFBFBD> <EFBFBD>¬<EFBFBD> <EFBFBD><EFBFBD>}<EFBFBD> ¸<EFBFBD>.
TEST_F( SkillTreeSystem_unittest, TRY_UNLOCK )
{
vector<CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO> vlPossessedSkillInfo;
CDnSkillTreeSystem::S_TRY_ACQUIRE TryAcquire( vlPossessedSkillInfo );
CDnSkillTreeSystem::S_OUTPUT Output;
TryAcquire.iCurrentCharLevel = 99;
TryAcquire.iTryAcquireSkillID = 3;
TryAcquire.iHasSkillPoint = 100;
TryAcquire.iJobID = 1;
// <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¬<EFBFBD> 2<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>.
vlPossessedSkillInfo.push_back( CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO( 1, 3, false ) );
vlPossessedSkillInfo.push_back( CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO( 2, 2, false ) );
SkillTreeSystem_unittest::s_pSkillTreeSystem->TryAcquireSkill( TryAcquire, &Output );
EXPECT_EQ( Output.eErrorCode, CDnSkillTreeSystem::E_NONE );
EXPECT_EQ( Output.eResult, CDnSkillTreeSystem::R_SUCCESS );
}
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>¬<EFBFBD>t<EFBFBD> <EFBFBD>Ŕ<EFBFBD> <EFBFBD>¬<EFBFBD> <EFBFBD><EFBFBD>}<EFBFBD> ¸<EFBFBD>
TEST_F( SkillTreeSystem_unittest, TRY_DONT_HAVE_PARENT_SKILL_UNLOCK )
{
vector<CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO> vlPossessedSkillInfo;
CDnSkillTreeSystem::S_TRY_ACQUIRE TryAcquire( vlPossessedSkillInfo );
CDnSkillTreeSystem::S_OUTPUT Output;
TryAcquire.iCurrentCharLevel = 99;
TryAcquire.iTryAcquireSkillID = 4;
TryAcquire.iHasSkillPoint = 100;
TryAcquire.iJobID = 1;
SkillTreeSystem_unittest::s_pSkillTreeSystem->TryAcquireSkill( TryAcquire, &Output );
EXPECT_EQ( Output.eErrorCode, CDnSkillTreeSystem::E_NONE );
EXPECT_EQ( Output.eResult, CDnSkillTreeSystem::R_SUCCESS );
}
// <EFBFBD>¬<EFBFBD> <EFBFBD>Ҭ<EFBFBD> L<EFBFBD>t<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>X<EFBFBD><EFBFBD> <EFBFBD>\<EFBFBD> <EFBFBD>Ҭ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>\<EFBFBD> <EFBFBD>T<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ij]<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>|<EFBFBD> ̳$<EFBFBD><EFBFBD>Ȕ<EFBFBD><EFBFBD><EFBFBD> ¸<EFBFBD>.
TEST_F( SkillTreeSystem_unittest, RENDER_TREE )
{
int iJobID = 1;
int iNodeCount = SkillTreeSystem_unittest::s_pSkillTreeSystem->GetNodeCount( iJobID );
EXPECT_EQ( iNodeCount, 4 );
int iSlotCount = SkillTreeSystem_unittest::s_pSkillTreeSystem->GetSlotCount( iJobID );
EXPECT_EQ( iSlotCount, 32 );
// <EFBFBD>ǻ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> D<EFBFBD>t<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>,<EFBFBD>D<EFBFBD> L<EFBFBD>,
CDnSkillTreeSystem::S_NODE_RENDER_INFO NodeRenderInfo;
SkillTreeSystem_unittest::s_pSkillTreeSystem->GetNodeRenderInfo( 0, 2, &NodeRenderInfo );
EXPECT_EQ( NodeRenderInfo.iSkillID, 0 );
// <EFBFBD>(<EFBFBD><EFBFBD><<EFBFBD>\<EFBFBD> <EFBFBD><EFBFBD>\<EFBFBD> <EFBFBD> <EFBFBD>t<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>$Ɣ<EFBFBD><EFBFBD><EFBFBD> U<EFBFBD>x<EFBFBD>.
SkillTreeSystem_unittest::s_pSkillTreeSystem->GetNodeRenderInfo( 0, iJobID, &NodeRenderInfo );
EXPECT_NE( NodeRenderInfo.iSkillID, 0 );
EXPECT_EQ( NodeRenderInfo.iSlotIndex, 0 );
EXPECT_EQ( NodeRenderInfo.vlChildSlotIndexInJob.front(), 4 );
SkillTreeSystem_unittest::s_pSkillTreeSystem->GetNodeRenderInfo( 1, iJobID, &NodeRenderInfo );
EXPECT_NE( NodeRenderInfo.iSkillID, 0 );
EXPECT_EQ( NodeRenderInfo.iSlotIndex, 1 );
EXPECT_EQ( NodeRenderInfo.vlChildSlotIndexInJob.front(), 4 );
SkillTreeSystem_unittest::s_pSkillTreeSystem->GetNodeRenderInfo( 2, iJobID, &NodeRenderInfo );
EXPECT_EQ( NodeRenderInfo.iSkillID, 0 );
EXPECT_EQ( NodeRenderInfo.iSlotIndex, 0 );
SkillTreeSystem_unittest::s_pSkillTreeSystem->GetNodeRenderInfo( 3, iJobID, &NodeRenderInfo );
EXPECT_EQ( NodeRenderInfo.iSkillID, 0 );
EXPECT_EQ( NodeRenderInfo.iSlotIndex, 0 );
// 2<EFBFBD>X<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ǔ<EFBFBD> <EFBFBD>¬<EFBFBD>.
SkillTreeSystem_unittest::s_pSkillTreeSystem->GetNodeRenderInfo( 4, iJobID, &NodeRenderInfo );
EXPECT_EQ( NodeRenderInfo.iSkillID, 3 );
EXPECT_EQ( NodeRenderInfo.iSlotIndex, 4 );
SkillTreeSystem_unittest::s_pSkillTreeSystem->GetNodeRenderInfo( 5, iJobID, &NodeRenderInfo );
EXPECT_EQ( NodeRenderInfo.iSkillID, 0 );
EXPECT_EQ( NodeRenderInfo.iSlotIndex, 0 );
SkillTreeSystem_unittest::s_pSkillTreeSystem->GetNodeRenderInfo( 6, iJobID, &NodeRenderInfo );
EXPECT_EQ( NodeRenderInfo.iSkillID, 4 );
EXPECT_EQ( NodeRenderInfo.iSlotIndex, 6 );
//SkillTreeSystem_unittest::s_pSkillTreeSystem->GetNodeRenderInfo( 7, iJobID, &NodeRenderInfo );
//EXPECT_NE( NodeRenderInfo.iSkillID, 0 );
//EXPECT_EQ( NodeRenderInfo.iSlotIndex, 7 );
}
TEST_F( SkillTreeSystem_unittest, FIND_SKILL_BY_SKILLBOOK )
{
int iSkillID = SkillTreeSystem_unittest::s_pSkillTreeSystem->FindSkillBySkillBook( 300 );
EXPECT_EQ( iSkillID, 3 );
}
// <EFBFBD>¬<EFBFBD> <EFBFBD><EFBFBD>K<EFBFBD> ¸<EFBFBD>. SP <EFBFBD><EFBFBD>P<EFBFBD> <EFBFBD>X<EFBFBD><EFBFBD>p<EFBFBD> }<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DB<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> (<EFBFBD>.
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>¬<EFBFBD> <EFBFBD><EFBFBD>K<EFBFBD>(<EFBFBD>.
TEST_F( SkillTreeSystem_unittest, RESET )
{
}
#endif // #if !defined( _FINAL_BUILD )