Skip to content

Commit 5db47f6

Browse files
committed
--update: reverse a number
1 parent eefc14a commit 5db47f6

File tree

3 files changed

+44
-1
lines changed

3 files changed

+44
-1
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Problem Solving Javascript
1+
# Problem Solving using Javascript
22

33
[![Build Status](https://travis-ci.org/knaxus/problem-solving-javascript.svg?branch=master)](https://travis-ci.org/knaxus/problem-solving-javascript)
44
[![Coverage Status](https://coveralls.io/repos/github/knaxus/problem-solving-javascript/badge.svg?branch=master)](https://coveralls.io/github/knaxus/problem-solving-javascript?branch=master)

src/reverse-number/index.js

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
function reverseNumber(num) {
2+
if (typeof num !== 'number') {
3+
throw new Error('Invalid Argument');
4+
}
5+
6+
let absNum = Math.abs(num);
7+
let reverse = 0;
8+
9+
while (absNum > 0) {
10+
const rem = absNum % 10;
11+
reverse = reverse * 10 + rem;
12+
absNum = parseInt(absNum / 10, 10); // important to get whole number
13+
}
14+
15+
return reverse * Math.sign(num);
16+
}
17+
18+
module.exports = {
19+
reverseNumber,
20+
};
+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
const { reverseNumber } = require('.');
2+
3+
describe('Reverse Numbers', () => {
4+
it('Should return a number', () => {
5+
expect(typeof reverseNumber(1) === 'number');
6+
});
7+
8+
it('Should reverse 45 to 54', () => {
9+
expect(reverseNumber(45)).toEqual(54);
10+
});
11+
12+
it('Should reverse -2 to -2', () => {
13+
expect(reverseNumber(-2)).toEqual(-2);
14+
});
15+
16+
it('Should reverse -1234567 to -7654321', () => {
17+
expect(reverseNumber(-1234567)).toEqual(-7654321);
18+
});
19+
20+
it('Should throw error for invalid argument', () => {
21+
expect(() => reverseNumber('hello')).toThrow('Invalid Argument');
22+
});
23+
});

0 commit comments

Comments
 (0)