]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/qvm/test/swizzle4_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.hpp>
8 #include <boost/qvm/swizzle.hpp>
9 #include "test_qvm_vector.hpp"
14 using namespace boost::qvm
;
15 test_qvm::vector
<V1
,4> v1
;
23 test_qvm::vector
<V2
,4> r
;
28 test_qvm::vector
<V2
,4> v2
=XXXX(v1
);
29 BOOST_QVM_TEST_EQ(v2
,r
);
32 test_qvm::vector
<V2
,4> r
;
37 test_qvm::vector
<V2
,4> v2
=XXXY(v1
);
38 BOOST_QVM_TEST_EQ(v2
,r
);
41 test_qvm::vector
<V2
,4> r
;
46 test_qvm::vector
<V2
,4> v2
=XXXZ(v1
);
47 BOOST_QVM_TEST_EQ(v2
,r
);
50 test_qvm::vector
<V2
,4> r
;
55 test_qvm::vector
<V2
,4> v2
=XXXW(v1
);
56 BOOST_QVM_TEST_EQ(v2
,r
);
59 test_qvm::vector
<V2
,4> r
;
64 test_qvm::vector
<V2
,4> v2
=XXX0(v1
);
65 BOOST_QVM_TEST_EQ(v2
,r
);
68 test_qvm::vector
<V2
,4> r
;
73 test_qvm::vector
<V2
,4> v2
=XXX1(v1
);
74 BOOST_QVM_TEST_EQ(v2
,r
);
77 test_qvm::vector
<V2
,4> v2
=XYZW(v1
);
80 test_qvm::vector
<V2
,4> v3
=XYZW(v1
);
81 BOOST_QVM_TEST_EQ(v2
,v3
);
84 test_qvm::vector
<V2
,4> v2
=XYZW(v1
);
85 test_qvm::vector
<V3
,4> v3
;
87 BOOST_QVM_TEST_EQ(v2
,v3
);
90 test_qvm::vector
<V1
,4> v
=_0000();
91 BOOST_TEST(v
.a
[0]==0);
92 BOOST_TEST(v
.a
[1]==0);
93 BOOST_TEST(v
.a
[2]==0);
94 BOOST_TEST(v
.a
[3]==0);
97 test_qvm::vector
<V1
,4> v
=_0001();
98 BOOST_TEST(v
.a
[0]==0);
99 BOOST_TEST(v
.a
[1]==0);
100 BOOST_TEST(v
.a
[2]==0);
101 BOOST_TEST(v
.a
[3]==1);
104 test_qvm::vector
<V1
,4> v
=_0010();
105 BOOST_TEST(v
.a
[0]==0);
106 BOOST_TEST(v
.a
[1]==0);
107 BOOST_TEST(v
.a
[2]==1);
108 BOOST_TEST(v
.a
[3]==0);
111 test_qvm::vector
<V1
,4> v
=_0011();
112 BOOST_TEST(v
.a
[0]==0);
113 BOOST_TEST(v
.a
[1]==0);
114 BOOST_TEST(v
.a
[2]==1);
115 BOOST_TEST(v
.a
[3]==1);
118 test_qvm::vector
<V1
,4> v
=_0100();
119 BOOST_TEST(v
.a
[0]==0);
120 BOOST_TEST(v
.a
[1]==1);
121 BOOST_TEST(v
.a
[2]==0);
122 BOOST_TEST(v
.a
[3]==0);
125 test_qvm::vector
<V1
,4> v
=_0101();
126 BOOST_TEST(v
.a
[0]==0);
127 BOOST_TEST(v
.a
[1]==1);
128 BOOST_TEST(v
.a
[2]==0);
129 BOOST_TEST(v
.a
[3]==1);
132 test_qvm::vector
<V1
,4> v
=_0110();
133 BOOST_TEST(v
.a
[0]==0);
134 BOOST_TEST(v
.a
[1]==1);
135 BOOST_TEST(v
.a
[2]==1);
136 BOOST_TEST(v
.a
[3]==0);
139 test_qvm::vector
<V1
,4> v
=_0111();
140 BOOST_TEST(v
.a
[0]==0);
141 BOOST_TEST(v
.a
[1]==1);
142 BOOST_TEST(v
.a
[2]==1);
143 BOOST_TEST(v
.a
[3]==1);
146 test_qvm::vector
<V1
,4> v
=_1000();
147 BOOST_TEST(v
.a
[0]==1);
148 BOOST_TEST(v
.a
[1]==0);
149 BOOST_TEST(v
.a
[2]==0);
150 BOOST_TEST(v
.a
[3]==0);
153 test_qvm::vector
<V1
,4> v
=_1001();
154 BOOST_TEST(v
.a
[0]==1);
155 BOOST_TEST(v
.a
[1]==0);
156 BOOST_TEST(v
.a
[2]==0);
157 BOOST_TEST(v
.a
[3]==1);
160 test_qvm::vector
<V1
,4> v
=_1010();
161 BOOST_TEST(v
.a
[0]==1);
162 BOOST_TEST(v
.a
[1]==0);
163 BOOST_TEST(v
.a
[2]==1);
164 BOOST_TEST(v
.a
[3]==0);
167 test_qvm::vector
<V1
,4> v
=_1011();
168 BOOST_TEST(v
.a
[0]==1);
169 BOOST_TEST(v
.a
[1]==0);
170 BOOST_TEST(v
.a
[2]==1);
171 BOOST_TEST(v
.a
[3]==1);
174 test_qvm::vector
<V1
,4> v
=_1100();
175 BOOST_TEST(v
.a
[0]==1);
176 BOOST_TEST(v
.a
[1]==1);
177 BOOST_TEST(v
.a
[2]==0);
178 BOOST_TEST(v
.a
[3]==0);
181 test_qvm::vector
<V1
,4> v
=_1101();
182 BOOST_TEST(v
.a
[0]==1);
183 BOOST_TEST(v
.a
[1]==1);
184 BOOST_TEST(v
.a
[2]==0);
185 BOOST_TEST(v
.a
[3]==1);
188 test_qvm::vector
<V1
,4> v
=_1110();
189 BOOST_TEST(v
.a
[0]==1);
190 BOOST_TEST(v
.a
[1]==1);
191 BOOST_TEST(v
.a
[2]==1);
192 BOOST_TEST(v
.a
[3]==0);
195 test_qvm::vector
<V1
,4> v
=_1111();
196 BOOST_TEST(v
.a
[0]==1);
197 BOOST_TEST(v
.a
[1]==1);
198 BOOST_TEST(v
.a
[2]==1);
199 BOOST_TEST(v
.a
[3]==1);
201 return boost::report_errors();