(require 'cl-lib) (require 'benchmark) (defmacro random-cases (cases var actual-value) `(cond ,@(cl-loop for i from 0 to cases collect `((eq ,var ,(random)) ,i)) ((eq ,var ,actual-value) t))) (message "%s" (benchmark-run-compiled 100000 (let ((v 2)) (random-cases 3000 v 2))))