]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/qvm/test/swizzle2_test.cpp
1 //Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc.
3 //Distributed under the Boost Software License, Version 1.0. (See accompanying
4 //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 #include <boost/qvm/vec_operations.hpp>
7 #include <boost/qvm/vec_access.hpp>
8 #include <boost/qvm/vec.hpp>
9 #include <boost/qvm/swizzle.hpp>
10 #include "test_qvm_vector.hpp"
15 using namespace boost::qvm
;
16 test_qvm::vector
<V1
,4> v1
;
23 XX(42.0f
) + XX(42.0f
);
26 test_qvm::vector
<V2
,2> v0
=X0(42.0f
);
27 BOOST_TEST(v0
.a
[0]==42);
28 BOOST_TEST(v0
.a
[1]==0);
29 test_qvm::vector
<V2
,2> v2
=_1X(42.0f
);
30 BOOST_TEST(v2
.a
[0]==1);
31 BOOST_TEST(v2
.a
[1]==42);
33 BOOST_TEST(&X(X1(s
))==&s
);
36 test_qvm::vector
<V2
,2> r
;
39 test_qvm::vector
<V2
,2> v2
=XX(v1
);
40 BOOST_QVM_TEST_EQ(v2
,r
);
43 test_qvm::vector
<V2
,2> r
;
46 test_qvm::vector
<V2
,2> v2
=XY(v1
);
47 BOOST_QVM_TEST_EQ(v2
,r
);
50 test_qvm::vector
<V2
,2> r
;
53 test_qvm::vector
<V2
,2> v2
=XZ(v1
);
54 BOOST_QVM_TEST_EQ(v2
,r
);
57 test_qvm::vector
<V2
,2> r
;
60 test_qvm::vector
<V2
,2> v2
=XW(v1
);
61 BOOST_QVM_TEST_EQ(v2
,r
);
64 test_qvm::vector
<V2
,2> r
;
67 test_qvm::vector
<V2
,2> v2
=X0(v1
);
68 BOOST_QVM_TEST_EQ(v2
,r
);
71 test_qvm::vector
<V2
,2> r
;
74 test_qvm::vector
<V2
,2> v2
=X1(v1
);
75 BOOST_QVM_TEST_EQ(v2
,r
);
78 test_qvm::vector
<V2
,2> v2
=XY(v1
);
79 test_qvm::vector
<V3
,2> v3
;
81 BOOST_QVM_TEST_EQ(v2
,v3
);
84 test_qvm::vector
<V1
,2> v
=_00();
85 BOOST_TEST(v
.a
[0]==0);
86 BOOST_TEST(v
.a
[1]==0);
89 test_qvm::vector
<V1
,2> v
=_01();
90 BOOST_TEST(v
.a
[0]==0);
91 BOOST_TEST(v
.a
[1]==1);
94 test_qvm::vector
<V1
,2> v
=_10();
95 BOOST_TEST(v
.a
[0]==1);
96 BOOST_TEST(v
.a
[1]==0);
99 test_qvm::vector
<V1
,2> v
=_11();
100 BOOST_TEST(v
.a
[0]==1);
101 BOOST_TEST(v
.a
[1]==1);
103 return boost::report_errors();