Skip to content

Commit 91b7175

Browse files
Use assertTrue / assertFalse (exercism#105)
[no important files changed]
1 parent c29f9a7 commit 91b7175

File tree

6 files changed

+62
-47
lines changed

6 files changed

+62
-47
lines changed

exercises/practice/armstrong-numbers/ArmstrongNumbersTest.lean

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,27 @@ open LeanTest
66
def armstrongNumbersTests : TestSuite :=
77
(TestSuite.empty "ArmstrongNumbers")
88
|>.addTest "Zero is an Armstrong number" (do
9-
return assertEqual true (ArmstrongNumbers.isArmstrongNumber 0))
9+
return assertTrue (ArmstrongNumbers.isArmstrongNumber 0))
1010
|>.addTest "Single-digit numbers are Armstrong numbers" (do
11-
return assertEqual true (ArmstrongNumbers.isArmstrongNumber 5))
11+
return assertTrue (ArmstrongNumbers.isArmstrongNumber 5))
1212
|>.addTest "There are no two-digit Armstrong numbers" (do
13-
return assertEqual false (ArmstrongNumbers.isArmstrongNumber 10))
13+
return assertFalse (ArmstrongNumbers.isArmstrongNumber 10))
1414
|>.addTest "Three-digit number that is an Armstrong number" (do
15-
return assertEqual true (ArmstrongNumbers.isArmstrongNumber 153))
15+
return assertTrue (ArmstrongNumbers.isArmstrongNumber 153))
1616
|>.addTest "Three-digit number that is not an Armstrong number" (do
17-
return assertEqual false (ArmstrongNumbers.isArmstrongNumber 100))
17+
return assertFalse (ArmstrongNumbers.isArmstrongNumber 100))
1818
|>.addTest "Four-digit number that is an Armstrong number" (do
19-
return assertEqual true (ArmstrongNumbers.isArmstrongNumber 9474))
19+
return assertTrue (ArmstrongNumbers.isArmstrongNumber 9474))
2020
|>.addTest "Four-digit number that is not an Armstrong number" (do
21-
return assertEqual false (ArmstrongNumbers.isArmstrongNumber 9475))
21+
return assertFalse (ArmstrongNumbers.isArmstrongNumber 9475))
2222
|>.addTest "Seven-digit number that is an Armstrong number" (do
23-
return assertEqual true (ArmstrongNumbers.isArmstrongNumber 9926315))
23+
return assertTrue (ArmstrongNumbers.isArmstrongNumber 9926315))
2424
|>.addTest "Seven-digit number that is not an Armstrong number" (do
25-
return assertEqual false (ArmstrongNumbers.isArmstrongNumber 9926314))
25+
return assertFalse (ArmstrongNumbers.isArmstrongNumber 9926314))
2626
|>.addTest "Armstrong number containing seven zeroes" (do
27-
return assertEqual true (ArmstrongNumbers.isArmstrongNumber 186709961001538790100634132976990))
27+
return assertTrue (ArmstrongNumbers.isArmstrongNumber 186709961001538790100634132976990))
2828
|>.addTest "The largest and last Armstrong number" (do
29-
return assertEqual true (ArmstrongNumbers.isArmstrongNumber 115132219018763992565095597973971522401))
29+
return assertTrue (ArmstrongNumbers.isArmstrongNumber 115132219018763992565095597973971522401))
3030

3131
def main : IO UInt32 := do
3232
runTestSuitesWithExitCode [armstrongNumbersTests]

exercises/practice/leap/LeapTest.lean

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,23 @@ open LeanTest
66
def leapTests : TestSuite :=
77
(TestSuite.empty "Leap")
88
|>.addTest "year not divisible by 4 in common year" (do
9-
return assertEqual false (Leap.leapYear 2015))
9+
return assertFalse (Leap.leapYear 2015))
1010
|>.addTest "year divisible by 2, not divisible by 4 in common year" (do
11-
return assertEqual false (Leap.leapYear 1970))
11+
return assertFalse (Leap.leapYear 1970))
1212
|>.addTest "year divisible by 4, not divisible by 100 in leap year" (do
13-
return assertEqual true (Leap.leapYear 1996))
13+
return assertTrue (Leap.leapYear 1996))
1414
|>.addTest "year divisible by 4 and 5 is still a leap year" (do
15-
return assertEqual true (Leap.leapYear 1960))
15+
return assertTrue (Leap.leapYear 1960))
1616
|>.addTest "year divisible by 100, not divisible by 400 in common year" (do
17-
return assertEqual false (Leap.leapYear 2100))
17+
return assertFalse (Leap.leapYear 2100))
1818
|>.addTest "year divisible by 100 but not by 3 is still not a leap year" (do
19-
return assertEqual false (Leap.leapYear 1900))
19+
return assertFalse (Leap.leapYear 1900))
2020
|>.addTest "year divisible by 400 is leap year" (do
21-
return assertEqual true (Leap.leapYear 2000))
21+
return assertTrue (Leap.leapYear 2000))
2222
|>.addTest "year divisible by 400 but not by 125 is still a leap year" (do
23-
return assertEqual true (Leap.leapYear 2400))
23+
return assertTrue (Leap.leapYear 2400))
2424
|>.addTest "year divisible by 200, not divisible by 400 in common year" (do
25-
return assertEqual false (Leap.leapYear 1800))
25+
return assertFalse (Leap.leapYear 1800))
2626

