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') + }) +})