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.
104 lines
3.9 KiB
104 lines
3.9 KiB
//========= 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 ); |
|
}
|
|
|