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:
@@ -2,10 +2,14 @@ import { multiplesThreeAndFive } from '../Problem001.js'
|
||||
|
||||
describe('Sum of multiples of 3 or 5', () => {
|
||||
it('should throw error when number is negative number', () => {
|
||||
expect(() => multiplesThreeAndFive(-24)).toThrowError('No natural numbers exist below 1')
|
||||
expect(() => multiplesThreeAndFive(-24)).toThrowError(
|
||||
'No natural numbers exist below 1'
|
||||
)
|
||||
})
|
||||
it('should throw error when number is 0', () => {
|
||||
expect(() => multiplesThreeAndFive(0)).toThrowError('No natural numbers exist below 1')
|
||||
expect(() => multiplesThreeAndFive(0)).toThrowError(
|
||||
'No natural numbers exist below 1'
|
||||
)
|
||||
})
|
||||
test('if the number is greater than 0', () => {
|
||||
expect(multiplesThreeAndFive(10)).toBe(23)
|
||||
|
||||
@@ -2,7 +2,9 @@ import { EvenFibonacci } from '../Problem002'
|
||||
|
||||
describe('Even Fibonacci numbers', () => {
|
||||
it('should throw error when limit is less than 1', () => {
|
||||
expect(() => EvenFibonacci(-1)).toThrowError('Fibonacci sequence limit can\'t be less than 1')
|
||||
expect(() => EvenFibonacci(-1)).toThrowError(
|
||||
"Fibonacci sequence limit can't be less than 1"
|
||||
)
|
||||
})
|
||||
test('when limit is greater than 0', () => {
|
||||
expect(EvenFibonacci(40)).toBe(44)
|
||||
|
||||
@@ -2,24 +2,56 @@ import { largestProductInAGrid } from '../Problem011.js'
|
||||
|
||||
const arr = [
|
||||
[8, 2, 22, 97, 38, 15, 0, 40, 0, 75, 4, 5, 7, 78, 52, 12, 50, 77, 91, 8],
|
||||
[49, 49, 99, 40, 17, 81, 18, 57, 60, 87, 17, 40, 98, 43, 69, 48, 4, 56, 62, 0],
|
||||
[81, 49, 31, 73, 55, 79, 14, 29, 93, 71, 40, 67, 53, 88, 30, 3, 49, 13, 36, 65],
|
||||
[
|
||||
49, 49, 99, 40, 17, 81, 18, 57, 60, 87, 17, 40, 98, 43, 69, 48, 4, 56, 62, 0
|
||||
],
|
||||
[
|
||||
81, 49, 31, 73, 55, 79, 14, 29, 93, 71, 40, 67, 53, 88, 30, 3, 49, 13, 36,
|
||||
65
|
||||
],
|
||||
[52, 70, 95, 23, 4, 60, 11, 42, 69, 24, 68, 56, 1, 32, 56, 71, 37, 2, 36, 91],
|
||||
[22, 31, 16, 71, 51, 67, 63, 89, 41, 92, 36, 54, 22, 40, 40, 28, 66, 33, 13, 80],
|
||||
[24, 47, 32, 60, 99, 3, 45, 2, 44, 75, 33, 53, 78, 36, 84, 20, 35, 17, 12, 50],
|
||||
[32, 98, 81, 28, 64, 23, 67, 10, 26, 38, 40, 67, 59, 54, 70, 66, 18, 38, 64, 70],
|
||||
[67, 26, 20, 68, 2, 62, 12, 20, 95, 63, 94, 39, 63, 8, 40, 91, 66, 49, 94, 21],
|
||||
[24, 55, 58, 5, 66, 73, 99, 26, 97, 17, 78, 78, 96, 83, 14, 88, 34, 89, 63, 72],
|
||||
[
|
||||
22, 31, 16, 71, 51, 67, 63, 89, 41, 92, 36, 54, 22, 40, 40, 28, 66, 33, 13,
|
||||
80
|
||||
],
|
||||
[
|
||||
24, 47, 32, 60, 99, 3, 45, 2, 44, 75, 33, 53, 78, 36, 84, 20, 35, 17, 12, 50
|
||||
],
|
||||
[
|
||||
32, 98, 81, 28, 64, 23, 67, 10, 26, 38, 40, 67, 59, 54, 70, 66, 18, 38, 64,
|
||||
70
|
||||
],
|
||||
[
|
||||
67, 26, 20, 68, 2, 62, 12, 20, 95, 63, 94, 39, 63, 8, 40, 91, 66, 49, 94, 21
|
||||
],
|
||||
[
|
||||
24, 55, 58, 5, 66, 73, 99, 26, 97, 17, 78, 78, 96, 83, 14, 88, 34, 89, 63,
|
||||
72
|
||||
],
|
||||
[21, 36, 23, 9, 75, 0, 76, 44, 20, 45, 35, 14, 0, 61, 33, 97, 34, 31, 33, 95],
|
||||
[78, 17, 53, 28, 22, 75, 31, 67, 15, 94, 3, 80, 4, 62, 16, 14, 9, 53, 56, 92],
|
||||
[16, 39, 5, 42, 96, 35, 31, 47, 55, 58, 88, 24, 0, 17, 54, 24, 36, 29, 85, 57],
|
||||
[
|
||||
16, 39, 5, 42, 96, 35, 31, 47, 55, 58, 88, 24, 0, 17, 54, 24, 36, 29, 85, 57
|
||||
],
|
||||
[86, 56, 0, 48, 35, 71, 89, 7, 5, 44, 44, 37, 44, 60, 21, 58, 51, 54, 17, 58],
|
||||
[19, 80, 81, 68, 5, 94, 47, 69, 28, 73, 92, 13, 86, 52, 17, 77, 4, 89, 55, 40],
|
||||
[
|
||||
19, 80, 81, 68, 5, 94, 47, 69, 28, 73, 92, 13, 86, 52, 17, 77, 4, 89, 55, 40
|
||||
],
|
||||
[4, 52, 8, 83, 97, 35, 99, 16, 7, 97, 57, 32, 16, 26, 26, 79, 33, 27, 98, 66],
|
||||
[88, 36, 68, 87, 57, 62, 20, 72, 3, 46, 33, 67, 46, 55, 12, 32, 63, 93, 53, 69],
|
||||
[4, 42, 16, 73, 38, 25, 39, 11, 24, 94, 72, 18, 8, 46, 29, 32, 40, 62, 76, 36],
|
||||
[20, 69, 36, 41, 72, 30, 23, 88, 34, 62, 99, 69, 82, 67, 59, 85, 74, 4, 36, 16],
|
||||
[20, 73, 35, 29, 78, 31, 90, 1, 74, 31, 49, 71, 48, 86, 81, 16, 23, 57, 5, 54],
|
||||
[
|
||||
88, 36, 68, 87, 57, 62, 20, 72, 3, 46, 33, 67, 46, 55, 12, 32, 63, 93, 53,
|
||||
69
|
||||
],
|
||||
[
|
||||
4, 42, 16, 73, 38, 25, 39, 11, 24, 94, 72, 18, 8, 46, 29, 32, 40, 62, 76, 36
|
||||
],
|
||||
[
|
||||
20, 69, 36, 41, 72, 30, 23, 88, 34, 62, 99, 69, 82, 67, 59, 85, 74, 4, 36,
|
||||
16
|
||||
],
|
||||
[
|
||||
20, 73, 35, 29, 78, 31, 90, 1, 74, 31, 49, 71, 48, 86, 81, 16, 23, 57, 5, 54
|
||||
],
|
||||
[1, 70, 54, 71, 83, 51, 54, 69, 16, 92, 33, 48, 61, 43, 52, 1, 89, 19, 67, 48]
|
||||
]
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,7 +1,11 @@
|
||||
import { countNumberWordLength } from '../Problem017.js'
|
||||
|
||||
describe('Number letter count', () => {
|
||||
test.each([[5, 19], [100, 864], [1000, 21124]])('Number letter count from 1 to %i', (n, expected) => {
|
||||
test.each([
|
||||
[5, 19],
|
||||
[100, 864],
|
||||
[1000, 21124]
|
||||
])('Number letter count from 1 to %i', (n, expected) => {
|
||||
expect(countNumberWordLength(n)).toBe(expected)
|
||||
})
|
||||
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
import { sumOfNonAbundantNumbers } from '../Problem023'
|
||||
|
||||
describe('Check Problem 23 - Non-Abundant Sums', () => {
|
||||
it('Sum of all positive integers <= 10000 which cannot be written as the sum of two abundant numbers', () => {
|
||||
expect(sumOfNonAbundantNumbers(10000)).toBe(3731004)
|
||||
})
|
||||
|
||||
it('Sum of all positive integers <= n which cannot be written as the sum of two abundant numbers', () => {
|
||||
expect(sumOfNonAbundantNumbers(15000)).toBe(4039939)
|
||||
})
|
||||
|
||||
it('Sum of all positive integers <= n which cannot be written as the sum of two abundant numbers', () => {
|
||||
expect(sumOfNonAbundantNumbers(20000)).toBe(4159710)
|
||||
})
|
||||
|
||||
it('Sum of all positive integers <= n which cannot be written as the sum of two abundant numbers', () => {
|
||||
expect(sumOfNonAbundantNumbers(28123)).toBe(4179871)
|
||||
})
|
||||
|
||||
it('Sum of all positive integers <= n which cannot be written as the sum of two abundant numbers', () => {
|
||||
expect(sumOfNonAbundantNumbers(30000)).toBe(4179871)
|
||||
})
|
||||
})
|
||||
import { sumOfNonAbundantNumbers } from '../Problem023'
|
||||
|
||||
describe('Check Problem 23 - Non-Abundant Sums', () => {
|
||||
it('Sum of all positive integers <= 10000 which cannot be written as the sum of two abundant numbers', () => {
|
||||
expect(sumOfNonAbundantNumbers(10000)).toBe(3731004)
|
||||
})
|
||||
|
||||
it('Sum of all positive integers <= n which cannot be written as the sum of two abundant numbers', () => {
|
||||
expect(sumOfNonAbundantNumbers(15000)).toBe(4039939)
|
||||
})
|
||||
|
||||
it('Sum of all positive integers <= n which cannot be written as the sum of two abundant numbers', () => {
|
||||
expect(sumOfNonAbundantNumbers(20000)).toBe(4159710)
|
||||
})
|
||||
|
||||
it('Sum of all positive integers <= n which cannot be written as the sum of two abundant numbers', () => {
|
||||
expect(sumOfNonAbundantNumbers(28123)).toBe(4179871)
|
||||
})
|
||||
|
||||
it('Sum of all positive integers <= n which cannot be written as the sum of two abundant numbers', () => {
|
||||
expect(sumOfNonAbundantNumbers(30000)).toBe(4179871)
|
||||
})
|
||||
})
|
||||
|
||||
@@ -1,27 +1,27 @@
|
||||
import { fibonacciIndex } from '../Problem025'
|
||||
|
||||
describe('Check Problem 25 - 1000 digit Fibonnaci number', () => {
|
||||
it('First term of the Fibonnaci sequence containing 3 digits', () => {
|
||||
expect(fibonacciIndex(3)).toBe(12)
|
||||
})
|
||||
|
||||
it('First term of the Fibonnaci sequence containing 10 digits', () => {
|
||||
expect(fibonacciIndex(10)).toBe(45)
|
||||
})
|
||||
|
||||
it('First term of the Fibonnaci sequence containing 50 digits', () => {
|
||||
expect(fibonacciIndex(50)).toBe(237)
|
||||
})
|
||||
|
||||
it('First term of the Fibonnaci sequence containing 100 digits', () => {
|
||||
expect(fibonacciIndex(100)).toBe(476)
|
||||
})
|
||||
|
||||
it('First term of the Fibonnaci sequence containing 1000 digits', () => {
|
||||
expect(fibonacciIndex(1000)).toBe(4782)
|
||||
})
|
||||
|
||||
it('First term of the Fibonnaci sequence containing 10000 digits', () => {
|
||||
expect(fibonacciIndex(10000)).toBe(47847)
|
||||
})
|
||||
})
|
||||
import { fibonacciIndex } from '../Problem025'
|
||||
|
||||
describe('Check Problem 25 - 1000 digit Fibonnaci number', () => {
|
||||
it('First term of the Fibonnaci sequence containing 3 digits', () => {
|
||||
expect(fibonacciIndex(3)).toBe(12)
|
||||
})
|
||||
|
||||
it('First term of the Fibonnaci sequence containing 10 digits', () => {
|
||||
expect(fibonacciIndex(10)).toBe(45)
|
||||
})
|
||||
|
||||
it('First term of the Fibonnaci sequence containing 50 digits', () => {
|
||||
expect(fibonacciIndex(50)).toBe(237)
|
||||
})
|
||||
|
||||
it('First term of the Fibonnaci sequence containing 100 digits', () => {
|
||||
expect(fibonacciIndex(100)).toBe(476)
|
||||
})
|
||||
|
||||
it('First term of the Fibonnaci sequence containing 1000 digits', () => {
|
||||
expect(fibonacciIndex(1000)).toBe(4782)
|
||||
})
|
||||
|
||||
it('First term of the Fibonnaci sequence containing 10000 digits', () => {
|
||||
expect(fibonacciIndex(10000)).toBe(47847)
|
||||
})
|
||||
})
|
||||
|
||||
@@ -12,8 +12,7 @@ describe('checking nth prime number', () => {
|
||||
expect(problem44(1)).toBe(5482660)
|
||||
})
|
||||
// Project Euler Second Value for Condition Check
|
||||
// Skipping this by default as it makes CI runs take way too long
|
||||
test.skip('if the number is greater or equal to 2167', () => {
|
||||
test('if the number is greater or equal to 2167', () => {
|
||||
expect(problem44(2167)).toBe(8476206790)
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user