Skip to content

Commit e91075d

Browse files
difference-of-squares: add generator and regenerate tests
[no important files changed]
1 parent b866e68 commit e91075d

File tree

5 files changed

+60
-24
lines changed

5 files changed

+60
-24
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
(ns difference-of-squares)
22

3+
(defn- square [n] (* n n))
34
(defn- sum [xs] (reduce + xs))
45

56
(defn sum-of-squares [n]
6-
(sum (map #(int (Math/pow % 2)) (range 0 (inc n)))))
7+
(sum (map square (range 1 (inc n)))))
78

89
(defn square-of-sum [n]
9-
(int (Math/pow (sum (range 0 (inc n))) 2)))
10+
(square (sum (range 1 (inc n)))))
1011

1112
(defn difference [x]
1213
(- (square-of-sum x) (sum-of-squares x)))
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
(ns difference-of-squares-generator)
2+
3+
(defn- update-path [path]
4+
(take-last 1 path))
5+
6+
(defn transform [test-cases]
7+
(map #(update % :path update-path) test-cases))
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
(ns difference-of-squares-test
2+
(:require [clojure.test :refer [deftest testing is]]
3+
difference-of-squares))
4+
{{#test_cases.squareOfSum}}
5+
(deftest square-of-sum_test_{{idx}}
6+
(testing "{{description}}"
7+
(is (= {{expected}} (difference-of-squares/square-of-sum {{input.number}})))))
8+
{{/test_cases.squareOfSum~}}
9+
{{#test_cases.sumOfSquares}}
10+
(deftest sum-of-squares_test_{{idx}}
11+
(testing "{{description}}"
12+
(is (= {{expected}} (difference-of-squares/sum-of-squares {{input.number}})))))
13+
{{/test_cases.sumOfSquares~}}
14+
{{#test_cases.differenceOfSquares}}
15+
(deftest difference-of-squares_test_{{idx}}
16+
(testing "{{description}}"
17+
(is (= {{expected}} (difference-of-squares/difference {{input.number}})))))
18+
{{/test_cases.differenceOfSquares}}
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
(ns difference-of-squares)
22

3-
(defn difference [] ;; <- arglist goes here
3+
(defn square-of-sum [] ;; <- arglist goes here
44
;; your code goes here
55
)
66

77
(defn sum-of-squares [] ;; <- arglist goes here
88
;; your code goes here
99
)
1010

11-
(defn square-of-sum [] ;; <- arglist goes here
11+
(defn difference [] ;; <- arglist goes here
1212
;; your code goes here
1313
)

exercises/practice/difference-of-squares/test/difference_of_squares_test.clj

+30-20
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,40 @@
11
(ns difference-of-squares-test
2-
(:require [clojure.test :refer [deftest is]]
3-
[difference-of-squares :as dos]))
2+
(:require [clojure.test :refer [deftest testing is]]
3+
difference-of-squares))
44

5-
(deftest square-of-sum-to-5
6-
(is (= 225 (dos/square-of-sum 5))))
5+
(deftest square-of-sum_test_1
6+
(testing "square of sum 1"
7+
(is (= 1 (difference-of-squares/square-of-sum 1)))))
78

8-
(deftest sum-of-squares-to-5
9-
(is (= 55 (dos/sum-of-squares 5))))
9+
(deftest square-of-sum_test_2
10+
(testing "square of sum 5"
11+
(is (= 225 (difference-of-squares/square-of-sum 5)))))
1012

11-
(deftest difference-of-squares-to-5
12-
(is (= 170 (dos/difference 5))))
13+
(deftest square-of-sum_test_3
14+
(testing "square of sum 100"
15+
(is (= 25502500 (difference-of-squares/square-of-sum 100)))))
1316

14-
(deftest square-of-sum-to-10
15-
(is (= 3025 (dos/square-of-sum 10))))
17+
(deftest sum-of-squares_test_1
18+
(testing "sum of squares 1"
19+
(is (= 1 (difference-of-squares/sum-of-squares 1)))))
1620

17-
(deftest sum-of-squares-to-10
18-
(is (= 385 (dos/sum-of-squares 10))))
21+
(deftest sum-of-squares_test_2
22+
(testing "sum of squares 5"
23+
(is (= 55 (difference-of-squares/sum-of-squares 5)))))
1924

20-
(deftest difference-of-squares-to-10
21-
(is (= 2640 (dos/difference 10))))
25+
(deftest sum-of-squares_test_3
26+
(testing "sum of squares 100"
27+
(is (= 338350 (difference-of-squares/sum-of-squares 100)))))
2228

23-
(deftest square-of-sum-to-100
24-
(is (= 25502500 (dos/square-of-sum 100))))
29+
(deftest difference-of-squares_test_1
30+
(testing "difference of squares 1"
31+
(is (= 0 (difference-of-squares/difference 1)))))
2532

26-
(deftest sum-of-squares-to-100
27-
(is (= 338350 (dos/sum-of-squares 100))))
33+
(deftest difference-of-squares_test_2
34+
(testing "difference of squares 5"
35+
(is (= 170 (difference-of-squares/difference 5)))))
36+
37+
(deftest difference-of-squares_test_3
38+
(testing "difference of squares 100"
39+
(is (= 25164150 (difference-of-squares/difference 100)))))
2840

29-
(deftest difference-of-squares-to-100
30-
(is (= 25164150 (dos/difference 100))))

0 commit comments

Comments
 (0)