2727
def main : IO UInt32 := do
2828
runTestSuitesWithExitCode [leapTests]

exercises/practice/triangle/TriangleTest.lean

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6,47 +6,47 @@ open LeanTest
66
def triangleTests : TestSuite :=
77
(TestSuite.empty "Triangle")
88
|>.addTest "equilateral triangle -> all sides are equal" (do
9-
return assertEqual true (Triangle.equilateral [2, 2, 2]))
9+
return assertTrue (Triangle.equilateral [2, 2, 2]))
1010
|>.addTest "equilateral triangle -> any side is unequal" (do
11-
return assertEqual false (Triangle.equilateral [2, 3, 2]))
11+
return assertFalse (Triangle.equilateral [2, 3, 2]))
1212
|>.addTest "equilateral triangle -> no sides are equal" (do
13-
return assertEqual false (Triangle.equilateral [5, 4, 6]))
13+
return assertFalse (Triangle.equilateral [5, 4, 6]))
1414
|>.addTest "equilateral triangle -> all zero sides is not a triangle" (do
15-
return assertEqual false (Triangle.equilateral [0, 0, 0]))
15+
return assertFalse (Triangle.equilateral [0, 0, 0]))
1616
|>.addTest "equilateral triangle -> sides may be floats" (do
17-
return assertEqual true (Triangle.equilateral [0.5, 0.5, 0.5]))
17+
return assertTrue (Triangle.equilateral [0.5, 0.5, 0.5]))
1818
|>.addTest "isosceles triangle -> last two sides are equal" (do
19-
return assertEqual true (Triangle.isosceles [3, 4, 4]))
19+
return assertTrue (Triangle.isosceles [3, 4, 4]))
2020
|>.addTest "isosceles triangle -> first two sides are equal" (do
21-
return assertEqual true (Triangle.isosceles [4, 4, 3]))
21+
return assertTrue (Triangle.isosceles [4, 4, 3]))
2222
|>.addTest "isosceles triangle -> first and last sides are equal" (do
23-
return assertEqual true (Triangle.isosceles [4, 3, 4]))
23+
return assertTrue (Triangle.isosceles [4, 3, 4]))
2424
|>.addTest "isosceles triangle -> equilateral triangles are also isosceles" (do
25-
return assertEqual true (Triangle.isosceles [4, 4, 4]))
25+
return assertTrue (Triangle.isosceles [4, 4, 4]))
2626
|>.addTest "isosceles triangle -> no sides are equal" (do
27-
return assertEqual false (Triangle.isosceles [2, 3, 4]))
27+
return assertFalse (Triangle.isosceles [2, 3, 4]))
2828
|>.addTest "isosceles triangle -> first triangle inequality violation" (do
29-
return assertEqual false (Triangle.isosceles [1, 1, 3]))
29+
return assertFalse (Triangle.isosceles [1, 1, 3]))
3030
|>.addTest "isosceles triangle -> second triangle inequality violation" (do
31-
return assertEqual false (Triangle.isosceles [1, 3, 1]))
31+
return assertFalse (Triangle.isosceles [1, 3, 1]))
3232
|>.addTest "isosceles triangle -> third triangle inequality violation" (do
33-
return assertEqual false (Triangle.isosceles [3, 1, 1]))
33+
return assertFalse (Triangle.isosceles [3, 1, 1]))
3434
|>.addTest "isosceles triangle -> sides may be floats" (do
35-
return assertEqual true (Triangle.isosceles [0.5, 0.4, 0.5]))
35+
return assertTrue (Triangle.isosceles [0.5, 0.4, 0.5]))
3636
|>.addTest "scalene triangle -> no sides are equal" (do
37-
return assertEqual true (Triangle.scalene [5, 4, 6]))
37+
return assertTrue (Triangle.scalene [5, 4, 6]))
3838
|>.addTest "scalene triangle -> all sides are equal" (do
39-
return assertEqual false (Triangle.scalene [4, 4, 4]))
39+
return assertFalse (Triangle.scalene [4, 4, 4]))
4040
|>.addTest "scalene triangle -> first and second sides are equal" (do
41-
return assertEqual false (Triangle.scalene [4, 4, 3]))
41+
return assertFalse (Triangle.scalene [4, 4, 3]))
4242
|>.addTest "scalene triangle -> first and third sides are equal" (do
43-
return assertEqual false (Triangle.scalene [3, 4, 3]))
43+
return assertFalse (Triangle.scalene [3, 4, 3]))
4444
|>.addTest "scalene triangle -> second and third sides are equal" (do
45-
return assertEqual false (Triangle.scalene [4, 3, 3]))
45+
return assertFalse (Triangle.scalene [4, 3, 3]))
4646
|>.addTest "scalene triangle -> may not violate triangle inequality" (do
47-
return assertEqual false (Triangle.scalene [7, 3, 2]))
47+
return assertFalse (Triangle.scalene [7, 3, 2]))
4848
|>.addTest "scalene triangle -> sides may be floats" (do
49-
return assertEqual true (Triangle.scalene [0.5, 0.4, 0.6]))
49+
return assertTrue (Triangle.scalene [0.5, 0.4, 0.6]))
5050

