Skip to content

Commit 70d1a85

Browse files
committed
Unit test for format_number_range
format_number_range was not being tested in isolation before.
1 parent 96fb4ca commit 70d1a85

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed

unit/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ SRC += analyses/ai/ai.cpp \
3232
util/expr_cast/expr_cast.cpp \
3333
util/expr.cpp \
3434
util/file_util.cpp \
35+
util/format_number_range.cpp \
3536
util/get_base_name.cpp \
3637
util/graph.cpp \
3738
util/irep.cpp \

unit/util/format_number_range.cpp

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/*******************************************************************\
2+
3+
Module: format_number_range unit tests
4+
5+
Author: Michael Tautschnig
6+
7+
\*******************************************************************/
8+
9+
#include <testing-utils/catch.hpp>
10+
11+
#include <util/format_number_range.h>
12+
13+
TEST_CASE(
14+
"Format a range of unsigned numbers",
15+
"[core][util][format_number_range]")
16+
{
17+
const std::vector<unsigned> singleton = {1u};
18+
REQUIRE(format_number_range(singleton) == "1");
19+
20+
const std::vector<unsigned> r1 = {0u, 42u};
21+
REQUIRE(format_number_range(r1) == "0,42");
22+
23+
const std::vector<unsigned> r2 = {0u, 1u};
24+
REQUIRE(format_number_range(r2) == "0,1");
25+
26+
const std::vector<unsigned> r3 = {1u, 2u, 3u};
27+
REQUIRE(format_number_range(r3) == "1-3");
28+
29+
const std::vector<unsigned> r4 = {1u, 3u, 4u, 5u};
30+
REQUIRE(format_number_range(r4) == "1,3-5");
31+
32+
const std::vector<unsigned> r5 = {1u, 10u, 11u, 12u, 42u};
33+
REQUIRE(format_number_range(r5) == "1,10-12,42");
34+
35+
const std::vector<unsigned> r6 = {1u, 10u, 11u, 12u, 42u, 43u, 44u};
36+
REQUIRE(format_number_range(r6) == "1,10-12,42-44");
37+
}

0 commit comments

Comments
 (0)