|
5 | 5 | #include "test/catch.hpp" |
6 | 6 | #endif |
7 | 7 |
|
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("")); |
11 | 15 | } |
12 | 16 |
|
13 | 17 | #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")); |
17 | 33 | } |
18 | 34 |
|
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")); |
22 | 37 | } |
23 | 38 |
|
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("子猫")); |
27 | 41 | } |
28 | 42 |
|
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")); |
32 | 45 | } |
| 46 | + |
| 47 | +TEST_CASE("grapheme clusters", "[1028b2c1-6763-4459-8540-2da47ca512d9]") { |
| 48 | + REQUIRE("มรกแรปโนยขีเผู้" == reverse_string::reverse_string("ผู้เขียนโปรแกรม")); |
| 49 | +} |
| 50 | + |
33 | 51 | #endif |
0 commit comments