 ;; 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
+(defspec distances-seq-max-advances-by-1
   10
   (prop/for-all [[maze start-coord] gen-maze-and-coord]
     (let [intermediates (butlast (all-updates #(distances-seq maze start-coord)))

      (= (set (grid/grid-coords grid))
         (set (keys change-counts))))))

(defspec distances-seq-each-intermediate-changes ;f
  5
  (prop/for-all [[grid start-coord] gen-grid-and-coord]
    (let [maze (final-update #((algorithm-functions "binary-tree") grid))

;; -----------------------------------------------------------------------------
;; Property definitions for maze algorithms

;; Is the final grid a perfect maze?
(defmacro check-algorithm-perfect-maze [alg-name]
  `(defspec ~(symbol (str alg-name "-produces-a-perfect-maze"))
