File tree 3 files changed +44
-1
lines changed
3 files changed +44
-1
lines changed Original file line number Diff line number Diff line change 1
- # Problem Solving Javascript
1
+ # Problem Solving using Javascript
2
2
3
3
[ ![ Build Status] ( https://travis-ci.org/knaxus/problem-solving-javascript.svg?branch=master )] ( https://travis-ci.org/knaxus/problem-solving-javascript )
4
4
[ ![ 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 )
Original file line number Diff line number Diff line change
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
+ } ;
Original file line number Diff line number Diff line change
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
+ } ) ;
You can’t perform that action at this time.
0 commit comments