Skip to content

Commit 90a9e53

Browse files
authored
Add new perfect number test case, "Perfect square abundant number" (#767)
1 parent 598e45a commit 90a9e53

2 files changed

Lines changed: 44 additions & 27 deletions

File tree

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,52 @@
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
[163e8e86-7bfd-4ee2-bd68-d083dc3381a3]
6-
description = "Smallest perfect number is classified correctly"
13+
description = "Perfect numbers -> Smallest perfect number is classified correctly"
714

815
[169a7854-0431-4ae0-9815-c3b6d967436d]
9-
description = "Medium perfect number is classified correctly"
16+
description = "Perfect numbers -> Medium perfect number is classified correctly"
1017

1118
[ee3627c4-7b36-4245-ba7c-8727d585f402]
12-
description = "Large perfect number is classified correctly"
19+
description = "Perfect numbers -> Large perfect number is classified correctly"
1320

1421
[80ef7cf8-9ea8-49b9-8b2d-d9cb3db3ed7e]
15-
description = "Smallest abundant number is classified correctly"
22+
description = "Abundant numbers -> Smallest abundant number is classified correctly"
1623

1724
[3e300e0d-1a12-4f11-8c48-d1027165ab60]
18-
description = "Medium abundant number is classified correctly"
25+
description = "Abundant numbers -> Medium abundant number is classified correctly"
1926

2027
[ec7792e6-8786-449c-b005-ce6dd89a772b]
21-
description = "Large abundant number is classified correctly"
28+
description = "Abundant numbers -> Large abundant number is classified correctly"
29+
30+
[05f15b93-849c-45e9-9c7d-1ea131ef7d10]
31+
description = "Abundant numbers -> Perfect square abundant number is classified correctly"
2232

2333
[e610fdc7-2b6e-43c3-a51c-b70fb37413ba]
24-
description = "Smallest prime deficient number is classified correctly"
34+
description = "Deficient numbers -> Smallest prime deficient number is classified correctly"
2535

2636
[0beb7f66-753a-443f-8075-ad7fbd9018f3]
27-
description = "Smallest non-prime deficient number is classified correctly"
37+
description = "Deficient numbers -> Smallest non-prime deficient number is classified correctly"
2838

2939
[1c802e45-b4c6-4962-93d7-1cad245821ef]
30-
description = "Medium deficient number is classified correctly"
40+
description = "Deficient numbers -> Medium deficient number is classified correctly"
3141

3242
[47dd569f-9e5a-4a11-9a47-a4e91c8c28aa]
33-
description = "Large deficient number is classified correctly"
43+
description = "Deficient numbers -> Large deficient number is classified correctly"
3444

3545
[a696dec8-6147-4d68-afad-d38de5476a56]
36-
description = "Edge case (no factors other than itself) is classified correctly"
46+
description = "Deficient numbers -> Edge case (no factors other than itself) is classified correctly"
3747

3848
[72445cee-660c-4d75-8506-6c40089dc302]
39-
description = "Zero is rejected (not a natural number)"
49+
description = "Invalid inputs -> Zero is rejected (as it is not a positive integer)"
4050

4151
[2d72ce2c-6802-49ac-8ece-c790ba3dae13]
42-
description = "Negative integer is rejected (not a natural number)"
52+
description = "Invalid inputs -> Negative integer is rejected (as it is not a positive integer)"

exercises/practice/perfect-numbers/perfect_numbers.bats

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,21 @@ load bats-extra
88
@test "Smallest perfect number is classified correctly" {
99
#[[ $BATS_RUN_SKIPPED == "true" ]] || skip
1010
run bash perfect_numbers.sh 6
11-
assert_success
11+
assert_success
1212
assert_output "perfect"
1313
}
1414

1515
@test "Medium perfect number is classified correctly" {
1616
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
1717
run bash perfect_numbers.sh 28
18-
assert_success
18+
assert_success
1919
assert_output "perfect"
2020
}
2121

2222
@test "Large perfect number is classified correctly" {
2323
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
2424
run bash perfect_numbers.sh 33550336
25-
assert_success
25+
assert_success
2626
assert_output "perfect"
2727
}
2828

@@ -31,21 +31,28 @@ load bats-extra
3131
@test "Smallest abundant number is classified correctly" {
3232
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
3333
run bash perfect_numbers.sh 12
34-
assert_success
34+
assert_success
3535
assert_output "abundant"
3636
}
3737

3838
@test "Medium abundant number is classified correctly" {
3939
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
4040
run bash perfect_numbers.sh 30
41-
assert_success
41+
assert_success
4242
assert_output "abundant"
4343
}
4444

4545
@test "Large abundant number is classified correctly" {
4646
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
4747
run bash perfect_numbers.sh 33550335
48-
assert_success
48+
assert_success
49+
assert_output "abundant"
50+
}
51+
52+
@test "Perfect square abundant number is classified correctly" {
53+
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
54+
run bash perfect_numbers.sh 196
55+
assert_success
4956
assert_output "abundant"
5057
}
5158

@@ -68,21 +75,21 @@ load bats-extra
6875
@test "Medium deficient number is classified correctly" {
6976
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
7077
run bash perfect_numbers.sh 32
71-
assert_success
78+
assert_success
7279
assert_output "deficient"
7380
}
7481

7582
@test "Large deficient number is classified correctly" {
7683
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
7784
run bash perfect_numbers.sh 33550337
78-
assert_success
85+
assert_success
7986
assert_output "deficient"
8087
}
8188

8289
@test "Edge case (no factors other than itself) is classified correctly" {
8390
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
8491
run bash perfect_numbers.sh 1
85-
assert_success
92+
assert_success
8693
assert_output "deficient"
8794
}
8895

@@ -91,13 +98,13 @@ load bats-extra
9198
@test "Zero is rejected (not a natural number)" {
9299
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
93100
run bash perfect_numbers.sh 0
94-
assert_failure
101+
assert_failure
95102
assert_output "Classification is only possible for natural numbers."
96103
}
97104

98105
@test "Negative integer is rejected (not a natural number)" {
99106
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
100107
run bash perfect_numbers.sh -1
101-
assert_failure
108+
assert_failure
102109
assert_output "Classification is only possible for natural numbers."
103110
}

0 commit comments

Comments
 (0)