Skip to content

Commit d3a3de7

Browse files
committed
Test upgrades:
Upgraded tests for the following exercises: - Armstrong numbers - binary search - Bob - bowling - change
1 parent e368b57 commit d3a3de7

File tree

10 files changed

+673
-301
lines changed

10 files changed

+673
-301
lines changed
Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,38 @@
11
[
22
{
33
"name": "Zero is an Armstrong number",
4-
"test_code": "let\n Test.label.deprecated \"Zero is an Armstrong number\" <| Test.expect (isArmstrongNumber 0 === true)"
4+
"test_code": "verify do\n labeled \"Zero is an Armstrong number\" do\n expected = true\n actual = isArmstrongNumber 0\n label \"expected\" expected\n label \"actual\" actual\n ensureEqual expected actual"
55
},
66
{
77
"name": "Single-digit numbers are Armstrong numbers",
8-
"test_code": "let\n Test.label.deprecated \"Single-digit numbers are Armstrong numbers\" <| Test.expect (isArmstrongNumber 5 === true)"
8+
"test_code": "verify do\n labeled \"Single-digit numbers are Armstrong numbers\" do\n expected = true\n actual = isArmstrongNumber 5\n label \"expected\" expected\n label \"actual\" actual\n ensureEqual expected actual"
99
},
1010
{
1111
"name": "There are no two-digit Armstrong numbers",
12-
"test_code": "let\n Test.label.deprecated \"There are no two-digit Armstrong numbers\" <| Test.expect (isArmstrongNumber 10 === false)"
12+
"test_code": "verify do\n labeled \"There are no two-digit Armstrong numbers\" do\n expected = false\n actual = isArmstrongNumber 10\n label \"expected\" expected\n label \"actual\" actual\n ensureEqual expected actual"
1313
},
1414
{
1515
"name": "Three-digit number that is an Armstrong number",
16-
"test_code": "let\n Test.label.deprecated \"Three-digit number that is an Armstrong number\" <| Test.expect (isArmstrongNumber 153 === true)"
16+
"test_code": "verify do\n labeled \"Three-digit number that is an Armstrong number\" do\n expected = true\n actual = isArmstrongNumber 153\n label \"expected\" expected\n label \"actual\" actual\n ensureEqual expected actual"
1717
},
1818
{
1919
"name": "Three-digit number that is not an Armstrong number",
20-
"test_code": "let\n Test.label.deprecated \"Three-digit number that is not an Armstrong number\" <| Test.expect (isArmstrongNumber 100 === false)"
20+
"test_code": "verify do\n labeled \"Three-digit number that is not an Armstrong number\" do\n expected = false\n actual = isArmstrongNumber 100\n label \"expected\" expected\n label \"actual\" actual\n ensureEqual expected actual"
2121
},
2222
{
2323
"name": "Four-digit number that is an Armstrong number",
24-
"test_code": "let\n Test.label.deprecated \"Four-digit number that is an Armstrong number\" <| Test.expect (isArmstrongNumber 9474 === true)"
24+
"test_code": "verify do\n labeled \"Four-digit number that is an Armstrong number\" do\n expected = true\n actual = isArmstrongNumber 9474\n label \"expected\" expected\n label \"actual\" actual\n ensureEqual expected actual"
2525
},
2626
{
2727
"name": "Four-digit number that is not an Armstrong number",
28-
"test_code": "let\n Test.label.deprecated \"Four-digit number that is not an Armstrong number\" <| Test.expect (isArmstrongNumber 9475 === false)"
28+
"test_code": "verify do\n labeled \"Four-digit number that is not an Armstrong number\" do\n expected = false\n actual = isArmstrongNumber 9475\n label \"expected\" expected\n label \"actual\" actual\n ensureEqual expected actual"
2929
},
3030
{
3131
"name": "Seven-digit number that is an Armstrong number",
32-
"test_code": "let\n Test.label.deprecated \"Seven-digit number that is an Armstrong number\" <| Test.expect (isArmstrongNumber 9926315 === true)"
32+
"test_code": "verify do\n labeled \"Seven-digit number that is an Armstrong number\" do\n expected = true\n actual = isArmstrongNumber 9926315\n label \"expected\" expected\n label \"actual\" actual\n ensureEqual expected actual"
3333
},
3434
{
3535
"name": "Seven-digit number that is not an Armstrong number",
36-
"test_code": "let\n Test.label.deprecated \"Seven-digit number that is not an Armstrong number\" <| Test.expect (isArmstrongNumber 9926314 === false)"
36+
"test_code": "verify do\n labeled \"Seven-digit number that is not an Armstrong number\" do\n expected = false\n actual = isArmstrongNumber 9926314\n label \"expected\" expected\n label \"actual\" actual\n ensureEqual expected actual"
3737
}
38-
]
38+
]

