From e027b276d40b9dce6998b04f6338b19e900f7d8a Mon Sep 17 00:00:00 2001 From: Erik Schierboom Date: Sat, 11 Jan 2025 12:50:05 +0100 Subject: [PATCH] difference-of-squares: add generator and regenerate tests [no important files changed] --- .../difference-of-squares/.meta/example.clj | 5 +++-- .../difference-of-squares/.meta/generator.clj | 7 +++++++ .../difference-of-squares/.meta/generator.tpl | 18 ++++++++++++++++++ .../test/difference_of_squares_test.clj | 18 +++++++++--------- 4 files changed, 37 insertions(+), 11 deletions(-) create mode 100644 exercises/practice/difference-of-squares/.meta/generator.clj create mode 100644 exercises/practice/difference-of-squares/.meta/generator.tpl diff --git a/exercises/practice/difference-of-squares/.meta/example.clj b/exercises/practice/difference-of-squares/.meta/example.clj index c67705e8c..3ba7cf98b 100644 --- a/exercises/practice/difference-of-squares/.meta/example.clj +++ b/exercises/practice/difference-of-squares/.meta/example.clj @@ -1,12 +1,13 @@ (ns difference-of-squares) +(defn- square [n] (* n n)) (defn- sum [xs] (reduce + xs)) (defn sum-of-squares [n] - (sum (map #(int (Math/pow % 2)) (range 0 (inc n))))) + (sum (map square (range 1 (inc n))))) (defn square-of-sum [n] - (int (Math/pow (sum (range 0 (inc n))) 2))) + (square (sum (range 1 (inc n))))) (defn difference [x] (- (square-of-sum x) (sum-of-squares x))) diff --git a/exercises/practice/difference-of-squares/.meta/generator.clj b/exercises/practice/difference-of-squares/.meta/generator.clj new file mode 100644 index 000000000..7facb501a --- /dev/null +++ b/exercises/practice/difference-of-squares/.meta/generator.clj @@ -0,0 +1,7 @@ +(ns difference-of-squares-generator) + +(defn- update-path [path] + (take-last 1 path)) + +(defn transform [test-cases] + (map #(update % :path update-path) test-cases)) diff --git a/exercises/practice/difference-of-squares/.meta/generator.tpl b/exercises/practice/difference-of-squares/.meta/generator.tpl new file mode 100644 index 000000000..89e9a1cad --- /dev/null +++ b/exercises/practice/difference-of-squares/.meta/generator.tpl @@ -0,0 +1,18 @@ +(ns difference-of-squares-test + (:require [clojure.test :refer [deftest testing is]] + difference-of-squares)) +{{#test_cases.squareOfSum}} +(deftest square-of-sum_test_{{idx}} + (testing "{{description}}" + (is (= {{expected}} (difference-of-squares/square-of-sum {{input.number}}))))) +{{/test_cases.squareOfSum~}} +{{#test_cases.sumOfSquares}} +(deftest sum-of-squares_test_{{idx}} + (testing "{{description}}" + (is (= {{expected}} (difference-of-squares/sum-of-squares {{input.number}}))))) +{{/test_cases.sumOfSquares~}} +{{#test_cases.differenceOfSquares}} +(deftest difference_test_{{idx}} + (testing "{{description}}" + (is (= {{expected}} (difference-of-squares/difference {{input.number}}))))) +{{/test_cases.differenceOfSquares~}} diff --git a/exercises/practice/difference-of-squares/test/difference_of_squares_test.clj b/exercises/practice/difference-of-squares/test/difference_of_squares_test.clj index a90658705..0f77b3f4e 100644 --- a/exercises/practice/difference-of-squares/test/difference_of_squares_test.clj +++ b/exercises/practice/difference-of-squares/test/difference_of_squares_test.clj @@ -3,37 +3,37 @@ difference-of-squares)) (deftest square-of-sum_test_1 - (testing "Square the sum of the numbers up to the given number -> square of sum 1" + (testing "square of sum 1" (is (= 1 (difference-of-squares/square-of-sum 1))))) (deftest square-of-sum_test_2 - (testing "Square the sum of the numbers up to the given number -> square of sum 5" + (testing "square of sum 5" (is (= 225 (difference-of-squares/square-of-sum 5))))) (deftest square-of-sum_test_3 - (testing "Square the sum of the numbers up to the given number -> square of sum 100" + (testing "square of sum 100" (is (= 25502500 (difference-of-squares/square-of-sum 100))))) (deftest sum-of-squares_test_1 - (testing "Sum the squares of the numbers up to the given number -> sum of squares 1" + (testing "sum of squares 1" (is (= 1 (difference-of-squares/sum-of-squares 1))))) (deftest sum-of-squares_test_2 - (testing "Sum the squares of the numbers up to the given number -> sum of squares 5" + (testing "sum of squares 5" (is (= 55 (difference-of-squares/sum-of-squares 5))))) (deftest sum-of-squares_test_3 - (testing "Sum the squares of the numbers up to the given number -> sum of squares 100" + (testing "sum of squares 100" (is (= 338350 (difference-of-squares/sum-of-squares 100))))) (deftest difference_test_1 - (testing "Subtract sum of squares from square of sums -> difference of squares 1" + (testing "difference of squares 1" (is (= 0 (difference-of-squares/difference 1))))) (deftest difference_test_2 - (testing "Subtract sum of squares from square of sums -> difference of squares 5" + (testing "difference of squares 5" (is (= 170 (difference-of-squares/difference 5))))) (deftest difference_test_3 - (testing "Subtract sum of squares from square of sums -> difference of squares 100" + (testing "difference of squares 100" (is (= 25164150 (difference-of-squares/difference 100)))))