From 80b2915e6f4d8eebdc50a89d53da34fe256f565d Mon Sep 17 00:00:00 2001 From: Anastasios Chatzialexiou <16361161+tasxatzial@users.noreply.github.com> Date: Sat, 4 Apr 2026 06:05:13 +0300 Subject: [PATCH] triangle: Add the ability to select which tests to run --- .../practice/triangle/.meta/generator.tpl | 6 +-- exercises/practice/triangle/project.clj | 5 ++- .../practice/triangle/test/triangle_test.clj | 42 +++++++++---------- 3 files changed, 28 insertions(+), 25 deletions(-) diff --git a/exercises/practice/triangle/.meta/generator.tpl b/exercises/practice/triangle/.meta/generator.tpl index 386136b7f..3bd2bdcf3 100644 --- a/exercises/practice/triangle/.meta/generator.tpl +++ b/exercises/practice/triangle/.meta/generator.tpl @@ -3,19 +3,19 @@ triangle)) {{#test_cases.equilateral}} -(deftest equilateral?_test_{{idx}} +(deftest ^:equilateral? equilateral?_test_{{idx}} (testing {{context}} (is ({{#expected}}true?{{else}}false?{{/expected}} (triangle/equilateral? {{input.sides.0}} {{input.sides.1}} {{input.sides.2}}))))) {{/test_cases.equilateral}} {{#test_cases.isosceles}} -(deftest isosceles?_test_{{idx}} +(deftest ^:isosceles? isosceles?_test_{{idx}} (testing {{context}} (is ({{#expected}}true?{{else}}false?{{/expected}} (triangle/isosceles? {{input.sides.0}} {{input.sides.1}} {{input.sides.2}}))))) {{/test_cases.isosceles}} {{#test_cases.scalene}} -(deftest scalene?_test_{{idx}} +(deftest ^:scalene? scalene?_test_{{idx}} (testing {{context}} (is ({{#expected}}true?{{else}}false?{{/expected}} (triangle/scalene? {{input.sides.0}} {{input.sides.1}} {{input.sides.2}}))))) {{/test_cases.scalene}} diff --git a/exercises/practice/triangle/project.clj b/exercises/practice/triangle/project.clj index 2ac418dc4..a22e45984 100644 --- a/exercises/practice/triangle/project.clj +++ b/exercises/practice/triangle/project.clj @@ -1,4 +1,7 @@ (defproject triangle "0.1.0-SNAPSHOT" :description "triangle exercise." :url "https://github.com/exercism/clojure/tree/main/exercises/practice/triangle" - :dependencies [[org.clojure/clojure "1.12.0"]]) + :dependencies [[org.clojure/clojure "1.12.0"]] + :test-selectors {:equilateral? :equilateral? + :isosceles? :isosceles? + :scalene? :scalene?}) diff --git a/exercises/practice/triangle/test/triangle_test.clj b/exercises/practice/triangle/test/triangle_test.clj index 569ddf96a..dadb23104 100644 --- a/exercises/practice/triangle/test/triangle_test.clj +++ b/exercises/practice/triangle/test/triangle_test.clj @@ -2,86 +2,86 @@ (:require [clojure.test :refer [deftest testing is]] triangle)) -(deftest equilateral?_test_1 +(deftest ^:equilateral? equilateral?_test_1 (testing "equilateral triangle ▶ all sides are equal" (is (true? (triangle/equilateral? 2 2 2))))) -(deftest equilateral?_test_2 +(deftest ^:equilateral? equilateral?_test_2 (testing "equilateral triangle ▶ any side is unequal" (is (false? (triangle/equilateral? 2 3 2))))) -(deftest equilateral?_test_3 +(deftest ^:equilateral? equilateral?_test_3 (testing "equilateral triangle ▶ no sides are equal" (is (false? (triangle/equilateral? 5 4 6))))) -(deftest equilateral?_test_4 +(deftest ^:equilateral? equilateral?_test_4 (testing "equilateral triangle ▶ all zero sides is not a triangle" (is (false? (triangle/equilateral? 0 0 0))))) -(deftest equilateral?_test_5 +(deftest ^:equilateral? equilateral?_test_5 (testing "equilateral triangle ▶ sides may be floats" (is (true? (triangle/equilateral? 0.5 0.5 0.5))))) -(deftest isosceles?_test_1 +(deftest ^:isosceles? isosceles?_test_1 (testing "isosceles triangle ▶ last two sides are equal" (is (true? (triangle/isosceles? 3 4 4))))) -(deftest isosceles?_test_2 +(deftest ^:isosceles? isosceles?_test_2 (testing "isosceles triangle ▶ first two sides are equal" (is (true? (triangle/isosceles? 4 4 3))))) -(deftest isosceles?_test_3 +(deftest ^:isosceles? isosceles?_test_3 (testing "isosceles triangle ▶ first and last sides are equal" (is (true? (triangle/isosceles? 4 3 4))))) -(deftest isosceles?_test_4 +(deftest ^:isosceles? isosceles?_test_4 (testing "isosceles triangle ▶ equilateral triangles are also isosceles" (is (true? (triangle/isosceles? 4 4 4))))) -(deftest isosceles?_test_5 +(deftest ^:isosceles? isosceles?_test_5 (testing "isosceles triangle ▶ no sides are equal" (is (false? (triangle/isosceles? 2 3 4))))) -(deftest isosceles?_test_6 +(deftest ^:isosceles? isosceles?_test_6 (testing "isosceles triangle ▶ first triangle inequality violation" (is (false? (triangle/isosceles? 1 1 3))))) -(deftest isosceles?_test_7 +(deftest ^:isosceles? isosceles?_test_7 (testing "isosceles triangle ▶ second triangle inequality violation" (is (false? (triangle/isosceles? 1 3 1))))) -(deftest isosceles?_test_8 +(deftest ^:isosceles? isosceles?_test_8 (testing "isosceles triangle ▶ third triangle inequality violation" (is (false? (triangle/isosceles? 3 1 1))))) -(deftest isosceles?_test_9 +(deftest ^:isosceles? isosceles?_test_9 (testing "isosceles triangle ▶ sides may be floats" (is (true? (triangle/isosceles? 0.5 0.4 0.5))))) -(deftest scalene?_test_1 +(deftest ^:scalene? scalene?_test_1 (testing "scalene triangle ▶ no sides are equal" (is (true? (triangle/scalene? 5 4 6))))) -(deftest scalene?_test_2 +(deftest ^:scalene? scalene?_test_2 (testing "scalene triangle ▶ all sides are equal" (is (false? (triangle/scalene? 4 4 4))))) -(deftest scalene?_test_3 +(deftest ^:scalene? scalene?_test_3 (testing "scalene triangle ▶ first and second sides are equal" (is (false? (triangle/scalene? 4 4 3))))) -(deftest scalene?_test_4 +(deftest ^:scalene? scalene?_test_4 (testing "scalene triangle ▶ first and third sides are equal" (is (false? (triangle/scalene? 3 4 3))))) -(deftest scalene?_test_5 +(deftest ^:scalene? scalene?_test_5 (testing "scalene triangle ▶ second and third sides are equal" (is (false? (triangle/scalene? 4 3 3))))) -(deftest scalene?_test_6 +(deftest ^:scalene? scalene?_test_6 (testing "scalene triangle ▶ may not violate triangle inequality" (is (false? (triangle/scalene? 7 3 2))))) -(deftest scalene?_test_7 +(deftest ^:scalene? scalene?_test_7 (testing "scalene triangle ▶ sides may be floats" (is (true? (triangle/scalene? 0.5 0.4 0.6)))))