5151
def main : IO UInt32 := do
5252
runTestSuitesWithExitCode [triangleTests]

generators/Generator/Generator/ArmstrongNumbersGenerator.lean

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,17 @@ def {exercise.decapitalize}Tests : TestSuite :=
1818

1919
def genTestCase (exercise : String) (case : TreeMap.Raw String Json) : String :=
2020
let input := case.get! "input"
21-
let expected := case.get! "expected"
21+
let expected := case.get! "expected" |>.getBool? |> getOk
2222
let description := case.get! "description"
2323
|> (·.compress)
2424
let funName := getFunName (case.get! "property")
2525
let call := s!"({exercise}.{funName} {insertAllInputs input})"
26+
let assert := match expected with
27+
| true => s!"assertTrue {call}"
28+
| false => s!"assertFalse {call}"
2629
s!"
2730
|>.addTest {description} (do
28-
return assertEqual {expected} {call})"
31+
return {assert})"
2932

3033
def genEnd (exercise : String) : String :=
3134
s!"

generators/Generator/Generator/LeapGenerator.lean

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
import Lean.Data.Json
22
import Std
3+
import Helper
34

45
open Lean
56
open Std
7+
open Helper
68

79
namespace LeapGenerator
810

@@ -18,15 +20,19 @@ def genTestCase (exercise : String) (case : TreeMap.Raw String Json) : String :=
1820
let description := case.get! "description"
1921
|> (·.compress)
2022
let year := case.get! "input" |> (·.getObjVal? "year") |> Except.toOption |> Option.get!
21-
let expected := case.get! "expected"
23+
let expected := case.get! "expected" |>.getBool? |> getOk
2224
let funName := case.get! "property"
2325
|> (·.compress)
2426
|> String.toList
2527
|> (·.filter (·!='"'))
2628
|> List.asString
29+
let call := s!"({exercise}.{funName} {year})"
30+
let assert := match expected with
31+
| true => s!"assertTrue {call}"
32+
| false => s!"assertFalse {call}"
2733
s!"
2834
|>.addTest {description} (do
29-
return assertEqual {expected} ({exercise}.{funName} {year}))"
35+
return {assert})"
3036

3137
def genEnd (exercise : String) : String :=
3238
s!"

generators/Generator/Generator/TriangleGenerator.lean

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
import Lean.Data.Json
22
import Std
3+
import Helper
34

45
open Lean
56
open Std
7+
open Helper
68

79
namespace TriangleGenerator
810

@@ -18,15 +20,19 @@ def genTestCase (exercise : String) (case : TreeMap.Raw String Json) : String :=
1820
let description := case.get! "description"
1921
|> (·.compress)
2022
let sides := case.get! "input" |> (·.getObjVal? "sides") |> Except.toOption |> Option.get!
21-
let expected := case.get! "expected"
23+
let expected := case.get! "expected" |>.getBool? |> getOk
2224
let funName := case.get! "property"
2325
|> (·.compress)
2426
|> String.toList
2527
|> (·.filter (·!='"'))
2628
|> List.asString
29+
let call := s!"({exercise}.{funName} {sides})"
30+
let assert := match expected with
31+
| true => s!"assertTrue {call}"
32+
| false => s!"assertFalse {call}"
2733
s!"
2834
|>.addTest {description} (do
29-
return assertEqual {expected} ({exercise}.{funName} {sides}))"
35+
return {assert})"
3036

3137
def genEnd (exercise : String) : String :=
3238
s!"

0 commit comments

Comments
 (0)