1 // Boost.Geometry
2 // Unit Test
3 
4 // Copyright (c) 2018, Oracle and/or its affiliates.
5 // Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
6 
7 // Use, modification and distribution is subject to the Boost Software License,
8 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
9 // http://www.boost.org/LICENSE_1_0.txt)
10 
11 
12 #include <geometry_test_common.hpp>
13 
14 #include <boost/core/ignore_unused.hpp>
15 #include <boost/geometry/srs/projection.hpp>
16 
17 
18 namespace srs = bg::srs;
19 namespace par = bg::srs::spar;
20 
21 
test_main(int,char * [])22 int test_main(int, char* [])
23 {
24     typedef par::proj_aea proj;
25     typedef par::ellps_clrk80 ellps;
26     typedef par::datum_ire65 datum;
27     typedef par::o_proj<par::proj_tmerc> o_proj;
28     typedef par::guam guam;
29 
30     BOOST_MPL_ASSERT_MSG((par::detail::is_param_tr<par::detail::proj_traits>::pred<proj>::value),
31                          PROJ, (proj));
32     BOOST_MPL_ASSERT_MSG((!par::detail::is_param_tr<par::detail::proj_traits>::pred<int>::value),
33                          NOT_PROJ, (int));
34 
35     BOOST_MPL_ASSERT_MSG((par::detail::is_param_tr<par::detail::ellps_traits>::pred<ellps>::value),
36                          ELLPS, (ellps));
37     BOOST_MPL_ASSERT_MSG((!par::detail::is_param_tr<par::detail::ellps_traits>::pred<int>::value),
38                          NOT_ELLPS, (int));
39 
40     BOOST_MPL_ASSERT_MSG((par::detail::is_param_tr<par::detail::datum_traits>::pred<datum>::value),
41                          DATUM, (datum));
42     BOOST_MPL_ASSERT_MSG((!par::detail::is_param_tr<par::detail::datum_traits>::pred<int>::value),
43                          NOT_DATUM, (int));
44 
45     BOOST_MPL_ASSERT_MSG((par::detail::is_param_t<par::o_proj>::pred<o_proj>::value),
46                          O_PROJ, (o_proj));
47     BOOST_MPL_ASSERT_MSG((!par::detail::is_param_t<par::o_proj>::pred<int>::value),
48                          NOT_O_PROJ, (int));
49 
50     BOOST_MPL_ASSERT_MSG((par::detail::is_param<par::guam>::pred<guam>::value),
51                          GUAM, (guam));
52     BOOST_MPL_ASSERT_MSG((!par::detail::is_param<par::guam>::pred<int>::value),
53                          NOT_GUAM, (int));
54 
55     typedef par::parameters<proj, ellps, datum, o_proj, guam> params;
56     typedef par::parameters<proj, ellps> params_e;
57     typedef par::parameters<proj, datum> params_d;
58     typedef par::parameters<proj> params_0;
59 
60     boost::ignore_unused<params, params_e, params_d, params_0>();
61 
62     return 0;
63 }
64