Description:
Add property-based testing (and fix a bug).
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r8:676f2fad6ede -

@@ -0,0 +1,27
1 (ns project-checkup.core-property-test
2 (:gen-class)
3 (:require [clojure.test :refer :all]
4 [project-checkup.core :refer :all]
5 [clojure.test.check :as tc]
6 [clojure.test.check.generators :as gen]
7 [clojure.test.check.properties :as prop]
8 [clojure.test.check.clojure-test :refer :all]))
9
10
11 ;arguably redundant
12 (defspec get-extension-returns-string
13 100
14 (prop/for-all [st (gen/not-empty gen/string-ascii)
15 ext (gen/not-empty gen/string-alphanumeric) ]
16 (string? (get-extension (str st \. ext ))) ))
17
18
19 (defspec get-extension-returns-extension
20 100
21 (prop/for-all [st (gen/not-empty gen/string-ascii)
22 ext (gen/not-empty gen/string-alphanumeric) ]
23 (= (get-extension (str st \. ext ))
24 (str \. ext)) ))
25
26
27
@@ -6,7 +6,8
6 6 :dependencies [[org.clojure/clojure "1.8.0"]
7 7 [org.clojure/clojurescript "1.9.521"]
8 8 ; [andare "0.9.0"]
9 [org.clojure/core.async "0.4.474"]]
9 [org.clojure/core.async "0.4.474"]
10 [org.clojure/test.check "0.10.0-alpha3"]]
10 11
11 12 :plugins [[lein-cljsbuild "1.1.5"]]
12 13
@@ -4,7 +4,11
4 4 (:require [clojure.java.shell :as shell]
5 5 [clojure.string :as string]))
6 6
7 (defn get-extension [path] (re-find #"\.[a-zA-Z]+$" path))
7 (defn get-extension [path]
8 "Extracts the extension of a path.
9 Returns the extension with the period, e.g., '.txt' because that's the format
10 people are used to seeing extensions in."
11 (re-find #"\.[a-zA-Z0-9]+$" path))
8 12
9 13 (defn gather-project-info
10 14 "Creates a dictionary of project information"
@@ -39,6 +39,4
39 39 (is (= (get-extension "test.txt") ".txt"))
40 40 (is (= (get-extension "./test.txt") ".txt"))
41 41 (is (= (get-extension "test.txt.bak") ".bak"))
42 (is (= (get-extension ".hg/test.txt.bak") ".bak"))
43 )
44 )
42 (is (= (get-extension ".hg/test.txt.bak") ".bak"))))
You need to be logged in to leave comments. Login now