exercises/practice/armstrong-numbers/armstrongNumbers.test.u

Lines changed: 65 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,77 @@
1-
armstrongNumbers.test.ex1 = let
2-
Test.label.deprecated "Zero is an Armstrong number" <| Test.expect (isArmstrongNumber 0 === true)
1+
armstrongNumbers.test.ex1 = verify do
2+
labeled "Zero is an Armstrong number" do
3+
expected = true
4+
actual = isArmstrongNumber 0
5+
label "expected" expected
6+
label "actual" actual
7+
ensureEqual expected actual
38

4-
armstrongNumbers.test.ex2 = let
5-
Test.label.deprecated "Single-digit numbers are Armstrong numbers" <| Test.expect (isArmstrongNumber 5 === true)
9+
armstrongNumbers.test.ex2 = verify do
10+
labeled "Single-digit numbers are Armstrong numbers" do
11+
expected = true
12+
actual = isArmstrongNumber 5
13+
label "expected" expected
14+
label "actual" actual
15+
ensureEqual expected actual
616

7-
armstrongNumbers.test.ex3 = let
8-
Test.label.deprecated "There are no two-digit Armstrong numbers" <| Test.expect (isArmstrongNumber 10 === false)
17+
armstrongNumbers.test.ex3 = verify do
18+
labeled "There are no two-digit Armstrong numbers" do
19+
expected = false
20+
actual = isArmstrongNumber 10
21+
label "expected" expected
22+
label "actual" actual
23+
ensureEqual expected actual
924

10-
armstrongNumbers.test.ex4 = let
11-
Test.label.deprecated "Three-digit number that is an Armstrong number" <| Test.expect (isArmstrongNumber 153 === true)
25+
armstrongNumbers.test.ex4 = verify do
26+
labeled "Three-digit number that is an Armstrong number" do
27+
expected = true
28+
actual = isArmstrongNumber 153
29+
label "expected" expected
30+
label "actual" actual
31+
ensureEqual expected actual
1232

13-
armstrongNumbers.test.ex5 = let
14-
Test.label.deprecated "Three-digit number that is not an Armstrong number" <| Test.expect (isArmstrongNumber 100 === false)
33+
armstrongNumbers.test.ex5 = verify do
34+
labeled "Three-digit number that is not an Armstrong number" do
35+
expected = false
36+
actual = isArmstrongNumber 100
37+
label "expected" expected
38+
label "actual" actual
39+
ensureEqual expected actual
1540

16-
armstrongNumbers.test.ex6 = let
17-
Test.label.deprecated "Four-digit number that is an Armstrong number" <| Test.expect (isArmstrongNumber 9474 === true)
41+
armstrongNumbers.test.ex6 = verify do
42+
labeled "Four-digit number that is an Armstrong number" do
43+
expected = true
44+
actual = isArmstrongNumber 9474
45+
label "expected" expected
46+
label "actual" actual
47+
ensureEqual expected actual
1848

19-
armstrongNumbers.test.ex7 = let
20-
Test.label.deprecated "Four-digit number that is not an Armstrong number" <| Test.expect (isArmstrongNumber 9475 === false)
49+
armstrongNumbers.test.ex7 = verify do
50+
labeled "Four-digit number that is not an Armstrong number" do
51+
expected = false
52+
actual = isArmstrongNumber 9475
53+
label "expected" expected
54+
label "actual" actual
55+
ensureEqual expected actual
2156

22-
armstrongNumbers.test.ex8 = let
23-
Test.label.deprecated "Seven-digit number that is an Armstrong number" <| Test.expect (isArmstrongNumber 9926315 === true)
57+
armstrongNumbers.test.ex8 = verify do
58+
labeled "Seven-digit number that is an Armstrong number" do
59+
expected = true
60+
actual = isArmstrongNumber 9926315
61+
label "expected" expected
62+
label "actual" actual
63+
ensureEqual expected actual
2464

