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 "test_qvm_vector.hpp"
8 #include "gold.hpp"
9 
10 namespace
11     {
12     template <int Dim>
13     void
test()14     test()
15         {
16         using namespace boost::qvm::sfinae;
17         test_qvm::vector<V1,Dim> x(42,2);
18             {
19             test_qvm::vector<V1,Dim> const y(42,1);
20             test_qvm::subtract_v(x.b,x.a,y.a);
21             x-=y;
22             BOOST_QVM_TEST_EQ(x.a,x.b);
23             }
24             {
25             test_qvm::vector<V2,Dim> const y(42,1);
26             test_qvm::subtract_v(x.b,x.a,y.a);
27             x-=y;
28             BOOST_QVM_TEST_EQ(x.a,x.b);
29             }
30         }
31     }
32 
33 int
main()34 main()
35     {
36     test<2>();
37     test<3>();
38     test<4>();
39     test<5>();
40     return boost::report_errors();
41     }
42