File: Image.test.cpp

package info (click to toggle)
libcsfml 3.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,240 kB
  • sloc: cpp: 7,741; ansic: 2,616; sh: 805; makefile: 16
file content (56 lines) | stat: -rw-r--r-- 1,904 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <CSFML/Graphics/Image.h>

#include <catch2/catch_test_macros.hpp>
#include <catch2/generators/catch_generators.hpp>

TEST_CASE("[Graphics] sfImage")
{
    SECTION("sfImage_create")
    {
        const sfImage* image = sfImage_create({100, 100});
        REQUIRE(image);
        const auto size = sfImage_getSize(image);
        CHECK(size.x == 100);
        CHECK(size.y == 100);
        const auto pixel = sfImage_getPixel(image, {50, 50});
        CHECK(pixel.r == sfBlack.r);
        CHECK(pixel.g == sfBlack.g);
        CHECK(pixel.b == sfBlack.b);
        CHECK(pixel.a == sfBlack.a);
        CHECK(sfImage_getPixelsPtr(image));
        sfImage_destroy(image);
    }

    SECTION("sfImage_createFromColor")
    {
        const sfImage* image = sfImage_createFromColor({100, 100}, sfMagenta);
        REQUIRE(image);
        const auto size = sfImage_getSize(image);
        CHECK(size.x == 100);
        CHECK(size.y == 100);
        const auto pixel = sfImage_getPixel(image, {50, 50});
        CHECK(pixel.r == sfMagenta.r);
        CHECK(pixel.g == sfMagenta.g);
        CHECK(pixel.b == sfMagenta.b);
        CHECK(pixel.a == sfMagenta.a);
        CHECK(sfImage_getPixelsPtr(image));
        sfImage_destroy(image);
    }

    SECTION("sfImage_createFromFile")
    {
        const auto filename = std::string("Graphics/sfml-logo-big.") + GENERATE("bmp", "gif", "jpg", "png", "psd");
        INFO("Filename: " << filename);
        const sfImage* image = sfImage_createFromFile(filename.c_str());
        REQUIRE(image);
        const auto size = sfImage_getSize(image);
        CHECK(size.x == 1001);
        CHECK(size.y == 304);
        const auto pixel = sfImage_getPixel(image, {0, 0});
        CHECK(pixel.r == sfWhite.r);
        CHECK(pixel.g == sfWhite.g);
        CHECK(pixel.b == sfWhite.b);
        CHECK(sfImage_getPixelsPtr(image));
        sfImage_destroy(image);
    }
}