diff --git a/test/cipher_analytical_machine/symbol_factories_test.clj b/test/cipher_analytical_machine/symbol_factories_test.clj new file mode 100644 index 0000000..8bb252e --- /dev/null +++ b/test/cipher_analytical_machine/symbol_factories_test.clj @@ -0,0 +1,46 @@ +(ns cipher-analytical-machine.symbol-factories-test + (:require + [clojure.test :refer :all] + [cipher-analytical-machine.symbol_factories :refer :all] + )) + +(deftest lower-english-alphabet-factory-test + (let [symbols (lower-english-alphabet-factory)] + (testing "It must have same order" + (is (= "abcdefghijklmnopqrstuvwxyz" symbols))) + + (testing "It must have 26 letters" + (is (= 26 (count symbols)))))) + +(deftest english-alphabet-factory-test + (let [symbols (english-alphabet-factory)] + (testing "It must have 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 same order" + (is (= "абвгґдеєжзиіїйклмнопрстуфхцчшщьюя" symbols))) + + (testing "It must have 33 letters" + (is (= 33 (count symbols)))))) + +(deftest ukrainian-alphabet-factory-test + (let [symbols (ukrainian-alphabet-factory)] + (testing "It must have same order" + (is (= "абвгґдеєжзиіїйклмнопрстуфхцчшщьюяАБВГҐДЕЄЖЗИІЇЙКЛМНОПРСТУФХЦЧШЩЬЮЯ" symbols))) + + (testing "It must have 2*33 letters" + (is (= (* 2 33) (count symbols)))))) + +(deftest digit-set-factory-test + (let [symbols (digit-set-factory)] + (testing "It must have same order" + (is (= "0123456789" symbols))) + + (testing "It must have 10 digits" + (is (= 10 (count symbols)))))) +