Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Kata - Complex Array Filtering #253

Open
vexx32 opened this issue Sep 23, 2019 · 0 comments
Open

Implement Kata - Complex Array Filtering #253

vexx32 opened this issue Sep 23, 2019 · 0 comments
Labels
Category-Koans Invoking the Great Doubt Good First Issue ❇️ Should be quick and easy! Issue-Suggestion This should be added! Up For Grabs / Hacktoberfest 💻 If it's Up For Grabs, take it and run with it! If not, ask if it's in progress / you can take it.

Comments

@vexx32
Copy link
Owner

vexx32 commented Sep 23, 2019

Describe "Koan(s) You Suggest"

A draft of the kata is available here:

<#
Master Koan! The Monks of the PowerShell order have become angry, and began to complain
that the best chores are being given to the favored Monks. In order to prevent the dishonour of
the angry Monks, we must fix this.
Write a PowerShell function that takes input of:
[int[]]$Data,
[int]$Number
That takes in a list of less than 100 integers and a number n, and returns that same list but
with all of the numbers that occur more than n times removed entirely. The returned list should
retain the same ordering as the origional list. For instance, if data was @(1, 3, 5, 3, 2) and
$n is 1, the answer would result in a list @(1,5,2) because 3 occurs twice, and thus was removed
from the list entirely.
#>
function Limit-ArrayItems {
param(
[int[]]
$Data,
[int]
$Number
)
<#
Fill in the function here to behave as described above,
to submit the correct output to the
tests below.
#>
}
Context 'First Test: Arrays' {
$DataInput = 2, -5, -3, 1, 6, 0, 1, 1, -2, 0, 9, 3, 4, 7, -2, 2, 1, -3, 6, 3, 6, 2, -1, 7, -5,
-2, 9, 4, 4, 6, 9, 1, 8, 8, -1, 9, 0, 0, 7, 5, -2, 1, 2, -2, 1, -4, 8, 4, -2, 8, 0, 9, 0, 0, 1,
-1, 8, -4, 4, 3, -1, -2, 6, 3, 7, -5, 8, 3, -4, -1, 8, 8, 2, 8, 5, 8, 8, 5, -3, -1, -3, 0, 5,
-5, 2, -2, 0, 4, -3, 2, 9, 9, 0, -4, 3, 4, 5, 3, -4, -4, 7, 4, -2, -2, 3, 6, -3, 3, 6, -5, 5,
-2, 1, 9, 0, 6, 7, 1, -5, 7, -2, 2, 0, 5, -2, 5, 8, 0, 3, 4, 2, 0, -5, 4, 6, -2, 6, -2, -2, 6,
4, 8, 1, -1, -4, -1, 3, 6, 8, 2, 7, 9, 5, 5, 1, -5, 0, 2, 4, -1, 7, 8, 1, -3, 9, 2, -1, 5, 6,
-3, 2, 2, 4, 2, 5, -4, -3, -1, -4, 2, 7, -1, 2, -4, 7, -4, -5, 0, 9, -2, -2, -1, 4, -2, -5, 2,
7, 5, 0, 2, 3, -2, 8, 4, -5, 7, 1, 5, 6, -3, 0, 4, 5, -2, 9, -4, 6, 3, 9, 1, -2, -5, 3, -2, 8,
7, 1, -2, -5, 1, -5, 2, -2, -2, 1, 5, 6, 4, 8, -4, -4, -1, 3, 4, 8, 6, 7, -2, 3, 7, 1, 4, 4, 4,
-3, -4, 0, 8, 5, 0, 4, 1, 6, 2, 7, -2, -3, 9, -3, -5, 3, -3, -2, 0, -3, 7, 3, -4, -3, 1, 0, -4,
-5, 3, -4, 9, 6, -3, -4, 0, -5, 0, -1, -1, 9, -5, 3, -2, -2, 3, -2, 7, 1, 2, 6, 4, -2, -5, 4,
9, 0, 1, -2, -3, 1, 4, -3, 0, 2, 4, 6, 5, -4, 9, -4, 1, -2, 7, -4, 7, 2, 5, 0, -1, -5, -5, 4, 4,
-4, 5, 4, -2, 5, 6, 4, 6, 6, 5, 5, 7, 3, 3, 0, 2, 4, 9, 0, 8, 7, 5, -4, -5, 4, 1, 9, 8, 0, 8,
-4, 5, 9, -5, 3, 5, 4, 2, 1, -3, 9, -3, 5, 2, 7, -2, -1, -1, 2, -3, 4, 4, 2, 2, 3, -2, 4, 6, 0,
2, 5, 5, 5, 0, 5, 7, -2, 4, -4, -1, -5, 8, 0, -4, 0, 1, 9, 8, 2, 4, 1, -2, -3, 8, 0, 9, -1, 1,
-4, 4, 0, 4, 1, 9, 3, -1, 7, 0, 4, 7, 0, 1, 2, 4, 7, 8, -3, 5, 7, -5, 3, 2, 0, 3, 1, 1, 8, 2, 1,
4, 0, 7, 8, 1, 8, 4, 4, 2, 0, 9, 8, 4, 3, 7, -2, 0, 6, -3, 2, 3, -5, 9, 2, -4, -3, 4, 6, 1, -2,
7, 1, 6, 5, 7, 4, -5, 2, -2, 3, 8, -5, 4, -4, 5, 1, 0, -2, 6, 9, 4, -4, 2, -1, 8, 2, 7, -5, -1,
3, 5, 1, 3, 4, -4, 8, -5, -3, 5, -3, -1, -4, -2, -5, -4, 7, 5, -2, 6, -1, 5, 3, 7, 6, 8, 7, 2,
2, 6, 8, 9, 5, 2, 3, 8, 0, -3, -3, -2, 4, 4, 4, -4, 6, -1, 9, -4, -3, -4, 5, 5, 9, 8, -3, 1, 3,
0, 7, -2, -2, 4, 8, -2, 3, 3, 0, 4, 4, -3, -5, 0, -4, 7, -3, -5, -2, 8, -4, 7, 4, 7, -3, 8, 0,
6, -2, 1, 3, 5, 6, 8, -2, 6, 9, -1, 2, 5, 1, -5, 8, -4, 3, -2, 3, 5, 0, 5, 8, -5, 6, -2, -5, 3,
3, 5, 2, -4, 1, 6, 1, 5, 5, -5, -5, 0, 8, 7, -4, 7, 8, 0, -5, 6, -2, -1, -5, 9, 2, -5, 7, -2,
-3, 8, -5, -4, 8, -1, -1, 6, 4, 4, 8, -1, 7, 7, -4, 9, -5, -4, -4, 2, 9, 0, 6, -2, 7, -4, -1,
-3, 3, 9, 3, 9, 8, 1, 4, -2, 1, 3, -4, 8, -3, 7, 4, 9, 0, 9, 1, 0, 7, 9, 7, 8, 9, -3, 2, 4, 7,
-2, -5, 8, 5, 8, -5, 5, 1, -5, -3, 0, 1, 6, 7, 8, -4, 2, 4, 5, -5, 9, -4, -3, 2, -4, 0, 0, 9, 6,
0, 6, 1, 4, 8, 2, -2, 9, -5, -2, -2, 0, -4, 2, 3, -4, 3, 0, 9, 2, -3, 9, 9, 9, 5, 6, -5, -1, 3,
-4, 8, 9, 1, -5, -4, -2, 8, -3, 4, -4, -4, 4, 7, -2, 5, -4, 1, 0, 9, 1, 0, 4, -2, -3, 7, 2, -5,
-3, 9, 2, 0, 5, -5, -5, 7, 4, 3, 9, 5, 6, -1, 5, -2, 2, -4, 4, 4, 4, 2, 4, -5, 1, 0, 9, -3, -2,
9, 2, 2, 7, 2, -2, 3, 2, 0, 1, -3, -3, -1, -1, -4, -4, -5, 4, 2, 6, -3, 3, 5, 4, -2, 5, 6, 9, 6,
6, 4, -1, 3, 4, 0, 9, -5, 0, -1, 7, 4, 3, 0, -4, -2, 6, 8, -4, 3, 0, 7, 9, -4, 5, -1, -5, 1, 0,
-4, 9, 3, -5, 5, 9, -2, 0, -3, 8, -1, 4, 5, 7, -3, 6, 3, 0, -4, -4, 7, 9, 5, 2, 6, 8, 2, 5, 6,
-3, 2, 7, -4, 5, -4, 3, -2, 8, -5, -1, -4, 5, 6, -4, 5, 7, 2, 5, 7, 8, 5, 3, 6, -3, 5, -1, -4,
0, 4, -1, -1, 6, 5, -2, 2, 9, -1, -5, 9, 7, -3, 8, 7, 4, -4, 5, 8, 4, 5, 8, -2, 3, 0, 7, -1, 6,
2, 8, 2, 0, 3, 6, -4, 2, 3, 2, 4, 8, -3, 8, -3, 7, 9, -5, 5, -4, -3, -3, -1, 0, 8, -1
Describe 'Function' {
$TestCases = 10, 25, 50, 100 | ForEach-Object {@{Number = $_}}
It 'should handle a selection of <Number> numbers properly' -TestCases $TestCases {
param($Number)
$Data = $DataInput | Select-Object -Skip $Number -First $Number
Limit-ArrayItems -Data $Data -Number 1
Limit-ArrayItems -Data $Data -Number 2
Limit-ArrayItems -Data $Data -Number 3
}
}
}

Context "The Scope of the Koans You Suggest"

Kata needs some work to complete, maybe trim some of the comments and add some intermediate tests to help guide users through the problem.

Context "Additional Information"

One possible solution is available for anyone who takes this work to get some idea of possible ways users might work through the problem, just ping me and I'll get it in a gist or something. Don't wanna spoil it for folks digging through GH history later 😉

@vexx32 vexx32 added Category-Koans Invoking the Great Doubt Hacktoberfest Issue-Suggestion This should be added! Up For Grabs / Hacktoberfest 💻 If it's Up For Grabs, take it and run with it! If not, ask if it's in progress / you can take it. labels Sep 23, 2019
@vexx32 vexx32 added the Good First Issue ❇️ Should be quick and easy! label Sep 30, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Category-Koans Invoking the Great Doubt Good First Issue ❇️ Should be quick and easy! Issue-Suggestion This should be added! Up For Grabs / Hacktoberfest 💻 If it's Up For Grabs, take it and run with it! If not, ask if it's in progress / you can take it.
Projects
None yet
Development

No branches or pull requests

1 participant