diff --git a/config.json b/config.json index 20af8a0ad..ace72d25e 100644 --- a/config.json +++ b/config.json @@ -1152,7 +1152,7 @@ ] }, { - "slug": "bracket-push", + "slug": "matching-brackets", "uuid": "b455f96b-329d-4dec-ac31-599b02c0b2e5", "core": false, "unlocked_by": null, diff --git a/exercises/bracket-push/bracket-push.test.ts b/exercises/bracket-push/bracket-push.test.ts deleted file mode 100644 index a1145c23d..000000000 --- a/exercises/bracket-push/bracket-push.test.ts +++ /dev/null @@ -1,73 +0,0 @@ -import BracketPush from './bracket-push' - -describe('Bracket Push', () => { - it('paired square brackets', () => { - const bracketPush = new BracketPush('[]') - expect(bracketPush.isPaired()).toBeTruthy() - }) - - xit('empty string', () => { - const bracketPush = new BracketPush('') - expect(bracketPush.isPaired()).toBeTruthy() - }) - - xit('unpaired brackets', () => { - const bracketPush = new BracketPush('[[') - expect(bracketPush.isPaired()).toBeFalsy() - }) - - xit('wrong ordered brackets', () => { - const bracketPush = new BracketPush('}{') - expect(bracketPush.isPaired()).toBeFalsy() - }) - - xit('wrong closing bracket', () => { - const bracketPush = new BracketPush('{]') - expect(bracketPush.isPaired()).toBeFalsy() - }) - - xit('paired with whitespace', () => { - const bracketPush = new BracketPush('{ }') - expect(bracketPush.isPaired()).toBeTruthy() - }) - - xit('simple nested brackets', () => { - const bracketPush = new BracketPush('{[]}') - expect(bracketPush.isPaired()).toBeTruthy() - }) - - xit('several paired brackets', () => { - const bracketPush = new BracketPush('{}[]') - expect(bracketPush.isPaired()).toBeTruthy() - }) - - xit('paired and nested brackets', () => { - const bracketPush = new BracketPush('([{}({}[])])') - expect(bracketPush.isPaired()).toBeTruthy() - }) - - xit('unopened closing brackets', () => { - const bracketPush = new BracketPush('{[)][]}') - expect(bracketPush.isPaired()).toBeFalsy() - }) - - xit('unpaired and nested brackets', () => { - const bracketPush = new BracketPush('([{])') - expect(bracketPush.isPaired()).toBeFalsy() - }) - - xit('paired and wrong nested brackets', () => { - const bracketPush = new BracketPush('[({]})') - expect(bracketPush.isPaired()).toBeFalsy() - }) - - xit('math expression', () => { - const bracketPush = new BracketPush('(((185 + 223.85) * 15) - 543)/2') - expect(bracketPush.isPaired()).toBeTruthy() - }) - - xit('complex latex expression', () => { - const bracketPush = new BracketPush('\\left(\\begin{array}{cc} \\frac{1}{3} & x\\\\ \\mathrm{e}^{x} &... x^2 \\end{array}\\right)') - expect(bracketPush.isPaired()).toBeTruthy() - }) -}) diff --git a/exercises/bracket-push/README.md b/exercises/matching-brackets/README.md similarity index 97% rename from exercises/bracket-push/README.md rename to exercises/matching-brackets/README.md index 594a1d786..a66b438a8 100644 --- a/exercises/bracket-push/README.md +++ b/exercises/matching-brackets/README.md @@ -1,4 +1,4 @@ -# Bracket Push +# Matching Brackets Given a string containing brackets `[]`, braces `{}`, parentheses `()`, or any combination thereof, verify that any and all pairs are matched diff --git a/exercises/bracket-push/bracket-push.example.ts b/exercises/matching-brackets/matching-brackets.example.ts similarity index 95% rename from exercises/bracket-push/bracket-push.example.ts rename to exercises/matching-brackets/matching-brackets.example.ts index da03655ff..f1875848c 100644 --- a/exercises/bracket-push/bracket-push.example.ts +++ b/exercises/matching-brackets/matching-brackets.example.ts @@ -1,4 +1,4 @@ -class BracketPush { +class MatchingBrackets { bracketPairs: Map expression: string @@ -47,4 +47,4 @@ class BracketPush { } } -export default BracketPush +export default MatchingBrackets diff --git a/exercises/matching-brackets/matching-brackets.test.ts b/exercises/matching-brackets/matching-brackets.test.ts new file mode 100644 index 000000000..92d783326 --- /dev/null +++ b/exercises/matching-brackets/matching-brackets.test.ts @@ -0,0 +1,73 @@ +import MatchingBrackets from './matching-brackets' + +describe('Matching Brackets', () => { + it('paired square brackets', () => { + const matchingBrackets = new MatchingBrackets('[]') + expect(matchingBrackets.isPaired()).toBeTruthy() + }) + + xit('empty string', () => { + const matchingBrackets = new MatchingBrackets('') + expect(matchingBrackets.isPaired()).toBeTruthy() + }) + + xit('unpaired brackets', () => { + const matchingBrackets = new MatchingBrackets('[[') + expect(matchingBrackets.isPaired()).toBeFalsy() + }) + + xit('wrong ordered brackets', () => { + const matchingBrackets = new MatchingBrackets('}{') + expect(matchingBrackets.isPaired()).toBeFalsy() + }) + + xit('wrong closing bracket', () => { + const matchingBrackets = new MatchingBrackets('{]') + expect(matchingBrackets.isPaired()).toBeFalsy() + }) + + xit('paired with whitespace', () => { + const matchingBrackets = new MatchingBrackets('{ }') + expect(matchingBrackets.isPaired()).toBeTruthy() + }) + + xit('simple nested brackets', () => { + const matchingBrackets = new MatchingBrackets('{[]}') + expect(matchingBrackets.isPaired()).toBeTruthy() + }) + + xit('several paired brackets', () => { + const matchingBrackets = new MatchingBrackets('{}[]') + expect(matchingBrackets.isPaired()).toBeTruthy() + }) + + xit('paired and nested brackets', () => { + const matchingBrackets = new MatchingBrackets('([{}({}[])])') + expect(matchingBrackets.isPaired()).toBeTruthy() + }) + + xit('unopened closing brackets', () => { + const matchingBrackets = new MatchingBrackets('{[)][]}') + expect(matchingBrackets.isPaired()).toBeFalsy() + }) + + xit('unpaired and nested brackets', () => { + const matchingBrackets = new MatchingBrackets('([{])') + expect(matchingBrackets.isPaired()).toBeFalsy() + }) + + xit('paired and wrong nested brackets', () => { + const matchingBrackets = new MatchingBrackets('[({]})') + expect(matchingBrackets.isPaired()).toBeFalsy() + }) + + xit('math expression', () => { + const matchingBrackets = new MatchingBrackets('(((185 + 223.85) * 15) - 543)/2') + expect(matchingBrackets.isPaired()).toBeTruthy() + }) + + xit('complex latex expression', () => { + const matchingBrackets = new MatchingBrackets('\\left(\\begin{array}{cc} \\frac{1}{3} & x\\\\ \\mathrm{e}^{x} &... x^2 \\end{array}\\right)') + expect(matchingBrackets.isPaired()).toBeTruthy() + }) +}) diff --git a/exercises/bracket-push/bracket-push.ts b/exercises/matching-brackets/matching-brackets.ts similarity index 100% rename from exercises/bracket-push/bracket-push.ts rename to exercises/matching-brackets/matching-brackets.ts diff --git a/exercises/bracket-push/package.json b/exercises/matching-brackets/package.json old mode 100755 new mode 100644 similarity index 100% rename from exercises/bracket-push/package.json rename to exercises/matching-brackets/package.json diff --git a/exercises/bracket-push/tsconfig.json b/exercises/matching-brackets/tsconfig.json similarity index 100% rename from exercises/bracket-push/tsconfig.json rename to exercises/matching-brackets/tsconfig.json diff --git a/exercises/bracket-push/tslint.json b/exercises/matching-brackets/tslint.json similarity index 100% rename from exercises/bracket-push/tslint.json rename to exercises/matching-brackets/tslint.json diff --git a/exercises/bracket-push/yarn.lock b/exercises/matching-brackets/yarn.lock similarity index 100% rename from exercises/bracket-push/yarn.lock rename to exercises/matching-brackets/yarn.lock