Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: Unit test program for DMX testing (testing the single-value operations)
//
// $NoKeywords: $
//=============================================================================//
#include "unitlib/unitlib.h"
#include "datamodel/dmelement.h"
#include "datamodel/idatamodel.h"
#include "tier1/utlbuffer.h"
#include "filesystem.h"
#include "datamodel/dmehandle.h"
#include "tier2/tier2.h"
#include "movieobjects/dmeshape.h"
DEFINE_TESTCASE_NOSUITE( DmxValueTest ) { Msg( "Running dmx single value tests...\n" );
CDisableUndoScopeGuard sg; DmFileId_t fileid = g_pDataModel->FindOrCreateFileId( "<RunValueTests>" );
CDmElement *pElement = CreateElement< CDmElement >( "root", fileid );
CDmElement *pElement2 = CreateElement<CDmElement>( "element1", fileid ); Assert( pElement2 ); CDmElement *pElement3 = CreateElement<CDmElement>( "element2", fileid ); Assert( pElement3 ); CDmeShape *pElement4 = CreateElement<CDmeShape>( "shape", fileid ); Assert( pElement4 );
CDmAttribute *pIntAttribute = pElement->SetValue( "int_test", 5 ); CDmAttribute *pFloatAttribute = pElement->SetValue( "float_test", 4.5f ); CDmAttribute *pBoolAttribute = pElement->SetValue( "bool_test", true );
CDmAttribute *pAttribute = pElement->AddAttribute( "int_convert_test", AT_INT );
// Type conversion set test
pAttribute->SetValue( 5 ); Shipping_Assert( pAttribute->GetValue<int>() == 5 ); pAttribute->SetValue( 4.5f ); Shipping_Assert( pAttribute->GetValue<int>() == 4 ); pAttribute->SetValue( true ); Shipping_Assert( pAttribute->GetValue<int>() == 1 ); pAttribute->SetValue( pIntAttribute ); Shipping_Assert( pAttribute->GetValue<int>() == 5 ); pAttribute->SetValue( pFloatAttribute ); Shipping_Assert( pAttribute->GetValue<int>() == 4 ); pAttribute->SetValue( pBoolAttribute ); Shipping_Assert( pAttribute->GetValue<int>() == 1 );
pAttribute = pElement->AddAttribute( "bool_convert_test", AT_BOOL );
// Type conversion set test
pAttribute->SetValue( 5 ); Shipping_Assert( pAttribute->GetValue<bool>() == true ); pAttribute->SetValue( 4.5f ); Shipping_Assert( pAttribute->GetValue<bool>() == true ); pAttribute->SetValue( false ); Shipping_Assert( pAttribute->GetValue<bool>() == false ); pAttribute->SetValue( pIntAttribute ); Shipping_Assert( pAttribute->GetValue<bool>() == true ); pAttribute->SetValue( pFloatAttribute ); Shipping_Assert( pAttribute->GetValue<bool>() == true ); pAttribute->SetValue( pBoolAttribute ); Shipping_Assert( pAttribute->GetValue<bool>() == true );
pAttribute = pElement->AddAttribute( "float_convert_test", AT_FLOAT );
// Type conversion set test
pAttribute->SetValue( 5 ); Shipping_Assert( pAttribute->GetValue<float>() == 5.0f ); pAttribute->SetValue( 4.5f ); Shipping_Assert( pAttribute->GetValue<float>() == 4.5f ); pAttribute->SetValue( true ); Shipping_Assert( pAttribute->GetValue<float>() == 1.0f ); pAttribute->SetValue( pIntAttribute ); Shipping_Assert( pAttribute->GetValue<float>() == 5.0f ); pAttribute->SetValue( pFloatAttribute ); Shipping_Assert( pAttribute->GetValue<float>() == 4.5f ); pAttribute->SetValue( pBoolAttribute ); Shipping_Assert( pAttribute->GetValue<float>() == 1.0f );
// Type conversion set test
QAngle angles( 90, 0, 0 ); Quaternion quat; AngleQuaternion( angles, quat );
pAttribute = pElement->AddAttribute( "qangle_convert_test", AT_QANGLE ); pAttribute->SetValue( angles ); Shipping_Assert( pAttribute->GetValue<QAngle>() == angles ); pAttribute->SetValue( quat ); Shipping_Assert( pAttribute->GetValue<QAngle>() == angles );
pAttribute = pElement->AddAttribute( "quat_convert_test", AT_QUATERNION ); pAttribute->SetValue( angles ); Shipping_Assert( pAttribute->GetValue<Quaternion>() == quat ); pAttribute->SetValue( quat ); Shipping_Assert( pAttribute->GetValue<Quaternion>() == quat );
g_pDataModel->RemoveFileId( fileid ); }
|