]> git.tdb.fi Git - libs/math.git/blobdiff - tests/vector.cpp
Improve Vector constructor for C++11
[libs/math.git] / tests / vector.cpp
index 14aea8708095b5df6dd358331a6f01c39560843d..cf07329cd1fa25368d6f0998431b08c8650c878d 100644 (file)
@@ -18,6 +18,7 @@ public:
        static const char *get_name() { return "Vector"; }
 
 private:
+       void constructors();
        void component_aliases();
        void composition();
        void slice();
@@ -30,6 +31,7 @@ private:
 
 VectorTests::VectorTests()
 {
+       add(&VectorTests::constructors, "Constructors");
        add(&VectorTests::component_aliases, "Component aliases");
        add(&VectorTests::composition, "Compose");
        add(&VectorTests::slice, "Slice");
@@ -40,6 +42,29 @@ VectorTests::VectorTests()
        add(&VectorTests::unit_vec, "Normalize");
 }
 
+void VectorTests::constructors()
+{
+       static int data[] = { 1, 2, 3 };
+
+       Vector2i v1(1, 2);
+       EXPECT_EQUAL(v1[0], 1);
+       EXPECT_EQUAL(v1[1], 2);
+
+       Vector3i v2(data);
+       EXPECT_EQUAL(v2[0], 1);
+       EXPECT_EQUAL(v2[1], 2);
+       EXPECT_EQUAL(v2[2], 3);
+
+#if __cplusplus >= 201103L
+       LinAl::Vector<int, 1> v3(1);
+       EXPECT_EQUAL(v3[0], 1);
+
+       LinAl::Vector<int, 5> v4(1, 2, 3, 4, 5);
+       EXPECT_EQUAL(v4[0], 1);
+       EXPECT_EQUAL(v4[4], 5);
+#endif
+}
+
 void VectorTests::component_aliases()
 {
        Vector3i v;