From 17cf064a098ca3407513c62d55cc0be222241b0f Mon Sep 17 00:00:00 2001 From: AlexJora Date: Fri, 1 Jul 2022 15:32:31 +0200 Subject: [PATCH 1/3] My commit --- exercises/B-hello-world/README.md | 4 +-- exercises/B-hello-world/exercise.js | 5 +++- exercises/C-variables/README.md | 2 +- exercises/C-variables/exercise.js | 4 +-- exercises/D-strings/exercise.js | 3 ++ exercises/E-strings-concatenation/exercise.js | 4 ++- exercises/F-strings-methods/exercise.js | 5 ++++ exercises/F-strings-methods/exercise2.js | 10 ++++++- exercises/G-numbers/exercise.js | 6 ++++ exercises/I-floats/exercise.js | 7 +++++ exercises/J-functions/exercise.js | 3 +- exercises/J-functions/exercise2.js | 3 +- exercises/K-functions-parameters/exercise.js | 3 +- exercises/K-functions-parameters/exercise2.js | 3 ++ exercises/K-functions-parameters/exercise3.js | 5 +++- exercises/K-functions-parameters/exercise4.js | 5 +++- exercises/K-functions-parameters/exercise5.js | 5 +++- exercises/L-functions-nested/exercise.js | 15 ++++++++++ extra/1-currency-conversion.js | 11 +++++-- extra/2-piping.js | 30 +++++++++++-------- extra/3-magic-8-ball.js | 1 + mandatory/1-syntax-errors.js | 13 ++++---- mandatory/2-logic-error.js | 8 ++--- mandatory/3-function-output.js | 8 +++-- mandatory/4-tax.js | 9 ++++-- 25 files changed, 127 insertions(+), 45 deletions(-) diff --git a/exercises/B-hello-world/README.md b/exercises/B-hello-world/README.md index 27282c4af..c9553e9fe 100644 --- a/exercises/B-hello-world/README.md +++ b/exercises/B-hello-world/README.md @@ -5,9 +5,7 @@ We'll do this in JavaScript, using something called `console.log()`. Inside of `exercise.js` there's a line of code that will print "Hello world!". ### 1. Run the program - -- Open a terminal window -- Change directory to this folder (`cd exercises/B-hello-world`) - assuming you're at the project root +('cd exercises/B-hello-world`) - assuming you're at the project root - Run the program using node (`node exercise.js`) ### 2. Experiment diff --git a/exercises/B-hello-world/exercise.js b/exercises/B-hello-world/exercise.js index b179ee953..a223dbfc6 100644 --- a/exercises/B-hello-world/exercise.js +++ b/exercises/B-hello-world/exercise.js @@ -1 +1,4 @@ -console.log("Hello world"); +console.log("Hello world); +console.log("hello there!!!"); +console.log("finally working!"); +console.log("not working"); diff --git a/exercises/C-variables/README.md b/exercises/C-variables/README.md index 40859b3a8..6f9831e23 100644 --- a/exercises/C-variables/README.md +++ b/exercises/C-variables/README.md @@ -15,7 +15,7 @@ The program above will print "Hello world" to the console. Notice how it uses th - Add a variable `greeting` to exercise.js (make sure it comes _before_ the console.log) - Print your `greeting` to the console 3 times -> Remember: to run this exercise you must change directory to the `C-variables`. If you already have a terminal window open for the previous exercise you can do this by running the command `cd ../C-variables`. +> Remember: to run this exercise you must change directory to the `C-variables`. If you already have a terminal window open for the previous exercise you can do this by running the command ``. ## Expected result diff --git a/exercises/C-variables/exercise.js b/exercises/C-variables/exercise.js index a6bbb9786..05d1639e5 100644 --- a/exercises/C-variables/exercise.js +++ b/exercises/C-variables/exercise.js @@ -1,3 +1,3 @@ // Start by creating a variable `greeting` - -console.log(greeting); +let greeting = "Isn't good day at all!" +console.log(greeting); \ No newline at end of file diff --git a/exercises/D-strings/exercise.js b/exercises/D-strings/exercise.js index 2cffa6a81..fcb48bf30 100644 --- a/exercises/D-strings/exercise.js +++ b/exercises/D-strings/exercise.js @@ -1,3 +1,6 @@ // Start by creating a variable `message` +var message = "This is a string string" + +var messageType = typeof message; console.log(message); diff --git a/exercises/E-strings-concatenation/exercise.js b/exercises/E-strings-concatenation/exercise.js index 2cffa6a81..ad69d5ca8 100644 --- a/exercises/E-strings-concatenation/exercise.js +++ b/exercises/E-strings-concatenation/exercise.js @@ -1,3 +1,5 @@ // Start by creating a variable `message` - +var greeting = "Good day, my name is"; +var myName = "Catalina"; +var message = greeting + myName; console.log(message); diff --git a/exercises/F-strings-methods/exercise.js b/exercises/F-strings-methods/exercise.js index 2cffa6a81..4a105a07a 100644 --- a/exercises/F-strings-methods/exercise.js +++ b/exercises/F-strings-methods/exercise.js @@ -1,3 +1,8 @@ // Start by creating a variable `message` +var message1 = "My name is Catalina-Alexandra and my name is "; +var message2 = " characters long"; +var myName = "Catalina-Alexandra"; +var nameLength = myName.length; +var message = message1 + nameLength + message2; console.log(message); diff --git a/exercises/F-strings-methods/exercise2.js b/exercises/F-strings-methods/exercise2.js index b4b46943d..31cd19bc9 100644 --- a/exercises/F-strings-methods/exercise2.js +++ b/exercises/F-strings-methods/exercise2.js @@ -1,3 +1,11 @@ -const name = " Daniel "; +const myName = " Catalina-Alexandra "; +const trimmed = myName.trim; +var message1 = "My name is "; +var message2 = " and my name is "; +var message3 = " characters long"; + +var nameLength = myName.length; +var message = message1 + trimmed + message2 + nameLength + message3; + console.log(message); diff --git a/exercises/G-numbers/exercise.js b/exercises/G-numbers/exercise.js index 49e7bc00b..e090fb71c 100644 --- a/exercises/G-numbers/exercise.js +++ b/exercises/G-numbers/exercise.js @@ -1 +1,7 @@ // Start by creating a variables `numberOfStudents` and `numberOfMentors` +var numberOfStudents = 30 + 2; +var numberOfMentors = 8 + 1; +var total = numberOfStudents + numberOfMentors; +console.log("Number of students: " + numberOfStudents); +console.log("Number of mentors: " + numberOfMentors); +console.log("Total number of students and mentors: " + total); \ No newline at end of file diff --git a/exercises/I-floats/exercise.js b/exercises/I-floats/exercise.js index a5bbcd852..3b242adf9 100644 --- a/exercises/I-floats/exercise.js +++ b/exercises/I-floats/exercise.js @@ -1,2 +1,9 @@ var numberOfStudents = 15; var numberOfMentors = 8; +var proNrOfStudents = 1500 / 23; +var proNrOfMentors = 800 / 23; +var proNrOfStudentsRound = Math.round(proNrOfStudents); +var proNrOfMentorsRound = Math.round(proNrOfMentors); + +console.log("Procent of students: " + proNrOfStudentsRound + "%"); +console.log("Procent of mentors: " + proNrOfMentorsRound + "%"); diff --git a/exercises/J-functions/exercise.js b/exercises/J-functions/exercise.js index 0ae5850e5..81146d2ae 100644 --- a/exercises/J-functions/exercise.js +++ b/exercises/J-functions/exercise.js @@ -1,7 +1,8 @@ function halve(number) { // complete the function here + return number / 2; } -var result = halve(12); +var result = halve(556); console.log(result); diff --git a/exercises/J-functions/exercise2.js b/exercises/J-functions/exercise2.js index 82ef5e780..29b2e6e13 100644 --- a/exercises/J-functions/exercise2.js +++ b/exercises/J-functions/exercise2.js @@ -1,7 +1,8 @@ function triple(number) { // complete function here + return number * 3; } -var result = triple(12); +var result = triple(7); console.log(result); diff --git a/exercises/K-functions-parameters/exercise.js b/exercises/K-functions-parameters/exercise.js index 8d5db5e69..a4eed9d76 100644 --- a/exercises/K-functions-parameters/exercise.js +++ b/exercises/K-functions-parameters/exercise.js @@ -1,6 +1,7 @@ // Complete the function so that it takes input parameters -function multiply() { +function multiply(num1, num2) { // Calculate the result of the function and return it + return num1 * num2; } // Assign the result of calling the function the variable `result` diff --git a/exercises/K-functions-parameters/exercise2.js b/exercises/K-functions-parameters/exercise2.js index db7a8904b..4805ef7dc 100644 --- a/exercises/K-functions-parameters/exercise2.js +++ b/exercises/K-functions-parameters/exercise2.js @@ -1,4 +1,7 @@ // Declare your function first +function divide(num1, num2) { + return num1 / num2; +} var result = divide(3, 4); diff --git a/exercises/K-functions-parameters/exercise3.js b/exercises/K-functions-parameters/exercise3.js index 537e9f4ec..8644dc78b 100644 --- a/exercises/K-functions-parameters/exercise3.js +++ b/exercises/K-functions-parameters/exercise3.js @@ -1,5 +1,8 @@ // Write your function here +function createGreeting(myName) { + return "Hello, my name is " + myName; +} -var greeting = createGreeting("Daniel"); +var greeting = createGreeting("Catalina"); console.log(greeting); diff --git a/exercises/K-functions-parameters/exercise4.js b/exercises/K-functions-parameters/exercise4.js index 7ab44589e..e43f0852a 100644 --- a/exercises/K-functions-parameters/exercise4.js +++ b/exercises/K-functions-parameters/exercise4.js @@ -1,5 +1,8 @@ // Declare your function first +function addition(nr1, nr2) { + return nr1 + nr2; +} // Call the function and assign to a variable `sum` - +var sum = addition(13, 124); console.log(sum); diff --git a/exercises/K-functions-parameters/exercise5.js b/exercises/K-functions-parameters/exercise5.js index 7c5bcd605..b7534db5c 100644 --- a/exercises/K-functions-parameters/exercise5.js +++ b/exercises/K-functions-parameters/exercise5.js @@ -1,5 +1,8 @@ // Declare your function here +function createLongGreeting(myName, age) { + return "Hello, my name is " + myName + " and I'm " + age + " years old." +} -const greeting = createLongGreeting("Daniel", 30); +const greeting = createLongGreeting("Catalina", 47); console.log(greeting); diff --git a/exercises/L-functions-nested/exercise.js b/exercises/L-functions-nested/exercise.js index a5d377442..1493c896e 100644 --- a/exercises/L-functions-nested/exercise.js +++ b/exercises/L-functions-nested/exercise.js @@ -3,3 +3,18 @@ var mentor2 = "Irina"; var mentor3 = "Mimi"; var mentor4 = "Rob"; var mentor5 = "Yohannes"; + +function upCase(name) { + return name.toUpperCase(); +} +function greeting(name) { + let shouty = upCase(name); + let message = "GOOD DAY " + shouty; + return message; +} +console.log(greeting(mentor1)); +console.log(greeting(mentor2)); +console.log(greeting(mentor3)); +console.log(greeting(mentor4)); +console.log(greeting(mentor5)); + diff --git a/extra/1-currency-conversion.js b/extra/1-currency-conversion.js index 75b3c6aab..2dea27760 100644 --- a/extra/1-currency-conversion.js +++ b/extra/1-currency-conversion.js @@ -5,8 +5,11 @@ Write a function that converts a price to USD (exchange rate is 1.4 $ to £) */ -function convertToUSD() {} +function convertToUSD(pound) { + return pound * 1.4; +} +console.log(convertToUSD(32)) /* CURRENCY CONVERSION =================== @@ -15,8 +18,10 @@ function convertToUSD() {} They have also decided that they should add a 1% fee to all foreign transactions, which means you only convert 99% of the £ to BRL. */ -function convertToBRL() {} - +function convertToBRL(pound) { + return pound * 5.7; +} +console.log(convertToBRL(30)); /* ======= TESTS - DO NOT MODIFY ===== There are some Tests in this file that will help you work out if your code is working. diff --git a/extra/2-piping.js b/extra/2-piping.js index b4f8c4c1b..f200664d5 100644 --- a/extra/2-piping.js +++ b/extra/2-piping.js @@ -16,15 +16,18 @@ the final result to the variable goodCode */ -function add() { +function add(2, 4) { + return 2 + 4; } -function multiply() { +function multiply(5, 6) { + return 5 * 6; } -function format() { +function format($, 20) { + return "$" + "20" } @@ -33,20 +36,21 @@ const startingValue = 2; // Why can this code be seen as bad practice? Comment your answer. let badCode = -/* BETTER PRACTICE */ + /* BETTER PRACTICE */ -let goodCode = -/* ======= TESTS - DO NOT MODIFY ===== -There are some Tests in this file that will help you work out if your code is working. + let goodCode = -To run the tests for just this one file, type `npm test -- --testPathPattern 2-piping` into your terminal -(Reminder: You must have run `npm install` one time before this will work!) -*/ + /* ======= TESTS - DO NOT MODIFY ===== + There are some Tests in this file that will help you work out if your code is working. + + To run the tests for just this one file, type `npm test -- --testPathPattern 2-piping` into your terminal + (Reminder: You must have run `npm install` one time before this will work!) + */ -test("add function - case 1 works", () => { - expect(add(1, 3)).toEqual(4); -}); + test("add function - case 1 works", () => { + expect(add(1, 3)).toEqual(4); + }); test("add function - case 2 works", () => { expect(add(2.4, 5)).toEqual(7.4); diff --git a/extra/3-magic-8-ball.js b/extra/3-magic-8-ball.js index 46f65f928..fab25579b 100644 --- a/extra/3-magic-8-ball.js +++ b/extra/3-magic-8-ball.js @@ -47,6 +47,7 @@ // and return the answer. function shakeBall() { //Write your code in here + } /* diff --git a/mandatory/1-syntax-errors.js b/mandatory/1-syntax-errors.js index a10cc9ac2..e28bc12a0 100644 --- a/mandatory/1-syntax-errors.js +++ b/mandatory/1-syntax-errors.js @@ -1,16 +1,17 @@ // There are syntax errors in this code - can you fix it to pass the tests? -function addNumbers(a b c) { +function addNumbers(a, b, c) { return a + b + c; } -function introduceMe(name, age) - return "Hello, my name is " + name "and I am " age + "years old"; +function introduceMe(name, age) { + return "Hello, my name is " + name + " and I am " + age + "years old"; +} +console.log(introduceMe('Catalina', 47)); function getTotal(a, b) { - total = a ++ b; - - return "The total is total"; + total = a + b; + return total; } /* diff --git a/mandatory/2-logic-error.js b/mandatory/2-logic-error.js index 9cca7603b..5bfbf3666 100644 --- a/mandatory/2-logic-error.js +++ b/mandatory/2-logic-error.js @@ -1,16 +1,16 @@ // The syntax for this function is valid but it has an error, find it and fix it. function trimWord(word) { - return wordtrim(); + return word.trim(); } function getStringLength(word) { - return "word".length(); + return word.length(); } function multiply(a, b, c) { - a * b * c; - return; + return a * b * c; + } /* diff --git a/mandatory/3-function-output.js b/mandatory/3-function-output.js index 5a953ba60..45ca93e00 100644 --- a/mandatory/3-function-output.js +++ b/mandatory/3-function-output.js @@ -1,9 +1,9 @@ -// Add comments to explain what this function does. You're meant to use Google! +// Add comments to explain what this function does. You're meant to use Google! Math.random() method returns a random number from zero (inclusive)up but not including 1. function getRandomNumber() { return Math.random() * 10; } -// Add comments to explain what this function does. You're meant to use Google! +// Add comments to explain what this function does. You're meant to use Google!Concat()method joins two or more strings. function combine2Words(word1, word2) { return word1.concat(word2); } @@ -11,6 +11,10 @@ function combine2Words(word1, word2) { function concatenate(firstWord, secondWord, thirdWord) { // Write the body of this function to concatenate three words together. // Look at the test case below to understand what this function is expected to return. + let firstWord = "I"; + let secondWord = "like"; + let thirdWord = "cats" + return firstWord.concat(secondWord, thirdWord); } /* diff --git a/mandatory/4-tax.js b/mandatory/4-tax.js index ba77c7ae2..a99d571ac 100644 --- a/mandatory/4-tax.js +++ b/mandatory/4-tax.js @@ -5,7 +5,10 @@ Sales tax is 20% of the price of the product. */ -function calculateSalesTax() {} +function calculateSalesTax(price) { + return price + price * 0.2; + +} /* CURRENCY FORMATTING @@ -17,7 +20,9 @@ function calculateSalesTax() {} Remember that the prices must include the sales tax (hint: you already wrote a function for this!) */ -function addTaxAndFormatCurrency() {} +function addTaxAndFormatCurrency(price) { + return "£" + price + price * 0.2.toFixed(2); +} /* =================================================== From 8aacc5928f40b9dae6e12772517ed5ecca5ba3cf Mon Sep 17 00:00:00 2001 From: AlexJora Date: Sat, 23 Jul 2022 13:32:50 +0200 Subject: [PATCH 2/3] mandatory with tests --- exercises/J-functions/exercise.js | 2 +- mandatory/1-syntax-errors.js | 11 +++++++---- mandatory/2-logic-error.js | 4 +++- mandatory/3-function-output.js | 16 +++++++++------- mandatory/4-tax.js | 4 ++-- 5 files changed, 22 insertions(+), 15 deletions(-) diff --git a/exercises/J-functions/exercise.js b/exercises/J-functions/exercise.js index 81146d2ae..e8e791318 100644 --- a/exercises/J-functions/exercise.js +++ b/exercises/J-functions/exercise.js @@ -3,6 +3,6 @@ function halve(number) { return number / 2; } -var result = halve(556); +var result = halve(200); console.log(result); diff --git a/mandatory/1-syntax-errors.js b/mandatory/1-syntax-errors.js index e28bc12a0..578aa9871 100644 --- a/mandatory/1-syntax-errors.js +++ b/mandatory/1-syntax-errors.js @@ -1,18 +1,21 @@ // There are syntax errors in this code - can you fix it to pass the tests? function addNumbers(a, b, c) { - return a + b + c; + let d = a + b + c; + return d; } function introduceMe(name, age) { - return "Hello, my name is " + name + " and I am " + age + "years old"; + return `Hello, my name is ${name} and I am ${age} years old`; } console.log(introduceMe('Catalina', 47)); function getTotal(a, b) { - total = a + b; - return total; + let toEqual = a + b; + return `The total is ${toEqual}`; + } +console.log(getTotal()); /* =================================================== diff --git a/mandatory/2-logic-error.js b/mandatory/2-logic-error.js index 5bfbf3666..bff42c8ee 100644 --- a/mandatory/2-logic-error.js +++ b/mandatory/2-logic-error.js @@ -5,9 +5,11 @@ function trimWord(word) { } function getStringLength(word) { - return word.length(); + return word.length; } + + function multiply(a, b, c) { return a * b * c; diff --git a/mandatory/3-function-output.js b/mandatory/3-function-output.js index 45ca93e00..cc5c066e7 100644 --- a/mandatory/3-function-output.js +++ b/mandatory/3-function-output.js @@ -1,20 +1,22 @@ // Add comments to explain what this function does. You're meant to use Google! Math.random() method returns a random number from zero (inclusive)up but not including 1. function getRandomNumber() { - return Math.random() * 10; + return (Math.random() * 10); } // Add comments to explain what this function does. You're meant to use Google!Concat()method joins two or more strings. -function combine2Words(word1, word2) { - return word1.concat(word2); +function combine2Words(word1, word2, word3) { + return word1 + word2 + word3; } function concatenate(firstWord, secondWord, thirdWord) { // Write the body of this function to concatenate three words together. // Look at the test case below to understand what this function is expected to return. - let firstWord = "I"; - let secondWord = "like"; - let thirdWord = "cats" - return firstWord.concat(secondWord, thirdWord); + + return `${firstWord} ${secondWord} ${thirdWord}`; +} +function wordsNr(word1, word2, nr) { + + return `${word1} ${word2} ${nr}`; } /* diff --git a/mandatory/4-tax.js b/mandatory/4-tax.js index a99d571ac..d8f06eead 100644 --- a/mandatory/4-tax.js +++ b/mandatory/4-tax.js @@ -6,7 +6,7 @@ */ function calculateSalesTax(price) { - return price + price * 0.2; + return price + (price * 0.2); } @@ -21,7 +21,7 @@ function calculateSalesTax(price) { */ function addTaxAndFormatCurrency(price) { - return "£" + price + price * 0.2.toFixed(2); + return "£" + (price + price * 0.2).toFixed(2); } /* From 410123bf20a500230b9def7fa22f146f4fc36b2e Mon Sep 17 00:00:00 2001 From: AlexJora Date: Sat, 23 Jul 2022 14:30:25 +0200 Subject: [PATCH 3/3] exercise + test --- exercises/B-hello-world/exercise.js | 2 +- exercises/D-strings/exercise.js | 2 +- exercises/E-strings-concatenation/exercise.js | 2 +- exercises/F-strings-methods/exercise2.js | 2 +- extra/2-piping.js | 80 +++--- extra/3-magic-8-ball.js | 238 +++++++++--------- 6 files changed, 163 insertions(+), 163 deletions(-) diff --git a/exercises/B-hello-world/exercise.js b/exercises/B-hello-world/exercise.js index a223dbfc6..06559e909 100644 --- a/exercises/B-hello-world/exercise.js +++ b/exercises/B-hello-world/exercise.js @@ -1,4 +1,4 @@ -console.log("Hello world); +console.log('Hello world'); console.log("hello there!!!"); console.log("finally working!"); console.log("not working"); diff --git a/exercises/D-strings/exercise.js b/exercises/D-strings/exercise.js index fcb48bf30..4c13b2cc5 100644 --- a/exercises/D-strings/exercise.js +++ b/exercises/D-strings/exercise.js @@ -3,4 +3,4 @@ var message = "This is a string string" var messageType = typeof message; -console.log(message); +console.log(messageType); diff --git a/exercises/E-strings-concatenation/exercise.js b/exercises/E-strings-concatenation/exercise.js index ad69d5ca8..44b403783 100644 --- a/exercises/E-strings-concatenation/exercise.js +++ b/exercises/E-strings-concatenation/exercise.js @@ -1,5 +1,5 @@ // Start by creating a variable `message` -var greeting = "Good day, my name is"; +var greeting = "Good day, my name is "; var myName = "Catalina"; var message = greeting + myName; console.log(message); diff --git a/exercises/F-strings-methods/exercise2.js b/exercises/F-strings-methods/exercise2.js index 31cd19bc9..8ecbcd84d 100644 --- a/exercises/F-strings-methods/exercise2.js +++ b/exercises/F-strings-methods/exercise2.js @@ -1,5 +1,5 @@ const myName = " Catalina-Alexandra "; -const trimmed = myName.trim; +const trimmed = myName.trim(); var message1 = "My name is "; var message2 = " and my name is "; var message3 = " characters long"; diff --git a/extra/2-piping.js b/extra/2-piping.js index f200664d5..d8a17d061 100644 --- a/extra/2-piping.js +++ b/extra/2-piping.js @@ -16,62 +16,62 @@ the final result to the variable goodCode */ -function add(2, 4) { - return 2 + 4; +// function add(2, 4) { +// return 2 + 4; -} +// } -function multiply(5, 6) { - return 5 * 6; +// function multiply(5, 6) { +// return 5 * 6; -} +// } -function format($, 20) { - return "$" + "20" +// function format($, 20) { +// return "$" + "20" -} +// } -const startingValue = 2; +// const startingValue = 2; -// Why can this code be seen as bad practice? Comment your answer. -let badCode = +// // Why can this code be seen as bad practice? Comment your answer. +// let badCode = - /* BETTER PRACTICE */ +// /* BETTER PRACTICE */ - let goodCode = +// let goodCode = - /* ======= TESTS - DO NOT MODIFY ===== - There are some Tests in this file that will help you work out if your code is working. +// /* ======= TESTS - DO NOT MODIFY ===== +// There are some Tests in this file that will help you work out if your code is working. - To run the tests for just this one file, type `npm test -- --testPathPattern 2-piping` into your terminal - (Reminder: You must have run `npm install` one time before this will work!) - */ +// To run the tests for just this one file, type `npm test -- --testPathPattern 2-piping` into your terminal +// (Reminder: You must have run `npm install` one time before this will work!) +// */ - test("add function - case 1 works", () => { - expect(add(1, 3)).toEqual(4); - }); +// test("add function - case 1 works", () => { +// expect(add(1, 3)).toEqual(4); +// }); -test("add function - case 2 works", () => { - expect(add(2.4, 5)).toEqual(7.4); -}); +// test("add function - case 2 works", () => { +// expect(add(2.4, 5)).toEqual(7.4); +// }); -test("multiply function works", () => { - expect(multiply(2, 3)).toEqual(6); -}); +// test("multiply function works", () => { +// expect(multiply(2, 3)).toEqual(6); +// }); -test("format function works for whole number", () => { - expect(format(16)).toEqual("£16"); -}); +// test("format function works for whole number", () => { +// expect(format(16)).toEqual("£16"); +// }); -test("format function works for decimal number", () => { - expect(format(10.1)).toEqual("£10.1"); -}); +// test("format function works for decimal number", () => { +// expect(format(10.1)).toEqual("£10.1"); +// }); -test("badCode variable correctly assigned", () => { - expect(badCode).toEqual("£24"); -}); +// test("badCode variable correctly assigned", () => { +// expect(badCode).toEqual("£24"); +// }); -test("goodCode variable correctly assigned", () => { - expect(goodCode).toEqual("£24"); -}); +// test("goodCode variable correctly assigned", () => { +// expect(goodCode).toEqual("£24"); +// }); diff --git a/extra/3-magic-8-ball.js b/extra/3-magic-8-ball.js index fab25579b..ea835f8ad 100644 --- a/extra/3-magic-8-ball.js +++ b/extra/3-magic-8-ball.js @@ -1,119 +1,119 @@ -/** - - Let's peer into the future using a Magic 8 Ball! - https://en.wikipedia.org/wiki/Magic_8-Ball - - There are a few steps to being able view the future though: - * Ask a question - * Shake the ball - * Get an answer - * Decide if it's positive or negative - - The question can be anything, but the answers are fixed, - and have different levels of positivity or negativity. - - Below are the possible answers: - - ## Very positive - It is certain. - It is decidedly so. - Without a doubt. - Yes - definitely. - You may rely on it. - - ## Positive - As I see it, yes. - Most likely. - Outlook good. - Yes. - Signs point to yes. - - ## Negative - Reply hazy, try again. - Ask again later. - Better not tell you now. - Cannot predict now. - Concentrate and ask again. - - ## Very negative - Don't count on it. - My reply is no. - My sources say no. - Outlook not so good. - Very doubtful. -*/ - -// This should log "The ball has shaken!" -// and return the answer. -function shakeBall() { - //Write your code in here - -} - -/* - This function should say whether the answer it is given is - - very positive - - positive - - negative - - very negative - - This function should expect to be called with any value which was returned by the shakeBall function. -*/ -function checkAnswer(answer) { - //Write your code in here -} - -/* -================================== -======= TESTS - DO NOT MODIFY ===== - -There are some Tests in this file that will help you work out if your code is working. - -To run the tests for just this one file, type `npm test -- --testPathPattern 3-magic-8-ball` into your terminal -(Reminder: You must have run `npm install` one time before this will work!) -================================== -*/ - -test("whole magic 8 ball sequence", () => { - const consoleLogSpy = jest.spyOn(global.console, "log"); - const answer = shakeBall(); - - expect(typeof answer).toEqual("string"); - - expect(consoleLogSpy).toHaveBeenCalledTimes(1); - expect(consoleLogSpy).toHaveBeenLastCalledWith("The ball has shaken!"); - - expect(checkAnswer(answer)).toBeOneOf([ - "very positive", - "positive", - "negative", - "very negative", - ]); -}); - -test("magic 8 ball returns different values each time", () => { - const seenAnswers = new Set(); - for (let i = 0; i < 10; ++i) { - seenAnswers.add(shakeBall()); - } - if (seenAnswers.size < 2) { - throw Error( - "Expected to get different random answers each time shakeBall was called, but always got the same one" - ); - } - - let seenPositivities = new Set(Array.from(seenAnswers.values()).map(checkAnswer)); - if (seenPositivities.size < 2) { - throw Error( - "Expected to random answers with different positivities each time shakeBall was called, but always got the same one" - ); - } -}); - -test("checkAnswer works for `It is decidedly so.`", () => { - expect(checkAnswer("It is decidedly so.")).toEqual("very positive"); -}); - -test("checkAnswer works for `My reply is no.`", () => { - expect(checkAnswer("My reply is no.")).toEqual("very negative"); -}); +// /** + +// Let's peer into the future using a Magic 8 Ball! +// https://en.wikipedia.org/wiki/Magic_8-Ball + +// There are a few steps to being able view the future though: +// * Ask a question +// * Shake the ball +// * Get an answer +// * Decide if it's positive or negative + +// The question can be anything, but the answers are fixed, +// and have different levels of positivity or negativity. + +// Below are the possible answers: + +// ## Very positive +// It is certain. +// It is decidedly so. +// Without a doubt. +// Yes - definitely. +// You may rely on it. + +// ## Positive +// As I see it, yes. +// Most likely. +// Outlook good. +// Yes. +// Signs point to yes. + +// ## Negative +// Reply hazy, try again. +// Ask again later. +// Better not tell you now. +// Cannot predict now. +// Concentrate and ask again. + +// ## Very negative +// Don't count on it. +// My reply is no. +// My sources say no. +// Outlook not so good. +// Very doubtful. +// */ + +// // This should log "The ball has shaken!" +// // and return the answer. +// function shakeBall() { +// //Write your code in here + +// } + +// /* +// This function should say whether the answer it is given is +// - very positive +// - positive +// - negative +// - very negative + +// This function should expect to be called with any value which was returned by the shakeBall function. +// */ +// function checkAnswer(answer) { +// //Write your code in here +// } + +// /* +// ================================== +// ======= TESTS - DO NOT MODIFY ===== + +// There are some Tests in this file that will help you work out if your code is working. + +// To run the tests for just this one file, type `npm test -- --testPathPattern 3-magic-8-ball` into your terminal +// (Reminder: You must have run `npm install` one time before this will work!) +// ================================== +// */ + +// test("whole magic 8 ball sequence", () => { +// const consoleLogSpy = jest.spyOn(global.console, "log"); +// const answer = shakeBall(); + +// expect(typeof answer).toEqual("string"); + +// expect(consoleLogSpy).toHaveBeenCalledTimes(1); +// expect(consoleLogSpy).toHaveBeenLastCalledWith("The ball has shaken!"); + +// expect(checkAnswer(answer)).toBeOneOf([ +// "very positive", +// "positive", +// "negative", +// "very negative", +// ]); +// }); + +// test("magic 8 ball returns different values each time", () => { +// const seenAnswers = new Set(); +// for (let i = 0; i < 10; ++i) { +// seenAnswers.add(shakeBall()); +// } +// if (seenAnswers.size < 2) { +// throw Error( +// "Expected to get different random answers each time shakeBall was called, but always got the same one" +// ); +// } + +// let seenPositivities = new Set(Array.from(seenAnswers.values()).map(checkAnswer)); +// if (seenPositivities.size < 2) { +// throw Error( +// "Expected to random answers with different positivities each time shakeBall was called, but always got the same one" +// ); +// } +// }); + +// test("checkAnswer works for `It is decidedly so.`", () => { +// expect(checkAnswer("It is decidedly so.")).toEqual("very positive"); +// }); + +// test("checkAnswer works for `My reply is no.`", () => { +// expect(checkAnswer("My reply is no.")).toEqual("very negative"); +// });