@@ -18,16 +18,16 @@ tests = do
18 getFirst [] `shouldBe` (Nothing :: Maybe ())
18 getFirst [] `shouldBe` (Nothing :: Maybe ())
19 getFirst [True, False] `shouldBe` Just True
19 getFirst [True, False] `shouldBe` Just True
20 getFirst [True, True, False] `shouldBe` Just True
20 getFirst [True, True, False] `shouldBe` Just True
21− getFirst [1 .. 1000] `shouldBe` Just 1
21+ getFirst [1 .. 1000] `shouldBe` Just (1 :: Int)
22− getFirst [100 .. 1000] `shouldBe` Just 100
22+ getFirst [100 .. 1000] `shouldBe` Just (100 :: Int)
23− getFirst [6, 2, 7, 398, 1984, 383, -1020] `shouldBe` Just 6
23+ getFirst [6, 2, 7, 398, 1984, 383, -1020] `shouldBe` Just (6 :: Int)
24 it "LastMonoid" $ do
24 it "LastMonoid" $ do
25 let getLast = destructLastMonoid . fold . fmap constructLastMonoid
25 let getLast = destructLastMonoid . fold . fmap constructLastMonoid
26 getLast [1 :: Int, 2, 3] `shouldBe` Just 3
26 getLast [1 :: Int, 2, 3] `shouldBe` Just 3
27 getLast [] `shouldBe` (Nothing :: Maybe ())
27 getLast [] `shouldBe` (Nothing :: Maybe ())
28− getLast [1 .. 1000] `shouldBe` Just 1000
28+ getLast [1 .. 1000] `shouldBe` Just (1000 :: Int)
29− getLast [100 .. 10000] `shouldBe` Just 10000
29+ getLast [100 .. 10000] `shouldBe` Just (10000 :: Int)
30− getLast [6, 2, 7, 398, 1984, 383, -1020, 498] `shouldBe` Just 498
30+ getLast [6, 2, 7, 398, 1984, 383, -1020, 498] `shouldBe` Just (498 :: Int)
31 getLast [True, False] `shouldBe` Just False
31 getLast [True, False] `shouldBe` Just False
32 getLast [True, True, False] `shouldBe` Just False
32 getLast [True, True, False] `shouldBe` Just False
33 getLast [True, True, False, True] `shouldBe` Just True
33 getLast [True, True, False, True] `shouldBe` Just True
@@ -60,7 +60,6 @@ tests = do
62 `shouldBe` [ [(NotCompleted, "AAAAAAAAAA")],
62 `shouldBe` [ [(NotCompleted, "AAAAAAAAAA")],
64 [(NotCompleted, "a")]
63 [(NotCompleted, "a")]
66 getPrioritySets
65 getPrioritySets
@@ -144,7 +143,7 @@ tests = do
145 `shouldBe` [ [(NotCompleted, "OH NO")],
144 `shouldBe` [ [(NotCompleted, "OH NO")],
146 [(NotCompleted, "aaa"), (NotCompleted, "oh HaiMark")],
145 [(NotCompleted, "aaa"), (NotCompleted, "oh HaiMark")],
147− [(Completed, "a")]
146+ [(NotCompleted, "a")]
149 getPrioritySets
148 getPrioritySets
150 ( removeTask "AAAAAAAAAA" . removeTask "AAAAAAAAAA"
149 ( removeTask "AAAAAAAAAA" . removeTask "AAAAAAAAAA"
@@ -158,7 +157,7 @@ tests = do
159 `shouldBe` [ [(NotCompleted, "OH NO")],
158 `shouldBe` [ [(NotCompleted, "OH NO")],
160 [(NotCompleted, "aaa"), (NotCompleted, "oh HaiMark")],
159 [(NotCompleted, "aaa"), (NotCompleted, "oh HaiMark")],
161− [(Completed, "a")]
160+ [(NotCompleted, "a")]
163 getPrioritySets
162 getPrioritySets
164 ( removeTask "aaa" . removeTask "oh HaiMark"
163 ( removeTask "aaa" . removeTask "oh HaiMark"
@@ -172,9 +171,8 @@ tests = do
172 ("OH NO", High)
171 ("OH NO", High)
176− [(NotCompleted, "aaa")],
174+ `shouldBe` [ [(NotCompleted, "OH NO")],
177− [(Completed, "a")]
175+ [(NotCompleted, "a")]
179 it "modifyPriority" $ do
177 it "modifyPriority" $ do
180 getPrioritySets
178 getPrioritySets
@@ -186,12 +184,13 @@ tests = do
186 ("OH NO", High)
184 ("OH NO", High)
189− `shouldBe` [ [(Completed, "AAAAAAAAAA"), (NotCompleted, "OH NO"), (NotCompleted, "aaa")],
187+ `shouldBe` [ [(NotCompleted, "AAAAAAAAAA"), (NotCompleted, "OH NO"), (NotCompleted, "aaa")],
190 [(NotCompleted, "oh HaiMark")],
188 [(NotCompleted, "oh HaiMark")],
191 [(NotCompleted, "a")]
189 [(NotCompleted, "a")]
193 getPrioritySets
191 getPrioritySets
194 ( modifyPriority "aaa" High
192 ( modifyPriority "aaa" High
193+ . toggleTaskCompletion "a"
195 . modifyPriority "a" High
194 . modifyPriority "a" High
196 . createTasks
195 . createTasks
197 $ [ ("a", Low),
196 $ [ ("a", Low),
@@ -201,13 +200,12 @@ tests = do
201 ("OH NO", High)
200 ("OH NO", High)
204− `shouldBe` [ [ (Completed, "AAAAAAAAAA"),
203+ `shouldBe` [ [ (Completed, "a"),
204+ (NotCompleted, "AAAAAAAAAA"),
205 (NotCompleted, "OH NO"),
205 (NotCompleted, "OH NO"),
206− (NotCompleted, "a"),
207 (NotCompleted, "aaa")
206 (NotCompleted, "aaa")
209− [(NotCompleted, "oh HaiMark")],
208+ [(NotCompleted, "oh HaiMark")]
212 getPrioritySets
210 getPrioritySets
213 ( modifyPriority "aaa" High
211 ( modifyPriority "aaa" High
@@ -222,14 +220,12 @@ tests = do
222 ("OH NO", High)
220 ("OH NO", High)
225− `shouldBe` [ [ (Completed, "AAAAAAAAAA"),
223+ `shouldBe` [ [ (NotCompleted, "AAAAAAAAAA"),
226 (NotCompleted, "OH NO"),
224 (NotCompleted, "OH NO"),
227 (NotCompleted, "a"),
225 (NotCompleted, "a"),
228 (NotCompleted, "aaa"),
226 (NotCompleted, "aaa"),
229 (NotCompleted, "oh HaiMark")
227 (NotCompleted, "oh HaiMark")
234 getPrioritySets
230 getPrioritySets
235 ( modifyPriority "aaa" High
231 ( modifyPriority "aaa" High
@@ -246,12 +242,11 @@ tests = do
246 ("OH NO", High)
242 ("OH NO", High)
249− `shouldBe` [ [ (Completed, "AAAAAAAAAA"),
245+ `shouldBe` [ [ (NotCompleted, "AAAAAAAAAA"),
250 (NotCompleted, "OH NO"),
246 (NotCompleted, "OH NO"),
251 (NotCompleted, "a"),
247 (NotCompleted, "a"),
252 (NotCompleted, "aaa")
248 (NotCompleted, "aaa")
255 [(NotCompleted, "oh HaiMark")]
250 [(NotCompleted, "oh HaiMark")]
257 it "renameTask" $ do
252 it "renameTask" $ do
@@ -265,12 +260,13 @@ tests = do
265 ("OH NO", High)
260 ("OH NO", High)
268− `shouldBe` [ [(Completed, "henlo"), (NotCompleted, "OH NO")],
263+ `shouldBe` [ [(NotCompleted, "OH NO"), (NotCompleted, "henlo")],
269 [(NotCompleted, "aaa"), (NotCompleted, "oh HaiMark")],
264 [(NotCompleted, "aaa"), (NotCompleted, "oh HaiMark")],
270 [(NotCompleted, "a")]
265 [(NotCompleted, "a")]
272 getPrioritySets
267 getPrioritySets
273 ( renameTask "AAAAAAAAAA" "henlo"
268 ( renameTask "AAAAAAAAAA" "henlo"
269+ . toggleTaskCompletion "a"
274 . renameTask "oh HaiMark" "iz task"
270 . renameTask "oh HaiMark" "iz task"
275 . createTasks
271 . createTasks
276 $ [ ("a", Low),
272 $ [ ("a", Low),
@@ -280,12 +276,13 @@ tests = do
280 ("OH NO", High)
276 ("OH NO", High)
283− `shouldBe` [ [(Completed, "henlo"), (NotCompleted, "OH NO")],
279+ `shouldBe` [ [(NotCompleted, "OH NO"), (NotCompleted, "henlo")],
284 [(NotCompleted, "aaa"), (NotCompleted, "iz task")],
280 [(NotCompleted, "aaa"), (NotCompleted, "iz task")],
285− [(NotCompleted, "a")]
281+ [(Completed, "a")]
287 getPrioritySets
283 getPrioritySets
288 ( renameTask "AAAAAAAAAA" "henlo"
284 ( renameTask "AAAAAAAAAA" "henlo"
285+ . toggleTaskCompletion "iz task"
289 . renameTask "oh HaiMark" "iz task"
286 . renameTask "oh HaiMark" "iz task"
290 . renameTask "iz not here" "ajajaj"
287 . renameTask "iz not here" "ajajaj"
291 . createTasks
288 . createTasks
@@ -296,8 +293,8 @@ tests = do
296 ("OH NO", High)
293 ("OH NO", High)
299− `shouldBe` [ [(Completed, "henlo"), (NotCompleted, "OH NO")],
296+ `shouldBe` [ [(NotCompleted, "OH NO"), (NotCompleted, "henlo")],
300− [(NotCompleted, "aaa"), (NotCompleted, "iz task")],
297+ [(Completed, "iz task"), (NotCompleted, "aaa")],
301 [(NotCompleted, "a")]
298 [(NotCompleted, "a")]
303 describe "Coffee" $ do
300 describe "Coffee" $ do
@@ -313,9 +310,9 @@ tests = do
313 it "chargeCoffee" $ do
310 it "chargeCoffee" $ do
314 chargeCoffee (Coffee 2 [OatMilk, Cinnamon]) (DebitCard 199 69)
311 chargeCoffee (Coffee 2 [OatMilk, Cinnamon]) (DebitCard 199 69)
315 `shouldBe` Just (DebitCard 112 69)
312 `shouldBe` Just (DebitCard 112 69)
316− chargeCoffee (Coffee 2 [OatMilk, Cinnamon]) (DebitCard 112 69)
313+ chargeCoffee (Coffee 2 [OatMilk, Cinnamon]) (DebitCard 87 69)
317 `shouldBe` Just (DebitCard 0 69)
314 `shouldBe` Just (DebitCard 0 69)
318− chargeCoffee (Coffee 2 [OatMilk, Cinnamon]) (DebitCard 111 69)
315+ chargeCoffee (Coffee 2 [OatMilk, Cinnamon]) (DebitCard 86 69)
319 `shouldBe` Nothing
316 `shouldBe` Nothing
320 chargeCoffee (Coffee 2 [OatMilk, Cinnamon]) (DebitCard 0 69)
317 chargeCoffee (Coffee 2 [OatMilk, Cinnamon]) (DebitCard 0 69)
321 `shouldBe` Nothing
318 `shouldBe` Nothing
@@ -329,17 +326,17 @@ tests = do
329 it "payForCoffee" $ do
326 it "payForCoffee" $ do
330 payForCoffee (Customer [DebitCard 199 69] 0) coffee
327 payForCoffee (Customer [DebitCard 199 69] 0) coffee
331 `shouldBe` Just (Card (DebitCard 112 69))
328 `shouldBe` Just (Card (DebitCard 112 69))
332− payForCoffee (Customer [DebitCard 111 12, DebitCard 199 69] 2) coffee
329+ payForCoffee (Customer [DebitCard 86 12, DebitCard 199 69] 2) coffee
333 `shouldBe` Just (Card (DebitCard 112 69))
330 `shouldBe` Just (Card (DebitCard 112 69))
334− payForCoffee (Customer [DebitCard (-12) 8, DebitCard 111 12, DebitCard 199 69] 0) coffee
331+ payForCoffee (Customer [DebitCard (-12) 8, DebitCard 86 12, DebitCard 199 69] 0) coffee
335 `shouldBe` Just (Card (DebitCard 112 69))
332 `shouldBe` Just (Card (DebitCard 112 69))
336− payForCoffee (Customer [DebitCard 112 8, DebitCard 111 12, DebitCard 199 69] 0) coffee
333+ payForCoffee (Customer [DebitCard 87 8, DebitCard 111 12, DebitCard 199 69] 0) coffee
337 `shouldBe` Just (Card (DebitCard 0 8))
334 `shouldBe` Just (Card (DebitCard 0 8))
338− payForCoffee (Customer [DebitCard 111 8, DebitCard 111 12, DebitCard 110 69] 0) coffee
335+ payForCoffee (Customer [DebitCard 86 8, DebitCard 86 12, DebitCard 82 69] 0) coffee
339 `shouldBe` Nothing
336 `shouldBe` Nothing
340− payForCoffee (Customer [DebitCard 111 8, DebitCard 111 12, DebitCard 110 69] 112) coffee
337+ payForCoffee (Customer [DebitCard 86 8, DebitCard 86 12, DebitCard 82 69] 87) coffee
341 `shouldBe` Just (Cash 0)
338 `shouldBe` Just (Cash 0)
342− payForCoffee (Customer [DebitCard 111 8, DebitCard 111 12, DebitCard 110 69] 111) coffee
339+ payForCoffee (Customer [DebitCard 86 8, DebitCard 86 12, DebitCard 81 69] 86) coffee
343 `shouldBe` Nothing
340 `shouldBe` Nothing
344 it "applyPayment" $ do
341 it "applyPayment" $ do
345 applyPayment (Customer [DebitCard 199 69] 0) (Card (DebitCard 112 69))
342 applyPayment (Customer [DebitCard 199 69] 0) (Card (DebitCard 112 69))
@@ -357,17 +354,17 @@ tests = do
357 it "buyCoffee" $ do
354 it "buyCoffee" $ do
358 buyCoffee (Customer [DebitCard 199 69] 0) coffee
355 buyCoffee (Customer [DebitCard 199 69] 0) coffee
359 `shouldBe` Just (Customer [DebitCard 112 69] 0)
356 `shouldBe` Just (Customer [DebitCard 112 69] 0)
360− buyCoffee (Customer [DebitCard 111 12, DebitCard 199 69] 2) coffee
357+ buyCoffee (Customer [DebitCard 86 12, DebitCard 199 69] 2) coffee
361− `shouldBe` Just (Customer [DebitCard 111 12, DebitCard 112 69] 2)
358+ `shouldBe` Just (Customer [DebitCard 86 12, DebitCard 112 69] 2)
362− buyCoffee (Customer [DebitCard (-12) 8, DebitCard 111 12, DebitCard 199 69] 0) coffee
359+ buyCoffee (Customer [DebitCard (-12) 8, DebitCard 86 12, DebitCard 199 69] 0) coffee
363− `shouldBe` Just (Customer [DebitCard (-12) 8, DebitCard 111 12, DebitCard 112 69] 0)
360+ `shouldBe` Just (Customer [DebitCard (-12) 8, DebitCard 86 12, DebitCard 112 69] 0)
364− buyCoffee (Customer [DebitCard 112 8, DebitCard 111 12, DebitCard 199 69] 0) coffee
361+ buyCoffee (Customer [DebitCard 87 8, DebitCard 86 12, DebitCard 199 69] 0) coffee
365− `shouldBe` Just (Customer [DebitCard 0 8, DebitCard 111 12, DebitCard 199 69] 0)
362+ `shouldBe` Just (Customer [DebitCard 0 8, DebitCard 86 12, DebitCard 199 69] 0)
366− buyCoffee (Customer [DebitCard 111 8, DebitCard 111 12, DebitCard 110 69] 0) coffee
363+ buyCoffee (Customer [DebitCard 86 8, DebitCard 86 12, DebitCard 84 69] 0) coffee
367 `shouldBe` Nothing
364 `shouldBe` Nothing
368− buyCoffee (Customer [DebitCard 111 8, DebitCard 111 12, DebitCard 110 69] 112) coffee
365+ buyCoffee (Customer [DebitCard 86 8, DebitCard 86 12, DebitCard 82 69] 87) coffee
369− `shouldBe` Just (Customer [DebitCard 111 8, DebitCard 111 12, DebitCard 110 69] 0)
366+ `shouldBe` Just (Customer [DebitCard 86 8, DebitCard 86 12, DebitCard 82 69] 0)
370− buyCoffee (Customer [DebitCard 111 8, DebitCard 111 12, DebitCard 110 69] 111) coffee
367+ buyCoffee (Customer [DebitCard 86 8, DebitCard 86 12, DebitCard 81 69] 86) coffee
371 `shouldBe` Nothing
368 `shouldBe` Nothing
372 it "saveTheDiabetic" $ do
369 it "saveTheDiabetic" $ do
373 saveTheDiabetic
370 saveTheDiabetic