/
cards-template1b.js
68 lines (54 loc) · 2.14 KB
/
cards-template1b.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
// Error-detecting version
function rank(card) {
}
function suit(card) {
}
function cardID(rank,suit) {
}
function color(card) {
}
function name(card) {
}
// TESTING:
function assert(claim,message) {
if (!claim) console.error(message);
}
assert(rank(0)===1, "Test 1 failed");
assert(rank(3)===1, "Test 2 failed");
assert(rank(51)===13,"Test 3 failed");
assert(suit(0)===1, "Test 4 failed");
assert(suit(5)===2, "Test 5 failed");
assert(suit(51)===4, "Test 6 failed");
assert(cardID(1,1)===0, "Test 7 failed");
assert(cardID(13,4)===51, "Test 8 failed");
assert(cardID(8,3)===30, "Test 9 failed");
assert(color(0)==='red', "Test 10 failed");
assert(color(2)==='black', "Test 11 failed");
assert(name(5)==='Two of Diamonds', "Test 12 failed");
assert(name(51)==='King of Clubs', "Test 13 failed");
// Extra testing!
// These tests check that invalid arguments produce invalid output.
// I.e. "garbage in guarantees garbage out".
assert(Number.isNaN(rank(52)), "Test 21 failed");
assert(Number.isNaN(rank("0")), "Test 22 failed");
assert(Number.isNaN(rank(-1)), "Test 23 failed");
assert(Number.isNaN(rank(2.5)), "Test 24 failed");
assert(Number.isNaN(rank(undefined)),"Test 25 failed");
assert(Number.isNaN(suit(52)), "Test 26 failed");
assert(Number.isNaN(suit(false)),"Test 27 failed");
assert(Number.isNaN(suit(true)), "Test 28 failed");
assert(Number.isNaN(suit(-1)), "Test 29 failed");
assert(Number.isNaN(suit(3.14)), "Test 30 failed");
assert(Number.isNaN(cardID(0,1)), "Test 31 failed");
assert(Number.isNaN(cardID("1",1)), "Test 32 failed");
assert(Number.isNaN(cardID(1,5)), "Test 33 failed");
assert(Number.isNaN(cardID(14,1)), "Test 34 failed");
assert(Number.isNaN(cardID(-1,-1)), "Test 35 failed");
assert(Number.isNaN(cardID(0.5,1)), "Test 36 failed");
assert(Number.isNaN(cardID(1,NaN)), "Test 37 failed");
assert(Number.isNaN(color('apple')),"Test 41 failed");
assert(Number.isNaN(color(true)), "Test 42 failed");
assert(Number.isNaN(name(false)), "Test 43 failed");
assert(Number.isNaN(name(-1)), "Test 44 failed");
assert(Number.isNaN(name(52)), "Test 45 failed");
assert(Number.isNaN(name(NaN)), "Test 46 failed");