TestByteCrackers.cpp 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. ///////////////////////////////////////////////////////////////////////////////
  2. // Copyright (c) Electronic Arts Inc. All rights reserved.
  3. ///////////////////////////////////////////////////////////////////////////////
  4. #include <EAStdC/EAByteCrackers.h>
  5. #include <EAStdCTest/EAStdCTest.h>
  6. #include <EATest/EATest.h>
  7. int TestByteCrackers()
  8. {
  9. int nErrorCount(0);
  10. #ifdef _MSC_VER
  11. #pragma warning (disable: 4310) // Cast truncates constant value
  12. #endif
  13. // uint8_t byte manipulators
  14. uint8_t u8;
  15. u8 = UINT8_0_FROM_UINT16(0x1100);
  16. EATEST_VERIFY(u8 == 0x00);
  17. u8 = UINT8_1_FROM_UINT16(0x1100);
  18. EATEST_VERIFY(u8 == 0x11);
  19. u8 = UINT8_0_FROM_UINT32(0x33221100);
  20. EATEST_VERIFY(u8 == 0x00);
  21. u8 = UINT8_1_FROM_UINT32(0x33221100);
  22. EATEST_VERIFY(u8 == 0x11);
  23. u8 = UINT8_2_FROM_UINT32(0x33221100);
  24. EATEST_VERIFY(u8 == 0x22);
  25. u8 = UINT8_3_FROM_UINT32(0x33221100);
  26. EATEST_VERIFY(u8 == 0x33);
  27. u8 = UINT8_0_FROM_UINT64(UINT64_C(0x7766554433221100));
  28. EATEST_VERIFY(u8 == 0x00);
  29. u8 = UINT8_1_FROM_UINT64(UINT64_C(0x7766554433221100));
  30. EATEST_VERIFY(u8 == 0x11);
  31. u8 = UINT8_2_FROM_UINT64(UINT64_C(0x7766554433221100));
  32. EATEST_VERIFY(u8 == 0x22);
  33. u8 = UINT8_3_FROM_UINT64(UINT64_C(0x7766554433221100));
  34. EATEST_VERIFY(u8 == 0x33);
  35. u8 = UINT8_4_FROM_UINT64(UINT64_C(0x7766554433221100));
  36. EATEST_VERIFY(u8 == 0x44);
  37. u8 = UINT8_5_FROM_UINT64(UINT64_C(0x7766554433221100));
  38. EATEST_VERIFY(u8 == 0x55);
  39. u8 = UINT8_6_FROM_UINT64(UINT64_C(0x7766554433221100));
  40. EATEST_VERIFY(u8 == 0x66);
  41. u8 = UINT8_7_FROM_UINT64(UINT64_C(0x7766554433221100));
  42. EATEST_VERIFY(u8 == 0x77);
  43. // uint16_t byte manipulators
  44. uint16_t u16;
  45. u16 = UINT16_0_FROM_UINT32(0x33221100);
  46. EATEST_VERIFY(u16 == 0x1100);
  47. u16 = UINT16_1_FROM_UINT32(0x33221100);
  48. EATEST_VERIFY(u16 == 0x3322);
  49. u16 = UINT16_0_FROM_UINT64(0x7766554433221100LL);
  50. EATEST_VERIFY(u16 == 0x1100);
  51. u16 = UINT16_1_FROM_UINT64(0x7766554433221100LL);
  52. EATEST_VERIFY(u16 == 0x3322);
  53. u16 = UINT16_2_FROM_UINT64(0x7766554433221100LL);
  54. EATEST_VERIFY(u16 == 0x5544);
  55. u16 = UINT16_3_FROM_UINT64(0x7766554433221100LL);
  56. EATEST_VERIFY(u16 == 0x7766);
  57. u16 = UINT16_FROM_UINT8(0x11, 0x00);
  58. EATEST_VERIFY(u16 == 0x1100);
  59. // uint32_t byte manipulators
  60. uint32_t u32;
  61. u32 = UINT32_0_FROM_UINT64(UINT64_C(0x7766554433221100));
  62. EATEST_VERIFY(u32 == 0x33221100);
  63. u32 = UINT32_1_FROM_UINT64(UINT64_C(0x7766554433221100));
  64. EATEST_VERIFY(u32 == 0x77665544);
  65. u32 = UINT32_FROM_UINT8(0x33, 0x22, 0x11, 0x00);
  66. EATEST_VERIFY(u32 == 0x33221100);
  67. u32 = UINT32_FROM_UINT16(0x3322, 0x1100);
  68. EATEST_VERIFY(u32 == 0x33221100);
  69. // uint64_t byte manipulators
  70. uint64_t u64;
  71. u64 = UINT64_FROM_UINT8(0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x00);
  72. EATEST_VERIFY(u64 == UINT64_C(0x7766554433221100));
  73. u64 = UINT64_FROM_UINT16(0x7766, 0x5544, 0x3322, 0x1100);
  74. EATEST_VERIFY(u64 == UINT64_C(0x7766554433221100));
  75. u64 = UINT64_FROM_UINT32(0x77665544, 0x33221100);
  76. EATEST_VERIFY(u64 == UINT64_C(0x7766554433221100));
  77. return nErrorCount;
  78. }