mirror of
https://github.com/boostorg/logic.git
synced 2025-07-30 04:07:15 +02:00
Switch from deprecated test to Lightweight Test
This commit is contained in:
@ -4,7 +4,7 @@
|
|||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
#include <boost/logic/tribool.hpp>
|
#include <boost/logic/tribool.hpp>
|
||||||
#include <boost/logic/tribool_io.hpp>
|
#include <boost/logic/tribool_io.hpp>
|
||||||
#include <boost/test/minimal.hpp>
|
#include <boost/core/lightweight_test.hpp>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
@ -14,7 +14,7 @@
|
|||||||
# include <locale>
|
# include <locale>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int test_main(int, char*[])
|
int main()
|
||||||
{
|
{
|
||||||
using namespace boost::logic;
|
using namespace boost::logic;
|
||||||
|
|
||||||
@ -23,13 +23,13 @@ int test_main(int, char*[])
|
|||||||
#if !defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_STD_WSTRING)
|
#if !defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_STD_WSTRING)
|
||||||
std::wostringstream wout;
|
std::wostringstream wout;
|
||||||
wout << std::boolalpha << tribool(false);
|
wout << std::boolalpha << tribool(false);
|
||||||
BOOST_CHECK(wout.str() == L"false");
|
BOOST_TEST(wout.str() == L"false");
|
||||||
wout.str(std::wstring());
|
wout.str(std::wstring());
|
||||||
wout << std::boolalpha << tribool(true);
|
wout << std::boolalpha << tribool(true);
|
||||||
BOOST_CHECK(wout.str() == L"true");
|
BOOST_TEST(wout.str() == L"true");
|
||||||
wout.str(std::wstring());
|
wout.str(std::wstring());
|
||||||
wout << std::boolalpha << tribool(indeterminate);
|
wout << std::boolalpha << tribool(indeterminate);
|
||||||
BOOST_CHECK(wout.str() == L"indeterminate");
|
BOOST_TEST(wout.str() == L"indeterminate");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Check tribool output
|
// Check tribool output
|
||||||
@ -40,14 +40,14 @@ int test_main(int, char*[])
|
|||||||
x = false;
|
x = false;
|
||||||
out << x;
|
out << x;
|
||||||
std::cout << "Output false (noboolalpha): " << out.str() << std::endl;
|
std::cout << "Output false (noboolalpha): " << out.str() << std::endl;
|
||||||
BOOST_CHECK(out.str() == "0");
|
BOOST_TEST(out.str() == "0");
|
||||||
|
|
||||||
// Output true (noboolalpha)
|
// Output true (noboolalpha)
|
||||||
out.str(std::string());
|
out.str(std::string());
|
||||||
x = true;
|
x = true;
|
||||||
out << x;
|
out << x;
|
||||||
std::cout << "Output true (noboolalpha): " << out.str() << std::endl;
|
std::cout << "Output true (noboolalpha): " << out.str() << std::endl;
|
||||||
BOOST_CHECK(out.str() == "1");
|
BOOST_TEST(out.str() == "1");
|
||||||
|
|
||||||
// Output indeterminate (noboolalpha)
|
// Output indeterminate (noboolalpha)
|
||||||
out.str(std::string());
|
out.str(std::string());
|
||||||
@ -55,14 +55,14 @@ int test_main(int, char*[])
|
|||||||
out << x;
|
out << x;
|
||||||
std::cout << "Output indeterminate (noboolalpha): " << out.str()
|
std::cout << "Output indeterminate (noboolalpha): " << out.str()
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
BOOST_CHECK(out.str() == "2");
|
BOOST_TEST(out.str() == "2");
|
||||||
|
|
||||||
// Output indeterminate (noboolalpha)
|
// Output indeterminate (noboolalpha)
|
||||||
out.str(std::string());
|
out.str(std::string());
|
||||||
out << indeterminate;
|
out << indeterminate;
|
||||||
std::cout << "Output indeterminate (noboolalpha): " << out.str()
|
std::cout << "Output indeterminate (noboolalpha): " << out.str()
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
BOOST_CHECK(out.str() == "2");
|
BOOST_TEST(out.str() == "2");
|
||||||
|
|
||||||
#ifndef BOOST_NO_STD_LOCALE
|
#ifndef BOOST_NO_STD_LOCALE
|
||||||
const std::numpunct<char>& punct =
|
const std::numpunct<char>& punct =
|
||||||
@ -73,7 +73,7 @@ int test_main(int, char*[])
|
|||||||
x = false;
|
x = false;
|
||||||
out << std::boolalpha << x;
|
out << std::boolalpha << x;
|
||||||
std::cout << "Output false (boolalpha): " << out.str() << std::endl;
|
std::cout << "Output false (boolalpha): " << out.str() << std::endl;
|
||||||
BOOST_CHECK(out.str() == punct.falsename());
|
BOOST_TEST(out.str() == punct.falsename());
|
||||||
|
|
||||||
// Output true (boolalpha)
|
// Output true (boolalpha)
|
||||||
out.str(std::string());
|
out.str(std::string());
|
||||||
@ -81,7 +81,7 @@ int test_main(int, char*[])
|
|||||||
out << std::boolalpha << x;
|
out << std::boolalpha << x;
|
||||||
std::cout << "Output true (boolalpha): " << out.str() << std::endl;
|
std::cout << "Output true (boolalpha): " << out.str() << std::endl;
|
||||||
|
|
||||||
BOOST_CHECK(out.str() == punct.truename());
|
BOOST_TEST(out.str() == punct.truename());
|
||||||
|
|
||||||
// Output indeterminate (boolalpha - default name)
|
// Output indeterminate (boolalpha - default name)
|
||||||
out.str(std::string());
|
out.str(std::string());
|
||||||
@ -89,14 +89,14 @@ int test_main(int, char*[])
|
|||||||
out << std::boolalpha << x;
|
out << std::boolalpha << x;
|
||||||
std::cout << "Output indeterminate (boolalpha - default name): " << out.str()
|
std::cout << "Output indeterminate (boolalpha - default name): " << out.str()
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
BOOST_CHECK(out.str() == "indeterminate");
|
BOOST_TEST(out.str() == "indeterminate");
|
||||||
|
|
||||||
// Output indeterminate (boolalpha - default name)
|
// Output indeterminate (boolalpha - default name)
|
||||||
out.str(std::string());
|
out.str(std::string());
|
||||||
out << std::boolalpha << indeterminate;
|
out << std::boolalpha << indeterminate;
|
||||||
std::cout << "Output indeterminate (boolalpha - default name): " << out.str()
|
std::cout << "Output indeterminate (boolalpha - default name): " << out.str()
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
BOOST_CHECK(out.str() == "indeterminate");
|
BOOST_TEST(out.str() == "indeterminate");
|
||||||
|
|
||||||
# if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1)
|
# if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1)
|
||||||
// No template constructors, so we can't build the test locale
|
// No template constructors, so we can't build the test locale
|
||||||
@ -109,7 +109,7 @@ int test_main(int, char*[])
|
|||||||
out << std::boolalpha << x;
|
out << std::boolalpha << x;
|
||||||
std::cout << "Output indeterminate (boolalpha - \"maybe\"): " << out.str()
|
std::cout << "Output indeterminate (boolalpha - \"maybe\"): " << out.str()
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
BOOST_CHECK(out.str() == "maybe");
|
BOOST_TEST(out.str() == "maybe");
|
||||||
# endif
|
# endif
|
||||||
#endif // ! BOOST_NO_STD_LOCALE
|
#endif // ! BOOST_NO_STD_LOCALE
|
||||||
|
|
||||||
@ -120,7 +120,7 @@ int test_main(int, char*[])
|
|||||||
std::istringstream in("0");
|
std::istringstream in("0");
|
||||||
std::cout << "Input \"0\" (checks for false)" << std::endl;
|
std::cout << "Input \"0\" (checks for false)" << std::endl;
|
||||||
in >> x;
|
in >> x;
|
||||||
BOOST_CHECK(x == false);
|
BOOST_TEST(x == false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Input true (noboolalpha)
|
// Input true (noboolalpha)
|
||||||
@ -128,7 +128,7 @@ int test_main(int, char*[])
|
|||||||
std::istringstream in("1");
|
std::istringstream in("1");
|
||||||
std::cout << "Input \"1\" (checks for true)" << std::endl;
|
std::cout << "Input \"1\" (checks for true)" << std::endl;
|
||||||
in >> x;
|
in >> x;
|
||||||
BOOST_CHECK(x == true);
|
BOOST_TEST(x == true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Input false (noboolalpha)
|
// Input false (noboolalpha)
|
||||||
@ -136,14 +136,14 @@ int test_main(int, char*[])
|
|||||||
std::istringstream in("2");
|
std::istringstream in("2");
|
||||||
std::cout << "Input \"2\" (checks for indeterminate)" << std::endl;
|
std::cout << "Input \"2\" (checks for indeterminate)" << std::endl;
|
||||||
in >> x;
|
in >> x;
|
||||||
BOOST_CHECK(indeterminate(x));
|
BOOST_TEST(indeterminate(x));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Input bad number (noboolalpha)
|
// Input bad number (noboolalpha)
|
||||||
{
|
{
|
||||||
std::istringstream in("3");
|
std::istringstream in("3");
|
||||||
std::cout << "Input \"3\" (checks for failure)" << std::endl;
|
std::cout << "Input \"3\" (checks for failure)" << std::endl;
|
||||||
BOOST_CHECK(!(in >> x));
|
BOOST_TEST(!(in >> x));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Input false (boolalpha)
|
// Input false (boolalpha)
|
||||||
@ -151,7 +151,7 @@ int test_main(int, char*[])
|
|||||||
std::istringstream in("false");
|
std::istringstream in("false");
|
||||||
std::cout << "Input \"false\" (checks for false)" << std::endl;
|
std::cout << "Input \"false\" (checks for false)" << std::endl;
|
||||||
in >> std::boolalpha >> x;
|
in >> std::boolalpha >> x;
|
||||||
BOOST_CHECK(x == false);
|
BOOST_TEST(x == false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Input true (boolalpha)
|
// Input true (boolalpha)
|
||||||
@ -159,7 +159,7 @@ int test_main(int, char*[])
|
|||||||
std::istringstream in("true");
|
std::istringstream in("true");
|
||||||
std::cout << "Input \"true\" (checks for true)" << std::endl;
|
std::cout << "Input \"true\" (checks for true)" << std::endl;
|
||||||
in >> std::boolalpha >> x;
|
in >> std::boolalpha >> x;
|
||||||
BOOST_CHECK(x == true);
|
BOOST_TEST(x == true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Input indeterminate (boolalpha)
|
// Input indeterminate (boolalpha)
|
||||||
@ -168,7 +168,7 @@ int test_main(int, char*[])
|
|||||||
std::cout << "Input \"indeterminate\" (checks for indeterminate)"
|
std::cout << "Input \"indeterminate\" (checks for indeterminate)"
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
in >> std::boolalpha >> x;
|
in >> std::boolalpha >> x;
|
||||||
BOOST_CHECK(indeterminate(x));
|
BOOST_TEST(indeterminate(x));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Input bad string (boolalpha)
|
// Input bad string (boolalpha)
|
||||||
@ -176,7 +176,7 @@ int test_main(int, char*[])
|
|||||||
std::istringstream in("bad");
|
std::istringstream in("bad");
|
||||||
std::cout << "Input \"bad\" (checks for failure)"
|
std::cout << "Input \"bad\" (checks for failure)"
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
BOOST_CHECK(!(in >> std::boolalpha >> x));
|
BOOST_TEST(!(in >> std::boolalpha >> x));
|
||||||
}
|
}
|
||||||
|
|
||||||
#if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1)
|
#if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1)
|
||||||
@ -190,7 +190,7 @@ int test_main(int, char*[])
|
|||||||
std::cout << "Input \"maybe\" (checks for indeterminate, uses locales)"
|
std::cout << "Input \"maybe\" (checks for indeterminate, uses locales)"
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
in >> std::boolalpha >> x;
|
in >> std::boolalpha >> x;
|
||||||
BOOST_CHECK(indeterminate(x));
|
BOOST_TEST(indeterminate(x));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Input indeterminate named "true_or_false" (boolalpha)
|
// Input indeterminate named "true_or_false" (boolalpha)
|
||||||
@ -202,9 +202,9 @@ int test_main(int, char*[])
|
|||||||
std::cout << "Input \"true_or_false\" (checks for indeterminate)"
|
std::cout << "Input \"true_or_false\" (checks for indeterminate)"
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
in >> std::boolalpha >> x;
|
in >> std::boolalpha >> x;
|
||||||
BOOST_CHECK(indeterminate(x));
|
BOOST_TEST(indeterminate(x));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return 0;
|
return boost::report_errors();
|
||||||
}
|
}
|
||||||
|
@ -6,12 +6,12 @@
|
|||||||
// For more information, see http://www.boost.org
|
// For more information, see http://www.boost.org
|
||||||
|
|
||||||
#include <boost/logic/tribool.hpp>
|
#include <boost/logic/tribool.hpp>
|
||||||
#include <boost/test/minimal.hpp>
|
#include <boost/core/lightweight_test.hpp>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
BOOST_TRIBOOL_THIRD_STATE(maybe)
|
BOOST_TRIBOOL_THIRD_STATE(maybe)
|
||||||
|
|
||||||
int test_main(int,char*[])
|
int main()
|
||||||
{
|
{
|
||||||
using namespace boost::logic;
|
using namespace boost::logic;
|
||||||
|
|
||||||
@ -19,105 +19,105 @@ int test_main(int,char*[])
|
|||||||
tribool y(true); // true
|
tribool y(true); // true
|
||||||
tribool z(maybe); // maybe
|
tribool z(maybe); // maybe
|
||||||
|
|
||||||
BOOST_CHECK(!x);
|
BOOST_TEST(!x);
|
||||||
BOOST_CHECK(x == false);
|
BOOST_TEST(x == false);
|
||||||
BOOST_CHECK(false == x);
|
BOOST_TEST(false == x);
|
||||||
BOOST_CHECK(x != true);
|
BOOST_TEST(x != true);
|
||||||
BOOST_CHECK(true != x);
|
BOOST_TEST(true != x);
|
||||||
BOOST_CHECK(maybe(x == maybe));
|
BOOST_TEST(maybe(x == maybe));
|
||||||
BOOST_CHECK(maybe(maybe == x));
|
BOOST_TEST(maybe(maybe == x));
|
||||||
BOOST_CHECK(maybe(x != maybe));
|
BOOST_TEST(maybe(x != maybe));
|
||||||
BOOST_CHECK(maybe(maybe != x));
|
BOOST_TEST(maybe(maybe != x));
|
||||||
BOOST_CHECK(x == x);
|
BOOST_TEST(x == x);
|
||||||
BOOST_CHECK(!(x != x));
|
BOOST_TEST(!(x != x));
|
||||||
BOOST_CHECK(!(x && true));
|
BOOST_TEST(!(x && true));
|
||||||
BOOST_CHECK(!(true && x));
|
BOOST_TEST(!(true && x));
|
||||||
BOOST_CHECK(x || true);
|
BOOST_TEST(x || true);
|
||||||
BOOST_CHECK(true || x);
|
BOOST_TEST(true || x);
|
||||||
|
|
||||||
BOOST_CHECK(y);
|
BOOST_TEST(y);
|
||||||
BOOST_CHECK(y == true);
|
BOOST_TEST(y == true);
|
||||||
BOOST_CHECK(true == y);
|
BOOST_TEST(true == y);
|
||||||
BOOST_CHECK(y != false);
|
BOOST_TEST(y != false);
|
||||||
BOOST_CHECK(false != y);
|
BOOST_TEST(false != y);
|
||||||
BOOST_CHECK(maybe(y == maybe));
|
BOOST_TEST(maybe(y == maybe));
|
||||||
BOOST_CHECK(maybe(maybe == y));
|
BOOST_TEST(maybe(maybe == y));
|
||||||
BOOST_CHECK(maybe(y != maybe));
|
BOOST_TEST(maybe(y != maybe));
|
||||||
BOOST_CHECK(maybe(maybe != y));
|
BOOST_TEST(maybe(maybe != y));
|
||||||
BOOST_CHECK(y == y);
|
BOOST_TEST(y == y);
|
||||||
BOOST_CHECK(!(y != y));
|
BOOST_TEST(!(y != y));
|
||||||
|
|
||||||
BOOST_CHECK(maybe(z || !z));
|
BOOST_TEST(maybe(z || !z));
|
||||||
BOOST_CHECK(maybe(z == true));
|
BOOST_TEST(maybe(z == true));
|
||||||
BOOST_CHECK(maybe(true == z));
|
BOOST_TEST(maybe(true == z));
|
||||||
BOOST_CHECK(maybe(z == false));
|
BOOST_TEST(maybe(z == false));
|
||||||
BOOST_CHECK(maybe(false == z));
|
BOOST_TEST(maybe(false == z));
|
||||||
BOOST_CHECK(maybe(z == maybe));
|
BOOST_TEST(maybe(z == maybe));
|
||||||
BOOST_CHECK(maybe(maybe == z));
|
BOOST_TEST(maybe(maybe == z));
|
||||||
BOOST_CHECK(maybe(z != maybe));
|
BOOST_TEST(maybe(z != maybe));
|
||||||
BOOST_CHECK(maybe(maybe != z));
|
BOOST_TEST(maybe(maybe != z));
|
||||||
BOOST_CHECK(maybe(z == z));
|
BOOST_TEST(maybe(z == z));
|
||||||
BOOST_CHECK(maybe(z != z));
|
BOOST_TEST(maybe(z != z));
|
||||||
|
|
||||||
BOOST_CHECK(!(x == y));
|
BOOST_TEST(!(x == y));
|
||||||
BOOST_CHECK(x != y);
|
BOOST_TEST(x != y);
|
||||||
BOOST_CHECK(maybe(x == z));
|
BOOST_TEST(maybe(x == z));
|
||||||
BOOST_CHECK(maybe(x != z));
|
BOOST_TEST(maybe(x != z));
|
||||||
BOOST_CHECK(maybe(y == z));
|
BOOST_TEST(maybe(y == z));
|
||||||
BOOST_CHECK(maybe(y != z));
|
BOOST_TEST(maybe(y != z));
|
||||||
|
|
||||||
BOOST_CHECK(!(x && y));
|
BOOST_TEST(!(x && y));
|
||||||
BOOST_CHECK(x || y);
|
BOOST_TEST(x || y);
|
||||||
BOOST_CHECK(!(x && z));
|
BOOST_TEST(!(x && z));
|
||||||
BOOST_CHECK(maybe(y && z));
|
BOOST_TEST(maybe(y && z));
|
||||||
BOOST_CHECK(maybe(z && z));
|
BOOST_TEST(maybe(z && z));
|
||||||
BOOST_CHECK(maybe(z || z));
|
BOOST_TEST(maybe(z || z));
|
||||||
BOOST_CHECK(maybe(x || z));
|
BOOST_TEST(maybe(x || z));
|
||||||
BOOST_CHECK(y || z);
|
BOOST_TEST(y || z);
|
||||||
|
|
||||||
BOOST_CHECK(maybe(y && maybe));
|
BOOST_TEST(maybe(y && maybe));
|
||||||
BOOST_CHECK(maybe(maybe && y));
|
BOOST_TEST(maybe(maybe && y));
|
||||||
BOOST_CHECK(!(x && maybe));
|
BOOST_TEST(!(x && maybe));
|
||||||
BOOST_CHECK(!(maybe && x));
|
BOOST_TEST(!(maybe && x));
|
||||||
|
|
||||||
BOOST_CHECK(maybe || y);
|
BOOST_TEST(maybe || y);
|
||||||
BOOST_CHECK(y || maybe);
|
BOOST_TEST(y || maybe);
|
||||||
BOOST_CHECK(maybe(x || maybe));
|
BOOST_TEST(maybe(x || maybe));
|
||||||
BOOST_CHECK(maybe(maybe || x));
|
BOOST_TEST(maybe(maybe || x));
|
||||||
|
|
||||||
// Test the if (z) ... else (!z) ... else ... idiom
|
// Test the if (z) ... else (!z) ... else ... idiom
|
||||||
if (z) {
|
if (z) {
|
||||||
BOOST_CHECK(false);
|
BOOST_TEST(false);
|
||||||
}
|
}
|
||||||
else if (!z) {
|
else if (!z) {
|
||||||
BOOST_CHECK(false);
|
BOOST_TEST(false);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
BOOST_CHECK(true);
|
BOOST_TEST(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
z = true;
|
z = true;
|
||||||
if (z) {
|
if (z) {
|
||||||
BOOST_CHECK(true);
|
BOOST_TEST(true);
|
||||||
}
|
}
|
||||||
else if (!z) {
|
else if (!z) {
|
||||||
BOOST_CHECK(false);
|
BOOST_TEST(false);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
BOOST_CHECK(false);
|
BOOST_TEST(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
z = false;
|
z = false;
|
||||||
if (z) {
|
if (z) {
|
||||||
BOOST_CHECK(false);
|
BOOST_TEST(false);
|
||||||
}
|
}
|
||||||
else if (!z) {
|
else if (!z) {
|
||||||
BOOST_CHECK(true);
|
BOOST_TEST(true);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
BOOST_CHECK(false);
|
BOOST_TEST(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::cout << "no errors detected\n";
|
std::cout << "no errors detected\n";
|
||||||
return 0;
|
return boost::report_errors();
|
||||||
}
|
}
|
||||||
|
@ -5,10 +5,11 @@
|
|||||||
|
|
||||||
#include <boost/config.hpp>
|
#include <boost/config.hpp>
|
||||||
#include <boost/logic/tribool.hpp>
|
#include <boost/logic/tribool.hpp>
|
||||||
#include <boost/test/minimal.hpp>
|
#include <boost/core/lightweight_test.hpp>
|
||||||
|
#include <boost/static_assert.hpp>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
int test_main(int, char*[])
|
int main()
|
||||||
{
|
{
|
||||||
using namespace boost::logic;
|
using namespace boost::logic;
|
||||||
|
|
||||||
@ -22,122 +23,122 @@ int test_main(int, char*[])
|
|||||||
// and that is tested in the compile-fail/implicit.cpp file
|
// and that is tested in the compile-fail/implicit.cpp file
|
||||||
// so we check the conversion to ensure it is sane
|
// so we check the conversion to ensure it is sane
|
||||||
bool bx = x;
|
bool bx = x;
|
||||||
BOOST_CHECK(bx == false);
|
BOOST_TEST(bx == false);
|
||||||
bool by = y;
|
bool by = y;
|
||||||
BOOST_CHECK(by == true);
|
BOOST_TEST(by == true);
|
||||||
bool bz = z;
|
bool bz = z;
|
||||||
BOOST_CHECK(bz == false);
|
BOOST_TEST(bz == false);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
BOOST_CHECK(!x);
|
BOOST_TEST(!x);
|
||||||
BOOST_CHECK(x == false);
|
BOOST_TEST(x == false);
|
||||||
BOOST_CHECK(false == x);
|
BOOST_TEST(false == x);
|
||||||
BOOST_CHECK(x != true);
|
BOOST_TEST(x != true);
|
||||||
BOOST_CHECK(true != x);
|
BOOST_TEST(true != x);
|
||||||
BOOST_CHECK(indeterminate(x == indeterminate));
|
BOOST_TEST(indeterminate(x == indeterminate));
|
||||||
BOOST_CHECK(indeterminate(indeterminate == x));
|
BOOST_TEST(indeterminate(indeterminate == x));
|
||||||
BOOST_CHECK(indeterminate(x != indeterminate));
|
BOOST_TEST(indeterminate(x != indeterminate));
|
||||||
BOOST_CHECK(indeterminate(indeterminate != x));
|
BOOST_TEST(indeterminate(indeterminate != x));
|
||||||
BOOST_CHECK(x == x);
|
BOOST_TEST(x == x);
|
||||||
BOOST_CHECK(!(x != x));
|
BOOST_TEST(!(x != x));
|
||||||
BOOST_CHECK(!(x && true));
|
BOOST_TEST(!(x && true));
|
||||||
BOOST_CHECK(!(true && x));
|
BOOST_TEST(!(true && x));
|
||||||
BOOST_CHECK(x || true);
|
BOOST_TEST(x || true);
|
||||||
BOOST_CHECK(true || x);
|
BOOST_TEST(true || x);
|
||||||
|
|
||||||
BOOST_CHECK(y);
|
BOOST_TEST(y);
|
||||||
BOOST_CHECK(y == true);
|
BOOST_TEST(y == true);
|
||||||
BOOST_CHECK(true == y);
|
BOOST_TEST(true == y);
|
||||||
BOOST_CHECK(y != false);
|
BOOST_TEST(y != false);
|
||||||
BOOST_CHECK(false != y);
|
BOOST_TEST(false != y);
|
||||||
BOOST_CHECK(indeterminate(y == indeterminate));
|
BOOST_TEST(indeterminate(y == indeterminate));
|
||||||
BOOST_CHECK(indeterminate(indeterminate == y));
|
BOOST_TEST(indeterminate(indeterminate == y));
|
||||||
BOOST_CHECK(indeterminate(y != indeterminate));
|
BOOST_TEST(indeterminate(y != indeterminate));
|
||||||
BOOST_CHECK(indeterminate(indeterminate != y));
|
BOOST_TEST(indeterminate(indeterminate != y));
|
||||||
BOOST_CHECK(y == y);
|
BOOST_TEST(y == y);
|
||||||
BOOST_CHECK(!(y != y));
|
BOOST_TEST(!(y != y));
|
||||||
|
|
||||||
BOOST_CHECK(indeterminate(z || !z));
|
BOOST_TEST(indeterminate(z || !z));
|
||||||
BOOST_CHECK(indeterminate(z == true));
|
BOOST_TEST(indeterminate(z == true));
|
||||||
BOOST_CHECK(indeterminate(true == z));
|
BOOST_TEST(indeterminate(true == z));
|
||||||
BOOST_CHECK(indeterminate(z == false));
|
BOOST_TEST(indeterminate(z == false));
|
||||||
BOOST_CHECK(indeterminate(false == z));
|
BOOST_TEST(indeterminate(false == z));
|
||||||
BOOST_CHECK(indeterminate(z == indeterminate));
|
BOOST_TEST(indeterminate(z == indeterminate));
|
||||||
BOOST_CHECK(indeterminate(indeterminate == z));
|
BOOST_TEST(indeterminate(indeterminate == z));
|
||||||
BOOST_CHECK(indeterminate(z != indeterminate));
|
BOOST_TEST(indeterminate(z != indeterminate));
|
||||||
BOOST_CHECK(indeterminate(indeterminate != z));
|
BOOST_TEST(indeterminate(indeterminate != z));
|
||||||
BOOST_CHECK(indeterminate(z == z));
|
BOOST_TEST(indeterminate(z == z));
|
||||||
BOOST_CHECK(indeterminate(z != z));
|
BOOST_TEST(indeterminate(z != z));
|
||||||
|
|
||||||
BOOST_CHECK(!(x == y));
|
BOOST_TEST(!(x == y));
|
||||||
BOOST_CHECK(x != y);
|
BOOST_TEST(x != y);
|
||||||
BOOST_CHECK(indeterminate(x == z));
|
BOOST_TEST(indeterminate(x == z));
|
||||||
BOOST_CHECK(indeterminate(x != z));
|
BOOST_TEST(indeterminate(x != z));
|
||||||
BOOST_CHECK(indeterminate(y == z));
|
BOOST_TEST(indeterminate(y == z));
|
||||||
BOOST_CHECK(indeterminate(y != z));
|
BOOST_TEST(indeterminate(y != z));
|
||||||
|
|
||||||
BOOST_CHECK(!(x && y));
|
BOOST_TEST(!(x && y));
|
||||||
BOOST_CHECK(x || y);
|
BOOST_TEST(x || y);
|
||||||
BOOST_CHECK(!(x && z));
|
BOOST_TEST(!(x && z));
|
||||||
BOOST_CHECK(indeterminate(y && z));
|
BOOST_TEST(indeterminate(y && z));
|
||||||
BOOST_CHECK(indeterminate(z && z));
|
BOOST_TEST(indeterminate(z && z));
|
||||||
BOOST_CHECK(indeterminate(z || z));
|
BOOST_TEST(indeterminate(z || z));
|
||||||
BOOST_CHECK(indeterminate(x || z));
|
BOOST_TEST(indeterminate(x || z));
|
||||||
BOOST_CHECK(y || z);
|
BOOST_TEST(y || z);
|
||||||
|
|
||||||
BOOST_CHECK(indeterminate(y && indeterminate));
|
BOOST_TEST(indeterminate(y && indeterminate));
|
||||||
BOOST_CHECK(indeterminate(indeterminate && y));
|
BOOST_TEST(indeterminate(indeterminate && y));
|
||||||
BOOST_CHECK(!(x && indeterminate));
|
BOOST_TEST(!(x && indeterminate));
|
||||||
BOOST_CHECK(!(indeterminate && x));
|
BOOST_TEST(!(indeterminate && x));
|
||||||
|
|
||||||
BOOST_CHECK(indeterminate || y);
|
BOOST_TEST(indeterminate || y);
|
||||||
BOOST_CHECK(y || indeterminate);
|
BOOST_TEST(y || indeterminate);
|
||||||
BOOST_CHECK(indeterminate(x || indeterminate));
|
BOOST_TEST(indeterminate(x || indeterminate));
|
||||||
BOOST_CHECK(indeterminate(indeterminate || x));
|
BOOST_TEST(indeterminate(indeterminate || x));
|
||||||
|
|
||||||
// Test the if (z) ... else (!z) ... else ... idiom
|
// Test the if (z) ... else (!z) ... else ... idiom
|
||||||
if (z) {
|
if (z) {
|
||||||
BOOST_CHECK(false);
|
BOOST_TEST(false);
|
||||||
}
|
}
|
||||||
else if (!z) {
|
else if (!z) {
|
||||||
BOOST_CHECK(false);
|
BOOST_TEST(false);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
BOOST_CHECK(true);
|
BOOST_TEST(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
z = true;
|
z = true;
|
||||||
if (z) {
|
if (z) {
|
||||||
BOOST_CHECK(true);
|
BOOST_TEST(true);
|
||||||
}
|
}
|
||||||
else if (!z) {
|
else if (!z) {
|
||||||
BOOST_CHECK(false);
|
BOOST_TEST(false);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
BOOST_CHECK(false);
|
BOOST_TEST(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
z = false;
|
z = false;
|
||||||
if (z) {
|
if (z) {
|
||||||
BOOST_CHECK(false);
|
BOOST_TEST(false);
|
||||||
}
|
}
|
||||||
else if (!z) {
|
else if (!z) {
|
||||||
BOOST_CHECK(true);
|
BOOST_TEST(true);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
BOOST_CHECK(false);
|
BOOST_TEST(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined(BOOST_NO_CXX11_CONSTEXPR)
|
#if !defined(BOOST_NO_CXX11_CONSTEXPR)
|
||||||
constexpr bool res_ors = indeterminate(false || tribool(false) || false || indeterminate); // true
|
constexpr bool res_ors = indeterminate(false || tribool(false) || false || indeterminate); // true
|
||||||
BOOST_CHECK(res_ors);
|
BOOST_TEST(res_ors);
|
||||||
char array_ors[res_ors ? 2 : 3];
|
char array_ors[res_ors ? 2 : 3];
|
||||||
BOOST_CHECK(sizeof(array_ors) / sizeof(char) == 2);
|
BOOST_TEST(sizeof(array_ors) / sizeof(char) == 2);
|
||||||
|
|
||||||
constexpr bool res_ands = !indeterminate(!(true && tribool(true) && true && indeterminate)); // false
|
constexpr bool res_ands = !indeterminate(!(true && tribool(true) && true && indeterminate)); // false
|
||||||
BOOST_CHECK(!res_ands);
|
BOOST_TEST(!res_ands);
|
||||||
char array_ands[res_ands ? 2 : 3];
|
char array_ands[res_ands ? 2 : 3];
|
||||||
BOOST_CHECK(sizeof(array_ands) / sizeof(char) == 3);
|
BOOST_TEST(sizeof(array_ands) / sizeof(char) == 3);
|
||||||
|
|
||||||
constexpr bool res_safe_bool = static_cast<bool>( tribool(true) );
|
constexpr bool res_safe_bool = static_cast<bool>( tribool(true) );
|
||||||
BOOST_STATIC_ASSERT(res_safe_bool);
|
BOOST_STATIC_ASSERT(res_safe_bool);
|
||||||
@ -150,5 +151,5 @@ int test_main(int, char*[])
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
std::cout << "no errors detected\n";
|
std::cout << "no errors detected\n";
|
||||||
return 0;
|
return boost::report_errors();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user