Skip to content

Commit 01f592d

Browse files
author
Elahi Concha
committed
Update reverse-string missing test cases
1 parent e74c99e commit 01f592d

2 files changed

Lines changed: 52 additions & 18 deletions

File tree

exercises/practice/reverse-string/.meta/tests.toml

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
1-
# This is an auto-generated file. Regular comments will be removed when this
2-
# file is regenerated. Regenerating will not touch any manually added keys,
3-
# so comments can be added in a "comment" key.
1+
# This is an auto-generated file.
2+
#
3+
# Regenerating this file via `configlet sync` will:
4+
# - Recreate every `description` key/value pair
5+
# - Recreate every `reimplements` key/value pair, where they exist in problem-specifications
6+
# - Remove any `include = true` key/value pair (an omitted `include` key implies inclusion)
7+
# - Preserve any other key/value pair
8+
#
9+
# As user-added comments (using the # character) will be removed when this file
10+
# is regenerated, comments can be added via a `comment` key.
411

512
[c3b7d806-dced-49ee-8543-933fd1719b1c]
613
description = "an empty string"
@@ -19,3 +26,12 @@ description = "a palindrome"
1926

2027
[b9e7dec1-c6df-40bd-9fa3-cd7ded010c4c]
2128
description = "an even-sized word"
29+
30+
[1bed0f8a-13b0-4bd3-9d59-3d0593326fa2]
31+
description = "wide characters"
32+
33+
[93d7e1b8-f60f-4f3c-9559-4056e10d2ead]
34+
description = "grapheme cluster with pre-combined form"
35+
36+
[1028b2c1-6763-4459-8540-2da47ca512d9]
37+
description = "grapheme clusters"

exercises/practice/reverse-string/reverse_string_test.cpp

Lines changed: 33 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,29 +5,47 @@
55
#include "test/catch.hpp"
66
#endif
77

8-
TEST_CASE("an_empty_string")
9-
{
10-
REQUIRE("" == reverse_string::reverse_string(""));
8+
9+
/*
10+
If property based testing tools are available, a good property to test is reversing a string twice: reverse(reverse(string)) == string
11+
*/
12+
13+
TEST_CASE("an empty string", "[c3b7d806-dced-49ee-8543-933fd1719b1c]") {
14+
REQUIRE("" == reverse_string::reverse_string(""));
1115
}
1216

1317
#if defined(EXERCISM_RUN_ALL_TESTS)
14-
TEST_CASE("a_word")
15-
{
16-
REQUIRE("tobor" == reverse_string::reverse_string("robot"));
18+
19+
TEST_CASE("a word", "[01ebf55b-bebb-414e-9dec-06f7bb0bee3c]") {
20+
REQUIRE("tobor" == reverse_string::reverse_string("robot"));
21+
}
22+
23+
TEST_CASE("a capitalized word", "[0f7c07e4-efd1-4aaa-a07a-90b49ce0b746]") {
24+
REQUIRE("nemaR" == reverse_string::reverse_string("Ramen"));
25+
}
26+
27+
TEST_CASE("a sentence with punctuation", "[71854b9c-f200-4469-9f5c-1e8e5eff5614]") {
28+
REQUIRE("!yrgnuh m'I" == reverse_string::reverse_string("I'm hungry!"));
29+
}
30+
31+
TEST_CASE("a palindrome", "[1f8ed2f3-56f3-459b-8f3e-6d8d654a1f6c]") {
32+
REQUIRE("racecar" == reverse_string::reverse_string("racecar"));
1733
}
1834

19-
TEST_CASE("a_capitalized_word")
20-
{
21-
REQUIRE("nemaR" == reverse_string::reverse_string("Ramen"));
35+
TEST_CASE("an even-sized word", "[b9e7dec1-c6df-40bd-9fa3-cd7ded010c4c]") {
36+
REQUIRE("reward" == reverse_string::reverse_string("drawer"));
2237
}
2338

24-
TEST_CASE("a_sentence_with_punctuation")
25-
{
26-
REQUIRE("!yrgnuh m'I" == reverse_string::reverse_string("I'm hungry!"));
39+
TEST_CASE("wide characters", "[1bed0f8a-13b0-4bd3-9d59-3d0593326fa2]") {
40+
REQUIRE("猫子" == reverse_string::reverse_string("子猫"));
2741
}
2842

29-
TEST_CASE("a_palindrome")
30-
{
31-
REQUIRE("racecar" == reverse_string::reverse_string("racecar"));
43+
TEST_CASE("grapheme cluster with pre-combined form", "[93d7e1b8-f60f-4f3c-9559-4056e10d2ead]") {
44+
REQUIRE("dnatsnehctsrüW" == reverse_string::reverse_string("Würstchenstand"));
3245
}
46+
47+
TEST_CASE("grapheme clusters", "[1028b2c1-6763-4459-8540-2da47ca512d9]") {
48+
REQUIRE("มรกแรปโนยขีเผู้" == reverse_string::reverse_string("ผู้เขียนโปรแกรม"));
49+
}
50+
3351
#endif

0 commit comments

Comments
 (0)