repeatString All done

This commit is contained in:
Mohammed Nabeel 2020-07-18 14:17:50 +03:00
parent 19637d71d4
commit 7ab3796032
2 changed files with 44 additions and 32 deletions

View File

@ -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

View File

@ -1,33 +1,33 @@
const repeatString = require('./repeatString') const repeatString = require('./repeatString')
describe('repeatString', function() { describe('repeatString', function() {
it('repeats the string', function() { it('repeats the string', function() {
expect(repeatString('hey', 3)).toEqual('heyheyhey'); expect(repeatString('hey', 3)).toEqual('heyheyhey');
}); });
xit('repeats the string many times', function() { it('repeats the string many times', function() {
expect(repeatString('hey', 10)).toEqual('heyheyheyheyheyheyheyheyheyhey'); expect(repeatString('hey', 10)).toEqual('heyheyheyheyheyheyheyheyheyhey');
}); });
xit('repeats the string 1 times', function() { it('repeats the string 1 times', function() {
expect(repeatString('hey', 1)).toEqual('hey'); expect(repeatString('hey', 1)).toEqual('hey');
}); });
xit('repeats the string 0 times', function() { it('repeats the string 0 times', function() {
expect(repeatString('hey', 0)).toEqual(''); expect(repeatString('hey', 0)).toEqual('');
}); });
xit('returns ERROR with negative numbers', function() { it('returns ERROR with negative numbers', function() {
expect(repeatString('hey', -1)).toEqual('ERROR'); expect(repeatString('hey', -1)).toEqual('ERROR');
}); });
xit('repeats the string a random amount of times', function () { it('repeats the string a random amount of times', function() {
/*The number is generated by using Math.random to get a value from between /*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 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 equals a number between 0 to 999 (this number will change everytime you run
the test).*/ the test).*/
const number = Math.floor(Math.random() * 1000) const number = Math.floor(Math.random() * 1000)
/*The .match(/((hey))/g).length is a regex that will count the number of heys /*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 in the result, which if your function works correctly will equal the number that
was randomaly generated. */ was randomaly generated. */
expect(repeatString('hey', number).match(/((hey))/g).length).toEqual(number); expect(repeatString('hey', number).match(/((hey))/g).length).toEqual(number);
}); });
xit('works with blank strings', function() { it('works with blank strings', function() {
expect(repeatString('', 10)).toEqual(''); expect(repeatString('', 10)).toEqual('');
}); });
}); });