* chore: Switch to Node 20 + Vitest
* chore: migrate to vitest mock functions
* chore: code style (switch to prettier)
* test: re-enable long-running test
Seems the switch to Node 20 and Vitest has vastly improved the code's and / or the test's runtime!
see #1193
* chore: code style
* chore: fix failing tests
* Updated Documentation in README.md
* Update contribution guidelines to state usage of Prettier
* fix: set prettier printWidth back to 80
* chore: apply updated code style automatically
* fix: set prettier line endings to lf again
* chore: apply updated code style automatically
---------
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
Co-authored-by: Lars Müller <34514239+appgurueu@users.noreply.github.com>
* Create find_relative_maximum_point_count.js
print number of relative maximum points in array
runs in O(n)
* rename file to match requested casing
* add inline comments and greater documentation
* fix wrong reference to algorithm explanation
* remove live code and fix function misnaming
* add multiple cases tests
* add last line as empty line
* git pull
* style changes
* move tests to test folder
* chore: fix spelling
* fix package-lock
* revert to old lock file
* chore: add line feed
Co-authored-by: Rak Laptudirm <raklaptudirm@gmail.com>
* Create first_relative_max_point_in_array.js
go over randomly generated array and print first spike or maximum point index in it
runs in O(log(n))
* rename file to match requested casing
* add comments
I prefer SOLID standards so that's why didn't add them at first but due to the repository requirements was needed to be added
* remove template unrelated comments
* Update equals check to match JavaScript standards
* create file skafolding and adjust filename to reflect main function
* using newer node version
* add tests
* add last line as empty line
* style changes
* move algorithm tests to test folder
* revert to old package lock file
* chore: add ending line feed
Co-authored-by: Rak Laptudirm <raklaptudirm@gmail.com>
* Remove QuickSelect doctest
There are more Jest test cases already.
* Remove AverageMedian doctest
Already migrated to jest
* Migrate doctest for BinaryExponentiationRecursive.js
(also remove inline "main" test method)
* Migrate doctest for EulersTotient.js
(also remove inline "main" test method)
* Migrate doctest for PrimeFactors.js
(also remove inline "main" test method)
* Migrate doctest for BogoSort.js
Re-write prototype-polluting helper methods, too.
(also remove inline test driver code)
* Migrate doctest for BeadSort.js
(also remove inline test driver code)
* Migrate doctest for BucketSort.js
(also remove inline test driver code)
* Migrate doctest for CocktailShakerSort.js
(also remove inline test driver code)
* Migrate doctest for MergeSort.js
(also remove inline test driver code)
* Migrate doctest for QuickSort.js
(also remove inline test driver code)
* Migrate doctest for ReverseString.js
(also remove inline test driver code)
* Migrate doctest for ReverseString.js
* Migrate doctest for ValidateEmail.js
* Migrate doctest for ConwaysGameOfLife.js
(remove the animate code, too)
* Remove TernarySearch doctest
Already migrated to jest
* Migrate doctest for BubbleSort.js
(also remove inline test driver code)
* Remove doctest from CI and from dependencies
relates to #742fixes#586
* Migrate doctest for RgbHsvConversion.js
* Add --fix option to "standard" npm script
* Migrate doctest for BreadthFirstSearch.js
(also remove inline test driver code)
* Migrate doctest for BreadthFirstShortestPath.js
(also remove inline test driver code)
* Migrate doctest for EulerMethod.js
(also remove inline test driver code)
Move manual test-code for plotting stuff in the browser in a distinct file, too. Those "*.manual-test.js" files are excluded from the UpdateDirectory.mjs script, as well.
* Migrate doctest for Mandelbrot.js
(also remove inline test driver code & moved manual drawing test into a *.manual-test.js)
* Migrate doctest for FloodFill.js
* Migrate doctest for KochSnowflake.js
(also move manual drawing test into a *.manual-test.js)
* Update npm lockfile
* Update README and COMMITTING with a few bits & bobs regarding testing & code quality
* add link to function description
* fix formatting for consistency
* export function so it can be imported for testing
* throw error on invalid input
* add tests for QuickSelect.js
* remove unnecessary comment
* Update Data-Structures/Array/QuickSelect.js
Co-authored-by: Rak Laptudirm <raklaptudirm@gmail.com>
Co-authored-by: Rak Laptudirm <raklaptudirm@gmail.com>