Skip to content

Commit 534f4ea

Browse files
authored
[triangle] Add a Jinja test template (#870)
[no important files changed]
1 parent 67c63f4 commit 534f4ea

2 files changed

Lines changed: 33 additions & 35 deletions

File tree

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{{ header }}
2+
{% for idx, case in cases %}
3+
@test "{{ case["descriptions"] | join(": ") }}" {
4+
{% if idx == 0 %}# {% endif %}[[ $BATS_RUN_SKIPPED == "true" ]] || skip
5+
run bash {{ solution }} {{ case["property"] }} {{ case["input"]["sides"] | join(" ") }}
6+
assert_success
7+
assert_output "{{ case["expected"] | lower }}"
8+
}
9+
{% endfor %}

exercises/practice/triangle/triangle.bats

Lines changed: 24 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,161 +1,150 @@
11
#!/usr/bin/env bats
22
load bats-extra
33

4-
# local version: 1.2.1.0
4+
# generated on 2026-06-29T06:19:33+00:00
5+
# local version: 2.0.0.0
56

6-
# Test returns true if the triangle is equilateral
7-
8-
@test "all sides are equal, equilateral" {
9-
#[[ $BATS_RUN_SKIPPED == "true" ]] || skip
7+
@test "equilateral triangle: all sides are equal" {
8+
# [[ $BATS_RUN_SKIPPED == "true" ]] || skip
109
run bash triangle.sh equilateral 2 2 2
1110
assert_success
1211
assert_output "true"
1312
}
1413

15-
@test "any side is unequal" {
14+
@test "equilateral triangle: any side is unequal" {
1615
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
1716
run bash triangle.sh equilateral 2 3 2
1817
assert_success
1918
assert_output "false"
2019
}
2120

22-
@test "no sides are equal, equilateral" {
21+
@test "equilateral triangle: no sides are equal" {
2322
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
2423
run bash triangle.sh equilateral 5 4 6
2524
assert_success
2625
assert_output "false"
2726
}
2827

29-
@test "all zero sides is not a triangle" {
28+
@test "equilateral triangle: all zero sides is not a triangle" {
3029
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
3130
run bash triangle.sh equilateral 0 0 0
3231
assert_success
3332
assert_output "false"
3433
}
3534

36-
# Bonus: deal with floats
37-
38-
@test "sides may be floats, equilateral" {
35+
@test "equilateral triangle: sides may be floats" {
3936
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
4037
run bash triangle.sh equilateral 0.5 0.5 0.5
4138
assert_success
4239
assert_output "true"
4340
}
4441

45-
# Test returns true if the triangle is isosceles
46-
47-
@test "last two sides are equal" {
42+
@test "isosceles triangle: last two sides are equal" {
4843
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
4944
run bash triangle.sh isosceles 3 4 4
5045
assert_success
5146
assert_output "true"
5247
}
5348

54-
@test "first two sides are equal" {
49+
@test "isosceles triangle: first two sides are equal" {
5550
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
5651
run bash triangle.sh isosceles 4 4 3
5752
assert_success
5853
assert_output "true"
5954
}
6055

61-
@test "first and last sides are equal" {
56+
@test "isosceles triangle: first and last sides are equal" {
6257
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
6358
run bash triangle.sh isosceles 4 3 4
6459
assert_success
6560
assert_output "true"
6661
}
6762

68-
@test "equilateral triangles are also isosceles" {
63+
@test "isosceles triangle: equilateral triangles are also isosceles" {
6964
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
7065
run bash triangle.sh isosceles 4 4 4
7166
assert_success
7267
assert_output "true"
7368
}
7469

75-
@test "no sides are equal, isosceles" {
70+
@test "isosceles triangle: no sides are equal" {
7671
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
7772
run bash triangle.sh isosceles 2 3 4
7873
assert_success
7974
assert_output "false"
8075
}
8176

82-
@test "first triangle inequality violation" {
77+
@test "isosceles triangle: first triangle inequality violation" {
8378
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
8479
run bash triangle.sh isosceles 1 1 3
8580
assert_success
8681
assert_output "false"
8782
}
8883

89-
@test "second triangle inequality violation" {
84+
@test "isosceles triangle: second triangle inequality violation" {
9085
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
9186
run bash triangle.sh isosceles 1 3 1
9287
assert_success
9388
assert_output "false"
9489
}
9590

96-
@test "third triangle inequality violation" {
91+
@test "isosceles triangle: third triangle inequality violation" {
9792
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
9893
run bash triangle.sh isosceles 3 1 1
9994
assert_success
10095
assert_output "false"
10196
}
10297

103-
# Bonus: deal with floats
104-
105-
@test "sides may be floats, isosceles" {
98+
@test "isosceles triangle: sides may be floats" {
10699
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
107100
run bash triangle.sh isosceles 0.5 0.4 0.5
108101
assert_success
109102
assert_output "true"
110103
}
111104

112-
# Test returns true if the triangle is scalene
113-
114-
@test "no sides are equal, scalene" {
105+
@test "scalene triangle: no sides are equal" {
115106
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
116107
run bash triangle.sh scalene 5 4 6
117108
assert_success
118109
assert_output "true"
119110
}
120111

121-
@test "all sides are equal, scalene" {
112+
@test "scalene triangle: all sides are equal" {
122113
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
123114
run bash triangle.sh scalene 4 4 4
124115
assert_success
125116
assert_output "false"
126117
}
127118

128-
@test "first and second sides are equal" {
119+
@test "scalene triangle: first and second sides are equal" {
129120
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
130121
run bash triangle.sh scalene 4 4 3
131122
assert_success
132123
assert_output "false"
133124
}
134125

135-
@test "first and third sides are equal" {
126+
@test "scalene triangle: first and third sides are equal" {
136127
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
137128
run bash triangle.sh scalene 3 4 3
138129
assert_success
139130
assert_output "false"
140131
}
141132

142-
@test "second and third sides are equal" {
133+
@test "scalene triangle: second and third sides are equal" {
143134
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
144135
run bash triangle.sh scalene 4 3 3
145136
assert_success
146137
assert_output "false"
147138
}
148139

149-
@test "may not violate triangle inequality" {
140+
@test "scalene triangle: may not violate triangle inequality" {
150141
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
151142
run bash triangle.sh scalene 7 3 2
152143
assert_success
153144
assert_output "false"
154145
}
155146

156-
# Bonus: deal with floats
157-
158-
@test "sides may be floats, scalene" {
147+
@test "scalene triangle: sides may be floats" {
159148
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
160149
run bash triangle.sh scalene 0.5 0.4 0.6
161150
assert_success

0 commit comments

Comments
 (0)