solves 02_repeatString

This commit is contained in:
Max Hillebrand 2023-11-17 08:59:10 +01:00
parent 9dadabc9bf
commit e7847b0ac1
2 changed files with 30 additions and 19 deletions

View File

@ -1,5 +1,14 @@
const repeatString = function() { const repeatString = function (string, num) {
let addedStrings = "";
if (num < 0) {
return (addedStrings = "ERROR");
} else {
for (num; num > 0; num--) {
addedStrings += string;
}
}
return addedStrings;
}; };
// Do not edit below this line // Do not edit below this line

View File

@ -1,22 +1,22 @@
const repeatString = require('./repeatString') const repeatString = require("./repeatString");
describe('repeatString', () => { describe("repeatString", () => {
test('repeats the string', () => { test("repeats the string", () => {
expect(repeatString('hey', 3)).toEqual('heyheyhey'); expect(repeatString("hey", 3)).toEqual("heyheyhey");
}); });
test.skip('repeats the string many times', () => { test("repeats the string many times", () => {
expect(repeatString('hey', 10)).toEqual('heyheyheyheyheyheyheyheyheyhey'); expect(repeatString("hey", 10)).toEqual("heyheyheyheyheyheyheyheyheyhey");
}); });
test.skip('repeats the string 1 times', () => { test("repeats the string 1 times", () => {
expect(repeatString('hey', 1)).toEqual('hey'); expect(repeatString("hey", 1)).toEqual("hey");
}); });
test.skip('repeats the string 0 times', () => { test("repeats the string 0 times", () => {
expect(repeatString('hey', 0)).toEqual(''); expect(repeatString("hey", 0)).toEqual("");
}); });
test.skip('returns ERROR with negative numbers', () => { test("returns ERROR with negative numbers", () => {
expect(repeatString('hey', -1)).toEqual('ERROR'); expect(repeatString("hey", -1)).toEqual("ERROR");
}); });
test.skip('repeats the string a random amount of times', function () { test("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
@ -25,13 +25,15 @@ describe('repeatString', () => {
// DO NOT use Math.floor(Math.random() * 1000) in your code, // DO NOT use Math.floor(Math.random() * 1000) in your code,
// this test generates a random number, then passes it into your code with a function parameter. // this test generates a random number, then passes it into your code with a function parameter.
// If this doesn't make sense, you should go read about functions here: https://www.theodinproject.com/paths/foundations/courses/foundations/lessons/fundamentals-part-3 // If this doesn't make sense, you should go read about functions here: https://www.theodinproject.com/paths/foundations/courses/foundations/lessons/fundamentals-part-3
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 randomly generated. */ was randomly generated. */
expect(repeatString('hey', number).match(/((hey))/g).length).toEqual(number); expect(repeatString("hey", number).match(/((hey))/g).length).toEqual(
number
);
}); });
test.skip('works with blank strings', () => { test("works with blank strings", () => {
expect(repeatString('', 10)).toEqual(''); expect(repeatString("", 10)).toEqual("");
}); });
}); });