On Sun, 16 Dec 2018 at 02:37, Roelof Wobben <r.wob...@home.nl> wrote:

> Hello,
>
> I have this code :
> https://gist.github.com/RoelofWobben/7c08680797d1d9f84436653a0e4edd3b
> as  my solution to a AoC challenge.
>
>
> But the last test `testIsNice`  is still  outputting the wrong output.
> The right output is :   `ugknbfddgicrmopn ` and `aaa`
>
> Someone who can think with me where I make a thinking error so that the
> right output is seen.
>

You seem to already have fixed that problem, so just some general
feedback...

Your #isNice is an instance method, so you are already inside
a FindNiceStrings object.
So you don't need...
```niceStringsObject := FindNiceStrings new.```
Just use self.

By convention, all #isXXXXX methods should return a Boolean
Your ```isNice: aCollection``` method returns a collection. That would be
better renamed #selectNice:

The two #and: messages inside the #select: makes that a bit verbose.
I'd refactor that condition out to its own method, i.e. ```isNice: aWord```
since that was freed up
So you would have:
```
FindNiceStrings  selectNice: aCollection
^ aCollection select: [ :word | self isNice: word ]
```


> self assert: (FindNiceStrings new checkForbiddenParts: string) equals:
true

The "equals: true" part is redundant.

cheers -ben

Reply via email to