PageRenderTime 24ms CodeModel.GetById 0ms RepoModel.GetById 1ms app.codeStats 0ms

/deps/glm-0.9.4.0/test/gtc/gtc_type_precision.cpp

https://bitbucket.org/sturmh/dirtygraphics
C++ | 169 lines | 150 code | 11 blank | 8 comment | 95 complexity | d61672bb833112b89bbedf461e23fd92 MD5 | raw file
  1. ///////////////////////////////////////////////////////////////////////////////////////////////////
  2. // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
  3. ///////////////////////////////////////////////////////////////////////////////////////////////////
  4. // Created : 2010-09-16
  5. // Updated : 2011-05-08
  6. // Licence : This source is under MIT licence
  7. // File : test/gtc/type_precision.cpp
  8. ///////////////////////////////////////////////////////////////////////////////////////////////////
  9. #include <glm/glm.hpp>
  10. #include <glm/gtc/type_precision.hpp>
  11. static int test_scalar_size()
  12. {
  13. int Error = 0;
  14. Error += sizeof(glm::int8) != 1;
  15. Error += sizeof(glm::int16) != 2;
  16. Error += sizeof(glm::int32) != 4;
  17. Error += sizeof(glm::int64) != 8;
  18. Error += sizeof(glm::uint8) != 1;
  19. Error += sizeof(glm::uint16) != 2;
  20. Error += sizeof(glm::uint32) != 4;
  21. Error += sizeof(glm::uint64) != 8;
  22. Error += sizeof(glm::float16) != 2;
  23. Error += sizeof(glm::float32) != 4;
  24. Error += sizeof(glm::float64) != 8;
  25. return Error;
  26. }
  27. static int test_fvec_size()
  28. {
  29. int Error = 0;
  30. Error += sizeof(glm::f16vec2) != 4;
  31. Error += sizeof(glm::f16vec3) != 6;
  32. Error += sizeof(glm::f16vec4) != 8;
  33. Error += sizeof(glm::f32vec2) != 8;
  34. Error += sizeof(glm::f32vec3) != 12;
  35. Error += sizeof(glm::f32vec4) != 16;
  36. Error += sizeof(glm::f64vec2) != 16;
  37. Error += sizeof(glm::f64vec3) != 24;
  38. Error += sizeof(glm::f64vec4) != 32;
  39. return Error;
  40. }
  41. static int test_ivec_size()
  42. {
  43. int Error = 0;
  44. Error += sizeof(glm::i8vec2) != 2;
  45. Error += sizeof(glm::i8vec3) != 3;
  46. Error += sizeof(glm::i8vec4) != 4;
  47. Error += sizeof(glm::i16vec2) != 4;
  48. Error += sizeof(glm::i16vec3) != 6;
  49. Error += sizeof(glm::i16vec4) != 8;
  50. Error += sizeof(glm::i32vec2) != 8;
  51. Error += sizeof(glm::i32vec3) != 12;
  52. Error += sizeof(glm::i32vec4) != 16;
  53. Error += sizeof(glm::i64vec2) != 16;
  54. Error += sizeof(glm::i64vec3) != 24;
  55. Error += sizeof(glm::i64vec4) != 32;
  56. return Error;
  57. }
  58. static int test_uvec_size()
  59. {
  60. int Error = 0;
  61. Error += sizeof(glm::u8vec2) != 2;
  62. Error += sizeof(glm::u8vec3) != 3;
  63. Error += sizeof(glm::u8vec4) != 4;
  64. Error += sizeof(glm::u16vec2) != 4;
  65. Error += sizeof(glm::u16vec3) != 6;
  66. Error += sizeof(glm::u16vec4) != 8;
  67. Error += sizeof(glm::u32vec2) != 8;
  68. Error += sizeof(glm::u32vec3) != 12;
  69. Error += sizeof(glm::u32vec4) != 16;
  70. Error += sizeof(glm::u64vec2) != 16;
  71. Error += sizeof(glm::u64vec3) != 24;
  72. Error += sizeof(glm::u64vec4) != 32;
  73. return Error;
  74. }
  75. static int test_hmat_size()
  76. {
  77. int Error = 0;
  78. Error += sizeof(glm::f16mat2) != 8;
  79. Error += sizeof(glm::f16mat3) != 18;
  80. Error += sizeof(glm::f16mat4) != 32;
  81. Error += sizeof(glm::f16mat2x2) != 8;
  82. Error += sizeof(glm::f16mat2x3) != 12;
  83. Error += sizeof(glm::f16mat2x4) != 16;
  84. Error += sizeof(glm::f16mat3x2) != 12;
  85. Error += sizeof(glm::f16mat3x3) != 18;
  86. Error += sizeof(glm::f16mat3x4) != 24;
  87. Error += sizeof(glm::f16mat4x2) != 16;
  88. Error += sizeof(glm::f16mat4x3) != 24;
  89. Error += sizeof(glm::f16mat4x4) != 32;
  90. return Error;
  91. }
  92. static int test_fmat_size()
  93. {
  94. int Error = 0;
  95. Error += sizeof(glm::fmat2) != 16;
  96. Error += sizeof(glm::fmat3) != 36;
  97. Error += sizeof(glm::fmat4) != 64;
  98. Error += sizeof(glm::fmat2x2) != 16;
  99. Error += sizeof(glm::fmat2x3) != 24;
  100. Error += sizeof(glm::fmat2x4) != 32;
  101. Error += sizeof(glm::fmat3x2) != 24;
  102. Error += sizeof(glm::fmat3x3) != 36;
  103. Error += sizeof(glm::fmat3x4) != 48;
  104. Error += sizeof(glm::fmat4x2) != 32;
  105. Error += sizeof(glm::fmat4x3) != 48;
  106. Error += sizeof(glm::fmat4x4) != 64;
  107. Error += sizeof(glm::f32mat2) != 16;
  108. Error += sizeof(glm::f32mat3) != 36;
  109. Error += sizeof(glm::f32mat4) != 64;
  110. Error += sizeof(glm::f32mat2x2) != 16;
  111. Error += sizeof(glm::f32mat2x3) != 24;
  112. Error += sizeof(glm::f32mat2x4) != 32;
  113. Error += sizeof(glm::f32mat3x2) != 24;
  114. Error += sizeof(glm::f32mat3x3) != 36;
  115. Error += sizeof(glm::f32mat3x4) != 48;
  116. Error += sizeof(glm::f32mat4x2) != 32;
  117. Error += sizeof(glm::f32mat4x3) != 48;
  118. Error += sizeof(glm::f32mat4x4) != 64;
  119. return Error;
  120. }
  121. static int test_dmat_size()
  122. {
  123. int Error = 0;
  124. Error += sizeof(glm::f64mat2) != 32;
  125. Error += sizeof(glm::f64mat3) != 72;
  126. Error += sizeof(glm::f64mat4) != 128;
  127. Error += sizeof(glm::f64mat2x2) != 32;
  128. Error += sizeof(glm::f64mat2x3) != 48;
  129. Error += sizeof(glm::f64mat2x4) != 64;
  130. Error += sizeof(glm::f64mat3x2) != 48;
  131. Error += sizeof(glm::f64mat3x3) != 72;
  132. Error += sizeof(glm::f64mat3x4) != 96;
  133. Error += sizeof(glm::f64mat4x2) != 64;
  134. Error += sizeof(glm::f64mat4x3) != 96;
  135. Error += sizeof(glm::f64mat4x4) != 128;
  136. return Error;
  137. }
  138. static int test_quat_size()
  139. {
  140. int Error = 0;
  141. Error += sizeof(glm::f16quat) != 8;
  142. Error += sizeof(glm::f32quat) != 16;
  143. Error += sizeof(glm::f64quat) != 32;
  144. return Error;
  145. }
  146. int main()
  147. {
  148. int Error = 0;
  149. Error += test_scalar_size();
  150. Error += test_fvec_size();
  151. Error += test_ivec_size();
  152. Error += test_uvec_size();
  153. Error += test_hmat_size();
  154. Error += test_fmat_size();
  155. Error += test_dmat_size();
  156. Error += test_quat_size();
  157. return Error;
  158. }