File: Clock.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 (69 lines) | stat: -rw-r--r-- 2,359 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
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <CSFML/System/Clock.h>

#include <catch2/catch_test_macros.hpp>

#include <thread>

TEST_CASE("[System] sfClock")
{
    using namespace std::chrono_literals;

    SECTION("sfClock_create/sfClock_copy")
    {
        const sfClock* clock1 = sfClock_create();
        CHECK(sfTime_asMicroseconds(sfClock_getElapsedTime(clock1)) >= 0);
        CHECK(sfClock_isRunning(clock1));

        const auto     elapsed = sfClock_getElapsedTime(clock1);
        const sfClock* clock2  = sfClock_copy(clock1);
        CHECK(sfTime_asMicroseconds(sfClock_getElapsedTime(clock2)) >= sfTime_asMicroseconds(elapsed));
        CHECK(sfClock_isRunning(clock2));

        sfClock_destroy(clock2);
        sfClock_destroy(clock1);
    }

    SECTION("sfClock_getElapsedTime")
    {
        const sfClock* clock = sfClock_create();
        CHECK(sfTime_asMicroseconds(sfClock_getElapsedTime(clock)) >= 0);
        const auto elapsed = sfClock_getElapsedTime(clock);
        std::this_thread::sleep_for(1ms);
        CHECK(sfTime_asMicroseconds(sfClock_getElapsedTime(clock)) >= sfTime_asMicroseconds(elapsed));
        sfClock_destroy(clock);
    }

    SECTION("sfClock_start/sfClock_stop")
    {
        sfClock* clock = sfClock_create();
        sfClock_stop(clock);
        CHECK(!sfClock_isRunning(clock));
        const auto elapsed = sfClock_getElapsedTime(clock);
        std::this_thread::sleep_for(1ms);
        CHECK(sfTime_asMicroseconds(sfClock_getElapsedTime(clock)) == sfTime_asMicroseconds(elapsed));

        sfClock_start(clock);
        CHECK(sfTime_asMicroseconds(sfClock_getElapsedTime(clock)) >= sfTime_asMicroseconds(elapsed));
        CHECK(sfClock_isRunning(clock));
        sfClock_destroy(clock);
    }

    SECTION("sfClock_restart")
    {
        sfClock* clock = sfClock_create();
        CHECK(sfTime_asMicroseconds(sfClock_restart(clock)) >= 0);
        CHECK(sfClock_isRunning(clock));
        std::this_thread::sleep_for(1ms);
        const auto elapsed = sfClock_restart(clock);
        CHECK(sfTime_asMicroseconds(sfClock_restart(clock)) < sfTime_asMicroseconds(elapsed));
        sfClock_destroy(clock);
    }

    SECTION("sfClock_reset")
    {
        sfClock* clock = sfClock_create();
        CHECK(sfTime_asMicroseconds(sfClock_reset(clock)) >= 0);
        CHECK(!sfClock_isRunning(clock));
        sfClock_destroy(clock);
    }
}