diff --git a/exercises/practice/simple-cipher/.meta/generator.tpl b/exercises/practice/simple-cipher/.meta/generator.tpl index adcdb5508..e2e8736f4 100644 --- a/exercises/practice/simple-cipher/.meta/generator.tpl +++ b/exercises/practice/simple-cipher/.meta/generator.tpl @@ -3,13 +3,13 @@ simple-cipher)) {{#test_cases.key}} -(deftest rand-key_test_{{idx}} +(deftest ^:rand-key rand-key_test_{{idx}} (testing {{context}} (is (true? (boolean (re-matches #{{expected.match}} (simple-cipher/rand-key))))))) {{/test_cases.key}} {{#test_cases.encode}} -(deftest encode_test_{{idx}} +(deftest ^:encode encode_test_{{idx}} (testing {{context}} {{#if input.key~}} (is (= {{expected}} (simple-cipher/encode {{input.key}} {{input.plaintext}}))))) @@ -20,7 +20,7 @@ {{/test_cases.encode}} {{#test_cases.decode}} -(deftest decode_test_{{idx}} +(deftest ^:decode decode_test_{{idx}} (testing {{context}} {{#if input.key~}} (is (= {{expected}} (simple-cipher/decode {{input.key}} {{#if input.plaintext}}(simple-cipher/encode {{input.key}} {{input.plaintext}}){{else}}{{input.ciphertext}}{{/if}}))))) diff --git a/exercises/practice/simple-cipher/project.clj b/exercises/practice/simple-cipher/project.clj index f2cbab9fc..402dfe02a 100644 --- a/exercises/practice/simple-cipher/project.clj +++ b/exercises/practice/simple-cipher/project.clj @@ -1,4 +1,7 @@ (defproject simple-cipher "0.1.0-SNAPSHOT" :description "simple-cipher exercise." :url "https://github.com/exercism/clojure/tree/main/exercises/practice/simple-cipher" - :dependencies [[org.clojure/clojure "1.12.0"]]) + :dependencies [[org.clojure/clojure "1.12.0"]] + :test-selectors {:rand-key :rand-key + :encode :encode + :decode :decode}) diff --git a/exercises/practice/simple-cipher/test/simple_cipher_test.clj b/exercises/practice/simple-cipher/test/simple_cipher_test.clj index 28d0be725..fb8d4fa8a 100644 --- a/exercises/practice/simple-cipher/test/simple_cipher_test.clj +++ b/exercises/practice/simple-cipher/test/simple_cipher_test.clj @@ -2,53 +2,53 @@ (:require [clojure.test :refer [deftest testing is]] simple-cipher)) -(deftest rand-key_test_1 +(deftest ^:rand-key rand-key_test_1 (testing "Random key cipher ▶ Key is made only of lowercase letters" (is (true? (boolean (re-matches #"^[a-z]+$" (simple-cipher/rand-key))))))) -(deftest encode_test_1 +(deftest ^:encode encode_test_1 (testing "Random key cipher ▶ Can encode" (let [key (simple-cipher/rand-key)] (is (= (subs key 0 (count "aaaaaaaaaa")) (simple-cipher/encode key "aaaaaaaaaa")))))) -(deftest encode_test_2 +(deftest ^:encode encode_test_2 (testing "Substitution cipher ▶ Can encode" (is (= "abcdefghij" (simple-cipher/encode "abcdefghij" "aaaaaaaaaa"))))) -(deftest encode_test_3 +(deftest ^:encode encode_test_3 (testing "Substitution cipher ▶ Can double shift encode" (is (= "qayaeaagaciai" (simple-cipher/encode "iamapandabear" "iamapandabear"))))) -(deftest encode_test_4 +(deftest ^:encode encode_test_4 (testing "Substitution cipher ▶ Can wrap on encode" (is (= "zabcdefghi" (simple-cipher/encode "abcdefghij" "zzzzzzzzzz"))))) -(deftest encode_test_5 +(deftest ^:encode encode_test_5 (testing "Substitution cipher ▶ Can encode messages longer than the key" (is (= "iboaqcnecbfcr" (simple-cipher/encode "abc" "iamapandabear"))))) -(deftest decode_test_1 +(deftest ^:decode decode_test_1 (testing "Random key cipher ▶ Can decode" (let [key (simple-cipher/rand-key)] (is (= "aaaaaaaaaa" (simple-cipher/decode key (subs key 0 (count "aaaaaaaaaa")))))))) -(deftest decode_test_2 +(deftest ^:decode decode_test_2 (testing "Random key cipher ▶ Is reversible. I.e., if you apply decode in a encoded result, you must see the same plaintext encode parameter as a result of the decode method" (let [key (simple-cipher/rand-key)] (is (= "abcdefghij" (simple-cipher/decode key (simple-cipher/encode key "abcdefghij"))))))) -(deftest decode_test_3 +(deftest ^:decode decode_test_3 (testing "Substitution cipher ▶ Can decode" (is (= "aaaaaaaaaa" (simple-cipher/decode "abcdefghij" "abcdefghij"))))) -(deftest decode_test_4 +(deftest ^:decode decode_test_4 (testing "Substitution cipher ▶ Is reversible. I.e., if you apply decode in a encoded result, you must see the same plaintext encode parameter as a result of the decode method" (is (= "abcdefghij" (simple-cipher/decode "abcdefghij" (simple-cipher/encode "abcdefghij" "abcdefghij")))))) -(deftest decode_test_5 +(deftest ^:decode decode_test_5 (testing "Substitution cipher ▶ Can wrap on decode" (is (= "zzzzzzzzzz" (simple-cipher/decode "abcdefghij" "zabcdefghi"))))) -(deftest decode_test_6 +(deftest ^:decode decode_test_6 (testing "Substitution cipher ▶ Can decode messages longer than the key" (is (= "iamapandabear" (simple-cipher/decode "abc" "iboaqcnecbfcr")))))