From 7ab3796032f80f89ed750c756374ef9f3e81af85 Mon Sep 17 00:00:00 2001 From: Mohammed Nabeel Date: Sat, 18 Jul 2020 14:17:50 +0300 Subject: [PATCH] repeatString All done --- repeatString/repeatString.js | 16 +++++++-- repeatString/repeatString.spec.js | 60 +++++++++++++++---------------- 2 files changed, 44 insertions(+), 32 deletions(-) diff --git a/repeatString/repeatString.js b/repeatString/repeatString.js index 770119a..e044e6e 100644 --- a/repeatString/repeatString.js +++ b/repeatString/repeatString.js @@ -1,5 +1,17 @@ -const repeatString = function() { +const repeatString = function(string, number) { + + let result = ''; + + if (number < 0) { + return 'ERROR'; + } + + for (let i = 0; i < number; i++) { + result += string; + } + + return result; } -module.exports = repeatString +module.exports = repeatString \ No newline at end of file diff --git a/repeatString/repeatString.spec.js b/repeatString/repeatString.spec.js index 7124484..b43cb30 100644 --- a/repeatString/repeatString.spec.js +++ b/repeatString/repeatString.spec.js @@ -1,33 +1,33 @@ const repeatString = require('./repeatString') describe('repeatString', function() { - it('repeats the string', function() { - expect(repeatString('hey', 3)).toEqual('heyheyhey'); - }); - xit('repeats the string many times', function() { - expect(repeatString('hey', 10)).toEqual('heyheyheyheyheyheyheyheyheyhey'); - }); - xit('repeats the string 1 times', function() { - expect(repeatString('hey', 1)).toEqual('hey'); - }); - xit('repeats the string 0 times', function() { - expect(repeatString('hey', 0)).toEqual(''); - }); - xit('returns ERROR with negative numbers', function() { - expect(repeatString('hey', -1)).toEqual('ERROR'); - }); - xit('repeats the string a random amount of times', function () { - /*The number is generated by using Math.random to get a value from between - 0 to 1, when this is multiplied by 1000 and rounded down with Math.floor it - equals a number between 0 to 999 (this number will change everytime you run - the test).*/ - const number = Math.floor(Math.random() * 1000) - /*The .match(/((hey))/g).length is a regex that will count the number of heys - in the result, which if your function works correctly will equal the number that - was randomaly generated. */ - expect(repeatString('hey', number).match(/((hey))/g).length).toEqual(number); - }); - xit('works with blank strings', function() { - expect(repeatString('', 10)).toEqual(''); - }); -}); + it('repeats the string', function() { + expect(repeatString('hey', 3)).toEqual('heyheyhey'); + }); + it('repeats the string many times', function() { + expect(repeatString('hey', 10)).toEqual('heyheyheyheyheyheyheyheyheyhey'); + }); + it('repeats the string 1 times', function() { + expect(repeatString('hey', 1)).toEqual('hey'); + }); + it('repeats the string 0 times', function() { + expect(repeatString('hey', 0)).toEqual(''); + }); + it('returns ERROR with negative numbers', function() { + expect(repeatString('hey', -1)).toEqual('ERROR'); + }); + it('repeats the string a random amount of times', function() { + /*The number is generated by using Math.random to get a value from between + 0 to 1, when this is multiplied by 1000 and rounded down with Math.floor it + equals a number between 0 to 999 (this number will change everytime you run + the test).*/ + const number = Math.floor(Math.random() * 1000) + /*The .match(/((hey))/g).length is a regex that will count the number of heys + in the result, which if your function works correctly will equal the number that + was randomaly generated. */ + expect(repeatString('hey', number).match(/((hey))/g).length).toEqual(number); + }); + it('works with blank strings', function() { + expect(repeatString('', 10)).toEqual(''); + }); +}); \ No newline at end of file