mirror of
https://github.com/TheAlgorithms/JavaScript.git
synced 2025-07-06 09:28:26 +08:00
algorithm: signum (#1266)
This commit is contained in:

committed by
GitHub

parent
f954fb1ff7
commit
65cceae0be
25
Maths/Signum.js
Normal file
25
Maths/Signum.js
Normal 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
19
Maths/test/Signum.test.js
Normal 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)
|
||||||
|
})
|
||||||
|
})
|
Reference in New Issue
Block a user