Exercism/bash/matching-brackets/matching_brackets.bats

146 lines
3.5 KiB
Bash

#!/usr/bin/env bats
load bats-extra
# local version: 2.0.0.0
@test "paired square brackets" {
#[[ $BATS_RUN_SKIPPED == "true" ]] || skip
run bash matching_brackets.sh "[]"
assert_success
assert_output "true"
}
@test "empty string" {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
run bash matching_brackets.sh ""
assert_success
assert_output "true"
}
@test "unpaired brackets" {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
run bash matching_brackets.sh "[["
assert_success
assert_output "false"
}
@test "wrong ordered brackets" {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
run bash matching_brackets.sh "}{"
assert_success
assert_output "false"
}
@test "wrong closing bracket" {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
run bash matching_brackets.sh "{]"
assert_success
assert_output "false"
}
@test "paired with whitespace" {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
run bash matching_brackets.sh "{ }"
assert_success
assert_output "true"
}
@test "partially paired brackets" {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
run bash matching_brackets.sh "{[])"
assert_success
assert_output "false"
}
@test "simple nested brackets" {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
run bash matching_brackets.sh "{[]}"
assert_success
assert_output "true"
}
@test "several paired brackets" {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
run bash matching_brackets.sh "{}[]"
assert_success
assert_output "true"
}
@test "paired and nested brackets" {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
run bash matching_brackets.sh "([{}({}[])])"
assert_success
assert_output "true"
}
@test "unopened closing brackets" {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
run bash matching_brackets.sh "{[)][]}"
assert_success
assert_output "false"
}
@test "unpaired and nested brackets" {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
run bash matching_brackets.sh "([{])"
assert_success
assert_output "false"
}
@test "paired and wrong nested brackets" {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
run bash matching_brackets.sh "[({]})"
assert_success
assert_output "false"
}
@test "paired and wrong nested brackets but innermost are correct" {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
run bash matching_brackets.sh "[({}])"
assert_success
assert_output "false"
}
@test "paired and incomplete brackets" {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
run bash matching_brackets.sh "{}["
assert_success
assert_output "false"
}
@test "too many closing brackets" {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
run bash matching_brackets.sh "[]]"
assert_success
assert_output "false"
}
@test "early unexpected brackets" {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
run bash matching_brackets.sh ")()"
assert_success
assert_output "false"
}
@test "early mismatched brackets" {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
run bash matching_brackets.sh "{)()"
assert_success
assert_output "false"
}
@test "math expression" {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
run bash matching_brackets.sh "(((185 + 223.85) * 15) - 543)/2"
assert_success
assert_output "true"
}
@test "complex latex expression" {
[[ $BATS_RUN_SKIPPED == "true" ]] || skip
run bash matching_brackets.sh "\\left(\\begin{array}{cc} \\frac{1}{3} & x\\\\ \\mathrm{e}^{x} &... x^2 \\end{array}\\right)"
assert_success
assert_output "true"
}