commit b6223cbe58b3fe72be7933224caaa769d8ce31f3
parent 0c32845e5d837910a27a70eef9e3dcde5680a63d
Author: d.levin256@gmail.com <d.levin256@gmail.com>
Date: Wed, 27 Jul 2016 15:05:12 +0300
vec_test: Tests for common_type
Diffstat:
1 file changed, 18 insertions(+), 0 deletions(-)
diff --git a/tests/vec_test.cpp b/tests/vec_test.cpp
@@ -114,4 +114,22 @@ TEST(vec_low_high)
CHECK(high(vec<u8, 2>(1, 2)) == vec<u8, 1>(2));
}
+TEST(vec_conv)
+{
+ testo::assert_is_same<common_type<i32, f32>, f32>();
+ testo::assert_is_same<common_type<f32, f64>, f64>();
+ testo::assert_is_same<common_type<i32, f32x4>, f32x4>();
+ testo::assert_is_same<common_type<f32x4, f64>, f32x4>();
+ testo::assert_is_same<common_type<f32x4, f64x4>, f64x4>();
+
+ testo::assert_is_same<decltype(min(1, 2)), int>();
+ testo::assert_is_same<decltype(min(1, 2u)), unsigned int>();
+ testo::assert_is_same<decltype(min(1, 2)), int>();
+ testo::assert_is_same<decltype(min(pack(1), 2u)), i32x1>();
+ testo::assert_is_same<decltype(min(2u, pack(1))), i32x1>();
+ testo::assert_is_same<decltype(min(pack(1), pack(2u))), u32x1>();
+ testo::assert_is_same<decltype(min(pack(1, 2, 3), pack(1.0, 2.0, 3.0))), f64x3>();
+ testo::assert_is_same<decltype(min(pack(1.0, 2.0, 3.0), pack(1, 2, 3))), f64x3>();
+}
+
int main(int argc, char** argv) { return testo::run_all("", true); }