Skip to content

Commit

Permalink
Merge pull request #147 from exercism/test_upgrades
Browse files Browse the repository at this point in the history
Test upgrades:
  • Loading branch information
SimaDovakin authored Feb 18, 2025
2 parents 42be03a + 6c76b96 commit df38040
Show file tree
Hide file tree
Showing 24 changed files with 1,655 additions and 772 deletions.
20 changes: 10 additions & 10 deletions exercises/practice/armstrong-numbers/.meta/testAnnotation.json
Original file line number Diff line number Diff line change
@@ -1,38 +1,38 @@
[
{
"name": "Zero is an Armstrong number",
"test_code": "let\n Test.label.deprecated \"Zero is an Armstrong number\" <| Test.expect (isArmstrongNumber 0 === true)"
"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"
},
{
"name": "Single-digit numbers are Armstrong numbers",
"test_code": "let\n Test.label.deprecated \"Single-digit numbers are Armstrong numbers\" <| Test.expect (isArmstrongNumber 5 === true)"
"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"
},
{
"name": "There are no two-digit Armstrong numbers",
"test_code": "let\n Test.label.deprecated \"There are no two-digit Armstrong numbers\" <| Test.expect (isArmstrongNumber 10 === false)"
"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"
},
{
"name": "Three-digit number that is an Armstrong number",
"test_code": "let\n Test.label.deprecated \"Three-digit number that is an Armstrong number\" <| Test.expect (isArmstrongNumber 153 === true)"
"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"
},
{
"name": "Three-digit number that is not an Armstrong number",
"test_code": "let\n Test.label.deprecated \"Three-digit number that is not an Armstrong number\" <| Test.expect (isArmstrongNumber 100 === false)"
"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"
},
{
"name": "Four-digit number that is an Armstrong number",
"test_code": "let\n Test.label.deprecated \"Four-digit number that is an Armstrong number\" <| Test.expect (isArmstrongNumber 9474 === true)"
"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"
},
{
"name": "Four-digit number that is not an Armstrong number",
"test_code": "let\n Test.label.deprecated \"Four-digit number that is not an Armstrong number\" <| Test.expect (isArmstrongNumber 9475 === false)"
"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"
},
{
"name": "Seven-digit number that is an Armstrong number",
"test_code": "let\n Test.label.deprecated \"Seven-digit number that is an Armstrong number\" <| Test.expect (isArmstrongNumber 9926315 === true)"
"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"
},
{
"name": "Seven-digit number that is not an Armstrong number",
"test_code": "let\n Test.label.deprecated \"Seven-digit number that is not an Armstrong number\" <| Test.expect (isArmstrongNumber 9926314 === false)"
"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"
}
]
]
84 changes: 65 additions & 19 deletions exercises/practice/armstrong-numbers/armstrongNumbers.test.u
Original file line number Diff line number Diff line change
@@ -1,31 +1,77 @@
armstrongNumbers.test.ex1 = let
Test.label.deprecated "Zero is an Armstrong number" <| Test.expect (isArmstrongNumber 0 === true)
armstrongNumbers.test.ex1 = verify do
labeled "Zero is an Armstrong number" do
expected = true
actual = isArmstrongNumber 0
label "expected" expected
label "actual" actual
ensureEqual expected actual

armstrongNumbers.test.ex2 = let
Test.label.deprecated "Single-digit numbers are Armstrong numbers" <| Test.expect (isArmstrongNumber 5 === true)
armstrongNumbers.test.ex2 = verify do
labeled "Single-digit numbers are Armstrong numbers" do
expected = true
actual = isArmstrongNumber 5
label "expected" expected
label "actual" actual
ensureEqual expected actual

armstrongNumbers.test.ex3 = let
Test.label.deprecated "There are no two-digit Armstrong numbers" <| Test.expect (isArmstrongNumber 10 === false)
armstrongNumbers.test.ex3 = verify do
labeled "There are no two-digit Armstrong numbers" do
expected = false
actual = isArmstrongNumber 10
label "expected" expected
label "actual" actual
ensureEqual expected actual

armstrongNumbers.test.ex4 = let
Test.label.deprecated "Three-digit number that is an Armstrong number" <| Test.expect (isArmstrongNumber 153 === true)
armstrongNumbers.test.ex4 = verify do
labeled "Three-digit number that is an Armstrong number" do
expected = true
actual = isArmstrongNumber 153
label "expected" expected
label "actual" actual
ensureEqual expected actual

armstrongNumbers.test.ex5 = let
Test.label.deprecated "Three-digit number that is not an Armstrong number" <| Test.expect (isArmstrongNumber 100 === false)
armstrongNumbers.test.ex5 = verify do
labeled "Three-digit number that is not an Armstrong number" do
expected = false
actual = isArmstrongNumber 100
label "expected" expected
label "actual" actual
ensureEqual expected actual

