[funds-cvs] r88 - trunk/funds/tests/trees
abaine at common-lisp.net
abaine at common-lisp.net
Wed Jul 11 20:41:24 UTC 2007
Author: abaine
Date: Wed Jul 11 16:41:24 2007
New Revision: 88
Modified:
trunk/funds/tests/trees/avl-tree-test.lisp
Log:
Corrected assert-avl-valid macro per Rahul Jain's suggestion.
Modified: trunk/funds/tests/trees/avl-tree-test.lisp
==============================================================================
--- trunk/funds/tests/trees/avl-tree-test.lisp (original)
+++ trunk/funds/tests/trees/avl-tree-test.lisp Wed Jul 11 16:41:24 2007
@@ -17,19 +17,17 @@
(in-package :funds-tests)
-(defun random-tree (&key (test #'eql) (order #'<))
- (reduce #'(lambda (tr v)
- (tree-insert tr v v :test test :order order))
- (loop for i below 40 collect (random 20))
- :initial-value (make-avl-tree)))
-
-(defconstant +never-equal+ #'(lambda (a b) (declare (ignore a b)) nil))
-
(defmacro assert-avl-valid (tree &key (order #'<))
- `(progn
- (assert-true (height-correct-p ,tree) (funds::tree-as-pre-order-alist ,tree))
- (assert-true (balanced-p ,tree) (funds::tree-as-pre-order-alist ,tree))
- (assert-true (ordered-p ,tree :order ,order) (funds::tree-as-pre-order-alist ,tree))))
+ (let ((tree-var (gensym "TREE-"))
+ (order-var (gensym "ORDER-")))
+ `(let ((,tree-var ,tree)
+ (,order-var ,order))
+ (assert-true (height-correct-p ,tree-var)
+ (funds::tree-as-pre-order-alist ,tree-var))
+ (assert-true (balanced-p ,tree-var)
+ (funds::tree-as-pre-order-alist ,tree-var))
+ (assert-true (ordered-p ,tree-var :order ,order-var)
+ (funds::tree-as-pre-order-alist ,tree-var)))))
(define-test test-tree-empty-p
(assert-true (tree-empty-p (make-avl-tree)))
@@ -39,6 +37,12 @@
(let ((tree (random-tree)))
(assert-avl-valid tree)))
+(defun random-tree (&key (test #'eql) (order #'<))
+ (reduce #'(lambda (tr v)
+ (tree-insert tr v v :test test :order order))
+ (loop for i below 40 collect (random 20))
+ :initial-value (make-avl-tree)))
+
(defun height-correct-p (tree)
"Whether (tree-height tree) returns the correct height of the given
AVL Tree. The height is correct if (a) the tree is empty and zero
More information about the Funds-cvs
mailing list