1(import (edward buffer)2 (edward util))34(define-bench (buffer-append-single-at-end)5 (let ((buffer (make-buffer)))6 (repeat7 100008 (lambda ()9 (buffer-append!10 buffer11 (buffer-length buffer)12 (list (random-string)))))))1314(define-bench (buffer-append-multi-at-end)15 (let ((buffer (make-buffer)))16 (repeat17 1000018 (let ((next-size 1)19 (max-size 10))20 (lambda ()21 (buffer-append!22 buffer23 (buffer-length buffer)24 (generate-list random-string next-size))25 (set! next-size (modulo (inc next-size) max-size)))))))2627(define-bench (buffer-append-single-randomly)28 (let ((buffer (make-buffer)))29 (repeat30 1000031 (lambda ()32 (buffer-append!33 buffer34 (pseudo-random-integer (buffer-length buffer))35 (list (random-string)))))))3637(define-bench (buffer-remove-from-front)38 (let ((buffer (make-buffer))39 (elems 15000))40 (buffer-append! buffer 0 (generate-list random-string elems))41 (repeat elems42 (lambda ()43 (buffer-remove! buffer 1 1)))))4445(define-bench (buffer-remove-from-back)46 (let ((buffer (make-buffer))47 (elems 15000))48 (buffer-append! buffer 0 (generate-list random-string elems))49 (repeat elems50 (lambda ()51 (let ((len (buffer-length buffer)))52 (buffer-remove! buffer len len))))))5354(define-bench (buffer-remove-entire-content)55 (let ((buffer (make-buffer))56 (elems 100000))57 (buffer-append! buffer 0 (generate-list random-string elems))58 (buffer-remove! buffer 1 elems)))5960(define-bench (buffer-join-entire-content)61 (let ((buffer (make-buffer))62 (elems 30000))63 (buffer-append! buffer 0 (generate-list random-string elems))64 (buffer-join! buffer 1 elems)))