Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
149 lines (116 loc) · 3.09 KB

File metadata and controls

149 lines (116 loc) · 3.09 KB
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
/**
* @file debug_tests.cpp
* @brief Basic tests for rix/debug.
*
* @author Gaspard Kirira
*/
#include <rix/debug.hpp>
#include <cstdlib>
#include <iostream>
#include <sstream>
#include <string>
namespace
{
void expect_true(bool condition, const std::string &message)
{
if (!condition)
{
std::cerr << "FAILED: " << message << '\n';
std::exit(1);
}
}
void test_format_auto_placeholders()
{
const rixlib::debug::Debug debug;
const std::string output = debug.format("Hello {}", "Rix");
expect_true(
output == "Hello Rix",
"debug.format should support automatic placeholders");
}
void test_format_explicit_placeholders()
{
const rixlib::debug::Debug debug;
const std::string output = debug.format("{0} + {0} = {1}", 2, 4);
expect_true(
output == "2 + 2 = 4",
"debug.format should support explicit placeholders");
}
void test_format_escaped_braces()
{
const rixlib::debug::Debug debug;
const std::string output = debug.format("{{ value }} = {}", 42);
expect_true(
output == "{ value } = 42",
"debug.format should support escaped braces");
}
void test_format_append()
{
const rixlib::debug::Debug debug;
std::string output = "prefix: ";
debug.format.append(output, "{}", "ready");
expect_true(
output == "prefix: ready",
"debug.format.append should append formatted text");
}
void test_format_to()
{
const rixlib::debug::Debug debug;
std::string output = "old";
debug.format.to(output, "status: {}", "ok");
expect_true(
output == "status: ok",
"debug.format.to should replace destination content");
}
void test_print_to_stream()
{
std::ostringstream out;
rixlib::print_to(out, "Hello", "Rix");
expect_true(
out.str() == "Hello Rix\n",
"rixlib::print_to should write arguments separated by spaces with newline");
}
void test_inspect_to_string()
{
const rixlib::debug::Debug debug;
expect_true(
debug.inspect.to_string(42) == "42",
"debug.inspect.to_string should render integers");
expect_true(
debug.inspect.to_string(true) == "true",
"debug.inspect.to_string should render booleans");
}
void test_inspect_check_pass()
{
const rixlib::debug::Debug debug;
const bool ok = debug.inspect.check(42, 42);
expect_true(
ok,
"debug.inspect.check should return true when values are equal");
}
void test_inspect_check_fail()
{
const rixlib::debug::Debug debug;
const bool ok = debug.inspect.check(42, 24);
expect_true(
!ok,
"debug.inspect.check should return false when values are different");
}
void run_tests()
{
test_format_auto_placeholders();
test_format_explicit_placeholders();
test_format_escaped_braces();
test_format_append();
test_format_to();
test_print_to_stream();
test_inspect_to_string();
test_inspect_check_pass();
test_inspect_check_fail();
}
}
int main()
{
run_tests();
std::cout << "debug tests passed\n";
return 0;
}
Morty Proxy This is a proxified and sanitized view of the page, visit original site.