]>
Commit | Line | Data |
---|---|---|
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 | ||
13 | template<typename T> | |
14 | using term = boost::yap::terminal<boost::yap::expression, T>; | |
15 | ||
16 | namespace yap = boost::yap; | |
17 | ||
18 | ||
1e59de90 | 19 | int 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 | } |