Hey,

map-inverted-index shows some strange behavior. When you pass it
`start' and `end' arguments and there are no objects that satisfy the
range, it maps over the first object greater than end. I haven't have
time to investigate it thoroughly, but I have written a 5am unit-test
(you are using this test framework, aren't you?).

(defpclass foo ()
  ((str :type string
        :initarg :str
        :reader str-of
        :index t)))

(test map-inverted-index-1
  (with-open-store (`(:bdb "/tmp/store/"))
    (drop-instances (get-instances-by-class 'foo))
    (loop :for st :in '("a" "b" "c" "d" "g" "ga" "gb" "gc" "z")
          :do (make-instance 'foo :str st))
    (is (null (map-inverted-index (lambda (x y)
                                    (declare (ignore y))
                                    x) 'foo 'str :start "f" :end "fz" :collect 
t)))))

This was on Ubuntu Hardy Heron, with BerkeleyDB 4.5 from Ubuntu
packages, SBCL 1.0.15 and the newest unstable branch of Elephant (I've
just made darcs pull). Funny enough, a friend of mine who is using a
Macintosh is not getting this bug (he also uses unstable but I'm not
sure whether it is the newest version).

-- 
http://szopa.tasak.gda.pl/
_______________________________________________
elephant-devel site list
elephant-devel@common-lisp.net
http://common-lisp.net/mailman/listinfo/elephant-devel

Reply via email to