Skip to content

Commit 12ae28a

Browse files
tanno1vaeng
authored andcommitted
test(phone numbers): update test cases to match problem spec (#870)
1 parent f874577 commit 12ae28a

File tree

2 files changed

+98
-55
lines changed

2 files changed

+98
-55
lines changed

exercises/practice/phone-number/.meta/tests.toml

+30-3
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
[79666dce-e0f1-46de-95a1-563802913c35]
613
description = "cleans the number"
@@ -13,6 +20,11 @@ description = "cleans numbers with multiple spaces"
1320

1421
[598d8432-0659-4019-a78b-1c6a73691d21]
1522
description = "invalid when 9 digits"
23+
include = false
24+
25+
[2de74156-f646-42b5-8638-0ef1d8b58bc2]
26+
description = "invalid when 9 digits"
27+
reimplements = "598d8432-0659-4019-a78b-1c6a73691d21"
1628

1729
[57061c72-07b5-431f-9766-d97da7c4399d]
1830
description = "invalid when 11 digits does not start with a 1"
@@ -25,12 +37,27 @@ description = "valid when 11 digits and starting with 1 even with punctuation"
2537

2638
[c6a5f007-895a-4fc5-90bc-a7e70f9b5cad]
2739
description = "invalid when more than 11 digits"
40+
include = false
41+
42+
[4a1509b7-8953-4eec-981b-c483358ff531]
43+
description = "invalid when more than 11 digits"
44+
reimplements = "c6a5f007-895a-4fc5-90bc-a7e70f9b5cad"
2845

2946
[63f38f37-53f6-4a5f-bd86-e9b404f10a60]
3047
description = "invalid with letters"
48+
include = false
49+
50+
[eb8a1fc0-64e5-46d3-b0c6-33184208e28a]
51+
description = "invalid with letters"
52+
reimplements = "63f38f37-53f6-4a5f-bd86-e9b404f10a60"
3153

3254
[4bd97d90-52fd-45d3-b0db-06ab95b1244e]
3355
description = "invalid with punctuations"
56+
include = false
57+
58+
[065f6363-8394-4759-b080-e6c8c351dd1f]
59+
description = "invalid with punctuations"
60+
reimplements = "4bd97d90-52fd-45d3-b0db-06ab95b1244e"
3461

3562
[d77d07f8-873c-4b17-8978-5f66139bf7d7]
3663
description = "invalid if area code starts with 0"
Original file line numberDiff line numberDiff line change
@@ -1,98 +1,114 @@
11
#include "phone_number.h"
2-
32
#ifdef EXERCISM_TEST_SUITE
43
#include <catch2/catch.hpp>
54
#else
65
#include "test/catch.hpp"
76
#endif
8-
#include <exception>
97

10-
TEST_CASE("cleans_the_number") {
11-
REQUIRE("2234567890" == phone_number::phone_number("(223) 456-7890").number());
8+
TEST_CASE("cleans_the_number", "[79666dce-e0f1-46de-95a1-563802913c35]") {
9+
REQUIRE("2234567890" ==
10+
phone_number::phone_number("(223) 456-7890").number());
1211
}
1312

1413
#if defined(EXERCISM_RUN_ALL_TESTS)
1514

16-
TEST_CASE("cleans_numbers_with_dots") {
17-
REQUIRE("2234567890" == phone_number::phone_number("223.456.7890").number());
18-
}
19-
20-
TEST_CASE("cleans_numbers_with_spaces") {
21-
REQUIRE("2234567890" == phone_number::phone_number("223 456 7890 ").number());
22-
}
23-
24-
TEST_CASE("has_an_area_code") {
25-
REQUIRE("223" == phone_number::phone_number("+1 (223) 456-7890").area_code());
15+
TEST_CASE("cleans_numbers_with_dots",
16+
"[c360451f-549f-43e4-8aba-fdf6cb0bf83f]") {
17+
REQUIRE("2234567890" ==
18+
phone_number::phone_number("223.456.7890").number());
2619
}
2720

28-
TEST_CASE("formats_a_number") {
29-
const phone_number::phone_number phone("+1 (223) 456-7890");
30-
REQUIRE("(223) 456-7890" == std::string(phone));
21+
TEST_CASE("cleans_numbers_with_multiple_spaces",
22+
"[08f94c34-9a37-46a2-a123-2a8e9727395d]") {
23+
REQUIRE("2234567890" ==
24+
phone_number::phone_number("223 456 7890 ").number());
3125
}
3226

33-
TEST_CASE("invalid_when_9_digits") {
34-
REQUIRE_THROWS_AS(phone_number::phone_number("123456789"), std::domain_error);
27+
TEST_CASE("invalid_when_9_digits", "[2de74156-f646-42b5-8638-0ef1d8b58bc2]") {
28+
REQUIRE_THROWS_AS(phone_number::phone_number("123456789"),
29+
std::domain_error);
3530
}
3631

37-
TEST_CASE("invalid_when_11_digits_does_not_start_with_a_1") {
38-
REQUIRE_THROWS_AS(phone_number::phone_number("22234567890"), std::domain_error);
32+
TEST_CASE("invalid_when_11_digits_does_not_start_with_a_1",
33+
"[57061c72-07b5-431f-9766-d97da7c4399d]") {
34+
REQUIRE_THROWS_AS(phone_number::phone_number("22234567890"),
35+
std::domain_error);
3936
}
4037

41-
TEST_CASE("valid_when_11_digits_and_starting_with_1") {
42-
REQUIRE("2234567890" == phone_number::phone_number("12234567890").number());
38+
TEST_CASE("valid_when_11_digits_and_starting_with_1",
39+
"[9962cbf3-97bb-4118-ba9b-38ff49c64430]") {
40+
REQUIRE("2234567890" == phone_number::phone_number("12234567890").number());
4341
}
4442

45-
TEST_CASE(
46-
"valid_when_11_digits_and_starting_with_1_even_with_punctuation") {
47-
REQUIRE("2234567890" == phone_number::phone_number("+1 (223) 456-7890").number());
43+
TEST_CASE("valid_when_11_digits_and_starting_with_1_even_with_punctuation",
44+
"[fa724fbf-054c-4d91-95da-f65ab5b6dbca]") {
45+
REQUIRE("2234567890" ==
46+
phone_number::phone_number("+1 (223) 456-7890").number());
4847
}
4948

50-
TEST_CASE("invalid_when_more_than_11_digits") {
51-
REQUIRE_THROWS_AS(phone_number::phone_number("321234567890"), std::domain_error);
49+
TEST_CASE("invalid_when_more_than_11_digits",
50+
"[4a1509b7-8953-4eec-981b-c483358ff531]") {
51+
REQUIRE_THROWS_AS(phone_number::phone_number("321234567890"),
52+
std::domain_error);
5253
}
5354

54-
TEST_CASE("invalid_with_letters") {
55-
REQUIRE_THROWS_AS(phone_number::phone_number("123-abc-7890"), std::domain_error);
55+
TEST_CASE("invalid_with_letters", "[eb8a1fc0-64e5-46d3-b0c6-33184208e28a]") {
56+
REQUIRE_THROWS_AS(phone_number::phone_number("123-abc-7890"),
57+
std::domain_error);
5658
}
5759

58-
TEST_CASE("invalid_with_punctuation") {
59-
REQUIRE_THROWS_AS(phone_number::phone_number("123-@:!-7890"), std::domain_error);
60+
TEST_CASE("invalid_with_punctuation",
61+
"[065f6363-8394-4759-b080-e6c8c351dd1f]") {
62+
REQUIRE_THROWS_AS(phone_number::phone_number("123-@:!-7890"),
63+
std::domain_error);
6064
}
6165

62-
TEST_CASE("invalid_if_area_code_starts_with_0") {
63-
REQUIRE_THROWS_AS(phone_number::phone_number("(023) 456-7890"), std::domain_error);
66+
TEST_CASE("invalid_if_area_code_starts_with_0",
67+
"[d77d07f8-873c-4b17-8978-5f66139bf7d7]") {
68+
REQUIRE_THROWS_AS(phone_number::phone_number("(023) 456-7890"),
69+
std::domain_error);
6470
}
6571

66-
TEST_CASE("invalid_if_area_code_starts_with_1") {
67-
REQUIRE_THROWS_AS(phone_number::phone_number("(123) 456-7890"), std::domain_error);
72+
TEST_CASE("invalid_if_area_code_starts_with_1",
73+
"[c7485cfb-1e7b-4081-8e96-8cdb3b77f15e]") {
74+
REQUIRE_THROWS_AS(phone_number::phone_number("(123) 456-7890"),
75+
std::domain_error);
6876
}
6977

70-
TEST_CASE("invalid_if_exchange_code_starts_with_0") {
71-
REQUIRE_THROWS_AS(phone_number::phone_number("(223) 056-7890"), std::domain_error);
78+
TEST_CASE("invalid_if_exchange_code_starts_with_0",
79+
"[4d622293-6976-413d-b8bf-dd8a94d4e2ac]") {
80+
REQUIRE_THROWS_AS(phone_number::phone_number("(223) 056-7890"),
81+
std::domain_error);
7282
}
7383

74-
TEST_CASE("invalid_if_exchange_code_starts_with_1") {
75-
REQUIRE_THROWS_AS(phone_number::phone_number("(223) 156-7890"), std::domain_error);
84+
TEST_CASE("invalid_if_exchange_code_starts_with_1",
85+
"[4cef57b4-7d8e-43aa-8328-1e1b89001262]") {
86+
REQUIRE_THROWS_AS(phone_number::phone_number("(223) 156-7890"),
87+
std::domain_error);
7688
}
7789

78-
TEST_CASE(
79-
"invalid_if_area_code_starts_with_0_on_valid_11_digit_number") {
80-
REQUIRE_THROWS_AS(phone_number::phone_number("1 (023) 456-7890"), std::domain_error);
90+
TEST_CASE("invalid_if_area_code_starts_with_0_on_valid_11_digit_number",
91+
"[9925b09c-1a0d-4960-a197-5d163cbe308c]") {
92+
REQUIRE_THROWS_AS(phone_number::phone_number("1 (023) 456-7890"),
93+
std::domain_error);
8194
}
8295

83-
TEST_CASE(
84-
"invalid_if_area_code_starts_with_1_on_valid_11_digit_number") {
85-
REQUIRE_THROWS_AS(phone_number::phone_number("1 (123) 456-7890"), std::domain_error);
96+
TEST_CASE("invalid_if_area_code_starts_with_1_on_valid_11_digit_number",
97+
"[3f809d37-40f3-44b5-ad90-535838b1a816]") {
98+
REQUIRE_THROWS_AS(phone_number::phone_number("1 (123) 456-7890"),
99+
std::domain_error);
86100
}
87101

88-
TEST_CASE(
89-
"invalid_if_exchange_code_starts_with_0_on_valid_11_digit_number") {
90-
REQUIRE_THROWS_AS(phone_number::phone_number("1 (223) 056-7890"), std::domain_error);
102+
TEST_CASE("invalid_if_exchange_code_starts_with_0_on_valid_11_digit_number",
103+
"[e08e5532-d621-40d4-b0cc-96c159276b65]") {
104+
REQUIRE_THROWS_AS(phone_number::phone_number("1 (223) 056-7890"),
105+
std::domain_error);
91106
}
92107

93-
TEST_CASE(
94-
"invalid_if_exchange_code_starts_with_1_on_valid_11_digit_number") {
95-
REQUIRE_THROWS_AS(phone_number::phone_number("1 (223) 156-7890"), std::domain_error);
108+
TEST_CASE("invalid_if_exchange_code_starts_with_1_on_valid_11_digit_number",
109+
"[57b32f3d-696a-455c-8bf1-137b6d171cdf]") {
110+
REQUIRE_THROWS_AS(phone_number::phone_number("1 (223) 156-7890"),
111+
std::domain_error);
96112
}
97113

98114
#endif

0 commit comments

Comments
 (0)