|
|
@@ -72,15 +72,47 @@ int test_half_arithmetic_unary_ops()
|
|
|
{
|
|
|
int Error = 0;
|
|
|
|
|
|
- glm::half A(2.0f);
|
|
|
- glm::half B(3.0f);
|
|
|
-
|
|
|
- Error += A + B == glm::half( 5.0f) ? 0 : 1;
|
|
|
- Error += A - B == glm::half(-1.0f) ? 0 : 1;
|
|
|
- Error += B - A == glm::half( 1.0f) ? 0 : 1;
|
|
|
- Error += A * B == glm::half( 6.0f) ? 0 : 1;
|
|
|
- Error += A / B == glm::half(2.0f / 3.0f) ? 0 : 1;
|
|
|
- Error += B / A == glm::half(3.0f / 2.0f) ? 0 : 1;
|
|
|
+ {
|
|
|
+ glm::half A(2.0f);
|
|
|
+ glm::half B(3.0f);
|
|
|
+ A += B;
|
|
|
+ Error += (A == glm::half( 5.0f) ? 0 : 1);
|
|
|
+ }
|
|
|
+
|
|
|
+ {
|
|
|
+ glm::half A(2.0f);
|
|
|
+ glm::half B(3.0f);
|
|
|
+ A -= B;
|
|
|
+ Error += (A == glm::half(-1.0f) ? 0 : 1);
|
|
|
+ }
|
|
|
+
|
|
|
+ {
|
|
|
+ glm::half A(2.0f);
|
|
|
+ glm::half B(3.0f);
|
|
|
+ B -= A;
|
|
|
+ Error += (B == glm::half( 1.0f) ? 0 : 1);
|
|
|
+ }
|
|
|
+
|
|
|
+ {
|
|
|
+ glm::half A(2.0f);
|
|
|
+ glm::half B(3.0f);
|
|
|
+ A *= B;
|
|
|
+ Error += (A == glm::half(6.0f) ? 0 : 1);
|
|
|
+ }
|
|
|
+
|
|
|
+ {
|
|
|
+ glm::half A(2.0f);
|
|
|
+ glm::half B(3.0f);
|
|
|
+ A /= B;
|
|
|
+ Error += (A == glm::half(2.0f / 3.0f) ? 0 : 1);
|
|
|
+ }
|
|
|
+
|
|
|
+ {
|
|
|
+ glm::half A(2.0f);
|
|
|
+ glm::half B(3.0f);
|
|
|
+ B /= A;
|
|
|
+ Error += (B == glm::half(3.0f / 2.0f) ? 0 : 1);
|
|
|
+ }
|
|
|
|
|
|
return Error;
|
|
|
}
|
|
|
@@ -102,6 +134,48 @@ int test_half_arithmetic_binary_ops()
|
|
|
return Error;
|
|
|
}
|
|
|
|
|
|
+int test_half_arithmetic_counter_ops()
|
|
|
+{
|
|
|
+ int Error = 0;
|
|
|
+
|
|
|
+ {
|
|
|
+ glm::half A(2.0f);
|
|
|
+ Error += A == glm::half(2.0f) ? 0 : 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ {
|
|
|
+ glm::half A(2.0f);
|
|
|
+ glm::half B = A++;
|
|
|
+ Error += B == glm::half(3.0f) ? 0 : 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ {
|
|
|
+ glm::half A(2.0f);
|
|
|
+ glm::half B = A--;
|
|
|
+ Error += B == glm::half(1.0f) ? 0 : 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ {
|
|
|
+ glm::half A(2.0f);
|
|
|
+ glm::half B = ++A;
|
|
|
+ Error += B == glm::half(3.0f) ? 0 : 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ {
|
|
|
+ glm::half A(2.0f);
|
|
|
+ glm::half B = --A;
|
|
|
+ Error += B == glm::half(1.0f) ? 0 : 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ {
|
|
|
+ glm::half A(2.0f);
|
|
|
+ glm::half B = -A;
|
|
|
+ Error += B == glm::half(-2.0f) ? 0 : 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ return Error;
|
|
|
+}
|
|
|
+
|
|
|
int main()
|
|
|
{
|
|
|
int Result = 0;
|
|
|
@@ -111,6 +185,7 @@ int main()
|
|
|
Result += test_half_relational();
|
|
|
Result += test_half_arithmetic_unary_ops();
|
|
|
Result += test_half_arithmetic_binary_ops();
|
|
|
+ Result += test_half_arithmetic_counter_ops();
|
|
|
|
|
|
return Result;
|
|
|
}
|