148 lines
2.5 KiB
C++
148 lines
2.5 KiB
C++
//
|
|
// Test for lightweight_test.hpp
|
|
//
|
|
// Copyright (c) 2014, 2018 Peter Dimov
|
|
//
|
|
// Distributed under the Boost Software License, Version 1.0.
|
|
// See accompanying file LICENSE_1_0.txt or copy at
|
|
// http://www.boost.org/LICENSE_1_0.txt
|
|
//
|
|
|
|
#include <boost/core/lightweight_test.hpp>
|
|
#include <boost/core/noncopyable.hpp>
|
|
#include <ostream>
|
|
|
|
// EQ
|
|
|
|
struct eq1: private boost::noncopyable {};
|
|
struct eq2: private boost::noncopyable {};
|
|
|
|
std::ostream& operator<<( std::ostream& os, eq1 const& )
|
|
{
|
|
return os << "eq1()";
|
|
}
|
|
|
|
std::ostream& operator<<( std::ostream& os, eq2 const& )
|
|
{
|
|
return os << "eq2()";
|
|
}
|
|
|
|
bool operator==( eq1 const&, eq2 const& )
|
|
{
|
|
return true;
|
|
}
|
|
|
|
// NE
|
|
|
|
struct ne1: private boost::noncopyable {};
|
|
struct ne2: private boost::noncopyable {};
|
|
|
|
std::ostream& operator<<( std::ostream& os, ne1 const& )
|
|
{
|
|
return os << "ne1()";
|
|
}
|
|
|
|
std::ostream& operator<<( std::ostream& os, ne2 const& )
|
|
{
|
|
return os << "ne2()";
|
|
}
|
|
|
|
bool operator!=( ne1 const&, ne2 const& )
|
|
{
|
|
return true;
|
|
}
|
|
|
|
// LT
|
|
|
|
struct lt1: private boost::noncopyable {};
|
|
struct lt2: private boost::noncopyable {};
|
|
|
|
std::ostream& operator<<( std::ostream& os, lt1 const& )
|
|
{
|
|
return os << "lt1()";
|
|
}
|
|
|
|
std::ostream& operator<<( std::ostream& os, lt2 const& )
|
|
{
|
|
return os << "lt2()";
|
|
}
|
|
|
|
bool operator<( lt1 const&, lt2 const& )
|
|
{
|
|
return true;
|
|
}
|
|
|
|
// LE
|
|
|
|
struct le1: private boost::noncopyable {};
|
|
struct le2: private boost::noncopyable {};
|
|
|
|
std::ostream& operator<<( std::ostream& os, le1 const& )
|
|
{
|
|
return os << "le1()";
|
|
}
|
|
|
|
std::ostream& operator<<( std::ostream& os, le2 const& )
|
|
{
|
|
return os << "le2()";
|
|
}
|
|
|
|
bool operator<=( le1 const&, le2 const& )
|
|
{
|
|
return true;
|
|
}
|
|
|
|
// GT
|
|
|
|
struct gt1: private boost::noncopyable {};
|
|
struct gt2: private boost::noncopyable {};
|
|
|
|
std::ostream& operator<<( std::ostream& os, gt1 const& )
|
|
{
|
|
return os << "gt1()";
|
|
}
|
|
|
|
std::ostream& operator<<( std::ostream& os, gt2 const& )
|
|
{
|
|
return os << "gt2()";
|
|
}
|
|
|
|
bool operator>( gt1 const&, gt2 const& )
|
|
{
|
|
return true;
|
|
}
|
|
|
|
// GE
|
|
|
|
struct ge1: private boost::noncopyable {};
|
|
struct ge2: private boost::noncopyable {};
|
|
|
|
std::ostream& operator<<( std::ostream& os, ge1 const& )
|
|
{
|
|
return os << "ge1()";
|
|
}
|
|
|
|
std::ostream& operator<<( std::ostream& os, ge2 const& )
|
|
{
|
|
return os << "ge2()";
|
|
}
|
|
|
|
bool operator>=( ge1 const&, ge2 const& )
|
|
{
|
|
return true;
|
|
}
|
|
|
|
//
|
|
|
|
int main()
|
|
{
|
|
BOOST_TEST_EQ( eq1(), eq2() );
|
|
BOOST_TEST_NE( ne1(), ne2() );
|
|
BOOST_TEST_LT( lt1(), lt2() );
|
|
BOOST_TEST_LE( le1(), le2() );
|
|
BOOST_TEST_GT( gt1(), gt2() );
|
|
BOOST_TEST_GE( ge1(), ge2() );
|
|
|
|
return boost::report_errors();
|
|
}
|