Add the function that return all key combinations for a possible key vector.
continuous-integration/drone/push Build is passing

This commit is contained in:
2023-11-14 21:55:29 +02:00
parent d6ba958b5b
commit 481735d9df
2 changed files with 19 additions and 0 deletions
@@ -35,3 +35,16 @@
[[\a \b] [\a \c]] '("aa" "ac" "ba" "bc")
[[\a \b \c] [\a \c] [\b \c]] '("aab" "aac" "acb" "acc" "bab" "bac" "bcb" "bcc" "cab" "cac" "ccb" "ccc"))))
(deftest get-possible-key-combinations-test
(testing "The keys must be the all combinations, but the blocks must create a permutations which will be joined as a combination"
(are [possible-keys-vector expected-keys]
(= expected-keys (get-possible-key-combinations possible-keys-vector))
[[\a \b] [\f] [\e \c] [\g]] '("abfecg" "abfceg" "bafecg" "bafceg")
[[\a \b] [\a \c]] '("abac" "abca" "baac" "baca")
[[\a \b \c] [\a \c] [\b \c]] '("abcacbc" "abcaccb" "abccabc" "abccacb"
"acbacbc" "acbaccb" "acbcabc" "acbcacb"
"bacacbc" "bacaccb" "baccabc" "baccacb"
"bcaacbc" "bcaaccb" "bcacabc" "bcacacb"
"cabacbc" "cabaccb" "cabcabc" "cabcacb"
"cbaacbc" "cbaaccb" "cbacabc" "cbacacb"))))