armstrongNumbers.test.ex6 = let
Test.label.deprecated "Four-digit number that is an Armstrong number" <| Test.expect (isArmstrongNumber 9474 === true)
armstrongNumbers.test.ex6 = verify do
labeled "Four-digit number that is an Armstrong number" do
expected = true
actual = isArmstrongNumber 9474
label "expected" expected
label "actual" actual
ensureEqual expected actual

armstrongNumbers.test.ex7 = let
Test.label.deprecated "Four-digit number that is not an Armstrong number" <| Test.expect (isArmstrongNumber 9475 === false)
armstrongNumbers.test.ex7 = verify do
labeled "Four-digit number that is not an Armstrong number" do
expected = false
actual = isArmstrongNumber 9475
label "expected" expected
label "actual" actual
ensureEqual expected actual

armstrongNumbers.test.ex8 = let
Test.label.deprecated "Seven-digit number that is an Armstrong number" <| Test.expect (isArmstrongNumber 9926315 === true)
armstrongNumbers.test.ex8 = verify do
labeled "Seven-digit number that is an Armstrong number" do
expected = true
actual = isArmstrongNumber 9926315
label "expected" expected
label "actual" actual
ensureEqual expected actual

armstrongNumbers.test.ex9 = let
Test.label.deprecated "Seven-digit number that is not an Armstrong number" <| Test.expect (isArmstrongNumber 9926314 === false)
armstrongNumbers.test.ex9 = verify do
labeled "Seven-digit number that is not an Armstrong number" do
expected = false
actual = isArmstrongNumber 9926314
label "expected" expected
label "actual" actual
ensureEqual expected actual

test> armstrongNumbers.tests = runAll [

test> armstrongNumbers.tests = join [
armstrongNumbers.test.ex1,
armstrongNumbers.test.ex2,
armstrongNumbers.test.ex3,
Expand Down
24 changes: 12 additions & 12 deletions exercises/practice/binary-search/.meta/testAnnotation.json
Original file line number Diff line number Diff line change
@@ -1,46 +1,46 @@
[
{
"name": "finds a value in an array with one element",
"test_code": "expect (Some +0 === binarySearch.find (Array.fromList [6]) 6)\n |> Test.label.deprecated \"finds a value in an array with one element\""
"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"
},
{
"name": "finds a value in the middle of an array",
"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\""
"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"
},
{
"name": "finds a value at the beginning of an array",
"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\""
"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"
},
{
"name": "finds a value at the end of an array",
"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\""
"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"
},
{
"name": "finds a value in an array of odd length",
"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\""
"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"
},
{
"name": "finds a value in an array of even length",
"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\""
"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"
},
{
"name": "identifies that a value is not included in the array",
"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\""
"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"
},
{
"name": "a value smaller than the array's smallest value is not found",
"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\""
"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"
},
{
"name": "a value larger than the array's largest value is not found",
"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\""
"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"
},
{
"name": "nothing is found in an empty array",
"test_code": "expect (None === binarySearch.find (Array.fromList []) 1)\n |> Test.label.deprecated \"nothing is found in an empty array\""
"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"
},
{
"name": "nothing is found when the left and right bounds cross",
"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\""
"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"
}
]
]
114 changes: 78 additions & 36 deletions exercises/practice/binary-search/binarySearch.test.u
Original file line number Diff line number Diff line change
@@ -1,50 +1,92 @@
use data Array
binarySearch.find.tests.ex1 = verify do
labeled "finds a value in an array with one element" do
expected = Some +0
actual = binarySearch.find (Array.fromList [6]) 6
label "expected" expected
label "actual" actual
ensureEqual expected actual

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

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

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

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

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

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

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

binarySearch.find.tests.ex8 =
expect (None === binarySearch.find (Array.fromList [1, 3, 4, 6, 8, 9, 11]) 0)
|> Test.label.deprecated "a value smaller than the array's smallest value is not found"
binarySearch.find.tests.ex9 = verify do
labeled "a value larger than the array's largest value is not found" do
expected = None
actual = binarySearch.find (Array.fromList [1, 3, 4, 6, 8, 9, 11]) 13
label "expected" expected
label "actual" actual
ensureEqual expected actual

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

binarySearch.find.tests.ex10 =
expect (None === binarySearch.find (Array.fromList []) 1)
|> Test.label.deprecated "nothing is found in an empty array"
binarySearch.find.tests.ex11 = verify do
labeled "nothing is found when the left and right bounds cross" do
expected = None
actual = binarySearch.find (Array.fromList [1, 2]) 0
label "expected" expected
label "actual" actual
ensureEqual expected actual

binarySearch.find.tests.ex11 =
expect (None === binarySearch.find (Array.fromList [1, 2]) 0)
|> Test.label.deprecated "nothing is found when the left and right bounds cross"

test> binarySearch.tests = runAll [
test> binarySearch.tests = join [
binarySearch.find.tests.ex1,
binarySearch.find.tests.ex2,
binarySearch.find.tests.ex3,
Expand Down
Loading

0 comments on commit df38040

Please sign in to comment.