From 966bbd533b5e493e7ecb5239ae1359c22933d6bf Mon Sep 17 00:00:00 2001 From: Derk-Jan Karrenbeld Date: Mon, 15 Apr 2019 12:11:27 +0200 Subject: [PATCH] bracket-push: rename to matching-brackets This rename was proposed in: exercism/problem-specifications#1501 The rationale for the name is: * to name the exercise by its story, not by what it potentially teaches * to avoid unnecessarily biasing the solution space --- config.json | 2 +- exercises/bracket-push/bracket-push.test.ts | 73 ------------------- .../README.md | 2 +- .../matching-brackets.example.ts} | 4 +- .../matching-brackets.test.ts | 73 +++++++++++++++++++ .../matching-brackets.ts} | 0 .../package.json | 0 .../tsconfig.json | 0 .../tslint.json | 0 .../yarn.lock | 0 10 files changed, 77 insertions(+), 77 deletions(-) delete mode 100644 exercises/bracket-push/bracket-push.test.ts rename exercises/{bracket-push => matching-brackets}/README.md (97%) rename exercises/{bracket-push/bracket-push.example.ts => matching-brackets/matching-brackets.example.ts} (95%) create mode 100644 exercises/matching-brackets/matching-brackets.test.ts rename exercises/{bracket-push/bracket-push.ts => matching-brackets/matching-brackets.ts} (100%) rename exercises/{bracket-push => matching-brackets}/package.json (100%) mode change 100755 => 100644 rename exercises/{bracket-push => matching-brackets}/tsconfig.json (100%) rename exercises/{bracket-push => matching-brackets}/tslint.json (100%) rename exercises/{bracket-push => matching-brackets}/yarn.lock (100%) diff --git a/config.json b/config.json index 84c39ffcb..969ca1a64 100644 --- a/config.json +++ b/config.json @@ -483,7 +483,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