25-
armstrongNumbers.test.ex9 = let
26-
Test.label.deprecated "Seven-digit number that is not an Armstrong number" <| Test.expect (isArmstrongNumber 9926314 === false)
65+
armstrongNumbers.test.ex9 = verify do
66+
labeled "Seven-digit number that is not an Armstrong number" do
67+
expected = false
68+
actual = isArmstrongNumber 9926314
69+
label "expected" expected
70+
label "actual" actual
71+
ensureEqual expected actual
2772

28-
test> armstrongNumbers.tests = runAll [
73+
74+
test> armstrongNumbers.tests = join [
2975
armstrongNumbers.test.ex1,
3076
armstrongNumbers.test.ex2,
3177
armstrongNumbers.test.ex3,
Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,46 @@
11
[
22
{
33
"name": "finds a value in an array with one element",
4-
"test_code": "expect (Some +0 === binarySearch.find (Array.fromList [6]) 6)\n |> Test.label.deprecated \"finds a value in an array with one element\""
4+
"test_code": "verify do\n labeled \"finds a value in an array with one element\" do\n expected = Some +0\n actual = binarySearch.find (Array.fromList [6]) 6\n label \"expected\" expected\n label \"actual\" actual\n ensureEqual expected actual"
55
},
66
{
77
"name": "finds a value in the middle of an array",
8-
"test_code": "expect (Some +3 === binarySearch.find (Array.fromList [1, 3, 4, 6, 8, 9, 11]) 6)\n |> Test.label.deprecated \"finds a value in the middle of an array\""
8+
"test_code": "verify do\n labeled \"finds a value in the middle of an array\" do\n expected = Some +3\n actual = binarySearch.find (Array.fromList [1, 3, 4, 6, 8, 9, 11]) 6\n label \"expected\" expected\n label \"actual\" actual\n ensureEqual expected actual"
99
},
1010
{
1111
"name": "finds a value at the beginning of an array",
12-
"test_code": "expect (Some +0 === binarySearch.find (Array.fromList [1, 3, 4, 6, 8, 9, 11]) 1)\n |> Test.label.deprecated \"finds a value at the beginning of an array\""
12+
"test_code": "verify do\n labeled \"finds a value at the beginning of an array\" do\n expected = Some +0\n actual = binarySearch.find (Array.fromList [1, 3, 4, 6, 8, 9, 11]) 1\n label \"expected\" expected\n label \"actual\" actual\n ensureEqual expected actual"
1313
},
1414
{
1515
"name": "finds a value at the end of an array",
16-
"test_code": "expect (Some +6 === binarySearch.find (Array.fromList [1, 3, 4, 6, 8, 9, 11]) 11)\n |> Test.label.deprecated \"finds a value at the end of an array\""
16+
"test_code": "verify do\n labeled \"finds a value at the end of an array\" do\n expected = Some +6\n actual = binarySearch.find (Array.fromList [1, 3, 4, 6, 8, 9, 11]) 11\n label \"expected\" expected\n label \"actual\" actual\n ensureEqual expected actual"
1717
},
1818
{
1919
"name": "finds a value in an array of odd length",
20-
"test_code": "expect (Some +9 === binarySearch.find (Array.fromList [1, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 634]) 144)\n |> Test.label.deprecated \"finds a value in an array of odd length\""
20+
"test_code": "verify do\n labeled \"finds a value in an array of odd length\" do\n expected = Some +9\n actual = binarySearch.find (Array.fromList [1, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 634]) 144\n label \"expected\" expected\n label \"actual\" actual\n ensureEqual expected actual"
2121
},
2222
{
2323
"name": "finds a value in an array of even length",
24-
"test_code": "expect (Some +5 === binarySearch.find (Array.fromList [1, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377]) 21)\n |> Test.label.deprecated \"finds a value in an array of even length\""
24+
"test_code": "verify do\n labeled \"finds a value in an array of even length\" do\n expected = Some +5\n actual = binarySearch.find (Array.fromList [1, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377]) 21\n label \"expected\" expected\n label \"actual\" actual\n ensureEqual expected actual"
2525
},
2626
{
2727
"name": "identifies that a value is not included in the array",
28-
"test_code": "expect (None === binarySearch.find (Array.fromList [1, 3, 4, 6, 8, 9, 11]) 7)\n |> Test.label.deprecated \"identifies that a value is not included in the array\""
28+
"test_code": "verify do\n labeled \"identifies that a value is not included in the array\" do\n expected = None\n actual = binarySearch.find (Array.fromList [1, 3, 4, 6, 8, 9, 11]) 7\n label \"expected\" expected\n label \"actual\" actual\n ensureEqual expected actual"
2929
},
3030
{
3131
"name": "a value smaller than the array's smallest value is not found",
32-
"test_code": "expect (None === binarySearch.find (Array.fromList [1, 3, 4, 6, 8, 9, 11]) 0)\n |> Test.label.deprecated \"a value smaller than the array's smallest value is not found\""
32+
"test_code": "verify do\n labeled \"a value smaller than the array's smallest value is not found\" do\n expected = None\n actual = binarySearch.find (Array.fromList [1, 3, 4, 6, 8, 9, 11]) 0\n label \"expected\" expected\n label \"actual\" actual\n ensureEqual expected actual"
3333
},
3434
{
3535
"name": "a value larger than the array's largest value is not found",
36-
"test_code": "expect (None === binarySearch.find (Array.fromList [1, 3, 4, 6, 8, 9, 11]) 13)\n |> Test.label.deprecated \"a value larger than the array's largest value is not found\""
36+
"test_code": "verify do\n labeled \"a value larger than the array's largest value is not found\" do\n expected = None\n actual = binarySearch.find (Array.fromList [1, 3, 4, 6, 8, 9, 11]) 13\n label \"expected\" expected\n label \"actual\" actual\n ensureEqual expected actual"
3737
},
3838
{
3939
"name": "nothing is found in an empty array",
40-
"test_code": "expect (None === binarySearch.find (Array.fromList []) 1)\n |> Test.label.deprecated \"nothing is found in an empty array\""
40+
"test_code": "verify do\n labeled \"nothing is found in an empty array\" do\n expected = None\n actual = binarySearch.find (Array.fromList []) 1\n label \"expected\" expected\n label \"actual\" actual\n ensureEqual expected actual"
4141
},
4242
{
4343
"name": "nothing is found when the left and right bounds cross",
44-
"test_code": "expect (None === binarySearch.find (Array.fromList [1, 2]) 0)\n |> Test.label.deprecated \"nothing is found when the left and right bounds cross\""
44+
"test_code": "verify do\n labeled \"nothing is found when the left and right bounds cross\" do\n expected = None\n actual = binarySearch.find (Array.fromList [1, 2]) 0\n label \"expected\" expected\n label \"actual\" actual\n ensureEqual expected actual"
4545
}
46-
]
46+
]

exercises/practice/binary-search/binarySearch.test.u

Lines changed: 78 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,92 @@
1-
use data Array
1+
binarySearch.find.tests.ex1 = verify do
2+
labeled "finds a value in an array with one element" do
3+
expected = Some +0
4+
actual = binarySearch.find (Array.fromList [6]) 6
5+
label "expected" expected
6+
label "actual" actual
7+
ensureEqual expected actual
28

3-
binarySearch.find.tests.ex1 =
4-
expect (Some +0 === binarySearch.find (Array.fromList [6]) 6)
5-
|> Test.label.deprecated "finds a value in an array with one element"
9+
binarySearch.find.tests.ex2 = verify do
10+
labeled "finds a value in the middle of an array" do
11+
expected = Some +3
12+
actual = binarySearch.find (Array.fromList [1, 3, 4, 6, 8, 9, 11]) 6
13+
label "expected" expected
14+
label "actual" actual
15+
ensureEqual expected actual
616

7-
binarySearch.find.tests.ex2 =
8-
expect (Some +3 === binarySearch.find (Array.fromList [1, 3, 4, 6, 8, 9, 11]) 6)
9-
|> Test.label.deprecated "finds a value in the middle of an array"
17+
binarySearch.find.tests.ex3 = verify do
18+
labeled "finds a value at the beginning of an array" do
19+
expected = Some +0
20+
actual = binarySearch.find (Array.fromList [1, 3, 4, 6, 8, 9, 11]) 1
21+
label "expected" expected
22+
label "actual" actual
23+
ensureEqual expected actual
1024

11-
binarySearch.find.tests.ex3 =
12-
expect (Some +0 === binarySearch.find (Array.fromList [1, 3, 4, 6, 8, 9, 11]) 1)
13-
|> Test.label.deprecated "finds a value at the beginning of an array"
25+
binarySearch.find.tests.ex4 = verify do
26+
labeled "finds a value at the end of an array" do
27+
expected = Some +6
28+
actual = binarySearch.find (Array.fromList [1, 3, 4, 6, 8, 9, 11]) 11
29+
label "expected" expected
30+
label "actual" actual
31+
ensureEqual expected actual
1432

15-
binarySearch.find.tests.ex4 =
16-
expect (Some +6 === binarySearch.find (Array.fromList [1, 3, 4, 6, 8, 9, 11]) 11)
17-
|> Test.label.deprecated "finds a value at the end of an array"
33+
binarySearch.find.tests.ex5 = verify do
34+
labeled "finds a value in an array of odd length" do
35+
expected = Some +9
36+
actual = binarySearch.find (Array.fromList [1, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 634]) 144
37+
label "expected" expected
38+
label "actual" actual
39+
ensureEqual expected actual
1840

19-
binarySearch.find.tests.ex5 =
20-
expect (Some +9 === binarySearch.find (Array.fromList [1, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 634]) 144)
21-
|> Test.label.deprecated "finds a value in an array of odd length"
41+
binarySearch.find.tests.ex6 = verify do
42+
labeled "finds a value in an array of even length" do
43+
expected = Some +5
44+
actual = binarySearch.find (Array.fromList [1, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377]) 21
45+
label "expected" expected
46+
label "actual" actual
47+
ensureEqual expected actual
2248

23-
binarySearch.find.tests.ex6 =
24-
expect (Some +5 === binarySearch.find (Array.fromList [1, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377]) 21)
25-
|> Test.label.deprecated "finds a value in an array of even length"
49+
binarySearch.find.tests.ex7 = verify do
50+
labeled "identifies that a value is not included in the array" do
51+
expected = None
52+
actual = binarySearch.find (Array.fromList [1, 3, 4, 6, 8, 9, 11]) 7
53+
label "expected" expected
54+
label "actual" actual
55+
ensureEqual expected actual
2656

27-
binarySearch.find.tests.ex7 =
28-
expect (None === binarySearch.find (Array.fromList [1, 3, 4, 6, 8, 9, 11]) 7)
29-
|> Test.label.deprecated "identifies that a value is not included in the array"
57+
binarySearch.find.tests.ex8 = verify do
58+
labeled "a value smaller than the array's smallest value is not found" do
59+
expected = None
60+
actual = binarySearch.find (Array.fromList [1, 3, 4, 6, 8, 9, 11]) 0
61+
label "expected" expected
62+
label "actual" actual
63+
ensureEqual expected actual
3064

31-
binarySearch.find.tests.ex8 =
32-
expect (None === binarySearch.find (Array.fromList [1, 3, 4, 6, 8, 9, 11]) 0)
33-
|> Test.label.deprecated "a value smaller than the array's smallest value is not found"
65+
binarySearch.find.tests.ex9 = verify do
66+
labeled "a value larger than the array's largest value is not found" do
67+
expected = None
68+
actual = binarySearch.find (Array.fromList [1, 3, 4, 6, 8, 9, 11]) 13
69+
label "expected" expected
70+
label "actual" actual
71+
ensureEqual expected actual
3472

35-
binarySearch.find.tests.ex9 =
36-
expect (None === binarySearch.find (Array.fromList [1, 3, 4, 6, 8, 9, 11]) 13)
37-
|> Test.label.deprecated "a value larger than the array's largest value is not found"
73+
binarySearch.find.tests.ex10 = verify do
74+
labeled "nothing is found in an empty array" do
75+
expected = None
76+
actual = binarySearch.find (Array.fromList []) 1
77+
label "expected" expected
78+
label "actual" actual
79+
ensureEqual expected actual
3880

39-
binarySearch.find.tests.ex10 =
40-
expect (None === binarySearch.find (Array.fromList []) 1)
41-
|> Test.label.deprecated "nothing is found in an empty array"
81+
binarySearch.find.tests.ex11 = verify do
82+
labeled "nothing is found when the left and right bounds cross" do
83+
expected = None
84+
actual = binarySearch.find (Array.fromList [1, 2]) 0
85+
label "expected" expected
86+
label "actual" actual
87+
ensureEqual expected actual
4288

43-
binarySearch.find.tests.ex11 =
44-
expect (None === binarySearch.find (Array.fromList [1, 2]) 0)
45-
|> Test.label.deprecated "nothing is found when the left and right bounds cross"
46-
47-
test> binarySearch.tests = runAll [
89+
test> binarySearch.tests = join [
4890
binarySearch.find.tests.ex1,
4991
binarySearch.find.tests.ex2,
5092
binarySearch.find.tests.ex3,

0 commit comments

Comments
 (0)