mirror of
https://github.com/fiddlerwoaroof/data-lens.git
synced 2025-11-08 18:26:32 +00:00
chore: begin to add tests
This commit is contained in:
@ -21,5 +21,17 @@
|
||||
:depends-on (:data-lens
|
||||
:alexandria)
|
||||
:serial t
|
||||
:in-order-to ((test-op (test-op :data-lens/transducer/test)))
|
||||
:components ((:file "package")
|
||||
(:file "transducers")))
|
||||
|
||||
(asdf:defsystem #:data-lens/transducer/test
|
||||
:description "tests for the transducers"
|
||||
:author "Edward Langley <el-cl@elangley.org>"
|
||||
:license "MIT"
|
||||
:depends-on (:data-lens/beta/transducer
|
||||
:fiveam)
|
||||
:serial t
|
||||
:perform (test-op (o c) (symbol-call :fiveam '#:run! :data-lens.transducers))
|
||||
:components ((:module "t"
|
||||
:components ((:file "transducer")))))
|
||||
|
||||
39
t/transducer.lisp
Normal file
39
t/transducer.lisp
Normal file
@ -0,0 +1,39 @@
|
||||
(defpackage :fwoar.lisp-sandbox.t.transducer
|
||||
(:use :cl )
|
||||
(:export ))
|
||||
(in-package :fwoar.lisp-sandbox.t.transducer)
|
||||
|
||||
(5am:def-suite :data-lens.transducers)
|
||||
(5am:in-suite :data-lens.transducers)
|
||||
|
||||
(5am:def-test mapping (:suite :data-lens.transducers)
|
||||
(5am:is (equal '(2 3 4)
|
||||
(data-lens.transducers:transduce (data-lens.transducers:mapping '1+)
|
||||
'data-lens.transducers:list-builder
|
||||
'(1 2 3)))))
|
||||
|
||||
(5am:def-test mv-mapping (:suite :data-lens.transducers)
|
||||
(5am:is (equal '((2 0) (3 1) (4 2))
|
||||
(data-lens.transducers:transduce (data-lens.transducers:mv-mapping
|
||||
(lambda (it)
|
||||
(values (1+ it) (1- it))))
|
||||
'data-lens.transducers:list-builder
|
||||
'(1 2 3)))))
|
||||
|
||||
(5am:def-test transducer-composition (:suite :data-lens.transducers)
|
||||
(5am:is (equal '(3 5 7)
|
||||
(data-lens.transducers:transduce (data-lens:•
|
||||
(data-lens.transducers:mapping
|
||||
(lambda (x)
|
||||
(* 2 x)))
|
||||
(data-lens.transducers:mapping '1+))
|
||||
'data-lens.transducers:list-builder
|
||||
'(1 2 3))))
|
||||
(5am:is (equal '(3 5 7)
|
||||
(data-lens.transducers:transduce (data-lens:•
|
||||
(data-lens.transducers:mapping
|
||||
(lambda (x)
|
||||
(* 2 x)))
|
||||
(data-lens.transducers:mapping '1+))
|
||||
'data-lens.transducers:list-builder
|
||||
'(1 2 3)))))
|
||||
Reference in New Issue
Block a user