added check for Integer (#1137)

This commit is contained in:
Abdul Ahad Khan
2022-10-07 17:16:28 +05:30
committed by GitHub
parent b71815d50c
commit 8461271fc8
2 changed files with 11 additions and 0 deletions

View File

@ -9,6 +9,11 @@
function BinaryCountSetBits (a) {
'use strict'
// check whether input is an integer, some non-integer number like, 21.1 have non-terminating binary expansions and hence their binary expansion will contain infinite ones, thus the handling of non-integers (including strings,objects etc. as it is meaningless) has been omitted
if (!Number.isInteger(a)) throw new TypeError('Argument not an Integer')
// convert number into binary representation and return number of set bits in binary representation
return a.toString(2).split('1').length - 1
}

View File

@ -24,3 +24,9 @@ test('check BinaryCountSetBits of 0 is 0', () => {
const res = BinaryCountSetBits(0)
expect(res).toBe(0)
})
test('check BinaryCountSetBits of 21.1 throws error', () => {
expect(() => BinaryCountSetBits(21.1)).toThrow()
})
test('check BinaryCountSetBits of {} throws error', () => {
expect(() => BinaryCountSetBits({})).toThrow()
})