]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/qvm/test/access_v_test.cpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / qvm / test / access_v_test.cpp
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_access.hpp>
7 #include "test_qvm_vector.hpp"
8
9 using namespace boost::qvm;
10
11 template <int I>
12 void
13 check_idx( test_qvm::vector<V1,10> & v, float & (*f)( test_qvm::vector<V1,10> & ) )
14 {
15 BOOST_TEST((&A<I>(v)==&v.a[I]));
16 BOOST_TEST((&f(v)==&v.a[I]));
17 }
18
19 int
20 main()
21 {
22 test_qvm::vector<V1,10> v;
23 #define CHECK_A(i) check_idx<i>(v,A##i);
24 CHECK_A(0);
25 CHECK_A(1);
26 CHECK_A(2);
27 CHECK_A(3);
28 CHECK_A(4);
29 CHECK_A(5);
30 CHECK_A(6);
31 CHECK_A(7);
32 CHECK_A(8);
33 CHECK_A(9);
34 #undef CHECK_A
35 BOOST_TEST(&A<0>(v)==&X(v));
36 BOOST_TEST(&A<1>(v)==&Y(v));
37 BOOST_TEST(&A<2>(v)==&Z(v));
38 BOOST_TEST(&A<3>(v)==&W(v));
39 return boost::report_errors();
40 }