From 8e6c5fc029178674275758f7c68425b13a473208 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Mon, 4 Sep 2017 20:01:01 -0400 Subject: - Renamed "Log" to "Writer". --- stdlib/test/test/lux/control/writer.lux | 43 +++++++++++++++++++++++++++++++++ stdlib/test/test/lux/data/log.lux | 43 --------------------------------- stdlib/test/tests.lux | 2 +- 3 files changed, 44 insertions(+), 44 deletions(-) create mode 100644 stdlib/test/test/lux/control/writer.lux delete mode 100644 stdlib/test/test/lux/data/log.lux (limited to 'stdlib/test') diff --git a/stdlib/test/test/lux/control/writer.lux b/stdlib/test/test/lux/control/writer.lux new file mode 100644 index 000000000..8c9e1c676 --- /dev/null +++ b/stdlib/test/test/lux/control/writer.lux @@ -0,0 +1,43 @@ +(;module: + lux + (lux [io] + (control ["M" monad #+ do Monad] + pipe + ["&" writer]) + (data [text "Text/" Monoid Eq] + [number] + [product])) + lux/test) + +(context: "Writer." + (let [(^open "&/") (&;Monad text;Monoid)] + ($_ seq + (test "Functor respects Writer." + (i.= 11 (product;right (&/map i.inc ["" 10])))) + + (test "Applicative respects Writer." + (and (i.= 20 (product;right (&/wrap 20))) + (i.= 30 (product;right (&/apply (&/wrap (i.+ 10)) (&/wrap 20)))))) + + (test "Monad respects Writer." + (i.= 30 (product;right (do (&;Monad text;Monoid) + [f (wrap i.+) + a (wrap 10) + b (wrap 20)] + (wrap (f a b)))))) + + (test "Can log any value." + (Text/= "YOLO" (product;left (&;log "YOLO")))) + ))) + +(context: "Monad transformer" + (let [lift (&;lift text;Monoid io;Monad) + (^open "io/") io;Monad] + (test "Can add writer functionality to any monad." + (|> (io;run (do (&;WriterT text;Monoid io;Monad) + [a (lift (io/wrap 123)) + b (wrap 456)] + (wrap (i.+ a b)))) + (case> ["" 579] true + _ false))) + )) diff --git a/stdlib/test/test/lux/data/log.lux b/stdlib/test/test/lux/data/log.lux deleted file mode 100644 index bcd3a1a56..000000000 --- a/stdlib/test/test/lux/data/log.lux +++ /dev/null @@ -1,43 +0,0 @@ -(;module: - lux - (lux [io] - (control ["M" monad #+ do Monad] - pipe) - (data ["&" log] - [text "Text/" Monoid Eq] - [number] - [product])) - lux/test) - -(context: "Logs" - (let [(^open "&/") (&;Monad text;Monoid)] - ($_ seq - (test "Functor respects Log." - (i.= 11 (product;right (&/map i.inc ["" 10])))) - - (test "Applicative respects Log." - (and (i.= 20 (product;right (&/wrap 20))) - (i.= 30 (product;right (&/apply (&/wrap (i.+ 10)) (&/wrap 20)))))) - - (test "Monad respects Log." - (i.= 30 (product;right (do (&;Monad text;Monoid) - [f (wrap i.+) - a (wrap 10) - b (wrap 20)] - (wrap (f a b)))))) - - (test "Can log any value." - (Text/= "YOLO" (product;left (&;log "YOLO")))) - ))) - -(context: "Monad transformer" - (let [lift (&;lift text;Monoid io;Monad) - (^open "io/") io;Monad] - (test "Can add log functionality to any monad." - (|> (io;run (do (&;LogT text;Monoid io;Monad) - [a (lift (io/wrap 123)) - b (wrap 456)] - (wrap (i.+ a b)))) - (case> ["" 579] true - _ false))) - )) diff --git a/stdlib/test/tests.lux b/stdlib/test/tests.lux index fffe409c4..9b0f8ff11 100644 --- a/stdlib/test/tests.lux +++ b/stdlib/test/tests.lux @@ -23,6 +23,7 @@ ["_;" pipe] ["_;" cont] ["_;" reader] + ["_;" writer] ["_;" state] ["_;" parser]) (data ["_;" bit] @@ -30,7 +31,6 @@ ["_;" result] ["_;" ident] ["_;" identity] - ["_;" log] ["_;" maybe] ["_;" number] ["_;" product] -- cgit v1.2.3