%----------- generic divide test -------------------------------------

(on comp)

(de random ()
  % Returns a pseudo-random number between 0 and RandomModulus-1 (inclusive).
  (setq randomseed
        (remainder (plus (times 232 randomseed) 65537) randommodulus)))

(setq randommodulus 5000)
(setq randomseed 500)

(de testdivide()
  (prog (n m big1 big2 q)
  lupe
    (setq n (random))
    (setq m (random))
    (when (greaterp m n) (setq q n) (setq n m) (setq m q))
    (setq big1 (number n))
    (setq big2 (number m))
    (prin2 (list n m))
    (setq q (divide big1 big2))
    (when (not (equal big1 (plus (times (car q) big2) (cdr q))))
          (print (list "FEHLER " n m))
          (exitlisp))
    (go lupe) ))

(de number(n)
  (if (eq n 0) 0
      (plus (times 10 (number (sub1 n))) 1)))

(testdivide)
