Skip to content
Closed
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,23 @@
function getAngleType(angle) {
if (angle === 90) {
return "Right angle";

} else if (angle < 90){
return "Acute 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";
}
}

// Run the tests, work out what Case 2 is testing, and implement the required code here.
// Then keep going for the other cases, one at a time.
}
// Then keep going for the other cases, one at a time.}

// The line below allows us to load the getAngleType function into tests in other files.
// This will be useful in the "rewrite tests with jest" step.
Expand Down Expand Up @@ -50,14 +63,18 @@ assertEquals(acute, "Acute angle");
// When the angle is greater than 90 degrees and less than 180 degrees,
// Then the function should return "Obtuse angle"
const obtuse = getAngleType(120);
// ====> write your test here, and then add a line to pass the test in the function above
assertEquals(obtuse, "Obtuse angle");

// Case 4: Identify Straight Angles:
// When the angle is exactly 180 degrees,
// Then the function should return "Straight angle"
// ====> write your test here, and then add a line to pass the test in the function above
const straightangle = getAngleType(180);
assertEquals(straightangle, "Straight angle");

// Case 5: Identify Reflex Angles:
// When the angle is greater than 180 degrees and less than 360 degrees,
// Then the function should return "Reflex angle"
// ====> write your test here, and then add a line to pass the test in the function above
const reflex = getAngleType(270);
assertEquals(reflex, "Reflex angle");

// Sprint-3-implement 1-get-angle-type.js all assertions and necessary functions added
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,18 @@ function isProperFraction(numerator, denominator) {
if (numerator < denominator) {
return true;
}
else if (numerator > denominator){
return false;
}
else if (numerator === denominator) {
return false;
}
else if (numerator === 0){
return (true);
}
else if (denominator === 0){
return (false);
}
}

// The line below allows us to load the isProperFraction function into tests in other files.
Expand Down Expand Up @@ -46,14 +58,24 @@ assertEquals(improperFraction, false);
// target output: true
// Explanation: The fraction -4/7 is a proper fraction because the absolute value of the numerator (4) is less than the denominator (7). The function should return true.
const negativeFraction = isProperFraction(-4, 7);
// ====> complete with your assertion
assertEquals(negativeFraction, true);

// Equal Numerator and Denominator check:
// Input: numerator = 3, denominator = 3
// target output: false
// Explanation: The fraction 3/3 is not a proper fraction because the numerator is equal to the denominator. The function should return false.
const equalFraction = isProperFraction(3, 3);
assertEquals(equalFraction, false);
// ====> complete with your assertion

// Stretch:
// What other scenarios could you test for?

const numeratorZero = isProperFraction(0, 5);
assertEquals(numeratorZero, true);

const denominatorrZero = isProperFraction(5, 0);
assertEquals(denominatorrZero, false);

// Sprint-3-implement 1-is-proper-fraction.js all assertions and necessary functions added

Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,20 @@
// write one test at a time, and make it pass, build your solution up methodically
// just make one change at a time -- don't rush -- programmers are deep and careful thinkers
function getCardValue(card) {

const rank = card.slice(0,-1);
if (rank === "A") {
return 11;
}
else if (["K", "J", "Q", "10"].includes(rank)){
return 10;
}
else if (!isNaN(rank )) {
return Number(rank);
}
else {
throw new Error ("Invalid Card");
}
}

// The line below allows us to load the getCardValue function into tests in other files.
Expand All @@ -28,7 +39,9 @@ function assertEquals(actualOutput, targetOutput) {
}
// Acceptance criteria:

// Given a card string in the format "A♠" (representing a card in blackjack - the last character will always be an emoji for a suit, and all characters before will be a number 2-10, or one letter of J, Q, K, A),
// Given a card string in the format "A♠" (representing a card in blackjack
// - the last character will always be an emoji for a suit,
// and all characters before will be a number 2-10, or one letter of J, Q, K, A),
// When the function getCardValue is called with this card string as input,
// Then it should return the numerical card value
const aceofSpades = getCardValue("A♠");
Expand All @@ -38,20 +51,41 @@ assertEquals(aceofSpades, 11);
// Given a card with a rank between "2" and "9",
// When the function is called with such a card,
// Then it should return the numeric value corresponding to the rank (e.g., "5" should return 5).
const fiveofHearts = getCardValue("5♥");
const numberCards = getCardValue("5♥");
assertEquals(numberCards, 5);
// ====> write your test here, and then add a line to pass the test in the function above



