-
-
Notifications
You must be signed in to change notification settings - Fork 482
Mandatory & Extra(I have a problem with Magic Ball #531
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,7 +5,9 @@ | |
Write a function that converts a price to USD (exchange rate is 1.4 $ to £) | ||
*/ | ||
|
||
function convertToUSD() {} | ||
function convertToUSD(pound) { | ||
return pound * 1.4; | ||
} | ||
|
||
/* | ||
CURRENCY CONVERSION | ||
|
@@ -15,7 +17,11 @@ 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) { | ||
let fee = pound / 100; | ||
let converting = (pound - fee) * 5.7; | ||
return Number(converting.toFixed(2)); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Nice job using .toFixed() and then converting it back to a Number again 👍 |
||
} | ||
|
||
/* ======= TESTS - DO NOT MODIFY ===== | ||
There are some Tests in this file that will help you work out if your code is working. | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,7 @@ | ||
// import jest extended matchers | ||
const jestExtended = require("jest-extended"); | ||
// extend the existing jest class with the jest-extended matchers | ||
expect.extend(jestExtended); | ||
/** | ||
|
||
Let's peer into the future using a Magic 8 Ball! | ||
|
@@ -45,10 +49,39 @@ | |
|
||
// This should log "The ball has shaken!" | ||
// and return the answer. | ||
const answers = [ | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Try to break this array into four arrays and then put them into one. e.g |
||
"It is certain.", | ||
"It is decidedly so.", | ||
"Without a doubt.", | ||
"Yes - definitely.", | ||
"You may rely on it.", | ||
"As I see it, yes.", | ||
"Most likely.", | ||
"Outlook good.", | ||
"Yes.", | ||
"Signs point to yes.", | ||
"Reply hazy, try again.", | ||
"Ask again later.", | ||
"Better not tell you now.", | ||
"Cannot predict now.", | ||
"Concentrate and ask again.", | ||
"Don't count on it.", | ||
"My reply is no.", | ||
"My sources say no.", | ||
"Outlook not so good.", | ||
"Very doubtful.", | ||
]; | ||
|
||
function shakeBall() { | ||
//Write your code in here | ||
console.log("The ball has shaken!"); | ||
|
||
let randonIndex = Math.floor(Math.random() * answers.length); | ||
let result = answers[randonIndex]; | ||
return result; | ||
} | ||
|
||
// console.log(shakeBall()); | ||
|
||
/* | ||
This function should say whether the answer it is given is | ||
- very positive | ||
|
@@ -58,8 +91,37 @@ function shakeBall() { | |
|
||
This function should expect to be called with any value which was returned by the shakeBall function. | ||
*/ | ||
let answer = shakeBall(); | ||
// console.log(answer); | ||
|
||
function checkAnswer(answer) { | ||
//Write your code in here | ||
if ( | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this loop with possible answers is pretty messed up, I tried it locally, but it makes mistakes. Just try to remove answers from the very positive section, it's going to give you "true" anyway. I would not say it's reliable. My advice is to rewrite it, using includes() method for each array with the answers |
||
answer === "It is certain." || | ||
answer === "It is decidedly so." || | ||
answer === "Without a doubt." || | ||
answer === "Yes - definitely." || | ||
answer === "You may rely on it." | ||
) { | ||
return "very positive"; | ||
} else if ( | ||
answer === "As I see it, yes." || | ||
answer === "Most likely." || | ||
answer === "Outlook good." || | ||
answer === "Yes." || | ||
answer === "Signs point to yes." | ||
) { | ||
return "positive"; | ||
} else if ( | ||
answer === "Reply hazy, try again." || | ||
answer === "Ask again later." || | ||
answer === "Better not tell you now." || | ||
answer === "Cannot predict now." || | ||
answer === "Concentrate and ask again." | ||
) { | ||
return "negative"; | ||
} else { | ||
return "very negative"; | ||
} | ||
} | ||
|
||
/* | ||
|
@@ -101,7 +163,9 @@ test("magic 8 ball returns different values each time", () => { | |
); | ||
} | ||
|
||
let seenPositivities = new Set(Array.from(seenAnswers.values()).map(checkAnswer)); | ||
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" | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,7 +5,9 @@ | |
Sales tax is 20% of the price of the product. | ||
*/ | ||
|
||
function calculateSalesTax() {} | ||
function calculateSalesTax(num) { | ||
return num + num * 0.2; | ||
} | ||
|
||
/* | ||
CURRENCY FORMATTING | ||
|
@@ -17,8 +19,13 @@ function calculateSalesTax() {} | |
Remember that the prices must include the sales tax (hint: you already wrote a function for this!) | ||
*/ | ||
|
||
function addTaxAndFormatCurrency() {} | ||
function addTaxAndFormatCurrency(sele) { | ||
let selesWithTaxes = calculateSalesTax(sele); | ||
let plusDecimalToSeles = selesWithTaxes.toFixed(2); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. nice job breaking the steps down by assigning values to named variables |
||
|
||
return "£" + plusDecimalToSeles; | ||
// return "£" + calculateSalesTax(sele).toFixed(2) | ||
} | ||
/* | ||
=================================================== | ||
======= TESTS - DO NOT MODIFY BELOW THIS LINE ===== | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
a tip to make your code easier to understand for others, and yourself in future: you can assign numbers to variables so you know what they represent, e.g.