Update symbol defaults, factories to have only lower alphabets.
continuous-integration/drone/push Build is passing Details

main
KKlochko 2 years ago
parent 6833ade696
commit 20c1d1ef1b

@ -2,7 +2,7 @@
(:require [clojure.string :as cs]) (:require [clojure.string :as cs])
(:gen-class)) (:gen-class))
(defn lower-english-alphabet-factory (defn english-alphabet-factory
"Return the English alphabet with only lowercase letters" "Return the English alphabet with only lowercase letters"
[] []
(reduce (reduce
@ -10,23 +10,11 @@
"" ""
(range (int \a) (inc (int \z))))) (range (int \a) (inc (int \z)))))
(defn english-alphabet-factory (defn ukrainian-alphabet-factory
"Return the English alphabet with lower and upper case letters"
[]
(let [letters (lower-english-alphabet-factory)]
(str letters (cs/upper-case letters))))
(defn lower-ukrainian-alphabet-factory
"Return the Ukrainian alphabet with only lowercase letters" "Return the Ukrainian alphabet with only lowercase letters"
[] []
"абвгґдеєжзиіїйклмнопрстуфхцчшщьюя") "абвгґдеєжзиіїйклмнопрстуфхцчшщьюя")
(defn ukrainian-alphabet-factory
"Return the Ukrainian alphabet with lower and upper case letters"
[]
(let [letters (lower-ukrainian-alphabet-factory)]
(str letters (cs/upper-case letters))))
(defn digit-set-factory (defn digit-set-factory
"Return digits" "Return digits"
[] []
@ -48,14 +36,10 @@
(cond (cond
(= language-code "en") (= language-code "en")
(str (english-alphabet-factory) (str (english-alphabet-factory)
(punctuation-symbol-factory)
(digit-set-factory)
\ ) \ )
(= language-code "uk") (= language-code "uk")
(str (ukrainian-alphabet-factory) (str (ukrainian-alphabet-factory)
(punctuation-symbol-factory)
(digit-set-factory)
\ ) \ )
:else :else

@ -4,38 +4,22 @@
[cipher-analytical-machine.symbol-factories :refer :all] [cipher-analytical-machine.symbol-factories :refer :all]
)) ))
(deftest lower-english-alphabet-factory-test (deftest english-alphabet-factory-test
(let [symbols (lower-english-alphabet-factory)] (let [symbols (english-alphabet-factory)]
(testing "It must have the same order." (testing "It must have the same order."
(is (= "abcdefghijklmnopqrstuvwxyz" symbols))) (is (= "abcdefghijklmnopqrstuvwxyz" symbols)))
(testing "It must have 26 letters." (testing "It must have 26 letters."
(is (= 26 (count symbols)))))) (is (= 26 (count symbols))))))
(deftest english-alphabet-factory-test (deftest ukrainian-alphabet-factory-test
(let [symbols (english-alphabet-factory)] (let [symbols (ukrainian-alphabet-factory)]
(testing "It must have the same order."
(is (= "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" symbols)))
(testing "It must have 2*26 letters."
(is (= (* 2 26) (count symbols))))))
(deftest lower-ukrainian-alphabet-factory-test
(let [symbols (lower-ukrainian-alphabet-factory)]
(testing "It must have the same order." (testing "It must have the same order."
(is (= "абвгґдеєжзиіїйклмнопрстуфхцчшщьюя" symbols))) (is (= "абвгґдеєжзиіїйклмнопрстуфхцчшщьюя" symbols)))
(testing "It must have 33 letters." (testing "It must have 33 letters."
(is (= 33 (count symbols)))))) (is (= 33 (count symbols))))))
(deftest ukrainian-alphabet-factory-test
(let [symbols (ukrainian-alphabet-factory)]
(testing "It must have the same order."
(is (= "абвгґдеєжзиіїйклмнопрстуфхцчшщьюяАБВГҐДЕЄЖЗИІЇЙКЛМНОПРСТУФХЦЧШЩЬЮЯ" symbols)))
(testing "It must have 2*33 letters."
(is (= (* 2 33) (count symbols))))))
(deftest digit-set-factory-test (deftest digit-set-factory-test
(let [symbols (digit-set-factory)] (let [symbols (digit-set-factory)]
(testing "It must have the same order." (testing "It must have the same order."
@ -61,15 +45,15 @@
(is (= 3 (count symbols)))))) (is (= 3 (count symbols))))))
(deftest default-symbol-factory-test (deftest default-symbol-factory-test
(testing "If language code is 'en', then it must have symbols." (testing "If language code is 'en', then it must have 27 symbols."
(let [symbols (default-symbol-factory "en")] (let [symbols (default-symbol-factory "en")]
(is (= 70 (count symbols))))) (is (= 27 (count symbols)))))
(testing "If language code is 'uk', then it must have symbols." (testing "If language code is 'uk', then it must have 34 symbols."
(let [symbols (default-symbol-factory "uk")] (let [symbols (default-symbol-factory "uk")]
(is (= 84 (count symbols))))) (is (= 34 (count symbols)))))
(testing "If language code is unidentified, then it must have the 'en'." (testing "If language code is unidentified, then it must have the 'en'."
(let [symbols (default-symbol-factory "Maybe a code")] (let [symbols (default-symbol-factory "Maybe a code")]
(is (= 70 (count symbols)))))) (is (= 27 (count symbols))))))

Loading…
Cancel
Save