]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/qvm/test/swizzle2_test.cpp
import new upstream nautilus stable release 14.2.8
[ceph.git] / ceph / src / boost / libs / qvm / test / swizzle2_test.cpp
CommitLineData
92f5a8d4
TL
1//Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc.
2
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)
5
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"
11
12int
13main()
14 {
15 using namespace boost::qvm;
16 test_qvm::vector<V1,4> v1;
17 v1.a[0]=42.0f;
18 v1.a[1]=43.0f;
19 v1.a[2]=44.0f;
20 v1.a[3]=45.0f;
21 XX(v1) + XX(v1);
22 -XX(v1);
23 XX(42.0f) + XX(42.0f);
24 -XX(42.0f);
25 {
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);
32 float s=42.0f;
33 BOOST_TEST(&X(X1(s))==&s);
34 }
35 {
36 test_qvm::vector<V2,2> r;
37 r.a[0]=v1.a[0];
38 r.a[1]=v1.a[0];
39 test_qvm::vector<V2,2> v2=XX(v1);
40 BOOST_QVM_TEST_EQ(v2,r);
41 }
42 {
43 test_qvm::vector<V2,2> r;
44 r.a[0]=v1.a[0];
45 r.a[1]=v1.a[1];
46 test_qvm::vector<V2,2> v2=XY(v1);
47 BOOST_QVM_TEST_EQ(v2,r);
48 }
49 {
50 test_qvm::vector<V2,2> r;
51 r.a[0]=v1.a[0];
52 r.a[1]=v1.a[2];
53 test_qvm::vector<V2,2> v2=XZ(v1);
54 BOOST_QVM_TEST_EQ(v2,r);
55 }
56 {
57 test_qvm::vector<V2,2> r;
58 r.a[0]=v1.a[0];
59 r.a[1]=v1.a[3];
60 test_qvm::vector<V2,2> v2=XW(v1);
61 BOOST_QVM_TEST_EQ(v2,r);
62 }
63 {
64 test_qvm::vector<V2,2> r;
65 r.a[0]=v1.a[0];
66 r.a[1]=0;
67 test_qvm::vector<V2,2> v2=X0(v1);
68 BOOST_QVM_TEST_EQ(v2,r);
69 }
70 {
71 test_qvm::vector<V2,2> r;
72 r.a[0]=v1.a[0];
73 r.a[1]=1;
74 test_qvm::vector<V2,2> v2=X1(v1);
75 BOOST_QVM_TEST_EQ(v2,r);
76 }
77 {
78 test_qvm::vector<V2,2> v2=XY(v1);
79 test_qvm::vector<V3,2> v3;
80 XY(v3)=XY(v2);
81 BOOST_QVM_TEST_EQ(v2,v3);
82 }
83 {
84 test_qvm::vector<V1,2> v=_00();
85 BOOST_TEST(v.a[0]==0);
86 BOOST_TEST(v.a[1]==0);
87 }
88 {
89 test_qvm::vector<V1,2> v=_01();
90 BOOST_TEST(v.a[0]==0);
91 BOOST_TEST(v.a[1]==1);
92 }
93 {
94 test_qvm::vector<V1,2> v=_10();
95 BOOST_TEST(v.a[0]==1);
96 BOOST_TEST(v.a[1]==0);
97 }
98 {
99 test_qvm::vector<V1,2> v=_11();
100 BOOST_TEST(v.a[0]==1);
101 BOOST_TEST(v.a[1]==1);
102 }
103 return boost::report_errors();
104 }