 ;; -----------------------------------------------------------------------------
 ;; Property definitions for maze algorithms
 
-;; In these definitions, some names are used consistently to help make
-;; things clearer.
-;;
-;; * the word "final" refers to the final grid (the one that is the return
-;;   value from the algorithm)
-;; * the word "update" refers to all grids.  Each update is supposed to
-;;   include changes (because there's no sense supplying them for animation
-;;   unless they've changed).
-;; * the word "incomplete" refers to all of the updates *prior* to the final
-;;   grid.
-
 ;; Is the final grid a perfect maze?
 (defmacro check-algorithm-perfect-maze [alg-name]
   `(defspec ~(symbol (str alg-name "-produces-a-perfect-maze"))

;; I thought this was failing just because there's a redundant update at the
;; end.  But no ... filtered that out, and apparently sometimes max increases
;; by 2.
(defspec distances-seq-max-advances-by-1 ;f
  10
  (prop/for-all [[maze start-coord] gen-maze-and-coord]
    (let [intermediates (butlast (all-updates #(distances-seq maze start-coord)))


;; -----------------------------------------------------------------------------
;; Properties for analysis algorithms

(defspec distances-seq-changes-each-cell-exactly-once
  10
