Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/gipsh/go-string-task


https://github.com/gipsh/go-string-task

Last synced: about 1 month ago
JSON representation

Awesome Lists containing this project

README

        

# Test tasks

**Important**:
* [ ] tasks must be documented as if it was a programming tasks (documented for programmers)
* [ ] task must be implemented with `Go` and `GIT`
* [ ] task MUST include commits for every logical block of work. It is expected to have frequent commits with meaningful messages, preferably multiple commits per-function.
* [ ] as a solution submit your `Git` repo URL

### String Specs

Given a string that is a sequence of numbers followed by dash followed by text, eg: `23-ab-48-caba-56-haha`
* The numbers can be assumed to be unsigned integers
* The strings can be assumed to be ASCII sequences of arbitrary length larger than 0 (empty strings not allowed).

## Task 1

* Before implementing the needed function, please estimate the difficulty of the functions and report the estimated and the used time to implement the functions in the function comment block.
* Write a function `testValidity` that takes the string as an input, and returns boolean flag `true` if the given string complies with the format, or `false` if the string does not comply
* Write a function `averageNumber` that takes the string, and returns the average number from all the numbers
* Write a function `wholeStory` that takes the string, and returns a text that is composed from all the text words separated by spaces, e.g. `story` called for the string `1-hello-2-world` should return text: `"hello world"
* Write a function `storyStats` that returns four things:
* the shortest word
* the longest word
* the average word length
* the list (or empty list) of all words from the story that have the length the same as the average length rounded up and down.

# Task 2

* Before implementing the needed function, please estimate the difficulty of the functions and report the estimated and the used time to implement the functions in the function comment block.
* Write a `generate` function, that takes boolean flag and generates random correct strings if the parameter is `true` and random incorrect strings if the flag is `false`.
* Write unit tests for the functions:
* `testValidity`
* `averageNumber`
* `wholeStory`
* `storyStats`