2020-09-09 21:03:15 +00:00
|
|
|
(ns version-clj.split-test
|
2021-03-14 20:04:55 +00:00
|
|
|
(:require #?(:clj [clojure.test :refer [deftest testing are is]]
|
|
|
|
|
:cljs [cljs.test :refer-macros [deftest testing are is]])
|
2020-09-09 21:03:15 +00:00
|
|
|
[version-clj.split :refer [version->seq]]))
|
|
|
|
|
|
2021-03-14 20:04:55 +00:00
|
|
|
(deftest t-split-once-sanity-check
|
|
|
|
|
(let [split-once @#'version-clj.split/split-once
|
|
|
|
|
rx #"(^|(?<=\d)|-)(?=alpha)"]
|
|
|
|
|
(are [in out] (= out (split-once rx in))
|
|
|
|
|
"1-alpha2.2" ["1" "alpha2.2"]
|
|
|
|
|
"alpha" ["" "alpha"]
|
|
|
|
|
"1alpha" ["1" "alpha"]
|
|
|
|
|
"0.0.3-alpha.8+oryOS.15" ["0.0.3" "alpha.8+oryOS.15"])))
|
|
|
|
|
|
2020-09-09 21:03:15 +00:00
|
|
|
(deftest t-split
|
2021-03-14 20:04:55 +00:00
|
|
|
(are [version v] (= v (version->seq version))
|
|
|
|
|
"1.0.0" [[1 0 0]]
|
|
|
|
|
"1.0" [[1 0]]
|
|
|
|
|
"1" [[1]]
|
|
|
|
|
"1a" [[1] ["a"]]
|
|
|
|
|
"1-a" [[1] ["a"]]
|
|
|
|
|
"1.0.1-SNAPSHOT" [[1 0 1] ["snapshot"]]
|
|
|
|
|
"1.0.1-alpha2" [[1 0 1] ["alpha" 2]]
|
|
|
|
|
"11.2.0.3.0" [[11 2 0 3 0]]
|
|
|
|
|
"1.0-1-0.2-RC" [[1 [0 1 0] 2] ["rc"]]
|
|
|
|
|
"1.0-612" [[1 0] [612]]
|
|
|
|
|
"alpha" [[] ["alpha"]]
|
|
|
|
|
"alpha-2" [[] ["alpha" 2]]
|
|
|
|
|
"1.alpha" [[1] ["alpha"]]
|
|
|
|
|
"1.alpha.2" [[1] ["alpha" 2]]
|
|
|
|
|
"1-alpha.2" [[1] ["alpha" 2]]
|
|
|
|
|
"1-alpha.2.2" [[1] ["alpha" 2 2]]
|
|
|
|
|
"1-alpha2.2" [[1] [["alpha" 2] 2]]
|
|
|
|
|
"1.alpha-1.0" [[1] ["alpha" [1 0]]]
|
|
|
|
|
"0.5.0-alpha.1" [[0 5 0] ["alpha" 1]]
|
|
|
|
|
"0.5.0-alpha.1" [[0 5 0] ["alpha" 1]]
|
|
|
|
|
"0.0.3-alpha.8+oryOS.15" [[0 0 3] ["alpha" [8 "+oryos"] 15]]
|
|
|
|
|
))
|
|
|
|
|
|
|
|
|
|
(deftest t-split-without-qualifiers
|
|
|
|
|
(testing "well-behaving."
|
|
|
|
|
(are [version] (= (version->seq version)
|
|
|
|
|
(version->seq version {:qualifiers {}}))
|
|
|
|
|
"1.0.0"
|
|
|
|
|
"1.0"
|
|
|
|
|
"1"
|
|
|
|
|
"1-a"
|
|
|
|
|
"1.0.1-SNAPSHOT"
|
|
|
|
|
"1.0.1-alpha2"
|
|
|
|
|
"11.2.0.3.0"
|
|
|
|
|
"1.0-1-0.2-RC"
|
|
|
|
|
"1-alpha.2"
|
|
|
|
|
"1-alpha.2.2"
|
|
|
|
|
"1-alpha2.2"
|
|
|
|
|
"0.5.0-alpha.1"
|
|
|
|
|
"0.5.0-alpha.1"
|
|
|
|
|
"0.0.3-alpha.8+oryOS.15"))
|
|
|
|
|
(testing "deviants."
|
|
|
|
|
(are [version v] (= v (version->seq version {:qualifiers {}}))
|
|
|
|
|
"alpha" [["alpha"]]
|
|
|
|
|
"alpha-2" [["alpha"] [2]]
|
|
|
|
|
"1a" [[1 "a"]]
|
|
|
|
|
"1.alpha" [[1 "alpha"]]
|
|
|
|
|
"1.alpha.2" [[1 "alpha" 2]]
|
|
|
|
|
"1.alpha-1.0" [[1 ["alpha" 1] 0]])))
|
2020-09-09 21:03:15 +00:00
|
|
|
|
|
|
|
|
(deftest t-split-with-large-number
|
2021-03-14 20:04:55 +00:00
|
|
|
(is (= [[0 0 1] [20141002100138]]
|
|
|
|
|
(version->seq "0.0.1-20141002100138")))
|
2020-09-09 21:03:15 +00:00
|
|
|
#?(:clj
|
|
|
|
|
(let [v (str Long/MAX_VALUE "12345")]
|
|
|
|
|
(is (= (version->seq v) [[(bigint v)]])))))
|