moved old instructions for external packages to top-level in preparation for nuking...
[CommonLispStat.git] / external / lift.darcs / _darcs / pristine / dev / lift-randomized.lisp
blob8eddebb8817c34e6ee4d7d57efb1c0160fe4c812
1 (in-package #:lift)
3 ;;; ---------------------------------------------------------------------------
4 ;;; randomized testing helpers
5 ;;; ---------------------------------------------------------------------------
7 (u:export-exported-symbols "VARIATES" "LIFT")
9 ;;; ---------------------------------------------------------------------------
11 (defclass randomized-testsuite-mixin (test-mixin)
12 ((generator
13 :reader generator)
14 (shuffle-methods?
15 :initform t
16 :initarg :shuffle-methods?
17 :reader shuffle-methods?)))
19 ;;; ---------------------------------------------------------------------------
21 (defmethod testsuite-methods :around ((case randomized-testsuite-mixin))
22 (let ((methods (call-next-method)))
23 (if (shuffle-methods? case)
24 (variates:shuffle-elements! (copy-list methods) :generator (generator case))
25 methods)))
27 ;;; ---------------------------------------------------------------------------
28 ;;; single-setup testing
29 ;;; ---------------------------------------------------------------------------
31 (defclass single-setup-mixin (test-mixin)
32 ((single-setup?
33 :initform nil
34 :initargs :single-setup?
35 :reader single-setup?)))
37 ;;; ---------------------------------------------------------------------------
39 (defmethod initialize-instance :after ((object single-setup-mixin) &key)
40 ;; no shuffling of single setup tests
41 (when (slot-exists-p object 'shuffle-methods?)
42 (setf (slot-value object 'shuffle-methods?) nil)))