algorithm: signum (#1266)

This commit is contained in:
Defective Detective
2022-12-08 18:57:42 +05:30
committed by GitHub
parent f954fb1ff7
commit 65cceae0be
2 changed files with 44 additions and 0 deletions

25
Maths/Signum.js Normal file
View File

@ -0,0 +1,25 @@
/*
A program to demonstrate the implementation of the signum function,
also known as the sign function, in JavaScript.
The signum function is an odd mathematical function, which returns the
sign of the provided real number.
It can return 3 values: 1 for values greater than zero, 0 for zero itself,
and -1 for values less than zero
Wikipedia: https://en.wikipedia.org/wiki/Sign_function
*/
/**
* @param {Number} input
* @returns {-1 | 0 | 1 | NaN} sign of input (and NaN if the input is not a number)
*/
function signum (input) {
if (input === 0) return 0
if (input > 0) return 1
if (input < 0) return -1
return NaN
}
export { signum }

19
Maths/test/Signum.test.js Normal file
View File

@ -0,0 +1,19 @@
import { signum } from '../Signum'
describe('The sign of a number', () => {
it('Sign of 10', () => {
expect(signum(10)).toBe(1)
})
it('Sign of 0', () => {
expect(signum(0)).toBe(0)
})
it('Sign of -420', () => {
expect(signum(-420)).toBe(-1)
})
it('Sign of NaN', () => {
expect(signum(NaN)).toBe(NaN)
})
})