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

Sync tests #288

Merged
merged 1 commit into from
Jan 2, 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
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