-- Implement is_balanced(), which should return true or false depending -- on whether the brackets in the input string are balanced, -- i.e. there is a closing bracket for each opening one. -- -- 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())