changelog shortlog graph tags branches changeset files revisions annotate raw help

Mercurial > demo / src/tests/utils.lisp

changeset 26: 2015d7277629
author: ellis <ellis@rwest.io>
date: Mon, 05 Jun 2023 19:59:26 -0400
permissions: -rw-r--r--
description: refactor 01
1 (in-package #:demo-tests)
2 
3 (def-suite* :demo.utils
4  :in :demo)
5 
6 (defun gen-word ()
7  (gen-one-element "lorem" "ipsum"))
8 
9 (defun gen-text-element ()
10  (let ((word (gen-word)))
11  (lambda ()
12  (case (random 10)
13  (9 #\Newline)
14  (t (funcall word))))))
15 
16 (defun gen-text (&key (length (gen-integer :min 1 :max 20))
17  (element (gen-text-element)))
18  (let ((elements (gen-list :length length :elements element)))
19  (lambda ()
20  (with-output-to-string (stream)
21  (loop for previous = nil then element
22  for element in (funcall elements)
23  do (cond ((and previous (not (eql previous #\Newline)) (not (eql element #\Newline)))
24  (write-char #\Space stream)
25  (write-string element stream))
26  (t ; (and (eql previous #\Newline) (not (eql element #\Newline)))
27  (princ element stream))))))))
28 
29 (defun gen-offset (&key (integer (gen-integer :min -10 :max 10)))
30  (lambda ()
31  (case (random 10)
32  ((8 9 10) nil)
33  (t (funcall integer)))))
34 
35 (defun gen-margin (&key (integer (gen-integer :min 1 :max 10)))
36  (lambda ()
37  (case (random 10)
38  ((8 9 10) nil)
39  (t (funcall integer)))))
40 
41 (defun gen-count (&key (integer (gen-integer :min 1 :max 10)))
42  (lambda ()
43  (case (random 10)
44  ((8 9 10) nil)
45  (t (funcall integer)))))
46