]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/qvm/test/swizzle4_test.cpp
update sources to v12.2.3
[ceph.git] / ceph / src / boost / libs / qvm / test / swizzle4_test.cpp
CommitLineData
b32b8144
FG
1//Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc.\r
2\r
3//Distributed under the Boost Software License, Version 1.0. (See accompanying\r
4//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
5\r
6#include <boost/qvm/vec_operations.hpp>\r
7#include <boost/qvm/vec_access.hpp>\r
8#include <boost/qvm/vec.hpp>\r
9#include <boost/qvm/swizzle.hpp>\r
10#include "test_qvm_vector.hpp"\r
11\r
12int\r
13main()\r
14 { \r
15 using namespace boost::qvm;\r
16 test_qvm::vector<V1,4> v1;\r
17 v1.a[0]=42.0f;\r
18 v1.a[1]=43.0f;\r
19 v1.a[2]=44.0f;\r
20 v1.a[3]=45.0f;\r
21 XXXX(v1) + XXXX(v1);\r
22 -XXXX(v1);\r
23 XXXX(42.0f) + XXXX(42.0f);\r
24 -XXXX(42.0f);\r
25 {\r
26 test_qvm::vector<V2,4> v0=X001(42.0f);\r
27 BOOST_TEST(v0.a[0]==42);\r
28 BOOST_TEST(v0.a[1]==0);\r
29 BOOST_TEST(v0.a[2]==0);\r
30 BOOST_TEST(v0.a[3]==1);\r
31 test_qvm::vector<V2,4> v2=_100X(42.0f);\r
32 BOOST_TEST(v2.a[0]==1);\r
33 BOOST_TEST(v2.a[1]==0);\r
34 BOOST_TEST(v2.a[2]==0);\r
35 BOOST_TEST(v2.a[3]==42);\r
36 float s=42.0f;\r
37 BOOST_TEST(&X(X101(s))==&s);\r
38 }\r
39 {\r
40 test_qvm::vector<V2,4> r;\r
41 r.a[0]=v1.a[0];\r
42 r.a[1]=v1.a[0];\r
43 r.a[2]=v1.a[0];\r
44 r.a[3]=v1.a[0];\r
45 test_qvm::vector<V2,4> v2=XXXX(v1);\r
46 BOOST_QVM_TEST_EQ(v2,r);\r
47 }\r
48 {\r
49 test_qvm::vector<V2,4> r;\r
50 r.a[0]=v1.a[0];\r
51 r.a[1]=v1.a[0];\r
52 r.a[2]=v1.a[0];\r
53 r.a[3]=v1.a[1];\r
54 test_qvm::vector<V2,4> v2=XXXY(v1);\r
55 BOOST_QVM_TEST_EQ(v2,r);\r
56 }\r
57 {\r
58 test_qvm::vector<V2,4> r;\r
59 r.a[0]=v1.a[0];\r
60 r.a[1]=v1.a[0];\r
61 r.a[2]=v1.a[0];\r
62 r.a[3]=v1.a[2];\r
63 test_qvm::vector<V2,4> v2=XXXZ(v1);\r
64 BOOST_QVM_TEST_EQ(v2,r);\r
65 }\r
66 {\r
67 test_qvm::vector<V2,4> r;\r
68 r.a[0]=v1.a[0];\r
69 r.a[1]=v1.a[0];\r
70 r.a[2]=v1.a[0];\r
71 r.a[3]=v1.a[3];\r
72 test_qvm::vector<V2,4> v2=XXXW(v1);\r
73 BOOST_QVM_TEST_EQ(v2,r);\r
74 }\r
75 {\r
76 test_qvm::vector<V2,4> r;\r
77 r.a[0]=v1.a[0];\r
78 r.a[1]=v1.a[0];\r
79 r.a[2]=v1.a[0];\r
80 r.a[3]=0;\r
81 test_qvm::vector<V2,4> v2=XXX0(v1);\r
82 BOOST_QVM_TEST_EQ(v2,r);\r
83 }\r
84 {\r
85 test_qvm::vector<V2,4> r;\r
86 r.a[0]=v1.a[0];\r
87 r.a[1]=v1.a[0];\r
88 r.a[2]=v1.a[0];\r
89 r.a[3]=1;\r
90 test_qvm::vector<V2,4> v2=XXX1(v1);\r
91 BOOST_QVM_TEST_EQ(v2,r);\r
92 }\r
93 {\r
94 test_qvm::vector<V2,4> v2=XYZW(v1);\r
95 XYZW(v1) *= 2;\r
96 v2 *= 2;\r
97 test_qvm::vector<V2,4> v3=XYZW(v1);\r
98 BOOST_QVM_TEST_EQ(v2,v3);\r
99 }\r
100 {\r
101 test_qvm::vector<V2,4> v2=XYZW(v1);\r
102 test_qvm::vector<V3,4> v3;\r
103 XYZW(v3)=XYZW(v2);\r
104 BOOST_QVM_TEST_EQ(v2,v3);\r
105 }\r
106 {\r
107 test_qvm::vector<V1,4> v=_0000();\r
108 BOOST_TEST(v.a[0]==0);\r
109 BOOST_TEST(v.a[1]==0);\r
110 BOOST_TEST(v.a[2]==0);\r
111 BOOST_TEST(v.a[3]==0);\r
112 }\r
113 {\r
114 test_qvm::vector<V1,4> v=_0001();\r
115 BOOST_TEST(v.a[0]==0);\r
116 BOOST_TEST(v.a[1]==0);\r
117 BOOST_TEST(v.a[2]==0);\r
118 BOOST_TEST(v.a[3]==1);\r
119 }\r
120 {\r
121 test_qvm::vector<V1,4> v=_0010();\r
122 BOOST_TEST(v.a[0]==0);\r
123 BOOST_TEST(v.a[1]==0);\r
124 BOOST_TEST(v.a[2]==1);\r
125 BOOST_TEST(v.a[3]==0);\r
126 }\r
127 {\r
128 test_qvm::vector<V1,4> v=_0011();\r
129 BOOST_TEST(v.a[0]==0);\r
130 BOOST_TEST(v.a[1]==0);\r
131 BOOST_TEST(v.a[2]==1);\r
132 BOOST_TEST(v.a[3]==1);\r
133 }\r
134 {\r
135 test_qvm::vector<V1,4> v=_0100();\r
136 BOOST_TEST(v.a[0]==0);\r
137 BOOST_TEST(v.a[1]==1);\r
138 BOOST_TEST(v.a[2]==0);\r
139 BOOST_TEST(v.a[3]==0);\r
140 }\r
141 {\r
142 test_qvm::vector<V1,4> v=_0101();\r
143 BOOST_TEST(v.a[0]==0);\r
144 BOOST_TEST(v.a[1]==1);\r
145 BOOST_TEST(v.a[2]==0);\r
146 BOOST_TEST(v.a[3]==1);\r
147 }\r
148 {\r
149 test_qvm::vector<V1,4> v=_0110();\r
150 BOOST_TEST(v.a[0]==0);\r
151 BOOST_TEST(v.a[1]==1);\r
152 BOOST_TEST(v.a[2]==1);\r
153 BOOST_TEST(v.a[3]==0);\r
154 }\r
155 {\r
156 test_qvm::vector<V1,4> v=_0111();\r
157 BOOST_TEST(v.a[0]==0);\r
158 BOOST_TEST(v.a[1]==1);\r
159 BOOST_TEST(v.a[2]==1);\r
160 BOOST_TEST(v.a[3]==1);\r
161 }\r
162 {\r
163 test_qvm::vector<V1,4> v=_1000();\r
164 BOOST_TEST(v.a[0]==1);\r
165 BOOST_TEST(v.a[1]==0);\r
166 BOOST_TEST(v.a[2]==0);\r
167 BOOST_TEST(v.a[3]==0);\r
168 }\r
169 {\r
170 test_qvm::vector<V1,4> v=_1001();\r
171 BOOST_TEST(v.a[0]==1);\r
172 BOOST_TEST(v.a[1]==0);\r
173 BOOST_TEST(v.a[2]==0);\r
174 BOOST_TEST(v.a[3]==1);\r
175 }\r
176 {\r
177 test_qvm::vector<V1,4> v=_1010();\r
178 BOOST_TEST(v.a[0]==1);\r
179 BOOST_TEST(v.a[1]==0);\r
180 BOOST_TEST(v.a[2]==1);\r
181 BOOST_TEST(v.a[3]==0);\r
182 }\r
183 {\r
184 test_qvm::vector<V1,4> v=_1011();\r
185 BOOST_TEST(v.a[0]==1);\r
186 BOOST_TEST(v.a[1]==0);\r
187 BOOST_TEST(v.a[2]==1);\r
188 BOOST_TEST(v.a[3]==1);\r
189 }\r
190 {\r
191 test_qvm::vector<V1,4> v=_1100();\r
192 BOOST_TEST(v.a[0]==1);\r
193 BOOST_TEST(v.a[1]==1);\r
194 BOOST_TEST(v.a[2]==0);\r
195 BOOST_TEST(v.a[3]==0);\r
196 }\r
197 {\r
198 test_qvm::vector<V1,4> v=_1101();\r
199 BOOST_TEST(v.a[0]==1);\r
200 BOOST_TEST(v.a[1]==1);\r
201 BOOST_TEST(v.a[2]==0);\r
202 BOOST_TEST(v.a[3]==1);\r
203 }\r
204 {\r
205 test_qvm::vector<V1,4> v=_1110();\r
206 BOOST_TEST(v.a[0]==1);\r
207 BOOST_TEST(v.a[1]==1);\r
208 BOOST_TEST(v.a[2]==1);\r
209 BOOST_TEST(v.a[3]==0);\r
210 }\r
211 {\r
212 test_qvm::vector<V1,4> v=_1111();\r
213 BOOST_TEST(v.a[0]==1);\r
214 BOOST_TEST(v.a[1]==1);\r
215 BOOST_TEST(v.a[2]==1);\r
216 BOOST_TEST(v.a[3]==1);\r
217 }\r
218 return boost::report_errors();\r
219 }\r