mirror of
https://github.com/TheAlgorithms/JavaScript.git
synced 2026-03-13 15:21:15 +08:00
feat: Add Length Conversion (#1390)
This commit is contained in:
53
Conversions/test/LengthConversion.test.js
Normal file
53
Conversions/test/LengthConversion.test.js
Normal file
@@ -0,0 +1,53 @@
|
||||
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)
|
||||
}
|
||||
}
|
||||
)
|
||||
})
|
||||
Reference in New Issue
Block a user