From 056d0737061bb696355daca5b2e5ce4aa71c81ca Mon Sep 17 00:00:00 2001 From: Anastasios Chatzialexiou <16361161+tasxatzial@users.noreply.github.com> Date: Mon, 17 Jun 2024 03:49:20 +0300 Subject: [PATCH 1/2] sync tests --- .../matching-brackets/.meta/tests.toml | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/exercises/practice/matching-brackets/.meta/tests.toml b/exercises/practice/matching-brackets/.meta/tests.toml index cc9e471a4..35a98a042 100644 --- a/exercises/practice/matching-brackets/.meta/tests.toml +++ b/exercises/practice/matching-brackets/.meta/tests.toml @@ -1,6 +1,13 @@ -# This is an auto-generated file. Regular comments will be removed when this -# file is regenerated. Regenerating will not touch any manually added keys, -# so comments can be added in a "comment" key. +# This is an auto-generated file. +# +# Regenerating this file via `configlet sync` will: +# - Recreate every `description` key/value pair +# - Recreate every `reimplements` key/value pair, where they exist in problem-specifications +# - Remove any `include = true` key/value pair (an omitted `include` key implies inclusion) +# - Preserve any other key/value pair +# +# As user-added comments (using the # character) will be removed when this file +# is regenerated, comments can be added via a `comment` key. [81ec11da-38dd-442a-bcf9-3de7754609a5] description = "paired square brackets" @@ -41,12 +48,21 @@ description = "unpaired and nested brackets" [a0205e34-c2ac-49e6-a88a-899508d7d68e] description = "paired and wrong nested brackets" +[1d5c093f-fc84-41fb-8c2a-e052f9581602] +description = "paired and wrong nested brackets but innermost are correct" + [ef47c21b-bcfd-4998-844c-7ad5daad90a8] description = "paired and incomplete brackets" [a4675a40-a8be-4fc2-bc47-2a282ce6edbe] description = "too many closing brackets" +[a345a753-d889-4b7e-99ae-34ac85910d1a] +description = "early unexpected brackets" + +[21f81d61-1608-465a-b850-baa44c5def83] +description = "early mismatched brackets" + [99255f93-261b-4435-a352-02bdecc9bdf2] description = "math expression" From f7de2ef8b72f2dee6c19de097d89a194a8f8f4fd Mon Sep 17 00:00:00 2001 From: Anastasios Chatzialexiou <16361161+tasxatzial@users.noreply.github.com> Date: Mon, 17 Jun 2024 09:44:15 +0300 Subject: [PATCH 2/2] implement tests --- .../test/matching_brackets_test.clj | 79 +++++++++++++------ 1 file changed, 56 insertions(+), 23 deletions(-) diff --git a/exercises/practice/matching-brackets/test/matching_brackets_test.clj b/exercises/practice/matching-brackets/test/matching_brackets_test.clj index d84e5c7fa..21c7e8613 100644 --- a/exercises/practice/matching-brackets/test/matching_brackets_test.clj +++ b/exercises/practice/matching-brackets/test/matching_brackets_test.clj @@ -1,50 +1,83 @@ (ns matching-brackets-test - (:require [clojure.test :refer [deftest is]] + (:require [clojure.test :refer [deftest testing is]] matching-brackets)) -(deftest paired-square - (is (matching-brackets/valid? "[]") "paired square brackets")) +(deftest paired-square-brackets + (testing "paired square brackets" + (is (matching-brackets/valid? "[]")))) (deftest empty-string - (is (matching-brackets/valid? "") "empty string")) + (testing "Empty string" + (is (matching-brackets/valid? "")))) (deftest unpaired-brackets - (is (false? (matching-brackets/valid? "[[")) "unpaired brackets")) + (testing "Unpaired brackets" + (is (false? (matching-brackets/valid? "[["))))) (deftest wrong-ordered-brackets - (is (false? (matching-brackets/valid? "}{")) "wrong ordered brackets")) + (testing "Wrong ordered brackets" + (is (false? (matching-brackets/valid? "}{"))))) + +(deftest wrong-closing-bracket + (testing "Wrong closing bracket" + (is (false? (matching-brackets/valid? "{]"))))) (deftest paired-with-whitespace - (is (matching-brackets/valid? "{ }") "paired with whitespace")) + (testing "Paired with whitespace" + (is (matching-brackets/valid? "{ }")))) + +(deftest partially-paired-brackets + (testing "Partially paired brackets" + (is (false? (matching-brackets/valid? "{[])"))))) (deftest simple-nested-brackets - (is (matching-brackets/valid? "{[]}") - "simple nested brackets")) + (testing "Simple nested brackets" + (is (matching-brackets/valid? "{[]}")))) (deftest several-paired-brackets - (is (matching-brackets/valid? "{}[]") - "several paired brackets")) + (testing "Several paired brackets" + (is (matching-brackets/valid? "{}[]")))) (deftest paired-and-nested-brackets - (is (matching-brackets/valid? "([{}({}[])])") - "paired and nested brackets")) + (testing "Paired and nested brackets" + (is (matching-brackets/valid? "([{}({}[])])")))) (deftest unopened-closing-brackets - (is (false? (matching-brackets/valid? "{[)][]}")) - "unopened closing brackets")) + (testing "Unopened closing brackets" + (is (false? (matching-brackets/valid? "{[)][]}"))))) (deftest unpaired-and-nested-brackets - (is (false? (matching-brackets/valid? "([{])")) - "unpaired and nested brackets")) + (testing "Unpaired and nested brackets" + (is (false? (matching-brackets/valid? "([{])"))))) (deftest paired-and-wrong-nested-brackets - (is (false? (matching-brackets/valid? "[({]})")) - "paired and wrong nested brackets")) + (testing "Paired and wrong nested brackets" + (is (false? (matching-brackets/valid? "[({]})"))))) + +(deftest paired-and-wrong-nested-brackets-but-innermost-are-correct + (testing "Paired and wrong nested brackets but innermost are correct" + (is (false? (matching-brackets/valid? "[({}])"))))) + +(deftest paired-and-incomplete-brackets + (testing "Paired and incomplete brackets" + (is (false? (matching-brackets/valid? "{}["))))) + +(deftest too-many-closing-brackets + (testing "Too many closing brackets" + (is (false? (matching-brackets/valid? "[]]"))))) + +(deftest early-unexpected-brackets + (testing "Early unexpected brackets" + (is (false? (matching-brackets/valid? ")()"))))) + +(deftest early-mismatched-brackets + (testing "Early mismatched brackets" + (is (false? (matching-brackets/valid? "{)()"))))) (deftest math-expression - (is (matching-brackets/valid? "(((185 + 223.85) * 15) - 543)/2") - "math expression")) + (testing "Math expression" + (is (matching-brackets/valid? "(((185 + 223.85) * 15) - 543)/2")))) (deftest complex-latex-expression - (is (matching-brackets/valid? "\\\\left(\\\\begin{array}{cc} \\\\frac{1}{3} & x\\\\\\\\ \\\\mathrm{e}^{x} &... x^2 \\\\end{array}\\\\right)") - "complex latex expression")) + (testing "Complex latex expression" + (is (matching-brackets/valid? "\\\\left(\\\\begin{array}{cc} \\\\frac{1}{3} & x\\\\\\\\ \\\\mathrm{e}^{x} &... x^2 \\\\end{array}\\\\right)"))))