/* * simdtest.cpp * * Created on: Nov 8, 2018 * Author: gregor */ #include #include "GLTB/simd/float4.h" TEST(Float4, initialization) { gltb::Float4 f1(3.0); ASSERT_FLOAT_EQ(f1[0], 3.0f); ASSERT_FLOAT_EQ(f1[1], 3.0f); ASSERT_FLOAT_EQ(f1[2], 3.0f); ASSERT_FLOAT_EQ(f1[3], 3.0f); gltb::Float4 f2(3.0f, 4.0f, 5.0f, 6.0f); ASSERT_FLOAT_EQ(f2[0], 3.0f); ASSERT_FLOAT_EQ(f2[1], 4.0f); ASSERT_FLOAT_EQ(f2[2], 5.0f); ASSERT_FLOAT_EQ(f2[3], 6.0f); } TEST(Float4, assignment) { gltb::Float4 f(3.0f); f[1] = 4.0f; ASSERT_FLOAT_EQ(f[0], 3.0f); ASSERT_FLOAT_EQ(f[1], 4.0f); ASSERT_FLOAT_EQ(f[2], 3.0f); ASSERT_FLOAT_EQ(f[3], 3.0f); } TEST(Float4, add) { gltb::Float4 a(3.0f), b(2.0f); gltb::Float4 c = a + b; ASSERT_FLOAT_EQ(c[0], 5.0f); ASSERT_FLOAT_EQ(c[1], 5.0f); ASSERT_FLOAT_EQ(c[2], 5.0f); ASSERT_FLOAT_EQ(c[3], 5.0f); } TEST(Float4, subtract) { gltb::Float4 a(3.0f), b(2.0f); gltb::Float4 c = a - b; ASSERT_FLOAT_EQ(c[0], 1.0f); ASSERT_FLOAT_EQ(c[1], 1.0f); ASSERT_FLOAT_EQ(c[2], 1.0f); ASSERT_FLOAT_EQ(c[3], 1.0f); } TEST(Float4, negate) { gltb::Float4 a(3.0f); gltb::Float4 b = -a; ASSERT_FLOAT_EQ(b[0], -3.0f); ASSERT_FLOAT_EQ(b[1], -3.0f); ASSERT_FLOAT_EQ(b[2], -3.0f); ASSERT_FLOAT_EQ(b[3], -3.0f); } int main(int argc, char *argv[]) { ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); }