/usr/share/common-lisp/source/spatial-trees/spatial-tree-test.lisp is in cl-spatial-trees 0.2-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | ;;; Somewhat rudimentary tests of external functionality
(in-package "SPATIAL-TREES-IMPL")
(defvar *kinds* '(:r :greene :r* :x))
(defun make-random-rectangle (&optional (x-bias 0.0) (y-bias 0.0))
  (let* ((lx (+ (random 1.0) x-bias))
         (ly (+ (random 1.0) y-bias))
         (hx (+ (random 1.0) lx))
         (hy (+ (random 1.0) ly)))
    (make-rectangle :lows (list lx ly) :highs (list hx hy))))
(dolist (kind *kinds*)
  (format *trace-output* "~&Random search for kind ~S..." kind)
  (finish-output *trace-output*)
  (let* ((list (loop repeat 1000 collect (make-random-rectangle)))
         (tree (make-spatial-tree kind :rectfun #'identity)))
    (dolist (r list)
      (insert r tree))
    (let* ((r (make-random-rectangle))
           (result (search r tree))
           (expected (remove-if-not (lambda (x) (intersectp x r)) list)))
      (unless (null (set-difference result
                                    expected
                                    :key (lambda (x)
                                           (list (lows x) (highs x)))
                                    :test #'equal))
        (error "aargh: ~S and ~S differ" result expected))))
  (format *trace-output* " passed.~%"))
(dolist (kind *kinds*)
  (format *trace-output* "~&Trisected search for kind ~S..." kind)
  (finish-output *trace-output*)
  (let* ((n 1000)
         (list (loop repeat n collect (make-random-rectangle)
                     collect (make-random-rectangle -2.0 -2.0)
                     collect (make-random-rectangle 2.0 2.0)))
         (tree (make-spatial-tree kind :rectfun #'identity)))
    (dolist (r list)
      (insert r tree))
    (let ((r (make-rectangle :lows '(0.0 0.0) :highs '(1.0 1.0))))
      ;; FIXME: find a way to test the relative speed of the following
      ;; (sbcl-specifically if necessary).
      (search r tree)
      (remove-if-not (lambda (x) (intersectp x r)) list)
      (assert (= (length (search r tree)) n))))
  (format *trace-output* " passed.~%"))
(dolist (kind *kinds*)
  (format *trace-output* "~&Arbitrary object search for kind ~S..." kind)
  (finish-output *trace-output*)
  (let* ((n 100)
         (list (loop repeat n
                     for r = (make-random-rectangle)
                     collect (cons (lows r) (highs r))))
         (rectfun (lambda (x) (make-rectangle :lows (car x) :highs (cdr x))))
         (tree (make-spatial-tree kind :rectfun rectfun)))
    (dolist (r list)
      (insert r tree))
    (let* ((r (make-random-rectangle))
           (result (search r tree))
           (expected (remove-if-not
                      (lambda (x) (intersectp (funcall rectfun x) r))
                      list)))
      (unless (null (set-difference result expected
                                    :key (lambda (x)
                                           (let ((r (funcall rectfun x)))
                                             (list (lows r) (highs r))))
                                    :test #'equal))
        (error "aargh: ~S and ~S differ" result expected))))
  (format *trace-output* " passed.~%"))
(dolist (kind *kinds*)
  (format *trace-output* "~&Deletion test for kind ~S..." kind)
  (finish-output *trace-output*)
  (let* ((n 100)
         (list (loop repeat n collect (make-random-rectangle)))
         (tree (make-spatial-tree kind :rectfun #'identity)))
    (dolist (r list)
      (insert r tree))
    (dolist (r (cdr list))
      (delete r tree))
    (let* ((results (search (car list) tree))
           (length (length results)))
      (unless (= (length results) 1)
        (error "aargh: wrong amount of stuff (~D entries) in ~S"
               length tree))))
  (format *trace-output* " passed.~%"))
 |