Mercurial > malikania
view tests/libclient/color/main.cpp @ 0:8991989c4708
Initial import
author | David Demelier <markand@malikania.fr> |
---|---|
date | Tue, 22 Mar 2016 18:26:05 +0100 |
parents | |
children | 45b3c770803c |
line wrap: on
line source
/* * main.cpp -- test Color * * Copyright (c) 2013-2016 Malikania Authors * * 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. */ #include <gtest/gtest.h> #include <malikania/Color.h> using namespace malikania; /* * Separate arguments * ------------------------------------------------------------------ */ TEST(Basic, black) { Color c; ASSERT_EQ(0, c.red()); ASSERT_EQ(0, c.green()); ASSERT_EQ(0, c.blue()); ASSERT_EQ(255, c.alpha()); } TEST(Basic, white) { Color c{255, 255, 255, 255}; ASSERT_EQ(255, c.red()); ASSERT_EQ(255, c.green()); ASSERT_EQ(255, c.blue()); ASSERT_EQ(255, c.alpha()); } TEST(Basic, red) { Color c{255, 0, 0, 255}; ASSERT_EQ(255, c.red()); ASSERT_EQ(0, c.green()); ASSERT_EQ(0, c.blue()); ASSERT_EQ(255, c.alpha()); } TEST(Basic, green) { Color c{0, 255, 0, 255}; ASSERT_EQ(0, c.red()); ASSERT_EQ(255, c.green()); ASSERT_EQ(0, c.blue()); ASSERT_EQ(255, c.alpha()); } TEST(Basic, blue) { Color c{0, 0, 255, 255}; ASSERT_EQ(0, c.red()); ASSERT_EQ(0, c.green()); ASSERT_EQ(255, c.blue()); ASSERT_EQ(255, c.alpha()); } /* * Hexadecimal * ------------------------------------------------------------------ */ TEST(Hex, black) { Color c{0xff000000}; ASSERT_EQ(0, c.red()); ASSERT_EQ(0, c.green()); ASSERT_EQ(0, c.blue()); ASSERT_EQ(255, c.alpha()); } TEST(Hex, white) { Color c{0xffffffff}; ASSERT_EQ(255, c.red()); ASSERT_EQ(255, c.green()); ASSERT_EQ(255, c.blue()); ASSERT_EQ(255, c.alpha()); } TEST(Hex, red) { Color c{0xffff0000}; ASSERT_EQ(255, c.red()); ASSERT_EQ(0, c.green()); ASSERT_EQ(0, c.blue()); ASSERT_EQ(255, c.alpha()); } TEST(Hex, green) { Color c{0xff00ff00}; ASSERT_EQ(0, c.red()); ASSERT_EQ(255, c.green()); ASSERT_EQ(0, c.blue()); ASSERT_EQ(255, c.alpha()); } TEST(Hex, blue) { Color c{0xff0000ff}; ASSERT_EQ(0, c.red()); ASSERT_EQ(0, c.green()); ASSERT_EQ(255, c.blue()); ASSERT_EQ(255, c.alpha()); } /* * Names * ------------------------------------------------------------------ * * Test most famous. */ TEST(Named, black) { Color c{"black"}; ASSERT_EQ(0, c.red()); ASSERT_EQ(0, c.green()); ASSERT_EQ(0, c.blue()); ASSERT_EQ(255, c.alpha()); } TEST(Named, white) { Color c{"white"}; ASSERT_EQ(255, c.red()); ASSERT_EQ(255, c.green()); ASSERT_EQ(255, c.blue()); ASSERT_EQ(255, c.alpha()); } TEST(Named, red) { Color c{"red"}; ASSERT_EQ(255, c.red()); ASSERT_EQ(0, c.green()); ASSERT_EQ(0, c.blue()); ASSERT_EQ(255, c.alpha()); } TEST(Named, green) { Color c{"green"}; ASSERT_EQ(0, c.red()); ASSERT_EQ(128, c.green()); ASSERT_EQ(0, c.blue()); ASSERT_EQ(255, c.alpha()); } TEST(Named, blue) { Color c{"blue"}; ASSERT_EQ(0, c.red()); ASSERT_EQ(0, c.green()); ASSERT_EQ(255, c.blue()); ASSERT_EQ(255, c.alpha()); } TEST(Named, wrong) { try { Color c{"does not exist"}; FAIL() << "exception expected"; } catch (const std::exception &) { } } /* * #rrggbb * ------------------------------------------------------------------ * * Test most famous. */ TEST(FullRgb, black) { Color c{"#000000"}; ASSERT_EQ(0, c.red()); ASSERT_EQ(0, c.green()); ASSERT_EQ(0, c.blue()); ASSERT_EQ(255, c.alpha()); } TEST(FullRgb, white) { Color c{"#ffffff"}; ASSERT_EQ(255, c.red()); ASSERT_EQ(255, c.green()); ASSERT_EQ(255, c.blue()); ASSERT_EQ(255, c.alpha()); } TEST(FullRgb, red) { Color c{"#ff0000"}; ASSERT_EQ(255, c.red()); ASSERT_EQ(0, c.green()); ASSERT_EQ(0, c.blue()); ASSERT_EQ(255, c.alpha()); } TEST(FullRgb, green) { Color c{"#00ff00"}; ASSERT_EQ(0, c.red()); ASSERT_EQ(255, c.green()); ASSERT_EQ(0, c.blue()); ASSERT_EQ(255, c.alpha()); } TEST(FullRgb, blue) { Color c{"#0000ff"}; ASSERT_EQ(0, c.red()); ASSERT_EQ(0, c.green()); ASSERT_EQ(255, c.blue()); ASSERT_EQ(255, c.alpha()); } TEST(FullRgb, wrong) { try { Color c{"#ghijkl"}; FAIL() << "exception expected"; } catch (const std::exception &) { } } /* * #rgb * ------------------------------------------------------------------ * * Test most famous. */ TEST(ShortRgb, black) { Color c{"#000"}; ASSERT_EQ(0, c.red()); ASSERT_EQ(0, c.green()); ASSERT_EQ(0, c.blue()); ASSERT_EQ(255, c.alpha()); } TEST(ShortRgb, white) { Color c{"#fff"}; ASSERT_EQ(255, c.red()); ASSERT_EQ(255, c.green()); ASSERT_EQ(255, c.blue()); ASSERT_EQ(255, c.alpha()); } TEST(ShortRgb, red) { Color c{"#f00"}; ASSERT_EQ(255, c.red()); ASSERT_EQ(0, c.green()); ASSERT_EQ(0, c.blue()); ASSERT_EQ(255, c.alpha()); } TEST(ShortRgb, green) { Color c{"#0f0"}; ASSERT_EQ(0, c.red()); ASSERT_EQ(255, c.green()); ASSERT_EQ(0, c.blue()); ASSERT_EQ(255, c.alpha()); } TEST(ShortRgb, blue) { Color c{"#00f"}; ASSERT_EQ(0, c.red()); ASSERT_EQ(0, c.green()); ASSERT_EQ(255, c.blue()); ASSERT_EQ(255, c.alpha()); } TEST(ShortRgb, combination) { Color c{"#123"}; ASSERT_EQ(17, c.red()); ASSERT_EQ(34, c.green()); ASSERT_EQ(51, c.blue()); ASSERT_EQ(255, c.alpha()); } TEST(ShortRgb, wrong) { try { Color c{"#ghi"}; FAIL() << "exception expected"; } catch (const std::exception &) { } } int main(int argc, char **argv) { testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); }