From e08a3c07ada42d9875368c8b9421f274452de631 Mon Sep 17 00:00:00 2001 From: AlanDavd Date: Sat, 25 Apr 2020 11:49:00 -0500 Subject: [PATCH 1/3] Challenge done --- src/index.js | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/index.js b/src/index.js index 2f46b4b..4659b5a 100644 --- a/src/index.js +++ b/src/index.js @@ -1,8 +1,27 @@ const { StackObj } = require ('./stack-obj'); +const hex = '0123456789ABCDEFGH'; + function baseConverter(decNumber, base) { - // your code - return ; + if(!(base < 37 && base > 1)) { + return null; + } + + const stack = new StackObj(); + + while(decNumber > 0) { + let left = hex[decNumber % base]; + stack.push(left); + decNumber = Math.floor(decNumber / base); + } + + let answer = ''; + + while(!stack.isEmpty()) { + answer += stack.pop() + } + + return answer; } module.exports = { baseConverter }; From f2baa33c262b4c18f8e5ce3cca69d1dc5356844b Mon Sep 17 00:00:00 2001 From: AlanDavd Date: Wed, 13 May 2020 23:40:04 -0500 Subject: [PATCH 2/3] Add test with base greater that 18 --- src/_test_/index.test.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/_test_/index.test.js b/src/_test_/index.test.js index 85c6bea..e16a793 100644 --- a/src/_test_/index.test.js +++ b/src/_test_/index.test.js @@ -65,4 +65,8 @@ describe('baseConverter in hexa', () => { expect(baseConverter(10012, 16)).toBe('271C'); }); + it('should be Z', () => { + expect(baseConverter(35, 36)).toBe('Z'); + }) + }); From 2d6af4956e60d1fa648d65244a32ef49c4278bf7 Mon Sep 17 00:00:00 2001 From: AlanDavd Date: Wed, 13 May 2020 23:41:04 -0500 Subject: [PATCH 3/3] Add more hex values to reduce errors with a base greater than 18 --- src/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index 4659b5a..098509d 100644 --- a/src/index.js +++ b/src/index.js @@ -1,6 +1,6 @@ const { StackObj } = require ('./stack-obj'); -const hex = '0123456789ABCDEFGH'; +const hex = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'; function baseConverter(decNumber, base) { if(!(base < 37 && base > 1)) {