@@ -4,25 +4,24 @@ import Prelude
4
4
5
5
import Control.Monad.State (evalState , get )
6
6
import Data.Either (Either (..))
7
- import Data.Lens (Getter' , Prism' , _1 , _2 , _Just , _Left , collectOf , lens , lens' , preview , prism' , takeBoth , toArrayOf , traversed , view , lensStore )
7
+ import Data.Lens (Getter' , Prism' , _1 , _2 , _Just , _Left , collectOf , lens , lens' , lensStore , preview , prism' , takeBoth , toArrayOf , traversed , view )
8
8
import Data.Lens.Fold ((^?))
9
9
import Data.Lens.Fold.Partial ((^?!), (^@?!))
10
10
import Data.Lens.Grate (Grate , cloneGrate , grate , zipWithOf )
11
11
import Data.Lens.Index (ix )
12
12
import Data.Lens.Indexed (itraversed , reindexed )
13
- import Data.Lens.Lens (ilens , IndexedLens , cloneIndexedLens )
13
+ import Data.Lens.Lens (IndexedLens , cloneIndexedLens , ilens )
14
14
import Data.Lens.Record (prop )
15
15
import Data.Lens.Setter (iover )
16
16
import Data.Lens.Traversal (cloneTraversal )
17
- import Data.Lens.Zoom (ATraversal' , IndexedTraversal' , Traversal , Traversal ' , Lens , Lens ' , zoom )
17
+ import Data.Lens.Zoom (ATraversal' , IndexedTraversal' , Lens , Lens ' , Traversal , Traversal ' , zoom )
18
18
import Data.Maybe (Maybe (..))
19
19
import Data.Tuple (Tuple (..), fst , snd )
20
20
import Effect (Effect )
21
- import Effect.Console (logShow )
22
21
import Partial.Unsafe (unsafePartial )
22
+ import Test.Assert (assertEqual' )
23
23
import Type.Proxy (Proxy (..))
24
24
25
- -- Traversing an array nested within a record
26
25
foo :: forall a b r . Lens { foo :: a | r } { foo :: b | r } a b
27
26
foo = prop (Proxy :: Proxy " foo" )
28
27
@@ -43,7 +42,7 @@ data ABC = A (Array XYZ) | B | C
43
42
data XYZ = X Number | Y | Z
44
43
45
44
_A :: Prism' ABC (Array XYZ )
46
- _A = prism' A case _ of
45
+ _A = prism' A case _ of
47
46
(A array) -> Just array
48
47
_ -> Nothing
49
48
@@ -130,14 +129,47 @@ lensStoreExampleInt = lens' case _ of
130
129
131
130
main :: Effect Unit
132
131
main = do
133
- logShow $ view bars doc
134
- logShow $ view barAndFoo { bar: " bar" , foo: " foo" }
135
- logShow $ doc2 ^? _1bars
136
- logShow $ arrayOfNumbers $ A [(X 1.0 ), (X 2.0 ), (X 3.0 )]
137
- logShow $ unsafePartial $ doc2 ^?! _1bars
138
- logShow $ unsafePartial $ Tuple 0 1 ^@?! i_2
139
- logShow stateTest
140
- logShow cloneTest
141
- logShow (summing (Tuple 1 2 ) (Tuple 3 4 ))
142
- logShow (collectOfTest (\a -> Tuple (a + a) (a * a)) [4 , 5 ])
143
- logShow cloneTraversalTest
132
+ assertEqual' """ view bars doc"""
133
+ { expected: " Hello World"
134
+ , actual: view bars doc
135
+ }
136
+ assertEqual' """ view barAndFoo { bar: "bar", foo: "foo" }"""
137
+ { expected: Tuple " bar" " foo"
138
+ , actual: view barAndFoo { bar: " bar" , foo: " foo" }
139
+ }
140
+ assertEqual' """ doc2 ^? _1bars"""
141
+ { expected: Just 2
142
+ , actual: doc2 ^? _1bars
143
+ }
144
+ assertEqual' """ arrayOfNumbers $ A [(X 1.0), (X 2.0), (X 3.0)]"""
145
+ { expected: [1.0 ,2.0 ,3.0 ]
146
+ , actual: arrayOfNumbers $ A [(X 1.0 ), (X 2.0 ), (X 3.0 )]
147
+ }
148
+ assertEqual' """ unsafePartial $ doc2 ^?! _1bars"""
149
+ { expected: 2
150
+ , actual: unsafePartial $ doc2 ^?! _1bars
151
+ }
152
+ assertEqual' """ unsafePartial $ Tuple 0 1 ^@?! i_2"""
153
+ { expected: Tuple 0 1
154
+ , actual: unsafePartial $ Tuple 0 1 ^@?! i_2
155
+ }
156
+ assertEqual' """ stateTest"""
157
+ { expected: Tuple 4 " FooBar"
158
+ , actual: stateTest
159
+ }
160
+ assertEqual' """ cloneTest"""
161
+ { expected: Tuple 1 (Tuple 0 2 )
162
+ , actual: cloneTest
163
+ }
164
+ assertEqual' """ summing (Tuple 1 2) (Tuple 3 4)"""
165
+ { expected: Tuple 4 6
166
+ , actual: summing (Tuple 1 2 ) (Tuple 3 4 )
167
+ }
168
+ assertEqual' """ collectOfTest (\a -> Tuple (a + a) (a * a)) [4, 5]"""
169
+ { expected: Tuple [8 ,10 ] [16 ,25 ]
170
+ , actual: collectOfTest (\a -> Tuple (a + a) (a * a)) [4 , 5 ]
171
+ }
172
+ assertEqual' """ cloneTraversalTest"""
173
+ { expected: Just 1
174
+ , actual: cloneTraversalTest
175
+ }
0 commit comments