55 lines
1.4 KiB
Lua
55 lines
1.4 KiB
Lua
-- Solution --------------------------------------------------------------------
|
|
function is_balanced(input)
|
|
-- Your implementation here
|
|
end
|
|
|
|
-- Tests -----------------------------------------------------------------------
|
|
|
|
local luaunit = require("luaunit.luaunit")
|
|
|
|
function test_single_paren_is_not_balanced()
|
|
luaunit.assertFalse(is_balanced("("))
|
|
end
|
|
|
|
function test_paren_pair_is_balanced()
|
|
luaunit.assertTrue(is_balanced("()"))
|
|
end
|
|
|
|
function test_inverted_paren_pair_is_not_balanced()
|
|
luaunit.assertFalse(is_balanced(")("))
|
|
end
|
|
|
|
function test_nested_parens_are_balanced()
|
|
luaunit.assertTrue(is_balanced("(())"))
|
|
end
|
|
|
|
function test_double_open_single_close_paren_is_not_balanced()
|
|
luaunit.assertFalse(is_balanced("(()"))
|
|
end
|
|
|
|
function test_single_open_double_close_brace_is_not_balanced()
|
|
luaunit.assertFalse(is_balanced("{}}"))
|
|
end
|
|
|
|
function test_nested_parens_and_brackets_are_balanced()
|
|
luaunit.assertTrue(is_balanced("([])"))
|
|
end
|
|
|
|
function test_nested_brackets_and_braces_are_balanced()
|
|
luaunit.assertTrue(is_balanced("({})"))
|
|
end
|
|
|
|
function test_sequence_of_paren_bracket_and_brace_pairs_are_balanced()
|
|
luaunit.assertTrue(is_balanced("()[]{}"))
|
|
end
|
|
|
|
function test_balanced_combination_of_nesting_and_sequencing()
|
|
luaunit.assertTrue(is_balanced("(([]{}))[()[[]]]"))
|
|
end
|
|
|
|
function test_interwoven_paren_and_bracket_pairs_are_not_balanced()
|
|
luaunit.assertFalse(is_balanced("([)]"))
|
|
end
|
|
|
|
os.exit(luaunit.LuaUnit.run())
|