BVB Source Codes

CRYENGINE Show Test_CRCRef.cpp Source code

Return Download CRYENGINE: download Test_CRCRef.cpp Source code - Download CRYENGINE Source code - Type:.cpp
  1. // Copyright 2001-2016 Crytek GmbH / Crytek Group. All rights reserved.
  2.  
  3. #include "StdAfx.h"
  4. #include <ICryMannequinDefs.h>
  5.  
  6. #include <CrySerialization/IClassFactory.h>
  7. #include <CrySerialization/IArchiveHost.h>
  8. #include <CrySerialization/CRCRef.h>
  9.  
  10. namespace mannequin
  11. {
  12. // The wrapping is required since having the Serialize function is currently a requirement for Serialization::SStruct
  13. template<typename TSCRC>
  14. struct SCRCRefWrapper
  15. {
  16.         SCRCRefWrapper()
  17.         {
  18.         }
  19.  
  20.         SCRCRefWrapper(const char* const s)
  21.                 : wrapped(s)
  22.         {
  23.         }
  24.  
  25.         void Serialize(Serialization::IArchive& ar)
  26.         {
  27.                 ar(wrapped, "Wrapped", "Wrapped");
  28.         }
  29.  
  30.         TSCRC wrapped;
  31. };
  32.  
  33. //////////////////////////////////////////////////////////////////////////
  34. CRY_UNIT_TEST(SCRCRef_Serialization_StoreString)
  35. {
  36.         const SCRCRefWrapper<SCRCRef<1>> src("Test");
  37.         const XmlNodeRef xmlSrc = Serialization::SaveXmlNode(src, "Root");
  38.         CRY_UNIT_TEST_ASSERT(xmlSrc);
  39.  
  40.         SCRCRefWrapper<SCRCRef<1>> dst;
  41.         const bool serializationSuccess = Serialization::LoadXmlNode(dst, xmlSrc);
  42.         CRY_UNIT_TEST_ASSERT(serializationSuccess);
  43.  
  44.         CRY_UNIT_TEST_ASSERT(src.wrapped.crc == dst.wrapped.crc);
  45.         CRY_UNIT_TEST_ASSERT(strcmpi(src.wrapped.c_str(), dst.wrapped.c_str()) == 0);
  46. }
  47.  
  48. //////////////////////////////////////////////////////////////////////////
  49. CRY_UNIT_TEST(SCRCRef_Serialization_StoreString_Empty)
  50. {
  51.         const SCRCRefWrapper<SCRCRef<1>> src;
  52.         const XmlNodeRef xmlSrc = Serialization::SaveXmlNode(src, "Root");
  53.         CRY_UNIT_TEST_ASSERT(xmlSrc);
  54.  
  55.         SCRCRefWrapper<SCRCRef<1>> dst("NotEmpty");
  56.         const bool serializationSuccess = Serialization::LoadXmlNode(dst, xmlSrc);
  57.         CRY_UNIT_TEST_ASSERT(serializationSuccess);
  58.  
  59.         CRY_UNIT_TEST_ASSERT(src.wrapped.crc == dst.wrapped.crc);
  60.         CRY_UNIT_TEST_ASSERT(strcmpi(src.wrapped.c_str(), dst.wrapped.c_str()) == 0);
  61.         CRY_UNIT_TEST_ASSERT(dst.wrapped.crc == SCRCRef<0>::INVALID);
  62. }
  63.  
  64. //////////////////////////////////////////////////////////////////////////
  65. CRY_UNIT_TEST(SCRCRef_Serialization_StoreString_To_NotStoreString)
  66. {
  67.         const SCRCRefWrapper<SCRCRef<1>> src("Test");
  68.         const XmlNodeRef xmlSrc = Serialization::SaveXmlNode(src, "Root");
  69.         CRY_UNIT_TEST_ASSERT(xmlSrc);
  70.  
  71.         SCRCRefWrapper<SCRCRef<0>> dst;
  72.         const bool serializationSuccess = Serialization::LoadXmlNode(dst, xmlSrc);
  73.         CRY_UNIT_TEST_ASSERT(serializationSuccess);
  74.  
  75.         CRY_UNIT_TEST_ASSERT(src.wrapped.crc == dst.wrapped.crc);
  76. }
  77.  
  78. //////////////////////////////////////////////////////////////////////////
  79. CRY_UNIT_TEST(SCRCRef_Serialization_StoreString_To_NotStoreString_Empty)
  80. {
  81.         const SCRCRefWrapper<SCRCRef<1>> src;
  82.         const XmlNodeRef xmlSrc = Serialization::SaveXmlNode(src, "Root");
  83.         CRY_UNIT_TEST_ASSERT(xmlSrc);
  84.  
  85.         SCRCRefWrapper<SCRCRef<0>> dst("NotEmpty");
  86.         const bool serializationSuccess = Serialization::LoadXmlNode(dst, xmlSrc);
  87.         CRY_UNIT_TEST_ASSERT(serializationSuccess);
  88.  
  89.         CRY_UNIT_TEST_ASSERT(src.wrapped.crc == dst.wrapped.crc);
  90.         CRY_UNIT_TEST_ASSERT(dst.wrapped.crc == SCRCRef<0>::INVALID);
  91. }
  92.  
  93. //////////////////////////////////////////////////////////////////////////
  94. CRY_UNIT_TEST(SCRCRef_Serialization_NotStoreString)
  95. {
  96.         const SCRCRefWrapper<SCRCRef<0>> src("Test");
  97.         const XmlNodeRef xmlSrc = Serialization::SaveXmlNode(src, "Root");
  98.         CRY_UNIT_TEST_ASSERT(xmlSrc);
  99.  
  100.         SCRCRefWrapper<SCRCRef<0>> dst;
  101.         const bool serializationSuccess = Serialization::LoadXmlNode(dst, xmlSrc);
  102.         CRY_UNIT_TEST_ASSERT(serializationSuccess);
  103.  
  104.         CRY_UNIT_TEST_ASSERT(src.wrapped.crc == dst.wrapped.crc);
  105. }
  106.  
  107. //////////////////////////////////////////////////////////////////////////
  108. CRY_UNIT_TEST(SCRCRef_Serialization_NotStoreString_Empty)
  109. {
  110.         const SCRCRefWrapper<SCRCRef<0>> src;
  111.         const XmlNodeRef xmlSrc = Serialization::SaveXmlNode(src, "Root");
  112.         CRY_UNIT_TEST_ASSERT(xmlSrc);
  113.  
  114.         SCRCRefWrapper<SCRCRef<0>> dst("NotEmpty");
  115.         const bool serializationSuccess = Serialization::LoadXmlNode(dst, xmlSrc);
  116.         CRY_UNIT_TEST_ASSERT(serializationSuccess);
  117.  
  118.         CRY_UNIT_TEST_ASSERT(src.wrapped.crc == dst.wrapped.crc);
  119.         CRY_UNIT_TEST_ASSERT(dst.wrapped.crc == SCRCRef<0>::INVALID);
  120. }
  121.  
  122. //////////////////////////////////////////////////////////////////////////
  123. CRY_UNIT_TEST(SCRCRef_Operator_LessThan_NonStoreString)
  124. {
  125.         {
  126.                 const SCRCRef<0> src0("A");
  127.                 const SCRCRef<0> src1("B");
  128.  
  129.                 CRY_UNIT_TEST_ASSERT(src0 < src1 || src1 < src0);
  130.         }
  131.  
  132.         {
  133.                 const SCRCRef<0> src0("A");
  134.                 const SCRCRef<0> src1("A");
  135.  
  136.                 CRY_UNIT_TEST_ASSERT(!(src0 < src1) && !(src1 < src0));
  137.         }
  138. }
  139.  
  140. //////////////////////////////////////////////////////////////////////////
  141. CRY_UNIT_TEST(SCRCRef_Operator_LessThan_StoreString)
  142. {
  143.         {
  144.                 const SCRCRef<1> src0("A");
  145.                 const SCRCRef<1> src1("B");
  146.  
  147.                 CRY_UNIT_TEST_ASSERT(src0 < src1 || src1 < src0);
  148.         }
  149.  
  150.         {
  151.                 const SCRCRef<1> src0("A");
  152.                 const SCRCRef<1> src1("A");
  153.  
  154.                 CRY_UNIT_TEST_ASSERT(!(src0 < src1) && !(src1 < src0));
  155.         }
  156. }
  157.  
  158. //////////////////////////////////////////////////////////////////////////
  159. CRY_UNIT_TEST(SCRCRef_Operator_LessThan_Mixed)
  160. {
  161.         {
  162.                 const SCRCRef<1> src0("A");
  163.                 const SCRCRef<0> src1("B");
  164.  
  165.                 CRY_UNIT_TEST_ASSERT(src0 < src1 || src1 < src0);
  166.         }
  167.  
  168.         {
  169.                 const SCRCRef<0> src0("A");
  170.                 const SCRCRef<1> src1("B");
  171.  
  172.                 CRY_UNIT_TEST_ASSERT(src0 < src1 || src1 < src0);
  173.         }
  174.  
  175.         {
  176.                 const SCRCRef<0> src0("A");
  177.                 const SCRCRef<1> src1("A");
  178.  
  179.                 CRY_UNIT_TEST_ASSERT(!(src0 < src1) && !(src1 < src0));
  180.         }
  181.  
  182.         {
  183.                 const SCRCRef<1> src0("A");
  184.                 const SCRCRef<0> src1("A");
  185.  
  186.                 CRY_UNIT_TEST_ASSERT(!(src0 < src1) && !(src1 < src0));
  187.         }
  188. }
  189.  
  190. //////////////////////////////////////////////////////////////////////////
  191. CRY_UNIT_TEST(SCRCRef_Operator_Equal_NonStoreString)
  192. {
  193.         {
  194.                 const SCRCRef<0> src0("A");
  195.                 const SCRCRef<0> src1("B");
  196.  
  197.                 CRY_UNIT_TEST_ASSERT(!(src0 == src1));
  198.         }
  199.  
  200.         {
  201.                 const SCRCRef<0> src0("A");
  202.                 const SCRCRef<0> src1("A");
  203.  
  204.                 CRY_UNIT_TEST_ASSERT(src0 == src1);
  205.         }
  206. }
  207.  
  208. //////////////////////////////////////////////////////////////////////////
  209. CRY_UNIT_TEST(SCRCRef_Operator_Equal_StoreString)
  210. {
  211.         {
  212.                 const SCRCRef<1> src0("A");
  213.                 const SCRCRef<1> src1("B");
  214.  
  215.                 CRY_UNIT_TEST_ASSERT(!(src0 == src1));
  216.         }
  217.  
  218.         {
  219.                 const SCRCRef<1> src0("A");
  220.                 const SCRCRef<1> src1("A");
  221.  
  222.                 CRY_UNIT_TEST_ASSERT(src0 == src1);
  223.         }
  224. }
  225.  
  226. //////////////////////////////////////////////////////////////////////////
  227. CRY_UNIT_TEST(SCRCRef_Operator_Equal_Mixed)
  228. {
  229.         {
  230.                 const SCRCRef<0> src0("A");
  231.                 const SCRCRef<1> src1("B");
  232.  
  233.                 CRY_UNIT_TEST_ASSERT(!(src0 == src1));
  234.         }
  235.  
  236.         {
  237.                 const SCRCRef<1> src0("A");
  238.                 const SCRCRef<0> src1("B");
  239.  
  240.                 CRY_UNIT_TEST_ASSERT(!(src0 == src1));
  241.         }
  242.  
  243.         {
  244.                 const SCRCRef<0> src0("A");
  245.                 const SCRCRef<1> src1("A");
  246.  
  247.                 CRY_UNIT_TEST_ASSERT(src0 == src1);
  248.         }
  249.  
  250.         {
  251.                 const SCRCRef<1> src0("A");
  252.                 const SCRCRef<0> src1("A");
  253.  
  254.                 CRY_UNIT_TEST_ASSERT(src0 == src1);
  255.         }
  256. }
  257.  
  258. //////////////////////////////////////////////////////////////////////////
  259. CRY_UNIT_TEST(SCRCRef_Operator_NotEqual_NonStoreString)
  260. {
  261.         {
  262.                 const SCRCRef<0> src0("A");
  263.                 const SCRCRef<0> src1("B");
  264.  
  265.                 CRY_UNIT_TEST_ASSERT(src0 != src1);
  266.         }
  267.  
  268.         {
  269.                 const SCRCRef<0> src0("A");
  270.                 const SCRCRef<0> src1("A");
  271.  
  272.                 CRY_UNIT_TEST_ASSERT(!(src0 != src1));
  273.         }
  274. }
  275.  
  276. //////////////////////////////////////////////////////////////////////////
  277. CRY_UNIT_TEST(SCRCRef_Operator_NotEqual_StoreString)
  278. {
  279.         {
  280.                 const SCRCRef<1> src0("A");
  281.                 const SCRCRef<1> src1("B");
  282.  
  283.                 CRY_UNIT_TEST_ASSERT(src0 != src1);
  284.         }
  285.  
  286.         {
  287.                 const SCRCRef<1> src0("A");
  288.                 const SCRCRef<1> src1("A");
  289.  
  290.                 CRY_UNIT_TEST_ASSERT(!(src0 != src1));
  291.         }
  292. }
  293.  
  294. //////////////////////////////////////////////////////////////////////////
  295. CRY_UNIT_TEST(SCRCRef_Operator_NotEqual_Mixed)
  296. {
  297.         {
  298.                 const SCRCRef<0> src0("A");
  299.                 const SCRCRef<1> src1("B");
  300.  
  301.                 CRY_UNIT_TEST_ASSERT(src0 != src1);
  302.         }
  303.  
  304.         {
  305.                 const SCRCRef<1> src0("A");
  306.                 const SCRCRef<0> src1("B");
  307.  
  308.                 CRY_UNIT_TEST_ASSERT(src0 != src1);
  309.         }
  310.  
  311.         {
  312.                 const SCRCRef<0> src0("A");
  313.                 const SCRCRef<1> src1("A");
  314.  
  315.                 CRY_UNIT_TEST_ASSERT(!(src0 != src1));
  316.         }
  317.  
  318.         {
  319.                 const SCRCRef<1> src0("A");
  320.                 const SCRCRef<0> src1("A");
  321.  
  322.                 CRY_UNIT_TEST_ASSERT(!(src0 != src1));
  323.         }
  324. }
  325. }
  326.  
downloadTest_CRCRef.cpp Source code - Download CRYENGINE Source code
Related Source Codes/Software:
postal - 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top