]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/yap/test/depth_stress_test_left.cpp
import new upstream nautilus stable release 14.2.8
[ceph.git] / ceph / src / boost / libs / yap / test / depth_stress_test_left.cpp
1 // Copyright (C) 2016-2018 T. Zachary Laine
2 //
3 // Distributed under the Boost Software License, Version 1.0. (See
4 // accompanying file LICENSE_1_0.txt or copy at
5 // http://www.boost.org/LICENSE_1_0.txt)
6 #include <boost/yap/expression.hpp>
7
8 #include <boost/test/minimal.hpp>
9
10 #include <sstream>
11
12
13 template <typename T>
14 using term = boost::yap::terminal<boost::yap::expression, T>;
15
16 namespace yap = boost::yap;
17
18
19 int test_main(int, char * [])
20 {
21 {
22 term<double> unity{1.0};
23
24 {
25 auto expr = (unity + (unity + (unity + (unity + (unity + (unity + (unity + unity)))))));
26 double result = boost::yap::evaluate(expr);
27 BOOST_CHECK(result == 8.0);
28 }
29
30 {
31 auto expr =
32 (unity + (unity + (unity + (unity + (unity + (unity + (unity + (unity +
33 (unity + (unity + (unity + (unity + (unity + (unity + (unity + (unity +
34 (unity + (unity + (unity + (unity + (unity + (unity + (unity + (unity +
35 (unity + (unity + (unity + (unity + (unity + (unity + (unity + (unity +
36
37 (unity + (unity + (unity + (unity + (unity + (unity + (unity + (unity +
38 (unity + (unity + (unity + (unity + (unity + (unity + (unity + (unity +
39 (unity + (unity + (unity + (unity + (unity + (unity + (unity + (unity +
40 (unity + (unity + (unity + (unity + (unity + (unity + (unity + (unity))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
41 double result = boost::yap::evaluate(expr);
42 BOOST_CHECK(result == 64.0);
43 }
44
45 #if 0 // This makes the Travis VMs barf.
46 {
47 auto expr =
48 (unity + (unity + (unity + (unity + (unity + (unity + (unity + (unity +
49 (unity + (unity + (unity + (unity + (unity + (unity + (unity + (unity +
50 (unity + (unity + (unity + (unity + (unity + (unity + (unity + (unity +
51 (unity + (unity + (unity + (unity + (unity + (unity + (unity + (unity +
52
53 (unity + (unity + (unity + (unity + (unity + (unity + (unity + (unity +
54 (unity + (unity + (unity + (unity + (unity + (unity + (unity + (unity +
55 (unity + (unity + (unity + (unity + (unity + (unity + (unity + (unity +
56 (unity + (unity + (unity + (unity + (unity + (unity + (unity + (unity))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
57 double result = boost::yap::evaluate(
58 (expr + (expr + (expr + (expr + (expr + (expr + (expr + (expr +
59 (expr + (expr + (expr + (expr + (expr + (expr + (expr + (expr +
60 (expr + (expr + (expr + (expr + (expr + (expr + (expr + (expr +
61 (expr + (expr + (expr + (expr + (expr + (expr + (expr + (expr))))))))))))))))))))))))))))))))
62 );
63 BOOST_CHECK(result == 64.0 * 32.0);
64 }
65 #endif
66 }
67
68 return 0;
69 }