Mercurial > malikania
view tests/libclient/color/main.cpp @ 187:eaa7f85bfc22
Tests: use BOOST_TEST, closes #917 @1h
author | David Demelier <markand@malikania.fr> |
---|---|
date | Sat, 20 Oct 2018 21:58:32 +0200 |
parents | 3107ce017c3a |
children |
line wrap: on
line source
/* * main.cpp -- test mlk::client::color * * Copyright (c) 2013-2018 David Demelier <markand@malikania.fr> * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #define BOOST_TEST_MODULE "Color" #include <boost/test/unit_test.hpp> #include <malikania/client/color.hpp> namespace mlk::client { namespace { /* * Separate arguments. * ------------------------------------------------------------------ */ BOOST_AUTO_TEST_SUITE(basic) BOOST_AUTO_TEST_CASE(black) { color c; BOOST_TEST(c.red == 0); BOOST_TEST(c.green == 0); BOOST_TEST(c.blue == 0); BOOST_TEST(c.alpha == 255); } BOOST_AUTO_TEST_CASE(white) { color c{255, 255, 255, 255}; BOOST_TEST(c.red == 255); BOOST_TEST(c.green == 255); BOOST_TEST(c.blue == 255); BOOST_TEST(c.alpha == 255); } BOOST_AUTO_TEST_CASE(red) { color c{255, 0, 0, 255}; BOOST_TEST(c.red == 255); BOOST_TEST(c.green == 0); BOOST_TEST(c.blue == 0); BOOST_TEST(c.alpha == 255); } BOOST_AUTO_TEST_CASE(green) { color c{0, 255, 0, 255}; BOOST_TEST(c.red == 0); BOOST_TEST(c.green == 255); BOOST_TEST(c.blue == 0); BOOST_TEST(c.alpha == 255); } BOOST_AUTO_TEST_CASE(blue) { color c{0, 0, 255, 255}; BOOST_TEST(c.red == 0); BOOST_TEST(c.green == 0); BOOST_TEST(c.blue == 255); BOOST_TEST(c.alpha == 255); } BOOST_AUTO_TEST_SUITE_END() /* * Hexadecimal. * ------------------------------------------------------------------ */ BOOST_AUTO_TEST_SUITE(hex) BOOST_AUTO_TEST_CASE(black) { const auto c = color::from_hex(0xff000000); BOOST_TEST(c.red == 0); BOOST_TEST(c.green == 0); BOOST_TEST(c.blue == 0); BOOST_TEST(c.alpha == 255); } BOOST_AUTO_TEST_CASE(white) { const auto c = color::from_hex(0xffffffff); BOOST_TEST(c.red == 255); BOOST_TEST(c.green == 255); BOOST_TEST(c.blue == 255); BOOST_TEST(c.alpha == 255); } BOOST_AUTO_TEST_CASE(red) { const auto c = color::from_hex(0xffff0000); BOOST_TEST(c.red == 255); BOOST_TEST(c.green == 0); BOOST_TEST(c.blue == 0); BOOST_TEST(c.alpha == 255); } BOOST_AUTO_TEST_CASE(green) { const auto c = color::from_hex(0xff00ff00); BOOST_TEST(c.red == 0); BOOST_TEST(c.green == 255); BOOST_TEST(c.blue == 0); BOOST_TEST(c.alpha == 255); } BOOST_AUTO_TEST_CASE(blue) { const auto c = color::from_hex(0xff0000ff); BOOST_TEST(c.red == 0); BOOST_TEST(c.green == 0); BOOST_TEST(c.blue == 255); BOOST_TEST(c.alpha == 255); } BOOST_AUTO_TEST_SUITE_END() /* * Names. * ------------------------------------------------------------------ * * Test most famous. */ BOOST_AUTO_TEST_SUITE(named) BOOST_AUTO_TEST_CASE(black) { const auto c = color::from_name("black"); BOOST_TEST(c.red == 0); BOOST_TEST(c.green == 0); BOOST_TEST(c.blue == 0); BOOST_TEST(c.alpha == 255); } BOOST_AUTO_TEST_CASE(white) { const auto c = color::from_name("white"); BOOST_TEST(c.red == 255); BOOST_TEST(c.green == 255); BOOST_TEST(c.blue == 255); BOOST_TEST(c.alpha == 255); } BOOST_AUTO_TEST_CASE(red) { const auto c = color::from_name("red"); BOOST_TEST(c.red == 255); BOOST_TEST(c.green == 0); BOOST_TEST(c.blue == 0); BOOST_TEST(c.alpha == 255); } BOOST_AUTO_TEST_CASE(green) { const auto c = color::from_name("green"); BOOST_TEST(c.red == 0); BOOST_TEST(c.green == 128); BOOST_TEST(c.blue == 0); BOOST_TEST(c.alpha == 255); } BOOST_AUTO_TEST_CASE(blue) { const auto c = color::from_name("blue"); BOOST_TEST(c.red == 0); BOOST_TEST(c.green == 0); BOOST_TEST(c.blue == 255); BOOST_TEST(c.alpha == 255); } BOOST_AUTO_TEST_CASE(wrong) { BOOST_REQUIRE_THROW(color::from_name("does not exist"), std::exception); } BOOST_AUTO_TEST_SUITE_END() /* * #rrggbb. * ------------------------------------------------------------------ * * Test most famous. */ BOOST_AUTO_TEST_SUITE(long_rgb) BOOST_AUTO_TEST_CASE(black) { const auto c = color::from_name("#000000"); BOOST_TEST(c.red == 0); BOOST_TEST(c.green == 0); BOOST_TEST(c.blue == 0); BOOST_TEST(c.alpha == 255); } BOOST_AUTO_TEST_CASE(white) { const auto c = color::from_name("#ffffff"); BOOST_TEST(c.red == 255); BOOST_TEST(c.green == 255); BOOST_TEST(c.blue == 255); BOOST_TEST(c.alpha == 255); } BOOST_AUTO_TEST_CASE(red) { const auto c = color::from_name("#ff0000"); BOOST_TEST(c.red == 255); BOOST_TEST(c.green == 0); BOOST_TEST(c.blue == 0); BOOST_TEST(c.alpha == 255); } BOOST_AUTO_TEST_CASE(green) { const auto c = color::from_name("#00ff00"); BOOST_TEST(c.red == 0); BOOST_TEST(c.green == 255); BOOST_TEST(c.blue == 0); BOOST_TEST(c.alpha == 255); } BOOST_AUTO_TEST_CASE(blue) { const auto c = color::from_name("#0000ff"); BOOST_TEST(c.red == 0); BOOST_TEST(c.green == 0); BOOST_TEST(c.blue == 255); BOOST_TEST(c.alpha == 255); } BOOST_AUTO_TEST_CASE(wrong) { BOOST_REQUIRE_THROW(color::from_name("#ghijkl"), std::exception); } BOOST_AUTO_TEST_SUITE_END() /* * #rgb. * ------------------------------------------------------------------ * * Test most famous. */ BOOST_AUTO_TEST_SUITE(short_rgb) BOOST_AUTO_TEST_CASE(black) { const auto c = color::from_name("#000"); BOOST_TEST(c.red == 0); BOOST_TEST(c.green == 0); BOOST_TEST(c.blue == 0); BOOST_TEST(c.alpha == 255); } BOOST_AUTO_TEST_CASE(white) { const auto c = color::from_name("#fff"); BOOST_TEST(c.red == 255); BOOST_TEST(c.green == 255); BOOST_TEST(c.blue == 255); BOOST_TEST(c.alpha == 255); } BOOST_AUTO_TEST_CASE(red) { const auto c = color::from_name("#f00"); BOOST_TEST(c.red == 255); BOOST_TEST(c.green == 0); BOOST_TEST(c.blue == 0); BOOST_TEST(c.alpha == 255); } BOOST_AUTO_TEST_CASE(green) { const auto c = color::from_name("#0f0"); BOOST_TEST(c.red == 0); BOOST_TEST(c.green == 255); BOOST_TEST(c.blue == 0); BOOST_TEST(c.alpha == 255); } BOOST_AUTO_TEST_CASE(blue) { const auto c = color::from_name("#00f"); BOOST_TEST(c.red == 0); BOOST_TEST(c.green == 0); BOOST_TEST(c.blue == 255); BOOST_TEST(c.alpha == 255); } BOOST_AUTO_TEST_CASE(combination) { const auto c = color::from_name("#123"); BOOST_TEST(c.red == 17); BOOST_TEST(c.green == 34); BOOST_TEST(c.blue == 51); BOOST_TEST(c.alpha == 255); } BOOST_AUTO_TEST_CASE(wrong) { BOOST_REQUIRE_THROW(color::from_name("#ghi"), std::exception); } BOOST_AUTO_TEST_SUITE_END() } // !namespace } // !mlk::client