From 522d1bd35f2fc9bacc626f1140bef164813412f6 Mon Sep 17 00:00:00 2001 From: Ayodeji Ayorinde Date: Mon, 2 Mar 2026 13:39:16 +0000 Subject: [PATCH 1/3] Completion of Sprint 1 Coursework --- Sprint-1/1-key-exercises/1-count.js | 1 + Sprint-1/1-key-exercises/2-initials.js | 2 ++ Sprint-1/1-key-exercises/3-paths.js | 7 +++++-- Sprint-1/2-mandatory-errors/0.js | 7 +++++-- Sprint-1/2-mandatory-errors/1.js | 7 +++++++ Sprint-1/2-mandatory-errors/2.js | 8 ++++++++ Sprint-1/2-mandatory-errors/3.js | 8 ++++++++ Sprint-1/2-mandatory-errors/4.js | 11 ++++++++++- .../3-mandatory-interpret/1-percentage-change.js | 9 +++++---- Sprint-1/3-mandatory-interpret/2-time-format.js | 11 ++++++----- Sprint-1/3-mandatory-interpret/3-to-pounds.js | 9 +++++++++ Sprint-1/4-stretch-explore/chrome.md | 7 +++++++ Sprint-1/4-stretch-explore/objects.md | 12 +++++++++--- 13 files changed, 82 insertions(+), 17 deletions(-) diff --git a/Sprint-1/1-key-exercises/1-count.js b/Sprint-1/1-key-exercises/1-count.js index 117bcb2b6..19f2fe950 100644 --- a/Sprint-1/1-key-exercises/1-count.js +++ b/Sprint-1/1-key-exercises/1-count.js @@ -4,3 +4,4 @@ count = count + 1; // Line 1 is a variable declaration, creating the count variable with an initial value of 0 // Describe what line 3 is doing, in particular focus on what = is doing +//Line 3 is adding 1 to the initial values of count which is 0 and reassing the new value (1+0 =1) to count diff --git a/Sprint-1/1-key-exercises/2-initials.js b/Sprint-1/1-key-exercises/2-initials.js index 47561f617..c992d4d58 100644 --- a/Sprint-1/1-key-exercises/2-initials.js +++ b/Sprint-1/1-key-exercises/2-initials.js @@ -6,6 +6,8 @@ let lastName = "Johnson"; // This should produce the string "CKJ", but you must not write the characters C, K, or J in the code of your solution. let initials = ``; +initials = firstName.substring(0, 1) + middleName.substring(0, 1) + lastName.substring(0, 1) +console.log(initials) // https://www.google.com/search?q=get+first+character+of+string+mdn diff --git a/Sprint-1/1-key-exercises/3-paths.js b/Sprint-1/1-key-exercises/3-paths.js index ab90ebb28..216e4fbdf 100644 --- a/Sprint-1/1-key-exercises/3-paths.js +++ b/Sprint-1/1-key-exercises/3-paths.js @@ -17,7 +17,10 @@ console.log(`The base part of ${filePath} is ${base}`); // Create a variable to store the dir part of the filePath variable // Create a variable to store the ext part of the variable -const dir = ; -const ext = ; +const dir = filePath.substring(0, 44); +console.log(`The dir part of the filePath variable is ${dir}`); +const lastDotIndex = filePath.lastIndexOf("."); +const ext = filePath.slice(lastDotIndex + 1); +console.log(`The ext of ${filePath} is ${ext}`); // https://www.google.com/search?q=slice+mdn \ No newline at end of file diff --git a/Sprint-1/2-mandatory-errors/0.js b/Sprint-1/2-mandatory-errors/0.js index cf6c5039f..fd81664bc 100644 --- a/Sprint-1/2-mandatory-errors/0.js +++ b/Sprint-1/2-mandatory-errors/0.js @@ -1,2 +1,5 @@ -This is just an instruction for the first activity - but it is just for human consumption -We don't want the computer to run these 2 lines - how can we solve this problem? \ No newline at end of file +//This is just an instruction for the first activity - but it is just for human consumption +//We don't want the computer to run these 2 lines - how can we solve this problem? + +//ANSWER: +//We change the two lines to comments by using double forward slash (//) at the beginning of the two lines. diff --git a/Sprint-1/2-mandatory-errors/1.js b/Sprint-1/2-mandatory-errors/1.js index 7a43cbea7..117eac0f1 100644 --- a/Sprint-1/2-mandatory-errors/1.js +++ b/Sprint-1/2-mandatory-errors/1.js @@ -2,3 +2,10 @@ const age = 33; age = age + 1; + +// ANSWER +// In the solution above, 'age' is a constant variable becuse the keyword 'const' was used with it hence the value cannot change. + +// Solution: +let age = 33; +let age = age + 1; \ No newline at end of file diff --git a/Sprint-1/2-mandatory-errors/2.js b/Sprint-1/2-mandatory-errors/2.js index e09b89831..53408c61c 100644 --- a/Sprint-1/2-mandatory-errors/2.js +++ b/Sprint-1/2-mandatory-errors/2.js @@ -3,3 +3,11 @@ console.log(`I was born in ${cityOfBirth}`); const cityOfBirth = "Bolton"; + +//ANSWER: +// The 'cityOfBirth' was not assigned before the console.log statement +// Solution will be to switch the lines as shown below: + + +const cityOfBirth = "Bolton"; +console.log(`I was born in ${cityOfBirth}`); \ No newline at end of file diff --git a/Sprint-1/2-mandatory-errors/3.js b/Sprint-1/2-mandatory-errors/3.js index ec101884d..a2e630b4e 100644 --- a/Sprint-1/2-mandatory-errors/3.js +++ b/Sprint-1/2-mandatory-errors/3.js @@ -7,3 +7,11 @@ const last4Digits = cardNumber.slice(-4); // Then run the code and see what error it gives. // Consider: Why does it give this error? Is this what I predicted? If not, what's different? // Then try updating the expression last4Digits is assigned to, in order to get the correct value + +//Predcition: slice() probably only work on string. Possible solution will be to put cardNumber in quotes or use String() +// Why does it give this error? It says 'cardNumber.slice is not a function' +// Is this what I predicted? No +// If not, what's different? Since cardNumber is numeric, it shoulf be changed to string fot slice() to work. + +const cardNumber = "4533787178994213"; +const last4Digits = cardNumber.slice(-4); diff --git a/Sprint-1/2-mandatory-errors/4.js b/Sprint-1/2-mandatory-errors/4.js index 21dad8c5d..ea2dc8924 100644 --- a/Sprint-1/2-mandatory-errors/4.js +++ b/Sprint-1/2-mandatory-errors/4.js @@ -1,2 +1,11 @@ const 12HourClockTime = "20:53"; -const 24hourClockTime = "08:53"; \ No newline at end of file +const 24hourClockTime = "08:53"; + +//In naming variable, numbers are not allowed to preceed variable names. + +// Error message: An identifier or keyword cannot immediately follow a numeric literal. + +// SUggested Solutions: + +const ClockTime12Hour = "20:53"; +const ClockTime24hour = "08:53"; \ No newline at end of file diff --git a/Sprint-1/3-mandatory-interpret/1-percentage-change.js b/Sprint-1/3-mandatory-interpret/1-percentage-change.js index e24ecb8e1..74833464f 100644 --- a/Sprint-1/3-mandatory-interpret/1-percentage-change.js +++ b/Sprint-1/3-mandatory-interpret/1-percentage-change.js @@ -12,11 +12,12 @@ console.log(`The percentage change is ${percentageChange}`); // Read the code and then answer the questions below // a) How many function calls are there in this file? Write down all the lines where a function call is made - +//ANSWER: Four function calls. Two function calls in line 4 & two function calls in line 5 // b) Run the code and identify the line where the error is coming from - why is this error occurring? How can you fix this problem? - +//ANSWER: The comma in the replaceAll() function in Line 5 is missing. Put the comma back in to fix it. // c) Identify all the lines that are variable reassignment statements - +//ANSWER: Lines that are variable reassignment statements are Lines 4 & 5. // d) Identify all the lines that are variable declarations - +//ANSWER: Variable declarations line: 1,2,7,& 8 // e) Describe what the expression Number(carPrice.replaceAll(",","")) is doing - what is the purpose of this expression? +//ANSWER: The expression first removes the comma(,) in carPrice and then converts it to a number. \ No newline at end of file diff --git a/Sprint-1/3-mandatory-interpret/2-time-format.js b/Sprint-1/3-mandatory-interpret/2-time-format.js index 47d239558..214b3e5ef 100644 --- a/Sprint-1/3-mandatory-interpret/2-time-format.js +++ b/Sprint-1/3-mandatory-interpret/2-time-format.js @@ -12,14 +12,15 @@ console.log(result); // For the piece of code above, read the code and then answer the following questions // a) How many variable declarations are there in this program? - +//ANSWER: There were six variable declarations // b) How many function calls are there? - +//ANSWER: There were no function calls except for the log() function // c) Using documentation, explain what the expression movieLength % 60 represents // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators - +//ANSWER: The remainder (%) operator returns the remainder left over when one operand is divided by a second operand. It always takes the sign of the dividend. // d) Interpret line 4, what does the expression assigned to totalMinutes mean? - +//ANSWER: Line 4 with find the remainder whenmovieLength is divided by 60 and assigns the remainder to remainingSeconds (24) // e) What do you think the variable result represents? Can you think of a better name for this variable? - +//ANSWER: The variable result represents the total lenth of the movie which shows the total hours, minutes and seconds remain in string format. // f) Try experimenting with different values of movieLength. Will this code work for all values of movieLength? Explain your answer +//ANSWER: The code semed to work for all values of movieLength. \ No newline at end of file diff --git a/Sprint-1/3-mandatory-interpret/3-to-pounds.js b/Sprint-1/3-mandatory-interpret/3-to-pounds.js index 60c9ace69..2d6553c31 100644 --- a/Sprint-1/3-mandatory-interpret/3-to-pounds.js +++ b/Sprint-1/3-mandatory-interpret/3-to-pounds.js @@ -25,3 +25,12 @@ console.log(`£${pounds}.${pence}`); // To begin, we can start with // 1. const penceString = "399p": initialises a string variable with the value "399p" +// 2. Lines 3 to 6: extracts "399" as a string and assigns the values to penceStringWithoutTrailingP. +// It uses the substring to extract from position 0 to 3. +// 3. Line 8: padStart is used to pad the values in penceStringWithoutTrailingP with "0" from the start of the value to make up a length of 3. +// Since penceStringWithoutTrailingP already has "399" with a length of 3, no padding is done. +// 4. Line 9 to 12: substring is used to extract from paddedPenceNumberString, starting from position 0 to 1 giving 3 which is stored in the variable pounds. +// 5. Line 14 to 16: substring is used to extract from paddedPenceNumberString, starting from position 1 to the end givin "99" +// "99" is padded with "0" from the end of the value to make a length of 2 but sincw "99" already has a length of 2, no padding is done. +// "99" is assigned to the variable pence. +// 6. Line 18: uses console.log() to print the values of pounds and pence preceeded by "£" and separated by "." to give "£3.99" diff --git a/Sprint-1/4-stretch-explore/chrome.md b/Sprint-1/4-stretch-explore/chrome.md index e7dd5feaf..bddd08b8a 100644 --- a/Sprint-1/4-stretch-explore/chrome.md +++ b/Sprint-1/4-stretch-explore/chrome.md @@ -11,8 +11,15 @@ In the Chrome console, invoke the function `alert` with an input string of `"Hello world!"`; What effect does calling the `alert` function have? +## Got "chrome://new-tab-page says" popup +## Hello world! Now try invoking the function `prompt` with a string input of `"What is your name?"` - store the return value of your call to `prompt` in an variable called `myName`. What effect does calling the `prompt` function have? +## Got "chrome://new-tab-page says" popup +## Got "What is your name?" +## Got a box for input What is the return value of `prompt`? +## promt: ƒ prompt() { [native code] } +## myName: Ayo diff --git a/Sprint-1/4-stretch-explore/objects.md b/Sprint-1/4-stretch-explore/objects.md index 0216dee56..62c3a9e41 100644 --- a/Sprint-1/4-stretch-explore/objects.md +++ b/Sprint-1/4-stretch-explore/objects.md @@ -4,13 +4,19 @@ In this activity, we'll explore some additional concepts that you'll encounter i Open the Chrome devtools Console, type in `console.log` and then hit enter -What output do you get? +What output do you get? +## ƒ log() { [native code] } Now enter just `console` in the Console, what output do you get back? - +## console {debug: ƒ, error: ƒ, info: ƒ, log: ƒ, warn: ƒ, …} Try also entering `typeof console` - +## 'object' Answer the following questions: What does `console` store? +## Objects +## console {debug: ƒ, error: ƒ, info: ƒ, log: ƒ, warn: ƒ, …} What does the syntax `console.log` or `console.assert` mean? In particular, what does the `.` mean? +## console.log - Prints the text to the Console as a log message +## console.assert() writes an error message to the console if the assertion is false +## The dot(.) allows the access of the log method inside the console object \ No newline at end of file From 0e99abce8a749d4248c41eb07730aebc5e9851cd Mon Sep 17 00:00:00 2001 From: Ayodeji Ayorinde Date: Fri, 6 Mar 2026 15:45:09 +0000 Subject: [PATCH 2/3] Revert "Completion of Sprint 1 Coursework" This reverts commit 522d1bd35f2fc9bacc626f1140bef164813412f6. --- Sprint-1/1-key-exercises/1-count.js | 1 - Sprint-1/1-key-exercises/2-initials.js | 2 -- Sprint-1/1-key-exercises/3-paths.js | 7 ++----- Sprint-1/2-mandatory-errors/0.js | 7 ++----- Sprint-1/2-mandatory-errors/1.js | 7 ------- Sprint-1/2-mandatory-errors/2.js | 8 -------- Sprint-1/2-mandatory-errors/3.js | 8 -------- Sprint-1/2-mandatory-errors/4.js | 11 +---------- .../3-mandatory-interpret/1-percentage-change.js | 9 ++++----- Sprint-1/3-mandatory-interpret/2-time-format.js | 11 +++++------ Sprint-1/3-mandatory-interpret/3-to-pounds.js | 9 --------- Sprint-1/4-stretch-explore/chrome.md | 7 ------- Sprint-1/4-stretch-explore/objects.md | 12 +++--------- 13 files changed, 17 insertions(+), 82 deletions(-) diff --git a/Sprint-1/1-key-exercises/1-count.js b/Sprint-1/1-key-exercises/1-count.js index 19f2fe950..117bcb2b6 100644 --- a/Sprint-1/1-key-exercises/1-count.js +++ b/Sprint-1/1-key-exercises/1-count.js @@ -4,4 +4,3 @@ count = count + 1; // Line 1 is a variable declaration, creating the count variable with an initial value of 0 // Describe what line 3 is doing, in particular focus on what = is doing -//Line 3 is adding 1 to the initial values of count which is 0 and reassing the new value (1+0 =1) to count diff --git a/Sprint-1/1-key-exercises/2-initials.js b/Sprint-1/1-key-exercises/2-initials.js index c992d4d58..47561f617 100644 --- a/Sprint-1/1-key-exercises/2-initials.js +++ b/Sprint-1/1-key-exercises/2-initials.js @@ -6,8 +6,6 @@ let lastName = "Johnson"; // This should produce the string "CKJ", but you must not write the characters C, K, or J in the code of your solution. let initials = ``; -initials = firstName.substring(0, 1) + middleName.substring(0, 1) + lastName.substring(0, 1) -console.log(initials) // https://www.google.com/search?q=get+first+character+of+string+mdn diff --git a/Sprint-1/1-key-exercises/3-paths.js b/Sprint-1/1-key-exercises/3-paths.js index 216e4fbdf..ab90ebb28 100644 --- a/Sprint-1/1-key-exercises/3-paths.js +++ b/Sprint-1/1-key-exercises/3-paths.js @@ -17,10 +17,7 @@ console.log(`The base part of ${filePath} is ${base}`); // Create a variable to store the dir part of the filePath variable // Create a variable to store the ext part of the variable -const dir = filePath.substring(0, 44); -console.log(`The dir part of the filePath variable is ${dir}`); +const dir = ; +const ext = ; -const lastDotIndex = filePath.lastIndexOf("."); -const ext = filePath.slice(lastDotIndex + 1); -console.log(`The ext of ${filePath} is ${ext}`); // https://www.google.com/search?q=slice+mdn \ No newline at end of file diff --git a/Sprint-1/2-mandatory-errors/0.js b/Sprint-1/2-mandatory-errors/0.js index fd81664bc..cf6c5039f 100644 --- a/Sprint-1/2-mandatory-errors/0.js +++ b/Sprint-1/2-mandatory-errors/0.js @@ -1,5 +1,2 @@ -//This is just an instruction for the first activity - but it is just for human consumption -//We don't want the computer to run these 2 lines - how can we solve this problem? - -//ANSWER: -//We change the two lines to comments by using double forward slash (//) at the beginning of the two lines. +This is just an instruction for the first activity - but it is just for human consumption +We don't want the computer to run these 2 lines - how can we solve this problem? \ No newline at end of file diff --git a/Sprint-1/2-mandatory-errors/1.js b/Sprint-1/2-mandatory-errors/1.js index 117eac0f1..7a43cbea7 100644 --- a/Sprint-1/2-mandatory-errors/1.js +++ b/Sprint-1/2-mandatory-errors/1.js @@ -2,10 +2,3 @@ const age = 33; age = age + 1; - -// ANSWER -// In the solution above, 'age' is a constant variable becuse the keyword 'const' was used with it hence the value cannot change. - -// Solution: -let age = 33; -let age = age + 1; \ No newline at end of file diff --git a/Sprint-1/2-mandatory-errors/2.js b/Sprint-1/2-mandatory-errors/2.js index 53408c61c..e09b89831 100644 --- a/Sprint-1/2-mandatory-errors/2.js +++ b/Sprint-1/2-mandatory-errors/2.js @@ -3,11 +3,3 @@ console.log(`I was born in ${cityOfBirth}`); const cityOfBirth = "Bolton"; - -//ANSWER: -// The 'cityOfBirth' was not assigned before the console.log statement -// Solution will be to switch the lines as shown below: - - -const cityOfBirth = "Bolton"; -console.log(`I was born in ${cityOfBirth}`); \ No newline at end of file diff --git a/Sprint-1/2-mandatory-errors/3.js b/Sprint-1/2-mandatory-errors/3.js index a2e630b4e..ec101884d 100644 --- a/Sprint-1/2-mandatory-errors/3.js +++ b/Sprint-1/2-mandatory-errors/3.js @@ -7,11 +7,3 @@ const last4Digits = cardNumber.slice(-4); // Then run the code and see what error it gives. // Consider: Why does it give this error? Is this what I predicted? If not, what's different? // Then try updating the expression last4Digits is assigned to, in order to get the correct value - -//Predcition: slice() probably only work on string. Possible solution will be to put cardNumber in quotes or use String() -// Why does it give this error? It says 'cardNumber.slice is not a function' -// Is this what I predicted? No -// If not, what's different? Since cardNumber is numeric, it shoulf be changed to string fot slice() to work. - -const cardNumber = "4533787178994213"; -const last4Digits = cardNumber.slice(-4); diff --git a/Sprint-1/2-mandatory-errors/4.js b/Sprint-1/2-mandatory-errors/4.js index ea2dc8924..21dad8c5d 100644 --- a/Sprint-1/2-mandatory-errors/4.js +++ b/Sprint-1/2-mandatory-errors/4.js @@ -1,11 +1,2 @@ const 12HourClockTime = "20:53"; -const 24hourClockTime = "08:53"; - -//In naming variable, numbers are not allowed to preceed variable names. - -// Error message: An identifier or keyword cannot immediately follow a numeric literal. - -// SUggested Solutions: - -const ClockTime12Hour = "20:53"; -const ClockTime24hour = "08:53"; \ No newline at end of file +const 24hourClockTime = "08:53"; \ No newline at end of file diff --git a/Sprint-1/3-mandatory-interpret/1-percentage-change.js b/Sprint-1/3-mandatory-interpret/1-percentage-change.js index 74833464f..e24ecb8e1 100644 --- a/Sprint-1/3-mandatory-interpret/1-percentage-change.js +++ b/Sprint-1/3-mandatory-interpret/1-percentage-change.js @@ -12,12 +12,11 @@ console.log(`The percentage change is ${percentageChange}`); // Read the code and then answer the questions below // a) How many function calls are there in this file? Write down all the lines where a function call is made -//ANSWER: Four function calls. Two function calls in line 4 & two function calls in line 5 + // b) Run the code and identify the line where the error is coming from - why is this error occurring? How can you fix this problem? -//ANSWER: The comma in the replaceAll() function in Line 5 is missing. Put the comma back in to fix it. + // c) Identify all the lines that are variable reassignment statements -//ANSWER: Lines that are variable reassignment statements are Lines 4 & 5. + // d) Identify all the lines that are variable declarations -//ANSWER: Variable declarations line: 1,2,7,& 8 + // e) Describe what the expression Number(carPrice.replaceAll(",","")) is doing - what is the purpose of this expression? -//ANSWER: The expression first removes the comma(,) in carPrice and then converts it to a number. \ No newline at end of file diff --git a/Sprint-1/3-mandatory-interpret/2-time-format.js b/Sprint-1/3-mandatory-interpret/2-time-format.js index 214b3e5ef..47d239558 100644 --- a/Sprint-1/3-mandatory-interpret/2-time-format.js +++ b/Sprint-1/3-mandatory-interpret/2-time-format.js @@ -12,15 +12,14 @@ console.log(result); // For the piece of code above, read the code and then answer the following questions // a) How many variable declarations are there in this program? -//ANSWER: There were six variable declarations + // b) How many function calls are there? -//ANSWER: There were no function calls except for the log() function + // c) Using documentation, explain what the expression movieLength % 60 represents // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators -//ANSWER: The remainder (%) operator returns the remainder left over when one operand is divided by a second operand. It always takes the sign of the dividend. + // d) Interpret line 4, what does the expression assigned to totalMinutes mean? -//ANSWER: Line 4 with find the remainder whenmovieLength is divided by 60 and assigns the remainder to remainingSeconds (24) + // e) What do you think the variable result represents? Can you think of a better name for this variable? -//ANSWER: The variable result represents the total lenth of the movie which shows the total hours, minutes and seconds remain in string format. + // f) Try experimenting with different values of movieLength. Will this code work for all values of movieLength? Explain your answer -//ANSWER: The code semed to work for all values of movieLength. \ No newline at end of file diff --git a/Sprint-1/3-mandatory-interpret/3-to-pounds.js b/Sprint-1/3-mandatory-interpret/3-to-pounds.js index 2d6553c31..60c9ace69 100644 --- a/Sprint-1/3-mandatory-interpret/3-to-pounds.js +++ b/Sprint-1/3-mandatory-interpret/3-to-pounds.js @@ -25,12 +25,3 @@ console.log(`£${pounds}.${pence}`); // To begin, we can start with // 1. const penceString = "399p": initialises a string variable with the value "399p" -// 2. Lines 3 to 6: extracts "399" as a string and assigns the values to penceStringWithoutTrailingP. -// It uses the substring to extract from position 0 to 3. -// 3. Line 8: padStart is used to pad the values in penceStringWithoutTrailingP with "0" from the start of the value to make up a length of 3. -// Since penceStringWithoutTrailingP already has "399" with a length of 3, no padding is done. -// 4. Line 9 to 12: substring is used to extract from paddedPenceNumberString, starting from position 0 to 1 giving 3 which is stored in the variable pounds. -// 5. Line 14 to 16: substring is used to extract from paddedPenceNumberString, starting from position 1 to the end givin "99" -// "99" is padded with "0" from the end of the value to make a length of 2 but sincw "99" already has a length of 2, no padding is done. -// "99" is assigned to the variable pence. -// 6. Line 18: uses console.log() to print the values of pounds and pence preceeded by "£" and separated by "." to give "£3.99" diff --git a/Sprint-1/4-stretch-explore/chrome.md b/Sprint-1/4-stretch-explore/chrome.md index bddd08b8a..e7dd5feaf 100644 --- a/Sprint-1/4-stretch-explore/chrome.md +++ b/Sprint-1/4-stretch-explore/chrome.md @@ -11,15 +11,8 @@ In the Chrome console, invoke the function `alert` with an input string of `"Hello world!"`; What effect does calling the `alert` function have? -## Got "chrome://new-tab-page says" popup -## Hello world! Now try invoking the function `prompt` with a string input of `"What is your name?"` - store the return value of your call to `prompt` in an variable called `myName`. What effect does calling the `prompt` function have? -## Got "chrome://new-tab-page says" popup -## Got "What is your name?" -## Got a box for input What is the return value of `prompt`? -## promt: ƒ prompt() { [native code] } -## myName: Ayo diff --git a/Sprint-1/4-stretch-explore/objects.md b/Sprint-1/4-stretch-explore/objects.md index 62c3a9e41..0216dee56 100644 --- a/Sprint-1/4-stretch-explore/objects.md +++ b/Sprint-1/4-stretch-explore/objects.md @@ -4,19 +4,13 @@ In this activity, we'll explore some additional concepts that you'll encounter i Open the Chrome devtools Console, type in `console.log` and then hit enter -What output do you get? -## ƒ log() { [native code] } +What output do you get? Now enter just `console` in the Console, what output do you get back? -## console {debug: ƒ, error: ƒ, info: ƒ, log: ƒ, warn: ƒ, …} + Try also entering `typeof console` -## 'object' + Answer the following questions: What does `console` store? -## Objects -## console {debug: ƒ, error: ƒ, info: ƒ, log: ƒ, warn: ƒ, …} What does the syntax `console.log` or `console.assert` mean? In particular, what does the `.` mean? -## console.log - Prints the text to the Console as a log message -## console.assert() writes an error message to the console if the assertion is false -## The dot(.) allows the access of the log method inside the console object \ No newline at end of file From e61fd75b3946e59dc1ff42b2a52364856cf97422 Mon Sep 17 00:00:00 2001 From: Ayodeji Ayorinde Date: Sat, 7 Mar 2026 16:25:59 +0000 Subject: [PATCH 3/3] Completion of 1-implement-and-rewrite-tests tasks --- .../implement/1-get-angle-type.js | 28 +++++++++++++++++++ .../implement/2-is-proper-fraction.js | 9 ++++++ .../implement/3-get-card-value.js | 14 ++++++++-- .../1-get-angle-type.test.js | 24 ++++++++++++++++ .../2-is-proper-fraction.test.js | 16 +++++++++++ .../3-get-card-value.test.js | 25 +++++++++++++++++ 6 files changed, 114 insertions(+), 2 deletions(-) diff --git a/Sprint-3/1-implement-and-rewrite-tests/implement/1-get-angle-type.js b/Sprint-3/1-implement-and-rewrite-tests/implement/1-get-angle-type.js index 9e05a871e..c4df60ee4 100644 --- a/Sprint-3/1-implement-and-rewrite-tests/implement/1-get-angle-type.js +++ b/Sprint-3/1-implement-and-rewrite-tests/implement/1-get-angle-type.js @@ -16,6 +16,19 @@ function getAngleType(angle) { // TODO: Implement this function + if (angle >= 0 && angle < 90) { + return "Acute angle"; + } else if (angle === 90) { + return "Right angle"; + } else if (angle > 90 && angle < 180) { + return "Obtuse angle"; + } else if (angle === 180) { + return "Straight angle"; + } else if (angle > 180 && angle <= 360) { + return "Reflex angle"; + } else { + return "Invalid angle"; + } } // The line below allows us to load the getAngleType function into tests in other files. @@ -35,3 +48,18 @@ function assertEquals(actualOutput, targetOutput) { // Example: Identify Right Angles const right = getAngleType(90); assertEquals(right, "Right angle"); + +const acute = getAngleType(70); +assertEquals(acute, "Acute angle"); + +const obtuse = getAngleType(140); +assertEquals(obtuse, "Obtuse angle"); + +const straight = getAngleType(180); +assertEquals(straight, "Straight angle"); + +const reflex = getAngleType(190); +assertEquals(reflex, "Reflex angle"); + +const invalid = getAngleType(370); +assertEquals(invalid, "Invalid angle"); diff --git a/Sprint-3/1-implement-and-rewrite-tests/implement/2-is-proper-fraction.js b/Sprint-3/1-implement-and-rewrite-tests/implement/2-is-proper-fraction.js index 970cb9b64..5d1b7dcdd 100644 --- a/Sprint-3/1-implement-and-rewrite-tests/implement/2-is-proper-fraction.js +++ b/Sprint-3/1-implement-and-rewrite-tests/implement/2-is-proper-fraction.js @@ -12,6 +12,11 @@ function isProperFraction(numerator, denominator) { // TODO: Implement this function + if (numerator < denominator) { + return "true"; + } else { + return "false"; + } } // The line below allows us to load the isProperFraction function into tests in other files. @@ -31,3 +36,7 @@ function assertEquals(actualOutput, targetOutput) { // Example: 1/2 is a proper fraction assertEquals(isProperFraction(1, 2), true); + +assertEquals(isProperFraction(1, 2), "true"); +assertEquals(isProperFraction(2, 2), "false"); +assertEquals(isProperFraction(7, 4), "false"); \ No newline at end of file diff --git a/Sprint-3/1-implement-and-rewrite-tests/implement/3-get-card-value.js b/Sprint-3/1-implement-and-rewrite-tests/implement/3-get-card-value.js index c7559e787..604cd19d2 100644 --- a/Sprint-3/1-implement-and-rewrite-tests/implement/3-get-card-value.js +++ b/Sprint-3/1-implement-and-rewrite-tests/implement/3-get-card-value.js @@ -23,6 +23,16 @@ function getCardValue(card) { // TODO: Implement this function + rankCard = card.slice(0, 1); + if (rankCard === "A") { + return 11; + } else if (rankCard === "J" || rankCard === "Q" || rankCard === "K") { + return 10; + } else if (+rankCard >= 2 && +rankCard <= 10) { + return +rankCard; + } else { + return rankCard.toThrow(); + } } // The line below allows us to load the getCardValue function into tests in other files. @@ -47,6 +57,6 @@ try { // This line will not be reached if an error is thrown as expected console.error("Error was not thrown for invalid card"); -} catch (e) {} +} catch (e) { } -// What other invalid card cases can you think of? +// What other invalid card cases can you think of? "13♠" diff --git a/Sprint-3/1-implement-and-rewrite-tests/rewrite-tests-with-jest/1-get-angle-type.test.js b/Sprint-3/1-implement-and-rewrite-tests/rewrite-tests-with-jest/1-get-angle-type.test.js index d777f348d..3ebaa3ee7 100644 --- a/Sprint-3/1-implement-and-rewrite-tests/rewrite-tests-with-jest/1-get-angle-type.test.js +++ b/Sprint-3/1-implement-and-rewrite-tests/rewrite-tests-with-jest/1-get-angle-type.test.js @@ -14,7 +14,31 @@ test(`should return "Acute angle" when (0 < angle < 90)`, () => { }); // Case 2: Right angle +test(`should return "Right angle" when (angle === 90)`, () => { + // Test various acute angles, including boundary cases + expect(getAngleType(90)).toEqual("Right angle"); +}); // Case 3: Obtuse angles +test(`should return "Obtuse angle" when (90 < angle < 180)`, () => { + // Test various acute angles, including boundary cases + expect(getAngleType(91)).toEqual("Obtuse angle"); + expect(getAngleType(145)).toEqual("Obtuse angle"); + expect(getAngleType(179)).toEqual("Obtuse angle"); +}); // Case 4: Straight angle +test(`should return "Straight angle" when (angle === 180)`, () => { + // Test various acute angles, including boundary cases + expect(getAngleType(180)).toEqual("Straight angle"); +}); // Case 5: Reflex angles +test(`should return "Reflex angle" when (180 < angle < 360)`, () => { + // Test various acute angles, including boundary cases + expect(getAngleType(181)).toEqual("Reflex angle"); + expect(getAngleType(245)).toEqual("Reflex angle"); + expect(getAngleType(359)).toEqual("Reflex angle"); +}); // Case 6: Invalid angles +test(`should return "Invalid angle" when (angle > 360)`, () => { + // Test various acute angles, including boundary cases + expect(getAngleType(90)).toEqual("Invalid angle"); +}); \ No newline at end of file diff --git a/Sprint-3/1-implement-and-rewrite-tests/rewrite-tests-with-jest/2-is-proper-fraction.test.js b/Sprint-3/1-implement-and-rewrite-tests/rewrite-tests-with-jest/2-is-proper-fraction.test.js index 7f087b2ba..513ca831b 100644 --- a/Sprint-3/1-implement-and-rewrite-tests/rewrite-tests-with-jest/2-is-proper-fraction.test.js +++ b/Sprint-3/1-implement-and-rewrite-tests/rewrite-tests-with-jest/2-is-proper-fraction.test.js @@ -8,3 +8,19 @@ const isProperFraction = require("../implement/2-is-proper-fraction"); test(`should return false when denominator is zero`, () => { expect(isProperFraction(1, 0)).toEqual(false); }); + + +// Special case: positives +test(`should return false when denominator is zero`, () => { + expect(isProperFraction(1, 7)).toEqual(false); +}); + +// Special case: negatives +test(`should return false when denominator is zero`, () => { + expect(isProperFraction(1, -7)).toEqual(false); +}); + +// Special case: zero +test(`should return false when denominator is zero`, () => { + expect(isProperFraction(10, 0)).toEqual(false); +}); diff --git a/Sprint-3/1-implement-and-rewrite-tests/rewrite-tests-with-jest/3-get-card-value.test.js b/Sprint-3/1-implement-and-rewrite-tests/rewrite-tests-with-jest/3-get-card-value.test.js index cf7f9dae2..45ebb670b 100644 --- a/Sprint-3/1-implement-and-rewrite-tests/rewrite-tests-with-jest/3-get-card-value.test.js +++ b/Sprint-3/1-implement-and-rewrite-tests/rewrite-tests-with-jest/3-get-card-value.test.js @@ -11,9 +11,34 @@ test(`Should return 11 when given an ace card`, () => { // Suggestion: Group the remaining test data into these categories: // Number Cards (2-10) + +test("Should return 2–10 for their respective card values", () => { + const cards = ["2", "3", "4", "5", "6", "7", "8", "9", "10"]; + cards.forEach(card => { + expect(getCardValue(card)).toEqual(Number(card)); + }); +}); + // Face Cards (J, Q, K) +test("Should return 2–10 for their respective card values", () => { + const cards = ["J", "Q", "K"]; + cards.forEach(card => { + expect(getCardValue(card)).toEqual(10); + }); +}); + // Invalid Cards +test("Should return invalid for their respective card values", () => { + const cards = ["L", "M", "N"]; + cards.forEach(card => { + expect(getCardValue(card)).toEqual(Number("Invalid")); + + }); +}); + + + // To learn how to test whether a function throws an error as expected in Jest, // please refer to the Jest documentation: // https://jestjs.io/docs/expect#tothrowerror