mirror of
https://github.com/TheAlgorithms/JavaScript.git
synced 2025-07-05 08:16:50 +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