Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test upgrades: #147

Merged
merged 2 commits into from
Feb 18, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading