annotate tests/libclient/image/main.cpp @ 7:45b3c770803c

Misc: switch to lower case (part 2)
author David Demelier <markand@malikania.fr>
date Wed, 23 Mar 2016 17:11:39 +0100
parents 8991989c4708
children 35852c7d422a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * main.cpp -- test Image
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 * Copyright (c) 2013-2016 Malikania Authors
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 #include <chrono>
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 #include <thread>
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
21
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 #include <gtest/gtest.h>
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
23
7
45b3c770803c Misc: switch to lower case (part 2)
David Demelier <markand@malikania.fr>
parents: 0
diff changeset
24 #include <malikania/client-resources-loader.h>
45b3c770803c Misc: switch to lower case (part 2)
David Demelier <markand@malikania.fr>
parents: 0
diff changeset
25 #include <malikania/image.h>
45b3c770803c Misc: switch to lower case (part 2)
David Demelier <markand@malikania.fr>
parents: 0
diff changeset
26 #include <malikania/resources-locator.h>
45b3c770803c Misc: switch to lower case (part 2)
David Demelier <markand@malikania.fr>
parents: 0
diff changeset
27 #include <malikania/window.h>
0
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
28
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 using namespace malikania;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
30
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 using namespace std::chrono_literals;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
32
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 namespace {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
34
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 Window window(400, 400);
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
36
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 } // !namespace
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
38
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 class TestImage : public testing::Test {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 protected:
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 ResourcesLocatorDirectory m_locator;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 ClientResourcesLoader m_loader;
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
43
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 public:
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 TestImage()
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 : m_locator(SOURCE_DIRECTORY "/resources")
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 , m_loader(window, m_locator)
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 }
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 };
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
51
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 TEST_F(TestImage, image100x10)
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 try {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 Image image = m_loader.loadImage("images/100x10.png");
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
56
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 ASSERT_EQ(100U, image.size().width());
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 ASSERT_EQ(10U, image.size().height());
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 } catch (const std::exception &ex) {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 FAIL() << ex.what();
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 }
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 }
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
63
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 TEST_F(TestImage, image16x16)
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 try {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 Image image = m_loader.loadImage("images/16x16.png");
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
68
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 ASSERT_EQ(16U, image.size().width());
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 ASSERT_EQ(16U, image.size().height());
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 } catch (const std::exception &ex) {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 FAIL() << ex.what();
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 }
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 }
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
75
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 TEST_F(TestImage, image10x100)
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 try {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 Image image = m_loader.loadImage("images/10x100.png");
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
80
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 ASSERT_EQ(10U, image.size().width());
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 ASSERT_EQ(100U, image.size().height());
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 } catch (const std::exception &ex) {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 FAIL() << ex.what();
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 }
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
86 }
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
87
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
88 TEST_F(TestImage, notfound)
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 try {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 m_loader.loadImage("image-not-found");
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
92
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
93 FAIL() << "exception expected";
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
94 } catch (const std::exception &) {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 }
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
96 }
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
97
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
98 /*
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
99 * Draw
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
100 * ------------------------------------------------------------------
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
101 */
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
102
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
103 TEST_F(TestImage, draw)
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
104 {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
105 try {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
106 auto image = m_loader.loadImage("images/smiley.png");
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
107 auto x = (400 / 2) - (image.size().width() / 2);
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
108 auto y = (400 / 2) - (image.size().height() / 2);
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
109
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
110 window.clear();
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
111 image.draw(window, Point(x, y));
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
112 window.present();
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
113
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
114 std::this_thread::sleep_for(3s);
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
115 } catch (const std::exception &ex) {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
116 FAIL() << ex.what();
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
117 }
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
118 }
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
119
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
120 int main(int argc, char **argv)
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
121 {
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
122 testing::InitGoogleTest(&argc, argv);
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
123
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
124 return RUN_ALL_TESTS();
8991989c4708 Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
125 }