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.

76 lines
2.4 KiB

  1. //========= Copyright Valve Corporation, All rights reserved. ============//
  2. //
  3. // Purpose: Unit test program for DMX testing (testing the Array operations)
  4. //
  5. // $NoKeywords: $
  6. //=============================================================================//
  7. #include "unitlib/unitlib.h"
  8. #include "datamodel/dmelement.h"
  9. #include "datamodel/idatamodel.h"
  10. #include "tier1/utlbuffer.h"
  11. #include "filesystem.h"
  12. #include "datamodel/dmehandle.h"
  13. #include "tier2/tier2.h"
  14. #include "movieobjects/dmeshape.h"
  15. DEFINE_TESTCASE_NOSUITE( DmxArrayTest )
  16. {
  17. Msg( "Running dmx array tests...\n" );
  18. CDisableUndoScopeGuard sg;
  19. DmFileId_t fileid = g_pDataModel->FindOrCreateFileId( "<RunArrayTests>" );
  20. CDmElement *pElement = CreateElement< CDmElement >( "root", fileid );
  21. CDmElement *pElement2 = CreateElement<CDmElement>( "element1", fileid );
  22. Assert( pElement2 );
  23. CDmElement *pElement3 = CreateElement<CDmElement>( "element2", fileid );
  24. Assert( pElement3 );
  25. CDmeShape *pElement4 = CreateElement<CDmeShape>( "shape", fileid );
  26. Assert( pElement4 );
  27. CDmrStringArray stringVec( pElement, "string_array_test", true );
  28. stringVec.AddToTail( "string1" );
  29. stringVec.AddToTail( "string2" );
  30. stringVec.AddToTail( "string3" );
  31. CDmrArray< float > floatVec( pElement, "float_array_test", true );
  32. floatVec.AddToTail( -1.0f );
  33. floatVec.AddToTail( 0.0f );
  34. floatVec.AddToTail( 1.0f );
  35. CDmrElementArray< > elementVec( pElement, "element_array_test", true );
  36. elementVec.AddToTail( pElement2 );
  37. elementVec.AddToTail( pElement3 );
  38. elementVec.AddToTail( pElement4 );
  39. CDmrStringArray stringVec2( pElement, "string_array_test2", true );
  40. stringVec2 = stringVec;
  41. Shipping_Assert( stringVec2.Count() == 3 );
  42. CDmrArray< float > floatVec2( pElement, "float_array_test2", true );
  43. floatVec2 = floatVec;
  44. Shipping_Assert( floatVec2.Count() == 3 );
  45. CDmrElementArray< > elementVec2( pElement, "element_array_test2", true );
  46. elementVec2 = elementVec;
  47. Shipping_Assert( elementVec2.Count() == 3 );
  48. CDmrElementArray< CDmeShape > elementVec3( pElement, "element_array_test3", true );
  49. elementVec3 = elementVec2;
  50. Shipping_Assert( elementVec3.Count() == 1 );
  51. CUtlVector<DmElementHandle_t> val;
  52. val.AddToTail( pElement2->GetHandle() );
  53. val.AddToTail( pElement4->GetHandle() );
  54. elementVec2 = val;
  55. Shipping_Assert( elementVec2.Count() == 2 );
  56. elementVec3 = val;
  57. Shipping_Assert( elementVec3.Count() == 1 );
  58. g_pDataModel->RemoveFileId( fileid );
  59. }