From 647b1b596fdb7b30740f61a7702fb4507a5c31b3 Mon Sep 17 00:00:00 2001 From: Yatin Date: Thu, 2 Dec 2021 22:28:08 +0530 Subject: [PATCH] Add Upper --- String/Upper.js | 28 ++++++++++++++++++++++++++++ String/test/Upper.test.js | 9 +++++++++ 2 files changed, 37 insertions(+) create mode 100644 String/Upper.js create mode 100644 String/test/Upper.test.js diff --git a/String/Upper.js b/String/Upper.js new file mode 100644 index 0000000000..d9aaceae3a --- /dev/null +++ b/String/Upper.js @@ -0,0 +1,28 @@ +/** + * @function upper + * @description Will convert the entire string to uppercase letters. + * @param {String} url - The input URL string + * @return {String} Uppercase string + * @example upper("hello") => HELLO + * @example upper("He_llo") => HE_LLO + */ + +const upper = (str) => { + if (typeof str !== 'string') { + throw new TypeError('Invalid Input Type') + } + + let upperString = '' + + for (const char of str) { + let asciiCode = char.charCodeAt(0) + if (asciiCode >= 97 && asciiCode <= 122) { + asciiCode -= 32 + } + upperString += String.fromCharCode(asciiCode) + } + + return upperString +} + +export { upper } diff --git a/String/test/Upper.test.js b/String/test/Upper.test.js new file mode 100644 index 0000000000..81d605220e --- /dev/null +++ b/String/test/Upper.test.js @@ -0,0 +1,9 @@ +import { upper } from '../Upper' + +describe('Upper', () => { + it('return uppercase strings', () => { + expect(upper('hello')).toBe('HELLO') + expect(upper('WORLD')).toBe('WORLD') + expect(upper('hello_WORLD')).toBe('HELLO_WORLD') + }) +})