diff --git a/config.json b/config.json index 3540cdc5..8ae0197b 100644 --- a/config.json +++ b/config.json @@ -195,19 +195,6 @@ "algorithms" ] }, - { - "slug" : "bracket-push", - "uuid" : "d126be16-9d41-0d00-8fdc-2ff208866539", - "core" : false, - "auto_approve" : false, - "unlocked_by" : "leap", - "difficulty" : 4, - "topics" : [ - "strings", - "parsing", - "stacks" - ] - }, { "slug" : "clock", "uuid" : "f8080717-9d41-0d00-9011-755a08866539", @@ -313,6 +300,19 @@ "algorithms" ] }, + { + "slug" : "matching-brackets", + "uuid" : "d126be16-9d41-0d00-8fdc-2ff208866539", + "core" : false, + "auto_approve" : false, + "unlocked_by" : "leap", + "difficulty" : 4, + "topics" : [ + "strings", + "parsing", + "stacks" + ] + }, { "slug" : "pangram", "uuid" : "6be398be-4a3f-0d00-bb67-0d71071d6982", diff --git a/dev/src/Exercism/BracketPushTest.class.st b/dev/src/Exercism/BracketPushTest.class.st deleted file mode 100644 index 7677473d..00000000 --- a/dev/src/Exercism/BracketPushTest.class.st +++ /dev/null @@ -1,193 +0,0 @@ -" -# Bracket Push - -Given a string containing brackets `[]`, braces `{}`, parentheses `()`, -or any combination thereof, verify that any and all pairs are matched -and nested correctly. - -## Hint - -Saving state in a useful data type can help here. - - -" -Class { - #name : #BracketPushTest, - #superclass : #ExercismTest, - #instVars : [ - 'bracketPushCalculator' - ], - #category : #'Exercism-BracketPush' -} - -{ #category : #config } -BracketPushTest class >> exercise [ - "Answer the configured exercise meta data for this exercise, an ExercismExercise" - - ^(self createExerciseAfter: LeapTest) - isCore: false; - difficulty: 4; - topics: #('strings' 'parsing' 'stacks'); - yourself - -] - -{ #category : #generator } -BracketPushTest class >> generator [ - "Potential generator hints" - - ^ {('@isPairedValue:' -> #isPaired:)} -] - -{ #category : #config } -BracketPushTest class >> uuid [ - "Answer a unique id for this exercise" - ^'d126be16-9d41-0d00-8fdc-2ff208866539' -] - -{ #category : #config } -BracketPushTest class >> version [ - "Generated from specification: 29 March 2019" - ^'1.5.0' -] - -{ #category : #setup } -BracketPushTest >> setUp [ - bracketPushCalculator := BracketPush new -] - -{ #category : #tests } -BracketPushTest >> test01_PairedSquareBrackets [ - | result | - - result := bracketPushCalculator isPaired: '[]' . - self assert: result equals: true -] - -{ #category : #tests } -BracketPushTest >> test02_EmptyString [ - | result | - - result := bracketPushCalculator isPaired: '' . - self assert: result equals: true -] - -{ #category : #tests } -BracketPushTest >> test03_UnpairedBrackets [ - | result | - - result := bracketPushCalculator isPaired: '[[' . - self assert: result equals: false -] - -{ #category : #tests } -BracketPushTest >> test04_WrongOrderedBrackets [ - | result | - - result := bracketPushCalculator isPaired: '}{' . - self assert: result equals: false -] - -{ #category : #tests } -BracketPushTest >> test05_WrongClosingBracket [ - | result | - - result := bracketPushCalculator isPaired: '{]' . - self assert: result equals: false -] - -{ #category : #tests } -BracketPushTest >> test06_PairedWithWhitespace [ - | result | - - result := bracketPushCalculator isPaired: '{ }' . - self assert: result equals: true -] - -{ #category : #tests } -BracketPushTest >> test07_PartiallyPairedBrackets [ - | result | - - result := bracketPushCalculator isPaired: '{[])' . - self assert: result equals: false -] - -{ #category : #tests } -BracketPushTest >> test08_SimpleNestedBrackets [ - | result | - - result := bracketPushCalculator isPaired: '{[]}' . - self assert: result equals: true -] - -{ #category : #tests } -BracketPushTest >> test09_SeveralPairedBrackets [ - | result | - - result := bracketPushCalculator isPaired: '{}[]' . - self assert: result equals: true -] - -{ #category : #tests } -BracketPushTest >> test10_PairedAndNestedBrackets [ - | result | - - result := bracketPushCalculator isPaired: '([{}({}[])])' . - self assert: result equals: true -] - -{ #category : #tests } -BracketPushTest >> test11_UnopenedClosingBrackets [ - | result | - - result := bracketPushCalculator isPaired: '{[)][]}' . - self assert: result equals: false -] - -{ #category : #tests } -BracketPushTest >> test12_UnpairedAndNestedBrackets [ - | result | - - result := bracketPushCalculator isPaired: '([{])' . - self assert: result equals: false -] - -{ #category : #tests } -BracketPushTest >> test13_PairedAndWrongNestedBrackets [ - | result | - - result := bracketPushCalculator isPaired: '[({]})' . - self assert: result equals: false -] - -{ #category : #tests } -BracketPushTest >> test14_PairedAndIncompleteBrackets [ - | result | - - result := bracketPushCalculator isPaired: '{}[' . - self assert: result equals: false -] - -{ #category : #tests } -BracketPushTest >> test15_TooManyClosingBrackets [ - | result | - - result := bracketPushCalculator isPaired: '[]]' . - self assert: result equals: false -] - -{ #category : #tests } -BracketPushTest >> test16_MathExpression [ - | result | - - result := bracketPushCalculator isPaired: '(((185 + 223.85) * 15) - 543)/2' . - self assert: result equals: true -] - -{ #category : #tests } -BracketPushTest >> test17_ComplexLatexExpression [ - | result | - - result := bracketPushCalculator isPaired: '\left(\begin{array}{cc} \frac{1}{3} & x\\ \mathrm{e}^{x} &... x^2 \end{array}\right)' . - self assert: result equals: true -] diff --git a/dev/src/Exercism/BracketPush.class.st b/dev/src/Exercism/MatchingBrackets.class.st similarity index 75% rename from dev/src/Exercism/BracketPush.class.st rename to dev/src/Exercism/MatchingBrackets.class.st index cb4d359a..e153fcfb 100644 --- a/dev/src/Exercism/BracketPush.class.st +++ b/dev/src/Exercism/MatchingBrackets.class.st @@ -2,18 +2,18 @@ A simple solution to bracket exercise using a Stack " Class { - #name : #BracketPush, + #name : #MatchingBrackets, #superclass : #Object, - #category : #'Exercism-BracketPush' + #category : #'Exercism-MatchingBrackets' } { #category : #'private-constants' } -BracketPush >> delimiterPairs [ +MatchingBrackets >> delimiterPairs [ ^ #('()' '[]' '{}') ] { #category : #'private-testing' } -BracketPush >> is: closeChar closingBracketFor: openChar [ +MatchingBrackets >> is: closeChar closingBracketFor: openChar [ ^ self delimiterPairs detect: [ :each | each first = openChar & (each last = closeChar) ] ifFound: [ true ] @@ -21,7 +21,7 @@ BracketPush >> is: closeChar closingBracketFor: openChar [ ] { #category : #exercism } -BracketPush >> isPaired: aString [ +MatchingBrackets >> isPaired: aString [ | stack | stack := Stack new. diff --git a/dev/src/Exercism/MatchingBracketsTest.class.st b/dev/src/Exercism/MatchingBracketsTest.class.st new file mode 100644 index 00000000..76085b8d --- /dev/null +++ b/dev/src/Exercism/MatchingBracketsTest.class.st @@ -0,0 +1,193 @@ +" +# Matching Brackets + +Given a string containing brackets `[]`, braces `{}`, parentheses `()`, +or any combination thereof, verify that any and all pairs are matched +and nested correctly. + +## Hint + +Saving state in a useful data type can help here. + + +" +Class { + #name : #MatchingBracketsTest, + #superclass : #ExercismTest, + #instVars : [ + 'matchingBracketsCalculator' + ], + #category : #'Exercism-MatchingBrackets' +} + +{ #category : #config } +MatchingBracketsTest class >> exercise [ + "Answer the configured exercise meta data for this exercise, an ExercismExercise" + + ^(self createExerciseAfter: LeapTest) + isCore: false; + difficulty: 4; + topics: #('strings' 'parsing' 'stacks'); + yourself + +] + +{ #category : #generator } +MatchingBracketsTest class >> generator [ + "Potential generator hints" + + ^ {('@isPairedValue:' -> #isPaired:)} +] + +{ #category : #config } +MatchingBracketsTest class >> uuid [ + "Answer a unique id for this exercise" + ^'d126be16-9d41-0d00-8fdc-2ff208866539' +] + +{ #category : #config } +MatchingBracketsTest class >> version [ + "Generated from specification: 24 April 2019" + ^'2.0.0' +] + +{ #category : #setup } +MatchingBracketsTest >> setUp [ + matchingBracketsCalculator := MatchingBrackets new +] + +{ #category : #tests } +MatchingBracketsTest >> test01_PairedSquareBrackets [ + | result | + + result := matchingBracketsCalculator isPaired: '[]' . + self assert: result equals: true +] + +{ #category : #tests } +MatchingBracketsTest >> test02_EmptyString [ + | result | + + result := matchingBracketsCalculator isPaired: '' . + self assert: result equals: true +] + +{ #category : #tests } +MatchingBracketsTest >> test03_UnpairedBrackets [ + | result | + + result := matchingBracketsCalculator isPaired: '[[' . + self assert: result equals: false +] + +{ #category : #tests } +MatchingBracketsTest >> test04_WrongOrderedBrackets [ + | result | + + result := matchingBracketsCalculator isPaired: '}{' . + self assert: result equals: false +] + +{ #category : #tests } +MatchingBracketsTest >> test05_WrongClosingBracket [ + | result | + + result := matchingBracketsCalculator isPaired: '{]' . + self assert: result equals: false +] + +{ #category : #tests } +MatchingBracketsTest >> test06_PairedWithWhitespace [ + | result | + + result := matchingBracketsCalculator isPaired: '{ }' . + self assert: result equals: true +] + +{ #category : #tests } +MatchingBracketsTest >> test07_PartiallyPairedBrackets [ + | result | + + result := matchingBracketsCalculator isPaired: '{[])' . + self assert: result equals: false +] + +{ #category : #tests } +MatchingBracketsTest >> test08_SimpleNestedBrackets [ + | result | + + result := matchingBracketsCalculator isPaired: '{[]}' . + self assert: result equals: true +] + +{ #category : #tests } +MatchingBracketsTest >> test09_SeveralPairedBrackets [ + | result | + + result := matchingBracketsCalculator isPaired: '{}[]' . + self assert: result equals: true +] + +{ #category : #tests } +MatchingBracketsTest >> test10_PairedAndNestedBrackets [ + | result | + + result := matchingBracketsCalculator isPaired: '([{}({}[])])' . + self assert: result equals: true +] + +{ #category : #tests } +MatchingBracketsTest >> test11_UnopenedClosingBrackets [ + | result | + + result := matchingBracketsCalculator isPaired: '{[)][]}' . + self assert: result equals: false +] + +{ #category : #tests } +MatchingBracketsTest >> test12_UnpairedAndNestedBrackets [ + | result | + + result := matchingBracketsCalculator isPaired: '([{])' . + self assert: result equals: false +] + +{ #category : #tests } +MatchingBracketsTest >> test13_PairedAndWrongNestedBrackets [ + | result | + + result := matchingBracketsCalculator isPaired: '[({]})' . + self assert: result equals: false +] + +{ #category : #tests } +MatchingBracketsTest >> test14_PairedAndIncompleteBrackets [ + | result | + + result := matchingBracketsCalculator isPaired: '{}[' . + self assert: result equals: false +] + +{ #category : #tests } +MatchingBracketsTest >> test15_TooManyClosingBrackets [ + | result | + + result := matchingBracketsCalculator isPaired: '[]]' . + self assert: result equals: false +] + +{ #category : #tests } +MatchingBracketsTest >> test16_MathExpression [ + | result | + + result := matchingBracketsCalculator isPaired: '(((185 + 223.85) * 15) - 543)/2' . + self assert: result equals: true +] + +{ #category : #tests } +MatchingBracketsTest >> test17_ComplexLatexExpression [ + | result | + + result := matchingBracketsCalculator isPaired: '\left(\begin{array}{cc} \frac{1}{3} & x\\ \mathrm{e}^{x} &... x^2 \end{array}\right)' . + self assert: result equals: true +] diff --git a/exercises/bracket-push/BracketPushTest.class.st b/exercises/bracket-push/BracketPushTest.class.st deleted file mode 100644 index 7677473d..00000000 --- a/exercises/bracket-push/BracketPushTest.class.st +++ /dev/null @@ -1,193 +0,0 @@ -" -# Bracket Push - -Given a string containing brackets `[]`, braces `{}`, parentheses `()`, -or any combination thereof, verify that any and all pairs are matched -and nested correctly. - -## Hint - -Saving state in a useful data type can help here. - - -" -Class { - #name : #BracketPushTest, - #superclass : #ExercismTest, - #instVars : [ - 'bracketPushCalculator' - ], - #category : #'Exercism-BracketPush' -} - -{ #category : #config } -BracketPushTest class >> exercise [ - "Answer the configured exercise meta data for this exercise, an ExercismExercise" - - ^(self createExerciseAfter: LeapTest) - isCore: false; - difficulty: 4; - topics: #('strings' 'parsing' 'stacks'); - yourself - -] - -{ #category : #generator } -BracketPushTest class >> generator [ - "Potential generator hints" - - ^ {('@isPairedValue:' -> #isPaired:)} -] - -{ #category : #config } -BracketPushTest class >> uuid [ - "Answer a unique id for this exercise" - ^'d126be16-9d41-0d00-8fdc-2ff208866539' -] - -{ #category : #config } -BracketPushTest class >> version [ - "Generated from specification: 29 March 2019" - ^'1.5.0' -] - -{ #category : #setup } -BracketPushTest >> setUp [ - bracketPushCalculator := BracketPush new -] - -{ #category : #tests } -BracketPushTest >> test01_PairedSquareBrackets [ - | result | - - result := bracketPushCalculator isPaired: '[]' . - self assert: result equals: true -] - -{ #category : #tests } -BracketPushTest >> test02_EmptyString [ - | result | - - result := bracketPushCalculator isPaired: '' . - self assert: result equals: true -] - -{ #category : #tests } -BracketPushTest >> test03_UnpairedBrackets [ - | result | - - result := bracketPushCalculator isPaired: '[[' . - self assert: result equals: false -] - -{ #category : #tests } -BracketPushTest >> test04_WrongOrderedBrackets [ - | result | - - result := bracketPushCalculator isPaired: '}{' . - self assert: result equals: false -] - -{ #category : #tests } -BracketPushTest >> test05_WrongClosingBracket [ - | result | - - result := bracketPushCalculator isPaired: '{]' . - self assert: result equals: false -] - -{ #category : #tests } -BracketPushTest >> test06_PairedWithWhitespace [ - | result | - - result := bracketPushCalculator isPaired: '{ }' . - self assert: result equals: true -] - -{ #category : #tests } -BracketPushTest >> test07_PartiallyPairedBrackets [ - | result | - - result := bracketPushCalculator isPaired: '{[])' . - self assert: result equals: false -] - -{ #category : #tests } -BracketPushTest >> test08_SimpleNestedBrackets [ - | result | - - result := bracketPushCalculator isPaired: '{[]}' . - self assert: result equals: true -] - -{ #category : #tests } -BracketPushTest >> test09_SeveralPairedBrackets [ - | result | - - result := bracketPushCalculator isPaired: '{}[]' . - self assert: result equals: true -] - -{ #category : #tests } -BracketPushTest >> test10_PairedAndNestedBrackets [ - | result | - - result := bracketPushCalculator isPaired: '([{}({}[])])' . - self assert: result equals: true -] - -{ #category : #tests } -BracketPushTest >> test11_UnopenedClosingBrackets [ - | result | - - result := bracketPushCalculator isPaired: '{[)][]}' . - self assert: result equals: false -] - -{ #category : #tests } -BracketPushTest >> test12_UnpairedAndNestedBrackets [ - | result | - - result := bracketPushCalculator isPaired: '([{])' . - self assert: result equals: false -] - -{ #category : #tests } -BracketPushTest >> test13_PairedAndWrongNestedBrackets [ - | result | - - result := bracketPushCalculator isPaired: '[({]})' . - self assert: result equals: false -] - -{ #category : #tests } -BracketPushTest >> test14_PairedAndIncompleteBrackets [ - | result | - - result := bracketPushCalculator isPaired: '{}[' . - self assert: result equals: false -] - -{ #category : #tests } -BracketPushTest >> test15_TooManyClosingBrackets [ - | result | - - result := bracketPushCalculator isPaired: '[]]' . - self assert: result equals: false -] - -{ #category : #tests } -BracketPushTest >> test16_MathExpression [ - | result | - - result := bracketPushCalculator isPaired: '(((185 + 223.85) * 15) - 543)/2' . - self assert: result equals: true -] - -{ #category : #tests } -BracketPushTest >> test17_ComplexLatexExpression [ - | result | - - result := bracketPushCalculator isPaired: '\left(\begin{array}{cc} \frac{1}{3} & x\\ \mathrm{e}^{x} &... x^2 \end{array}\right)' . - self assert: result equals: true -] diff --git a/exercises/bracket-push/.meta/hints.md b/exercises/matching-brackets/.meta/hints.md similarity index 100% rename from exercises/bracket-push/.meta/hints.md rename to exercises/matching-brackets/.meta/hints.md diff --git a/exercises/bracket-push/.meta/solution/BracketPush.class.st b/exercises/matching-brackets/.meta/solution/MatchingBrackets.class.st similarity index 75% rename from exercises/bracket-push/.meta/solution/BracketPush.class.st rename to exercises/matching-brackets/.meta/solution/MatchingBrackets.class.st index cb4d359a..e153fcfb 100644 --- a/exercises/bracket-push/.meta/solution/BracketPush.class.st +++ b/exercises/matching-brackets/.meta/solution/MatchingBrackets.class.st @@ -2,18 +2,18 @@ A simple solution to bracket exercise using a Stack " Class { - #name : #BracketPush, + #name : #MatchingBrackets, #superclass : #Object, - #category : #'Exercism-BracketPush' + #category : #'Exercism-MatchingBrackets' } { #category : #'private-constants' } -BracketPush >> delimiterPairs [ +MatchingBrackets >> delimiterPairs [ ^ #('()' '[]' '{}') ] { #category : #'private-testing' } -BracketPush >> is: closeChar closingBracketFor: openChar [ +MatchingBrackets >> is: closeChar closingBracketFor: openChar [ ^ self delimiterPairs detect: [ :each | each first = openChar & (each last = closeChar) ] ifFound: [ true ] @@ -21,7 +21,7 @@ BracketPush >> is: closeChar closingBracketFor: openChar [ ] { #category : #exercism } -BracketPush >> isPaired: aString [ +MatchingBrackets >> isPaired: aString [ | stack | stack := Stack new. diff --git a/exercises/matching-brackets/MatchingBracketsTest.class.st b/exercises/matching-brackets/MatchingBracketsTest.class.st new file mode 100644 index 00000000..76085b8d --- /dev/null +++ b/exercises/matching-brackets/MatchingBracketsTest.class.st @@ -0,0 +1,193 @@ +" +# Matching Brackets + +Given a string containing brackets `[]`, braces `{}`, parentheses `()`, +or any combination thereof, verify that any and all pairs are matched +and nested correctly. + +## Hint + +Saving state in a useful data type can help here. + + +" +Class { + #name : #MatchingBracketsTest, + #superclass : #ExercismTest, + #instVars : [ + 'matchingBracketsCalculator' + ], + #category : #'Exercism-MatchingBrackets' +} + +{ #category : #config } +MatchingBracketsTest class >> exercise [ + "Answer the configured exercise meta data for this exercise, an ExercismExercise" + + ^(self createExerciseAfter: LeapTest) + isCore: false; + difficulty: 4; + topics: #('strings' 'parsing' 'stacks'); + yourself + +] + +{ #category : #generator } +MatchingBracketsTest class >> generator [ + "Potential generator hints" + + ^ {('@isPairedValue:' -> #isPaired:)} +] + +{ #category : #config } +MatchingBracketsTest class >> uuid [ + "Answer a unique id for this exercise" + ^'d126be16-9d41-0d00-8fdc-2ff208866539' +] + +{ #category : #config } +MatchingBracketsTest class >> version [ + "Generated from specification: 24 April 2019" + ^'2.0.0' +] + +{ #category : #setup } +MatchingBracketsTest >> setUp [ + matchingBracketsCalculator := MatchingBrackets new +] + +{ #category : #tests } +MatchingBracketsTest >> test01_PairedSquareBrackets [ + | result | + + result := matchingBracketsCalculator isPaired: '[]' . + self assert: result equals: true +] + +{ #category : #tests } +MatchingBracketsTest >> test02_EmptyString [ + | result | + + result := matchingBracketsCalculator isPaired: '' . + self assert: result equals: true +] + +{ #category : #tests } +MatchingBracketsTest >> test03_UnpairedBrackets [ + | result | + + result := matchingBracketsCalculator isPaired: '[[' . + self assert: result equals: false +] + +{ #category : #tests } +MatchingBracketsTest >> test04_WrongOrderedBrackets [ + | result | + + result := matchingBracketsCalculator isPaired: '}{' . + self assert: result equals: false +] + +{ #category : #tests } +MatchingBracketsTest >> test05_WrongClosingBracket [ + | result | + + result := matchingBracketsCalculator isPaired: '{]' . + self assert: result equals: false +] + +{ #category : #tests } +MatchingBracketsTest >> test06_PairedWithWhitespace [ + | result | + + result := matchingBracketsCalculator isPaired: '{ }' . + self assert: result equals: true +] + +{ #category : #tests } +MatchingBracketsTest >> test07_PartiallyPairedBrackets [ + | result | + + result := matchingBracketsCalculator isPaired: '{[])' . + self assert: result equals: false +] + +{ #category : #tests } +MatchingBracketsTest >> test08_SimpleNestedBrackets [ + | result | + + result := matchingBracketsCalculator isPaired: '{[]}' . + self assert: result equals: true +] + +{ #category : #tests } +MatchingBracketsTest >> test09_SeveralPairedBrackets [ + | result | + + result := matchingBracketsCalculator isPaired: '{}[]' . + self assert: result equals: true +] + +{ #category : #tests } +MatchingBracketsTest >> test10_PairedAndNestedBrackets [ + | result | + + result := matchingBracketsCalculator isPaired: '([{}({}[])])' . + self assert: result equals: true +] + +{ #category : #tests } +MatchingBracketsTest >> test11_UnopenedClosingBrackets [ + | result | + + result := matchingBracketsCalculator isPaired: '{[)][]}' . + self assert: result equals: false +] + +{ #category : #tests } +MatchingBracketsTest >> test12_UnpairedAndNestedBrackets [ + | result | + + result := matchingBracketsCalculator isPaired: '([{])' . + self assert: result equals: false +] + +{ #category : #tests } +MatchingBracketsTest >> test13_PairedAndWrongNestedBrackets [ + | result | + + result := matchingBracketsCalculator isPaired: '[({]})' . + self assert: result equals: false +] + +{ #category : #tests } +MatchingBracketsTest >> test14_PairedAndIncompleteBrackets [ + | result | + + result := matchingBracketsCalculator isPaired: '{}[' . + self assert: result equals: false +] + +{ #category : #tests } +MatchingBracketsTest >> test15_TooManyClosingBrackets [ + | result | + + result := matchingBracketsCalculator isPaired: '[]]' . + self assert: result equals: false +] + +{ #category : #tests } +MatchingBracketsTest >> test16_MathExpression [ + | result | + + result := matchingBracketsCalculator isPaired: '(((185 + 223.85) * 15) - 543)/2' . + self assert: result equals: true +] + +{ #category : #tests } +MatchingBracketsTest >> test17_ComplexLatexExpression [ + | result | + + result := matchingBracketsCalculator isPaired: '\left(\begin{array}{cc} \frac{1}{3} & x\\ \mathrm{e}^{x} &... x^2 \end{array}\right)' . + self assert: result equals: true +] diff --git a/exercises/bracket-push/README.md b/exercises/matching-brackets/README.md similarity index 63% rename from exercises/bracket-push/README.md rename to exercises/matching-brackets/README.md index 419cf3d0..94a20dac 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 @@ -11,12 +11,12 @@ Saving state in a useful data type can help here. ## Downloading -To download this exercise in Pharo, type: `bracket-push` into the `Exercism | Fetch Exercise` package menu prompt (right click on the Exercism package in the Pharo System Browser). You can also submit your solution from the same menu for any selected package. You don't normally need to use the exercism cli (as indicated on the right hand panel). +To download this exercise in Pharo, type: `matching-brackets` into the `Exercism | Fetch Exercise` package menu prompt (right click on the Exercism package in the Pharo System Browser). You can also submit your solution from the same menu for any selected package. You don't normally need to use the exercism cli (as indicated on the right hand panel). ## Running The Tests Tests can be run directly from the Pharo IDE, by clicking on the test orb next to any test. -The SUnit convention is that the provided `BracketPushTest`, will test the functionality of `BracketPush`. +The SUnit convention is that the provided `MatchingBracketsTest`, will test the functionality of `MatchingBrackets`. If you are still stuck, the track documentation has more detailed help on [running tests](https://exercism.io/tracks/pharo/tests).