* 📦 NEW: Added solution for ProjectEuler-007
* 🐛 FIX: Spelling mistake fixes
* 👌 IMPROVE: changed variable name from `inc` to `candidateValue` and thrown error in case of invalid input
* 👌 IMPROVE: Modified the code
* 👌 IMPROVE: Added test case for ProjectEuler Problem001
* 👌 IMPROVE: Added test cases for Project Euler Problem 4
* 👌 IMPROVE: auto prettier fixes
---------
Co-authored-by: Omkarnath Parida <omkarnath.parida@yocket.in>
* 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>
* Add test case to Interpolation Search Algorithm
* Updated Documentation in README.md
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
* Add test case to Fibonacci Search Algorithm
* Updated Documentation in README.md
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
* Add test case to jump search Algorithm
* Updated Documentation in README.md
* Remove commented code
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
* Add test case to the Exponential Search Algorithm
* Updated Documentation in README.md
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.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
* BinarySearchIterative Function is added
* BinarySearch function is renamed to BinarySearchRecurisve
* changes in test function
- 3 binarySearchRecursive tests
- 3 binarySearchIterative tests
* Update BinarySearch.js
The old algorithm didn't work, I believe for two main reasons:
1 - Number.MAX_VALUE is not a valid array index as it is used to represent the highest possible value in javascript (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_VALUE);
2 - splice() is not a pure function, every time it is called it has the side effect of modifying the original array (https://www.w3schools.com/jsref/jsref_splice.asp) ;
So I rewrote the algorithm, it now returns an index ( -1 if not found ) and it works both on numbers and on strings.
* Update BinarySearch.js
Style change
* Update BinarySearch.js
Style change
* Update BinarySearch.js
I modified the whitespace in the files and changed single quotes to double quotes.
I also changed some `==` and `!=` operators to `===` and `!==` to comply with JSLint.