Skip to content

Commit 815a1c8

Browse files
committed
fixedproper fraction and card functions
1 parent d1394c1 commit 815a1c8

File tree

5 files changed

+57
-32
lines changed

5 files changed

+57
-32
lines changed

Sprint-3/1-implement-and-rewrite-tests/implement/1-get-angle-type.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ function getAngleType(angle) {
2323
return "Obtuse angle";
2424
} else if (angle === 90) {
2525
return "Right angle";
26-
} else if (angle === 180) {
26+
} else if (angle===180) {
2727
return "Straight angle";
2828
} else if (angle > 180 && angle < 360) {
2929
return "Reflex angle";

Sprint-3/1-implement-and-rewrite-tests/implement/2-is-proper-fraction.js

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,12 @@
1212

1313
function isProperFraction(numerator, denominator) {
1414
// TODO: Implement this function
15-
if(numerator>denominator) {
16-
return false
17-
}else{
18-
return true
15+
if ( Math.abs(numerator) >= Math.abs(denominator)) {
16+
return false;
17+
} else if (Math.abs(denominator) === 0) {
18+
return false;
19+
} else {
20+
return true;
1921
}
2022
}
2123

@@ -38,10 +40,17 @@ function assertEquals(actualOutput, targetOutput) {
3840
assertEquals(isProperFraction(1, 2), true);
3941
assertEquals(isProperFraction(1, 10000), true);
4042
assertEquals(isProperFraction(100, 2), false);
41-
assertEquals(isProperFraction(1, 0.005), false);
4243
assertEquals(isProperFraction(1e2, 1e3), true);
43-
assertEquals(isProperFraction(1e4, 1e0), false);
44-
assertEquals(isProperFraction(-1, 1), true);
44+
assertEquals(isProperFraction(1e4, 1), false);
45+
assertEquals(isProperFraction(-1, 1), false);
4546
assertEquals(isProperFraction(1, -1), false);
46-
assertEquals(isProperFraction(0, -1), false);
47-
assertEquals(isProperFraction(-1, 0), true);
47+
assertEquals(isProperFraction(0, -1), true);
48+
assertEquals(isProperFraction(-1, -2), true);
49+
assertEquals(isProperFraction(1, -2), true);
50+
assertEquals(isProperFraction(-1, 2), true);
51+
assertEquals(isProperFraction(1, 0), false);
52+
assertEquals(isProperFraction(-1, 0), false);
53+
54+
55+
56+

Sprint-3/1-implement-and-rewrite-tests/implement/3-get-card-value.js

Lines changed: 30 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,16 @@
2222
// execute the code to ensure all tests pass.
2323

2424
function getCardValue(card) {
25+
if (card.length >= 4) {
26+
throw new Error ("Invalid String");
27+
}
2528
if (
2629
!card.includes("♠") &&
2730
!card.includes("♥") &&
2831
!card.includes("♦") &&
2932
!card.includes("♣")
30-
){
31-
throw new Error("Invalid String");
33+
) {
34+
throw new Error('Invalid String');
3235
}
3336
const rank = card.slice(0, -1);
3437

@@ -42,12 +45,12 @@ function getCardValue(card) {
4245
throw new Error("Invalid String");
4346
}
4447

45-
if (rank==="A") {
48+
if (rank === "A") {
4649
return 11;
47-
} else if (rank==="J" || rank==="Q" || rank==="K") {
50+
} else if (rank === "J" || rank === "Q" || rank === "K") {
4851
return 10;
4952
} else if (rank >= 2 && rank <= 10) {
50-
return rank;
53+
return Number(rank);
5154
}
5255
}
5356

@@ -72,20 +75,33 @@ assertEquals(getCardValue("K♠"), 10);
7275
assertEquals(getCardValue("Q♠"), 10);
7376
assertEquals(getCardValue("2♠"), 2);
7477
assertEquals(getCardValue("10♠"), 10);
75-
assertEquals(getCardValue(" ♠"), "Invalid String");
76-
assertEquals(getCardValue(" 6 ♠"), "Invalid String");
77-
assertEquals(getCardValue(" ♠"), "Invalid String");
78-
assertEquals(getCardValue(" **♠"), "Invalid String");
79-
assertEquals(getCardValue("10 **"), "Invalid String");
80-
assertEquals(getCardValue("A10♠"), "Invalid String");
78+
79+
8180

8281
// Handling invalid cards
83-
try {
84-
getCardValue("invalid");
82+
function throwInvalidStringError(card){
8583

84+
try {
85+
getCardValue(card)
8686
// This line will not be reached if an error is thrown as expected
8787
console.error("Error was not thrown for invalid card");
88-
} catch (e) {}
88+
} catch (e) {
89+
assertEquals(e.message,"Invalid String")
90+
}
91+
}
92+
93+
throwInvalidStringError("invalid");
94+
throwInvalidStringError(" ♠");
95+
throwInvalidStringError(" 6 ♠");
96+
throwInvalidStringError(" ♠");
97+
throwInvalidStringError(" **♠");
98+
throwInvalidStringError("10 **");
99+
throwInvalidStringError("A10♠");
100+
throwInvalidStringError("0x02♠");
101+
throwInvalidStringError("2.1♠");
102+
throwInvalidStringError("0002♠");
103+
throwInvalidStringError("22");
104+
throwInvalidStringError("♠2");
89105

90106
// What other invalid card cases can you think of?
91107
// card with a mix of suit

Sprint-3/1-implement-and-rewrite-tests/rewrite-tests-with-jest/1-get-angle-type.test.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,11 @@ test(`should return "Obtuse angles" when (90< angle <180)`, () => {
3030

3131
// Case 4: Straight angle
3232
test(`should return "Straight angle" when (angle===180)`, () => {
33-
expect(getAngleType(180).toEqual("Straight angle"));
33+
expect(getAngleType(180)).toEqual("Straight angle");
3434
});
3535

3636
// Case 5: Reflex angles
37-
test(`Should return "Reflex angle" when (180>angle<360)`, () => {
37+
test(`Should return "Reflex angle" when (360<angle>180)`, () => {
3838
expect(getAngleType(181)).toEqual("Reflex angle");
3939
expect(getAngleType(270)).toEqual("Reflex angle");
4040
expect(getAngleType(350)).toEqual("Reflex angle");
@@ -45,9 +45,9 @@ test(`Should return "Reflex angle" when (180>angle<360)`, () => {
4545

4646
// Case 6: Invalid angles
4747
test(`Should return "Invalid angle" when (0 =<angle>=360)`, () => {
48-
expect(getAngleType(0).toEqual("Invalid angle"));
49-
expect(getAngleType(-1).toEqual("Invalid angle"));
50-
expect(getAngleType(360).toEqual("Invalid angle"));
51-
expect(getAngleType(500).toEqual("Invalid angle"));
52-
expect(getAngleType("1e5").toEqual("Invalid angle"));
48+
expect(getAngleType(0)).toEqual("Invalid angle");
49+
expect(getAngleType(-1)).toEqual("Invalid angle");
50+
expect(getAngleType(360)).toEqual("Invalid angle");
51+
expect(getAngleType(500)).toEqual("Invalid angle");
52+
expect(getAngleType("1e5")).toEqual("Invalid angle");
5353
});

Sprint-3/1-implement-and-rewrite-tests/rewrite-tests-with-jest/2-is-proper-fraction.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ test(`should return false when denominator is zero`, () => {
1010
expect(isProperFraction(1, -1)).toEqual(false);
1111
expect(isProperFraction(10, 1)).toEqual(false);
1212
expect(isProperFraction(1, 10)).toEqual(true);
13-
expect(isProperFraction(-1, 0)).toEqual(true);
13+
expect(isProperFraction(-1, 0)).toEqual(false);
1414
expect(isProperFraction(1e2, 1e4)).toEqual(true);
1515
expect(isProperFraction(1e4, 1e0)).toEqual(false);
1616
});

0 commit comments

Comments
 (0)