]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/qvm/test/swizzle3_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 XXX(42.0f
) + XXX(42.0f
);
26 test_qvm::vector
<V2
,3> v0
=X00(42.0f
);
27 BOOST_TEST(v0
.a
[0]==42);
28 BOOST_TEST(v0
.a
[1]==0);
29 BOOST_TEST(v0
.a
[2]==0);
30 test_qvm::vector
<V2
,3> v2
=_10X(42.0f
);
31 BOOST_TEST(v2
.a
[0]==1);
32 BOOST_TEST(v2
.a
[1]==0);
33 BOOST_TEST(v2
.a
[2]==42);
35 BOOST_TEST(&X(X01(s
))==&s
);
38 test_qvm::vector
<V2
,3> r
;
42 test_qvm::vector
<V2
,3> v2
=XXX(v1
);
43 BOOST_QVM_TEST_EQ(v2
,r
);
46 test_qvm::vector
<V2
,3> r
;
50 test_qvm::vector
<V2
,3> v2
=XXY(v1
);
51 BOOST_QVM_TEST_EQ(v2
,r
);
54 test_qvm::vector
<V2
,3> r
;
58 test_qvm::vector
<V2
,3> v2
=XXZ(v1
);
59 BOOST_QVM_TEST_EQ(v2
,r
);
62 test_qvm::vector
<V2
,3> r
;
66 test_qvm::vector
<V2
,3> v2
=XXW(v1
);
67 BOOST_QVM_TEST_EQ(v2
,r
);
70 test_qvm::vector
<V2
,3> r
;
74 test_qvm::vector
<V2
,3> v2
=XX0(v1
);
75 BOOST_QVM_TEST_EQ(v2
,r
);
78 test_qvm::vector
<V2
,3> r
;
82 test_qvm::vector
<V2
,3> v2
=XX1(v1
);
83 BOOST_QVM_TEST_EQ(v2
,r
);
86 test_qvm::vector
<V2
,3> v2
=XYZ(v1
);
89 test_qvm::vector
<V2
,3> v3
=XYZ(v1
);
90 BOOST_QVM_TEST_EQ(v2
,v3
);
93 test_qvm::vector
<V2
,3> v2
=XYZ(v1
);
94 test_qvm::vector
<V3
,3> v3
;
96 BOOST_QVM_TEST_EQ(v2
,v3
);
99 test_qvm::vector
<V1
,3> v
=_000();
100 BOOST_TEST(v
.a
[0]==0);
101 BOOST_TEST(v
.a
[1]==0);
102 BOOST_TEST(v
.a
[2]==0);
105 test_qvm::vector
<V1
,3> v
=_001();
106 BOOST_TEST(v
.a
[0]==0);
107 BOOST_TEST(v
.a
[1]==0);
108 BOOST_TEST(v
.a
[2]==1);
111 test_qvm::vector
<V1
,3> v
=_010();
112 BOOST_TEST(v
.a
[0]==0);
113 BOOST_TEST(v
.a
[1]==1);
114 BOOST_TEST(v
.a
[2]==0);
117 test_qvm::vector
<V1
,3> v
=_011();
118 BOOST_TEST(v
.a
[0]==0);
119 BOOST_TEST(v
.a
[1]==1);
120 BOOST_TEST(v
.a
[2]==1);
123 test_qvm::vector
<V1
,3> v
=_100();
124 BOOST_TEST(v
.a
[0]==1);
125 BOOST_TEST(v
.a
[1]==0);
126 BOOST_TEST(v
.a
[2]==0);
129 test_qvm::vector
<V1
,3> v
=_101();
130 BOOST_TEST(v
.a
[0]==1);
131 BOOST_TEST(v
.a
[1]==0);
132 BOOST_TEST(v
.a
[2]==1);
135 test_qvm::vector
<V1
,3> v
=_110();
136 BOOST_TEST(v
.a
[0]==1);
137 BOOST_TEST(v
.a
[1]==1);
138 BOOST_TEST(v
.a
[2]==0);
141 test_qvm::vector
<V1
,3> v
=_111();
142 BOOST_TEST(v
.a
[0]==1);
143 BOOST_TEST(v
.a
[1]==1);
144 BOOST_TEST(v
.a
[2]==1);
146 return boost::report_errors();