feat: Test running overhaul, switch to Prettier & reformat everything (#1407)

* 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>
This commit is contained in:
Roland Hummel
2023-10-03 23:08:19 +02:00
committed by GitHub
parent 0ca18c2b2c
commit 86d333ee94
392 changed files with 5849 additions and 16622 deletions

View File

@@ -21,7 +21,7 @@ describe('MaxProductOfThree', () => {
describe('MaxProductOfThree, random arrays of size 3 to 5', () => {
// Slower function that operates in O(n^3), where n is the length of the input array.
// Calculates all possible products of 3 numbers in the array and returns the largest
function completeMaxThree (array) {
function completeMaxThree(array) {
let maximumProduct = null
for (let i = 0; i < array.length - 2; i++) {
for (let j = i + 1; j < array.length - 1; j++) {
@@ -47,7 +47,9 @@ describe('MaxProductOfThree, random arrays of size 3 to 5', () => {
for (let i = 0; i < numberOfRandomTests; i++) {
const arr = []
// Randomize the length of the array in the current test
const length = Math.floor(Math.random() * (maxLength - minLength) + minLength)
const length = Math.floor(
Math.random() * (maxLength - minLength) + minLength
)
// Fill the array with random values in the specified range
for (let j = 0; j < length + 1; j++) {
@@ -58,13 +60,19 @@ describe('MaxProductOfThree, random arrays of size 3 to 5', () => {
const expectedProduct = completeMaxThree(arr)
// Set up the expectation
it('Expect the array ' + arr.toString() + ' to return the maximum three product of ' + expectedProduct, () => {
// Calculate the max three product using the function being tested
const actualProduct = maxProductOfThree(arr)
it(
'Expect the array ' +
arr.toString() +
' to return the maximum three product of ' +
expectedProduct,
() => {
// Calculate the max three product using the function being tested
const actualProduct = maxProductOfThree(arr)
// Was unable to use expect().toBe(), since it sometimes compared 0 to -0, and that would not pass
// At the same time, standardjs forbid me from checking for === -0 to convert to 0
expect(actualProduct === expectedProduct).toBeTruthy()
})
// Was unable to use expect().toBe(), since it sometimes compared 0 to -0, and that would not pass
// At the same time, standardjs forbid me from checking for === -0 to convert to 0
expect(actualProduct === expectedProduct).toBeTruthy()
}
)
}
})