diff --git a/String/Lower.js b/String/Lower.js index 3805889948..73d61878c0 100644 --- a/String/Lower.js +++ b/String/Lower.js @@ -1,8 +1,8 @@ /** * @function lower * @description Will convert the entire string to lowercase letters. - * @param {String} url - The input URL string - * @return {String} Lowercase string + * @param {String} str - The input string + * @returns {String} Lowercase string * @example lower("HELLO") => hello * @example lower("He_llo") => he_llo */ @@ -12,17 +12,12 @@ const lower = (str) => { throw new TypeError('Invalid Input Type') } - let lowerString = '' + return str + .replace(/[A-Z]/g, (_, indexOfUpperChar) => { + const asciiCode = str.charCodeAt(indexOfUpperChar) - for (const char of str) { - let asciiCode = char.charCodeAt(0) - if (asciiCode >= 65 && asciiCode <= 90) { - asciiCode += 32 - } - lowerString += String.fromCharCode(asciiCode) - } - - return lowerString + return String.fromCharCode(asciiCode + 32) + }) } export { lower } diff --git a/String/test/Lower.test.js b/String/test/Lower.test.js index 0fbaaa5d62..4a211c38aa 100644 --- a/String/test/Lower.test.js +++ b/String/test/Lower.test.js @@ -1,9 +1,19 @@ import { lower } from '../Lower' -describe('Lower', () => { - it('return uppercase strings', () => { - expect(lower('hello')).toBe('hello') +describe('Testing the Lower function', () => { + it('Test 1: Check by invalid type', () => { + expect(() => lower(345)).toThrowError() + expect(() => lower(true)).toThrowError() + expect(() => lower(null)).toThrowError() + }) + + it('Test 2: Check by uppercase string', () => { expect(lower('WORLD')).toBe('world') - expect(lower('hello_WORLD')).toBe('hello_world') + expect(lower('Hello_WORLD')).toBe('hello_world') + }) + + it('Test 3: Check by lowercase string', () => { + expect(lower('hello')).toBe('hello') + expect(lower('hello_world')).toBe('hello_world') }) })