mirror of
https://github.com/boostorg/ratio.git
synced 2025-05-09 23:24:01 +00:00
Boost.Ratio: Added test for mpl comparison operations + test plus with 3 parameters
[SVN r67594]
This commit is contained in:
parent
52ea879c56
commit
b2875f0cba
@ -88,4 +88,11 @@ project
|
||||
[ compile ratio_extensions/mpl_minus_pass.cpp ]
|
||||
[ compile ratio_extensions/mpl_times_pass.cpp ]
|
||||
[ compile ratio_extensions/mpl_divides_pass.cpp ]
|
||||
[ compile ratio_extensions/mpl_equal_to_pass.cpp ]
|
||||
[ compile ratio_extensions/mpl_not_equal_to_pass.cpp ]
|
||||
[ compile ratio_extensions/mpl_less_pass.cpp ]
|
||||
[ compile ratio_extensions/mpl_less_equal_pass.cpp ]
|
||||
[ compile ratio_extensions/mpl_greater_pass.cpp ]
|
||||
[ compile ratio_extensions/mpl_greater_equal_pass.cpp ]
|
||||
|
||||
;
|
||||
|
67
test/ratio_extensions/mpl_equal_to_pass.cpp
Normal file
67
test/ratio_extensions/mpl_equal_to_pass.cpp
Normal file
@ -0,0 +1,67 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Adaptation to Boost of the libcxx
|
||||
// Copyright 2010 Vicente J. Botet Escriba
|
||||
// Distributed under the Boost Software License, Version 1.0.
|
||||
// See http://www.boost.org/LICENSE_1_0.txt
|
||||
|
||||
// test mpl::equal_to
|
||||
|
||||
#define BOOST_RATIO_EXTENSIONS
|
||||
|
||||
#include <boost/ratio/mpl/equal_to.hpp>
|
||||
#if !defined(BOOST_NO_STATIC_ASSERT)
|
||||
#define NOTHING ""
|
||||
#endif
|
||||
|
||||
#define BOOST_RATIO_INTMAX_T_MAX (0x7FFFFFFFFFFFFFFFLL)
|
||||
|
||||
void test()
|
||||
{
|
||||
{
|
||||
typedef boost::ratio<1, 1> R1;
|
||||
typedef boost::ratio<1, 1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((boost::mpl::equal_to<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<BOOST_RATIO_INTMAX_T_MAX, 1> R1;
|
||||
typedef boost::ratio<BOOST_RATIO_INTMAX_T_MAX, 1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((boost::mpl::equal_to<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<-BOOST_RATIO_INTMAX_T_MAX, 1> R1;
|
||||
typedef boost::ratio<-BOOST_RATIO_INTMAX_T_MAX, 1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((boost::mpl::equal_to<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<1, BOOST_RATIO_INTMAX_T_MAX> R1;
|
||||
typedef boost::ratio<1, BOOST_RATIO_INTMAX_T_MAX> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((boost::mpl::equal_to<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<1, 1> R1;
|
||||
typedef boost::ratio<1, -1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((!boost::mpl::equal_to<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<BOOST_RATIO_INTMAX_T_MAX, 1> R1;
|
||||
typedef boost::ratio<-BOOST_RATIO_INTMAX_T_MAX, 1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((!boost::mpl::equal_to<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<-BOOST_RATIO_INTMAX_T_MAX, 1> R1;
|
||||
typedef boost::ratio<BOOST_RATIO_INTMAX_T_MAX, 1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((!boost::mpl::equal_to<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<1, BOOST_RATIO_INTMAX_T_MAX> R1;
|
||||
typedef boost::ratio<1, -BOOST_RATIO_INTMAX_T_MAX> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((!boost::mpl::equal_to<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
}
|
70
test/ratio_extensions/mpl_greater_equal_pass.cpp
Normal file
70
test/ratio_extensions/mpl_greater_equal_pass.cpp
Normal file
@ -0,0 +1,70 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Adaptation to Boost of the libcxx
|
||||
// Copyright 2010 Vicente J. Botet Escriba
|
||||
// Distributed under the Boost Software License, Version 1.0.
|
||||
// See http://www.boost.org/LICENSE_1_0.txt
|
||||
|
||||
#define BOOST_RATIO_EXTENSIONS
|
||||
|
||||
#include <boost/ratio/mpl/greater_equal.hpp>
|
||||
#if !defined(BOOST_NO_STATIC_ASSERT)
|
||||
#define NOTHING ""
|
||||
#endif
|
||||
|
||||
#define BOOST_RATIO_INTMAX_T_MAX (0x7FFFFFFFFFFFFFFFLL)
|
||||
|
||||
void test()
|
||||
{
|
||||
{
|
||||
typedef boost::ratio<1, 1> R1;
|
||||
typedef boost::ratio<1, 1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((boost::mpl::greater_equal<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<BOOST_RATIO_INTMAX_T_MAX, 1> R1;
|
||||
typedef boost::ratio<BOOST_RATIO_INTMAX_T_MAX, 1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((boost::mpl::greater_equal<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<1,BOOST_RATIO_INTMAX_T_MAX> R1;
|
||||
typedef boost::ratio<1,BOOST_RATIO_INTMAX_T_MAX> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((boost::mpl::greater_equal<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<-BOOST_RATIO_INTMAX_T_MAX, 1> R1;
|
||||
typedef boost::ratio<-BOOST_RATIO_INTMAX_T_MAX, 1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((boost::mpl::greater_equal<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<1, BOOST_RATIO_INTMAX_T_MAX> R1;
|
||||
typedef boost::ratio<1, BOOST_RATIO_INTMAX_T_MAX> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((boost::mpl::greater_equal<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<1, 1> R1;
|
||||
typedef boost::ratio<1, -1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((boost::mpl::greater_equal<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<BOOST_RATIO_INTMAX_T_MAX, 1> R1;
|
||||
typedef boost::ratio<-BOOST_RATIO_INTMAX_T_MAX, 1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((boost::mpl::greater_equal<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<-BOOST_RATIO_INTMAX_T_MAX, 1> R1;
|
||||
typedef boost::ratio<BOOST_RATIO_INTMAX_T_MAX, 1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((!boost::mpl::greater_equal<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<1, BOOST_RATIO_INTMAX_T_MAX> R1;
|
||||
typedef boost::ratio<1, -BOOST_RATIO_INTMAX_T_MAX> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((boost::mpl::greater_equal<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
}
|
64
test/ratio_extensions/mpl_greater_pass.cpp
Normal file
64
test/ratio_extensions/mpl_greater_pass.cpp
Normal file
@ -0,0 +1,64 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Adaptation to Boost of the libcxx
|
||||
// Copyright 2010 Vicente J. Botet Escriba
|
||||
// Distributed under the Boost Software License, Version 1.0.
|
||||
// See http://www.boost.org/LICENSE_1_0.txt
|
||||
|
||||
#define BOOST_RATIO_EXTENSIONS
|
||||
|
||||
#include <boost/ratio/mpl/greater.hpp>
|
||||
#if !defined(BOOST_NO_STATIC_ASSERT)
|
||||
#define NOTHING ""
|
||||
#endif
|
||||
#define BOOST_RATIO_INTMAX_T_MAX (0x7FFFFFFFFFFFFFFFLL)
|
||||
|
||||
void test()
|
||||
{
|
||||
{
|
||||
typedef boost::ratio<1, 1> R1;
|
||||
typedef boost::ratio<1, 1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((!boost::mpl::greater<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<BOOST_RATIO_INTMAX_T_MAX, 1> R1;
|
||||
typedef boost::ratio<BOOST_RATIO_INTMAX_T_MAX, 1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((!boost::mpl::greater<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<-BOOST_RATIO_INTMAX_T_MAX, 1> R1;
|
||||
typedef boost::ratio<-BOOST_RATIO_INTMAX_T_MAX, 1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((!boost::mpl::greater<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<1, BOOST_RATIO_INTMAX_T_MAX> R1;
|
||||
typedef boost::ratio<1, BOOST_RATIO_INTMAX_T_MAX> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((!boost::mpl::greater<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<1, 1> R1;
|
||||
typedef boost::ratio<1, -1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((boost::mpl::greater<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<BOOST_RATIO_INTMAX_T_MAX, 1> R1;
|
||||
typedef boost::ratio<-BOOST_RATIO_INTMAX_T_MAX, 1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((boost::mpl::greater<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<-BOOST_RATIO_INTMAX_T_MAX, 1> R1;
|
||||
typedef boost::ratio<BOOST_RATIO_INTMAX_T_MAX, 1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((!boost::mpl::greater<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<1, BOOST_RATIO_INTMAX_T_MAX> R1;
|
||||
typedef boost::ratio<1, -BOOST_RATIO_INTMAX_T_MAX> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((boost::mpl::greater<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
}
|
64
test/ratio_extensions/mpl_less_equal_pass.cpp
Normal file
64
test/ratio_extensions/mpl_less_equal_pass.cpp
Normal file
@ -0,0 +1,64 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Adaptation to Boost of the libcxx
|
||||
// Copyright 2010 Vicente J. Botet Escriba
|
||||
// Distributed under the Boost Software License, Version 1.0.
|
||||
// See http://www.boost.org/LICENSE_1_0.txt
|
||||
|
||||
#define BOOST_RATIO_EXTENSIONS
|
||||
|
||||
#include <boost/ratio/mpl/less_equal.hpp>
|
||||
#if !defined(BOOST_NO_STATIC_ASSERT)
|
||||
#define NOTHING ""
|
||||
#endif
|
||||
#define BOOST_RATIO_INTMAX_T_MAX (0x7FFFFFFFFFFFFFFFLL)
|
||||
|
||||
void test()
|
||||
{
|
||||
{
|
||||
typedef boost::ratio<1, 1> R1;
|
||||
typedef boost::ratio<1, 1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((boost::mpl::less_equal<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<BOOST_RATIO_INTMAX_T_MAX, 1> R1;
|
||||
typedef boost::ratio<BOOST_RATIO_INTMAX_T_MAX, 1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((boost::mpl::less_equal<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<-BOOST_RATIO_INTMAX_T_MAX, 1> R1;
|
||||
typedef boost::ratio<-BOOST_RATIO_INTMAX_T_MAX, 1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((boost::mpl::less_equal<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<1, BOOST_RATIO_INTMAX_T_MAX> R1;
|
||||
typedef boost::ratio<1, BOOST_RATIO_INTMAX_T_MAX> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((boost::mpl::less_equal<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<1, 1> R1;
|
||||
typedef boost::ratio<1, -1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((!boost::mpl::less_equal<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<BOOST_RATIO_INTMAX_T_MAX, 1> R1;
|
||||
typedef boost::ratio<-BOOST_RATIO_INTMAX_T_MAX, 1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((!boost::mpl::less_equal<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<-BOOST_RATIO_INTMAX_T_MAX, 1> R1;
|
||||
typedef boost::ratio<BOOST_RATIO_INTMAX_T_MAX, 1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((boost::mpl::less_equal<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<1, BOOST_RATIO_INTMAX_T_MAX> R1;
|
||||
typedef boost::ratio<1, -BOOST_RATIO_INTMAX_T_MAX> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((!boost::mpl::less_equal<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
}
|
94
test/ratio_extensions/mpl_less_pass.cpp
Normal file
94
test/ratio_extensions/mpl_less_pass.cpp
Normal file
@ -0,0 +1,94 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Adaptation to Boost of the libcxx
|
||||
// Copyright 2010 Vicente J. Botet Escriba
|
||||
// Distributed under the Boost Software License, Version 1.0.
|
||||
// See http://www.boost.org/LICENSE_1_0.txt
|
||||
|
||||
#define BOOST_RATIO_EXTENSIONS
|
||||
|
||||
#include <boost/ratio/mpl/less.hpp>
|
||||
#if !defined(BOOST_NO_STATIC_ASSERT)
|
||||
#define NOTHING ""
|
||||
#endif
|
||||
|
||||
#define BOOST_RATIO_INTMAX_T_MAX (0x7FFFFFFFFFFFFFFFLL)
|
||||
void test()
|
||||
{
|
||||
{
|
||||
typedef boost::ratio<1, 1> R1;
|
||||
typedef boost::ratio<1, 1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((!boost::mpl::less<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<BOOST_RATIO_INTMAX_T_MAX, 1> R1;
|
||||
typedef boost::ratio<BOOST_RATIO_INTMAX_T_MAX, 1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((!boost::mpl::less<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<-BOOST_RATIO_INTMAX_T_MAX, 1> R1;
|
||||
typedef boost::ratio<-BOOST_RATIO_INTMAX_T_MAX, 1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((!boost::mpl::less<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<1, BOOST_RATIO_INTMAX_T_MAX> R1;
|
||||
typedef boost::ratio<1, BOOST_RATIO_INTMAX_T_MAX> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((!boost::mpl::less<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<1, 1> R1;
|
||||
typedef boost::ratio<1, -1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((!boost::mpl::less<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<BOOST_RATIO_INTMAX_T_MAX, 1> R1;
|
||||
typedef boost::ratio<-BOOST_RATIO_INTMAX_T_MAX, 1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((!boost::mpl::less<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<-BOOST_RATIO_INTMAX_T_MAX, 1> R1;
|
||||
typedef boost::ratio<BOOST_RATIO_INTMAX_T_MAX, 1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((boost::mpl::less<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<1, BOOST_RATIO_INTMAX_T_MAX> R1;
|
||||
typedef boost::ratio<1, -BOOST_RATIO_INTMAX_T_MAX> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((!boost::mpl::less<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<BOOST_RATIO_INTMAX_T_MAX, 0x7FFFFFFFFFFFFFFELL> R1;
|
||||
typedef boost::ratio<0x7FFFFFFFFFFFFFFDLL, 0x7FFFFFFFFFFFFFFCLL> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((boost::mpl::less<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<0x7FFFFFFFFFFFFFFDLL, 0x7FFFFFFFFFFFFFFCLL> R1;
|
||||
typedef boost::ratio<BOOST_RATIO_INTMAX_T_MAX, 0x7FFFFFFFFFFFFFFELL> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((!boost::mpl::less<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<-0x7FFFFFFFFFFFFFFDLL, 0x7FFFFFFFFFFFFFFCLL> R1;
|
||||
typedef boost::ratio<-BOOST_RATIO_INTMAX_T_MAX, 0x7FFFFFFFFFFFFFFELL> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((boost::mpl::less<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<BOOST_RATIO_INTMAX_T_MAX, 0x7FFFFFFFFFFFFFFELL> R1;
|
||||
typedef boost::ratio<0x7FFFFFFFFFFFFFFELL, 0x7FFFFFFFFFFFFFFDLL> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((boost::mpl::less<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<641981, 1339063> R1;
|
||||
typedef boost::ratio<1291640, 2694141LL> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((!boost::mpl::less<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<1291640, 2694141LL> R1;
|
||||
typedef boost::ratio<641981, 1339063> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((boost::mpl::less<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
}
|
64
test/ratio_extensions/mpl_not_equal_to_pass.cpp
Normal file
64
test/ratio_extensions/mpl_not_equal_to_pass.cpp
Normal file
@ -0,0 +1,64 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Adaptation to Boost of the libcxx
|
||||
// Copyright 2010 Vicente J. Botet Escriba
|
||||
// Distributed under the Boost Software License, Version 1.0.
|
||||
// See http://www.boost.org/LICENSE_1_0.txt
|
||||
|
||||
#define BOOST_RATIO_EXTENSIONS
|
||||
|
||||
#include <boost/ratio/mpl/not_equal_to.hpp>
|
||||
#if !defined(BOOST_NO_STATIC_ASSERT)
|
||||
#define NOTHING ""
|
||||
#endif
|
||||
#define BOOST_RATIO_INTMAX_T_MAX (0x7FFFFFFFFFFFFFFFLL)
|
||||
|
||||
void test()
|
||||
{
|
||||
{
|
||||
typedef boost::ratio<1, 1> R1;
|
||||
typedef boost::ratio<1, 1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((!boost::mpl::not_equal_to<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<BOOST_RATIO_INTMAX_T_MAX, 1> R1;
|
||||
typedef boost::ratio<BOOST_RATIO_INTMAX_T_MAX, 1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((!boost::mpl::not_equal_to<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<-BOOST_RATIO_INTMAX_T_MAX, 1> R1;
|
||||
typedef boost::ratio<-BOOST_RATIO_INTMAX_T_MAX, 1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((!boost::mpl::not_equal_to<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<1, BOOST_RATIO_INTMAX_T_MAX> R1;
|
||||
typedef boost::ratio<1, BOOST_RATIO_INTMAX_T_MAX> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((!boost::mpl::not_equal_to<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<1, 1> R1;
|
||||
typedef boost::ratio<1, -1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((boost::mpl::not_equal_to<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<BOOST_RATIO_INTMAX_T_MAX, 1> R1;
|
||||
typedef boost::ratio<-BOOST_RATIO_INTMAX_T_MAX, 1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((boost::mpl::not_equal_to<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<-BOOST_RATIO_INTMAX_T_MAX, 1> R1;
|
||||
typedef boost::ratio<BOOST_RATIO_INTMAX_T_MAX, 1> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((boost::mpl::not_equal_to<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<1, BOOST_RATIO_INTMAX_T_MAX> R1;
|
||||
typedef boost::ratio<1, -BOOST_RATIO_INTMAX_T_MAX> R2;
|
||||
BOOST_RATIO_STATIC_ASSERT((boost::mpl::not_equal_to<R1, R2>::value), NOTHING, ());
|
||||
}
|
||||
}
|
@ -39,37 +39,43 @@ void test()
|
||||
{
|
||||
typedef boost::ratio<-1, 2> R1;
|
||||
typedef boost::ratio<1, 1> R2;
|
||||
typedef boost::mpl::plus<R1, R2> R;
|
||||
typedef boost::mpl::int_<0> R3;
|
||||
typedef boost::mpl::plus<R1, R2, R3> R;
|
||||
BOOST_RATIO_STATIC_ASSERT(R::num == 1 && R::den == 2, NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<1, -2> R1;
|
||||
typedef boost::ratio<1, 1> R2;
|
||||
typedef boost::mpl::plus<R1, R2> R;
|
||||
typedef boost::mpl::int_<0> R3;
|
||||
typedef boost::mpl::plus<R1, R2, R3> R;
|
||||
BOOST_RATIO_STATIC_ASSERT(R::num == 1 && R::den == 2, NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<1, 2> R1;
|
||||
typedef boost::ratio<-1, 1> R2;
|
||||
typedef boost::mpl::plus<R1, R2> R;
|
||||
typedef boost::mpl::int_<0> R3;
|
||||
typedef boost::mpl::plus<R1, R2, R3> R;
|
||||
BOOST_RATIO_STATIC_ASSERT(R::num == -1 && R::den == 2, NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<1, 2> R1;
|
||||
typedef boost::ratio<1, -1> R2;
|
||||
typedef boost::mpl::plus<R1, R2> R;
|
||||
typedef boost::mpl::int_<0> R3;
|
||||
typedef boost::mpl::plus<R1, R2, R3> R;
|
||||
BOOST_RATIO_STATIC_ASSERT(R::num == -1 && R::den == 2, NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<56987354, 467584654> R1;
|
||||
typedef boost::ratio<544668, 22145> R2;
|
||||
typedef boost::mpl::plus<R1, R2> R;
|
||||
typedef boost::mpl::int_<0> R3;
|
||||
typedef boost::mpl::plus<R1, R2, R3> R;
|
||||
BOOST_RATIO_STATIC_ASSERT(R::num == 127970191639601LL && R::den == 5177331081415LL, NOTHING, ());
|
||||
}
|
||||
{
|
||||
typedef boost::ratio<BOOST_RATIO_INTMAX_C(0x7FFFFFFFFFFFFFFF), 1> R1;
|
||||
typedef boost::ratio<-1, 1> R2;
|
||||
typedef boost::mpl::plus<R1, R2>::type RT;
|
||||
typedef boost::mpl::int_<0> R3;
|
||||
typedef boost::mpl::plus<R1, R2, R3>::type RT;
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user