1//===----------------------------------------------------------------------===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is dual licensed under the MIT and the University of Illinois Open
6// Source Licenses. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9// Adaptation to Boost of the libcxx
10// Copyright 2010 Vicente J. Botet Escriba
11// Distributed under the Boost Software License, Version 1.0.
12// See http://www.boost.org/LICENSE_1_0.txt
13
14#include <boost/ratio/ratio.hpp>
15#include <cstdint>
16
17#define STATIC_ASSERT(...) static_assert(__VA_ARGS__, #__VA_ARGS__)
18
19void test()
20{
21 {
22 typedef boost::ratio<1, 1> R1;
23 typedef boost::ratio<1, 1> R2;
24 STATIC_ASSERT(boost::ratio_less_equal<R1, R2>::value);
25 }
26 {
27 typedef boost::ratio<INTMAX_MAX, 1> R1;
28 typedef boost::ratio<INTMAX_MAX, 1> R2;
29 STATIC_ASSERT(boost::ratio_less_equal<R1, R2>::value);
30 }
31 {
32 typedef boost::ratio<-INTMAX_MAX, 1> R1;
33 typedef boost::ratio<-INTMAX_MAX, 1> R2;
34 STATIC_ASSERT(boost::ratio_less_equal<R1, R2>::value);
35 }
36 {
37 typedef boost::ratio<1, INTMAX_MAX> R1;
38 typedef boost::ratio<1, INTMAX_MAX> R2;
39 STATIC_ASSERT(boost::ratio_less_equal<R1, R2>::value);
40 }
41 {
42 typedef boost::ratio<1, 1> R1;
43 typedef boost::ratio<1, -1> R2;
44 STATIC_ASSERT(!boost::ratio_less_equal<R1, R2>::value);
45 }
46 {
47 typedef boost::ratio<INTMAX_MAX, 1> R1;
48 typedef boost::ratio<-INTMAX_MAX, 1> R2;
49 STATIC_ASSERT(!boost::ratio_less_equal<R1, R2>::value);
50 }
51 {
52 typedef boost::ratio<-INTMAX_MAX, 1> R1;
53 typedef boost::ratio<INTMAX_MAX, 1> R2;
54 STATIC_ASSERT(boost::ratio_less_equal<R1, R2>::value);
55 }
56 {
57 typedef boost::ratio<1, INTMAX_MAX> R1;
58 typedef boost::ratio<1, -INTMAX_MAX> R2;
59 STATIC_ASSERT(!boost::ratio_less_equal<R1, R2>::value);
60 }
61}
62

source code of boost/libs/ratio/test/ratio_comparison/ratio_less_equal_pass.cpp