Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions exercises/practice/triangle/.meta/template.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{% for case in cases %}
func test_{{ case.property }}_{{ case.func_name }}(solution_script):
var args = {{ case.given | togdscript }}
var expected = {{ case.expected }}
var got = solution_script.is_{{ case.property }}(args)
return [got, expected]

{% endfor %}
103 changes: 58 additions & 45 deletions exercises/practice/triangle/triangle_test.gd
Original file line number Diff line number Diff line change
@@ -1,132 +1,145 @@
## Equilateral triangle tests

func test_equilateral_all_sides_are_equal(solution_script):
var args = [2, 2, 2]
var expected = true
return [solution_script.is_equilateral(args), expected]
var got = solution_script.is_equilateral(args)
return [got, expected]


func test_equilateral_any_side_is_unequal(solution_script):
var args = [2, 3, 2]
var expected = false
return [solution_script.is_equilateral(args), expected]
var got = solution_script.is_equilateral(args)
return [got, expected]


func test_equilateral_no_sides_are_equal(solution_script):
var args = [5, 4, 6]
var expected = false
return [solution_script.is_equilateral(args), expected]
var got = solution_script.is_equilateral(args)
return [got, expected]


func test_equilateral_all_zero_sides(solution_script):
func test_equilateral_all_zero_sides_is_not_a_triangle(solution_script):
var args = [0, 0, 0]
var expected = false
return [solution_script.is_equilateral(args), expected]
var got = solution_script.is_equilateral(args)
return [got, expected]


func test_equilateral_sides_may_be_floats(solution_script):
var args = [0.5, 0.5, 0.5]
var expected = true
return [solution_script.is_equilateral(args), expected]


## Isosceles triangle tests
var got = solution_script.is_equilateral(args)
return [got, expected]


func test_isosceles_last_two_equal(solution_script):
func test_isosceles_last_two_sides_are_equal(solution_script):
var args = [3, 4, 4]
var expected = true
return [solution_script.is_isosceles(args), expected]
var got = solution_script.is_isosceles(args)
return [got, expected]


func test_isosceles_first_two_equal(solution_script):
func test_isosceles_first_two_sides_are_equal(solution_script):
var args = [4, 4, 3]
var expected = true
return [solution_script.is_isosceles(args), expected]
var got = solution_script.is_isosceles(args)
return [got, expected]


func test_isosceles_first_and_last_equal(solution_script):
func test_isosceles_first_and_last_sides_are_equal(solution_script):
var args = [4, 3, 4]
var expected = true
return [solution_script.is_isosceles(args), expected]
var got = solution_script.is_isosceles(args)
return [got, expected]


func test_isosceles_can_be_equilateral(solution_script):
func test_isosceles_equilateral_triangles_are_also_isosceles(solution_script):
var args = [4, 4, 4]
var expected = true
return [solution_script.is_isosceles(args), expected]
var got = solution_script.is_isosceles(args)
return [got, expected]


func test_isosceles_no_sides_equal(solution_script):
func test_isosceles_no_sides_are_equal(solution_script):
var args = [2, 3, 4]
var expected = false
return [solution_script.is_isosceles(args), expected]
var got = solution_script.is_isosceles(args)
return [got, expected]


func test_isosceles_first_inequality_violation(solution_script):
func test_isosceles_first_triangle_inequality_violation(solution_script):
var args = [1, 1, 3]
var expected = false
return [solution_script.is_isosceles(args), expected]
var got = solution_script.is_isosceles(args)
return [got, expected]


func test_isosceles_second_inequality_violation(solution_script):
func test_isosceles_second_triangle_inequality_violation(solution_script):
var args = [1, 3, 1]
var expected = false
return [solution_script.is_isosceles(args), expected]
var got = solution_script.is_isosceles(args)
return [got, expected]


func test_isosceles_third_inequality_violation(solution_script):
func test_isosceles_third_triangle_inequality_violation(solution_script):
var args = [3, 1, 1]
var expected = false
return [solution_script.is_isosceles(args), expected]
var got = solution_script.is_isosceles(args)
return [got, expected]


func test_isosceles_sides_may_be_floats(solution_script):
var args = [0.5, 0.4, 0.5]
var expected = true
return [solution_script.is_isosceles(args), expected]


# Scalene triangle tests
var got = solution_script.is_isosceles(args)
return [got, expected]


func test_scalene_no_sides_equal(solution_script):
func test_scalene_no_sides_are_equal(solution_script):
var args = [5, 4, 6]
var expected = true
return [solution_script.is_scalene(args), expected]
var got = solution_script.is_scalene(args)
return [got, expected]


func test_scalene_all_sides_equal(solution_script):
func test_scalene_all_sides_are_equal(solution_script):
var args = [4, 4, 4]
var expected = false
return [solution_script.is_scalene(args), expected]
var got = solution_script.is_scalene(args)
return [got, expected]


func test_scalene_first_and_second_equal(solution_script):
func test_scalene_first_and_second_sides_are_equal(solution_script):
var args = [4, 4, 3]
var expected = false
return [solution_script.is_scalene(args), expected]
var got = solution_script.is_scalene(args)
return [got, expected]


func test_scalene_first_and_third_equal(solution_script):
func test_scalene_first_and_third_sides_are_equal(solution_script):
var args = [3, 4, 3]
var expected = false
return [solution_script.is_scalene(args), expected]
var got = solution_script.is_scalene(args)
return [got, expected]


func test_scalene_second_and_third_equal(solution_script):
func test_scalene_second_and_third_sides_are_equal(solution_script):
var args = [4, 3, 3]
var expected = false
return [solution_script.is_scalene(args), expected]
var got = solution_script.is_scalene(args)
return [got, expected]


func test_scalene_inequality_violation(solution_script):
func test_scalene_may_not_violate_triangle_inequality(solution_script):
var args = [7, 3, 2]
var expected = false
return [solution_script.is_scalene(args), expected]
var got = solution_script.is_scalene(args)
return [got, expected]


func test_scalene_may_be_floats(solution_script):
func test_scalene_sides_may_be_floats(solution_script):
var args = [0.5, 0.4, 0.6]
var expected = true
return [solution_script.is_scalene(args), expected]
var got = solution_script.is_scalene(args)
return [got, expected]
Loading