]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/yap/test/depth_stress_test_right.cpp
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / boost / libs / yap / test / depth_stress_test_right.cpp
CommitLineData
92f5a8d4
TL
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
1e59de90 8#include <boost/core/lightweight_test.hpp>
92f5a8d4
TL
9
10#include <sstream>
11
12
13template<typename T>
14using term = boost::yap::terminal<boost::yap::expression, T>;
15
16namespace yap = boost::yap;
17
18
1e59de90 19int main()
92f5a8d4
TL
20{
21 {
22 term<double> unity{1.0};
23
24 {
25 auto expr =
26 unity + unity + unity + unity + unity + unity + unity + unity;
27 double result = boost::yap::evaluate(expr);
1e59de90 28 BOOST_TEST(result == 8.0);
92f5a8d4
TL
29 }
30
31 {
32 auto expr =
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 unity + unity + unity + unity + unity + unity + unity + unity +
37
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 unity + unity + unity + unity + unity + unity + unity + unity;
42 double result = boost::yap::evaluate(expr);
1e59de90 43 BOOST_TEST(result == 64.0);
92f5a8d4
TL
44 }
45
46#if 0 // This makes the Travis VMs barf.
47 {
48 auto expr =
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 unity + unity + unity + unity + unity + unity + unity + unity +
53
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 unity + unity + unity + unity + unity + unity + unity + unity;
58 double result = boost::yap::evaluate(
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 expr + expr + expr + expr + expr + expr + expr + expr
63 );
1e59de90 64 BOOST_TEST(result == 64.0 * 32.0);
92f5a8d4
TL
65 }
66#endif
67 }
68
1e59de90 69 return boost::report_errors();
92f5a8d4 70}