]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/qvm/test/swizzle2_test.cpp
bump version to 18.2.4-pve3
[ceph.git] / ceph / src / boost / libs / qvm / test / swizzle2_test.cpp
CommitLineData
1e59de90 1// Copyright 2008-2022 Emil Dotchevski and Reverge Studios, Inc.
92f5a8d4 2
1e59de90
TL
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#ifdef BOOST_QVM_TEST_SINGLE_HEADER
7# include BOOST_QVM_TEST_SINGLE_HEADER
8# ifdef BOOST_QVM_TEST_SINGLE_HEADER_SWIZZLE
9# include BOOST_QVM_TEST_SINGLE_HEADER_SWIZZLE
10# endif
11#else
12# include <boost/qvm/vec_operations.hpp>
13# include <boost/qvm/vec_access.hpp>
14# include <boost/qvm/vec.hpp>
15# include <boost/qvm/swizzle.hpp>
16#endif
92f5a8d4 17
92f5a8d4
TL
18#include "test_qvm_vector.hpp"
19
20int
21main()
1e59de90 22 {
92f5a8d4
TL
23 using namespace boost::qvm;
24 test_qvm::vector<V1,4> v1;
25 v1.a[0]=42.0f;
26 v1.a[1]=43.0f;
27 v1.a[2]=44.0f;
28 v1.a[3]=45.0f;
29 XX(v1) + XX(v1);
30 -XX(v1);
31 XX(42.0f) + XX(42.0f);
32 -XX(42.0f);
33 {
34 test_qvm::vector<V2,2> v0=X0(42.0f);
35 BOOST_TEST(v0.a[0]==42);
36 BOOST_TEST(v0.a[1]==0);
37 test_qvm::vector<V2,2> v2=_1X(42.0f);
38 BOOST_TEST(v2.a[0]==1);
39 BOOST_TEST(v2.a[1]==42);
40 float s=42.0f;
41 BOOST_TEST(&X(X1(s))==&s);
42 }
43 {
44 test_qvm::vector<V2,2> r;
45 r.a[0]=v1.a[0];
46 r.a[1]=v1.a[0];
47 test_qvm::vector<V2,2> v2=XX(v1);
48 BOOST_QVM_TEST_EQ(v2,r);
49 }
50 {
51 test_qvm::vector<V2,2> r;
52 r.a[0]=v1.a[0];
53 r.a[1]=v1.a[1];
54 test_qvm::vector<V2,2> v2=XY(v1);
55 BOOST_QVM_TEST_EQ(v2,r);
56 }
57 {
58 test_qvm::vector<V2,2> r;
59 r.a[0]=v1.a[0];
60 r.a[1]=v1.a[2];
61 test_qvm::vector<V2,2> v2=XZ(v1);
62 BOOST_QVM_TEST_EQ(v2,r);
63 }
64 {
65 test_qvm::vector<V2,2> r;
66 r.a[0]=v1.a[0];
67 r.a[1]=v1.a[3];
68 test_qvm::vector<V2,2> v2=XW(v1);
69 BOOST_QVM_TEST_EQ(v2,r);
70 }
71 {
72 test_qvm::vector<V2,2> r;
73 r.a[0]=v1.a[0];
74 r.a[1]=0;
75 test_qvm::vector<V2,2> v2=X0(v1);
76 BOOST_QVM_TEST_EQ(v2,r);
77 }
78 {
79 test_qvm::vector<V2,2> r;
80 r.a[0]=v1.a[0];
81 r.a[1]=1;
82 test_qvm::vector<V2,2> v2=X1(v1);
83 BOOST_QVM_TEST_EQ(v2,r);
84 }
85 {
86 test_qvm::vector<V2,2> v2=XY(v1);
87 test_qvm::vector<V3,2> v3;
88 XY(v3)=XY(v2);
89 BOOST_QVM_TEST_EQ(v2,v3);
90 }
91 {
92 test_qvm::vector<V1,2> v=_00();
93 BOOST_TEST(v.a[0]==0);
94 BOOST_TEST(v.a[1]==0);
95 }
96 {
97 test_qvm::vector<V1,2> v=_01();
98 BOOST_TEST(v.a[0]==0);
99 BOOST_TEST(v.a[1]==1);
100 }
101 {
102 test_qvm::vector<V1,2> v=_10();
103 BOOST_TEST(v.a[0]==1);
104 BOOST_TEST(v.a[1]==0);
105 }
106 {
107 test_qvm::vector<V1,2> v=_11();
108 BOOST_TEST(v.a[0]==1);
109 BOOST_TEST(v.a[1]==1);
110 }
111 return boost::report_errors();
112 }