mirror of
https://github.com/TheAlgorithms/JavaScript.git
synced 2026-03-13 15:21:15 +08:00
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:
@@ -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()
|
||||
}
|
||||
)
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user