// Handle Face Cards (J, Q, K):
// Given a card with a rank of "10," "J," "Q," or "K",
// When the function is called with such a card,
// Then it should return the value 10, as these cards are worth 10 points each in blackjack.

const faceCards = getCardValue("J♥");
assertEquals(faceCards, 10);

const tenOfClubs = getCardValue("10♣");
assertEquals(tenOfClubs, 10);

// Handle Ace (A):
// Given a card with a rank of "A",
// When the function is called with an Ace,
// Then it should, by default, assume the Ace is worth 11 points, which is a common rule in blackjack.

const aceCards = getCardValue("A♣");
assertEquals(aceCards, 11);

// Handle Invalid Cards:
// Given a card with an invalid rank (neither a number nor a recognized face card),
// When the function is called with such a card,
// Then it should throw an error indicating "Invalid card rank."

try {
getCardValue("Z♣"); // invalid card
console.log("Test failed: no error thrown");
} catch (error) {
assertEquals(error.message, "Invalid Card");
}

// Functions, assertion and invalid rank tested
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,33 @@ test("should identify right angle (90°)", () => {
// When the angle is less than 90 degrees,
// Then the function should return "Acute angle"

test("should identify actue angle (40°)", () => {
expect(getAngleType(40)).toEqual("Acute angle");
});

// Case 3: Identify Obtuse Angles:
// When the angle is greater than 90 degrees and less than 180 degrees,
// Then the function should return "Obtuse angle"

test("should identify obtuse angle (120°)", () => {
expect(getAngleType(120)).toEqual("Obtuse angle");
});

// Case 4: Identify Straight Angles:
// When the angle is exactly 180 degrees,
// Then the function should return "Straight angle"

test("should identify straight angle (180°)", () => {
expect(getAngleType(180)).toEqual("Straight angle");
});

// Case 5: Identify Reflex Angles:
// When the angle is greater than 180 degrees and less than 360 degrees,
// Then the function should return "Reflex angle"

test("should identify reflex angle (240)", () => {
expect(getAngleType(240)).toEqual("Reflex angle");
});


// Sprint-3 rewrite-tests-with jest 1-get-angle-type-test.js tests conducted
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,18 @@ test("should return true for a proper fraction", () => {
});

// Case 2: Identify Improper Fractions:
test("should return false for an improper fraction", () => {
expect(isProperFraction(5, 3)).toEqual(false);
});

// Case 3: Identify Negative Fractions:
test("should return true for a negative fraction", () => {
expect(isProperFraction(-2, 3)).toEqual(true);
});

// Case 4: Identify Equal Numerator and Denominator:
test("should return false for equal numerator and denominator", () => {
expect(isProperFraction(3, 3)).toEqual(false);
});

// Sprint-3 ewrite-tests-with-jest/2-is-proper-fraction.test.js. rewrote tests in jest
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,24 @@ test("should return 11 for Ace of Spades", () => {
});

// Case 2: Handle Number Cards (2-10):
test("should number cards for (2-10)", () => {
const aceofSpades = getCardValue("5♠");
expect(aceofSpades).toEqual(5);
});

// Case 3: Handle Face Cards (J, Q, K):
test("should return 10 for face cards", () => {
const aceofSpades = getCardValue("Q♠");
expect(aceofSpades).toEqual(10);
});
// Case 4: Handle Ace (A):
// test("should return 11 for Ace of Spades", () => {
// const aceofSpades = getCardValue("A♠");
// expect(aceofSpades).toEqual(11);
// });
// Case 5: Handle Invalid Cards:
test("should throw an error for invalid cards", () => {
expect(() => getCardValue("Z♠")).toThrow("Invalid Card");
});
// Sprint-3 rewrite-tests-with-jest/2-get-card-value.test.js. rewrote tests using jest
// Few modifications done.
Loading