mirror of
https://github.com/TheAlgorithms/JavaScript.git
synced 2025-07-05 00:01:37 +08:00

* 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>
54 lines
1.6 KiB
JavaScript
54 lines
1.6 KiB
JavaScript
import { lengthConversion } from '../LengthConversion.js'
|
|
|
|
describe('LengthConversion', () => {
|
|
it.each`
|
|
length | fromUnit | toUnit | expected
|
|
${10} | ${'km'} | ${'m'} | ${10000}
|
|
${100} | ${'m'} | ${'km'} | ${0.1}
|
|
${5} | ${'cm'} | ${'mm'} | ${50}
|
|
${12} | ${'ft'} | ${'inch'} | ${144.00000000000003}
|
|
`(
|
|
'converts $length $fromUnit to $toUnit',
|
|
({ length, fromUnit, toUnit, expected }) => {
|
|
try {
|
|
const result = lengthConversion(length, fromUnit, toUnit)
|
|
expect(result).toBe(expected)
|
|
} catch (error) {
|
|
expect(error).toBeUndefined()
|
|
}
|
|
}
|
|
)
|
|
|
|
it.each`
|
|
length | fromUnit | toUnit | expected
|
|
${10} | ${'m'} | ${'km'} | ${0.01}
|
|
${1000} | ${'mm'} | ${'cm'} | ${100}
|
|
${1} | ${'inch'} | ${'ft'} | ${0.08333333333}
|
|
`(
|
|
'converts $length $fromUnit to $toUnit (vice versa)',
|
|
({ length, fromUnit, toUnit, expected }) => {
|
|
try {
|
|
const result = lengthConversion(length, fromUnit, toUnit)
|
|
expect(result).toBeCloseTo(expected, 10) // Close comparison due to floating-point precision
|
|
} catch (error) {
|
|
expect(error).toBeUndefined()
|
|
}
|
|
}
|
|
)
|
|
|
|
it.each`
|
|
length | fromUnit | toUnit | expectedError
|
|
${10} | ${'km'} | ${'invalid'} | ${'Invalid units'}
|
|
${5} | ${'invalid'} | ${'m'} | ${'Invalid units'}
|
|
`(
|
|
'returns error message for invalid units: $fromUnit to $toUnit',
|
|
({ length, fromUnit, toUnit, expectedError }) => {
|
|
try {
|
|
lengthConversion(length, fromUnit, toUnit)
|
|
} catch (error) {
|
|
expect(error.message).toBe(expectedError)
|
|
}
|
|
}
|
|
)
|
|
})
|