Skip to content

Commit

Permalink
Sync tests (#288)
Browse files Browse the repository at this point in the history
  • Loading branch information
IsaacG authored Jan 2, 2025
1 parent 214665e commit 31c72ae
Show file tree
Hide file tree
Showing 6 changed files with 92 additions and 4 deletions.
5 changes: 5 additions & 0 deletions exercises/practice/bob/.meta/tests.toml
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ description = "alternate silence"

[66953780-165b-4e7e-8ce3-4bcb80b6385a]
description = "multiple line question"
include = false

[5371ef75-d9ea-4103-bcfa-2da973ddec1b]
description = "starting with whitespace"
Expand All @@ -83,3 +84,7 @@ description = "other whitespace"

[12983553-8601-46a8-92fa-fcaa3bc4a2a0]
description = "non-question ending with whitespace"

[2c7278ac-f955-4eb4-bf8f-e33eb4116a15]
description = "multiple line question"
reimplements = "66953780-165b-4e7e-8ce3-4bcb80b6385a"
4 changes: 2 additions & 2 deletions exercises/practice/bob/test-bob.bats
Original file line number Diff line number Diff line change
Expand Up @@ -143,9 +143,9 @@ load bats-extra

@test "multiple line question" {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
run gawk -f bob.awk <<< $'\nDoes this cryogenic chamber make me look fat?\nNo'
run gawk -f bob.awk <<< $'\nDoes this cryogenic chamber make\n me look fat?'
assert_success
assert_output "Whatever."
assert_output "Sure."
}
@test "starting with whitespace" {
Expand Down
18 changes: 18 additions & 0 deletions exercises/practice/forth/.meta/tests.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ description = "addition -> errors if there is nothing on the stack"
[06efb9a4-817a-435e-b509-06166993c1b8]
description = "addition -> errors if there is only one value on the stack"

[1e07a098-c5fa-4c66-97b2-3c81205dbc2f]
description = "addition -> more than two values on the stack"

[09687c99-7bbc-44af-8526-e402f997ccbf]
description = "subtraction -> can subtract two numbers"

Expand All @@ -33,6 +36,9 @@ description = "subtraction -> errors if there is nothing on the stack"
[b3cee1b2-9159-418a-b00d-a1bb3765c23b]
description = "subtraction -> errors if there is only one value on the stack"

[2c8cc5ed-da97-4cb1-8b98-fa7b526644f4]
description = "subtraction -> more than two values on the stack"

[5df0ceb5-922e-401f-974d-8287427dbf21]
description = "multiplication -> can multiply two numbers"

Expand All @@ -42,6 +48,9 @@ description = "multiplication -> errors if there is nothing on the stack"
[8ba4b432-9f94-41e0-8fae-3b3712bd51b3]
description = "multiplication -> errors if there is only one value on the stack"

[5cd085b5-deb1-43cc-9c17-6b1c38bc9970]
description = "multiplication -> more than two values on the stack"

[e74c2204-b057-4cff-9aa9-31c7c97a93f5]
description = "division -> can divide two numbers"

Expand All @@ -57,12 +66,21 @@ description = "division -> errors if there is nothing on the stack"
[d5547f43-c2ff-4d5c-9cb0-2a4f6684c20d]
description = "division -> errors if there is only one value on the stack"

[f224f3e0-b6b6-4864-81de-9769ecefa03f]
description = "division -> more than two values on the stack"

[ee28d729-6692-4a30-b9be-0d830c52a68c]
description = "combined arithmetic -> addition and subtraction"

[40b197da-fa4b-4aca-a50b-f000d19422c1]
description = "combined arithmetic -> multiplication and division"

[f749b540-53aa-458e-87ec-a70797eddbcb]
description = "combined arithmetic -> multiplication and addition"

[c8e5a4c2-f9bf-4805-9a35-3c3314e4989a]
description = "combined arithmetic -> addition and multiplication"

[c5758235-6eef-4bf6-ab62-c878e50b9957]
description = "dup -> copies a value on the stack"

Expand Down
59 changes: 57 additions & 2 deletions exercises/practice/forth/test-forth.bats
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,15 @@ END
assert_output --partial "only one value on the stack"
}

@test addition_more_than_two_values_on_the_stack {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
run gawk -f forth.awk <<END
1 2 3 +
END
assert_success
assert_output "1 5"
}

# subtraction
@test subtraction_ok {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
Expand Down Expand Up @@ -76,6 +85,15 @@ END
assert_output --partial "only one value on the stack"
}

@test subtraction_more_than_two_values_on_the_stack {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
run gawk -f forth.awk <<END
1 12 3 -
END
assert_success
assert_output "1 9"
}

# multiplication
@test multiplication_ok {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
Expand Down Expand Up @@ -104,6 +122,15 @@ END
assert_output --partial "only one value on the stack"
}

@test multiplication_more_than_two_values_on_the_stack {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
run gawk -f forth.awk <<END
1 2 3 *
END
assert_success
assert_output "1 6"
}

# division
@test division_ok {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
Expand Down Expand Up @@ -150,16 +177,26 @@ END
assert_output --partial "divide by zero"
}

@test division_more_than_two_values_on_the_stack {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
run gawk -f forth.awk <<END
1 12 3 /
END
assert_success
assert_output "1 4"
}

# combined arithmetic
@test add_and_subtract {
@test combined_add_and_subtract {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
run gawk -f forth.awk <<END
1 2 + 4 -
END
assert_success
assert_output "-1"
}
@test multiply_and_divide {

@test combined_multiply_and_divide {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
run gawk -f forth.awk <<END
2 4 * 3 /
Expand All @@ -168,6 +205,24 @@ END
assert_output "2"
}

@test combined_multiplication_and_addition {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
run gawk -f forth.awk <<END
1 3 4 * +
END
assert_success
assert_output "13"
}

@test combined_addition_and_multiplication {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
run gawk -f forth.awk <<END
1 3 4 + *
END
assert_success
assert_output "7"
}

# dup
@test dup_1 {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
Expand Down
3 changes: 3 additions & 0 deletions exercises/practice/pig-latin/.meta/tests.toml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@ description = "first letter and ay are moved to the end of words that start with
[bce94a7a-a94e-4e2b-80f4-b2bb02e40f71]
description = "first letter and ay are moved to the end of words that start with consonants -> word beginning with q without a following u"

[e59dbbe8-ccee-4619-a8e9-ce017489bfc0]
description = "first letter and ay are moved to the end of words that start with consonants -> word beginning with consonant and vowel containing qu"

[c01e049a-e3e2-451c-bf8e-e2abb7e438b8]
description = "some letter clusters are treated like a single consonant -> word beginning with ch"

Expand Down
7 changes: 7 additions & 0 deletions exercises/practice/pig-latin/test-pig-latin.bats
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,13 @@ load bats-extra
assert_output "atqay"
}

@test word_beginning_with_consonant_and_vowel_containing_qu {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
run gawk -f pig-latin.awk <<< "liquid"
assert_success
assert_output "iquidlay"
}

# some letter clusters are treated like a single consonant

@test word_beginning_with_ch {
Expand Down

0 comments on commit 31c72ae

Please sign in to comment.