     (assert (not (re-find (re-pattern patt-str) "xxcd" )))
     (assert (not (re-find (re-pattern patt-str) "xxxd" )))
     (println)
-  )
-
-  ; Test array slicing functions
-  (let [tstArr [ [:a :b :c] [1 2 3] [\a \b \c]] ]
-    (assert (= (get-array-row tstArr 0) [:a :b :c] ))
-    (assert (= (get-array-row tstArr 1) [ 1  2  3] ))
-    (assert (= (get-array-row tstArr 2) [\a \b \c] ))
-    (assert (= (get-array-col tstArr 0) [:a  1 \a] ))
-    (assert (= (get-array-col tstArr 1) [:b  2 \b] ))
-    (assert (= (get-array-col tstArr 2) [:c  3 \c] ))
   )
 
   ; Match guesses

          (println "clue: " (format-clue clue) 
                    "  keep-words(" (count keep-words) "):" 
                    (take 10 (map str/join keep-words)) "..." )
          (if (= 1 (num-rows keep-words))
            (let [final-guess (str/join (keep-words 0)) ]
              (println (str "***** found word:  '" final-guess "'  *****") )
              (println "matches:" (= final-guess tgt-word)) )

(defn make-guess
  "Generate the next guess letter by calculating the bits of information for each possible
  guess letter. "
  [word-list used-chars]
  (let [avail-chars   (set/difference all-letters used-chars)
        char-bits     (zipmap avail-chars (map #(calc-info-bits word-list %) avail-chars) )
        best-char     (apply max-key char-bits avail-chars) ]
    best-char ) )

