exercise 01 and 02 completed

This commit is contained in:
Dawid Keyser 2023-10-11 09:08:20 +13:00
parent 157972d135
commit 0e8b5f3db3
3 changed files with 37 additions and 31 deletions

View File

@ -1,5 +1,5 @@
const helloWorld = function() { const helloWorld = function () {
return '' return 'Hello, World!';
}; };
module.exports = helloWorld; module.exports = helloWorld;

View File

@ -1,5 +1,11 @@
const repeatString = function() { const repeatString = function (string, num) {
if (num < 0) return 'ERROR';
let phrase = '';
for (let i = 0; i < num; i++) {
phrase += string;
}
return phrase;
}; };
// 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,13 @@ 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('');
}); });
}); });