|
15 | 15 | ;; Define and enter a new FiveAM test-suite
|
16 | 16 | (def-suite* scrabble-score-suite)
|
17 | 17 |
|
18 |
| -(test no-word-has-zero-score (is (equal 0 (scrabble-score:score-word "")))) |
| 18 | +(test lowercase-letter |
| 19 | + (let ((word "a")) |
| 20 | + (is (= 1 (scrabble-score:score-word word))))) |
19 | 21 |
|
20 |
| -(test whitespace-only-also-has-zero-score |
21 |
| - (is |
22 |
| - (equal 0 (scrabble-score:score-word (concatenate 'string '(#\ #\Newline)))))) |
| 22 | +(test uppercase-letter |
| 23 | + (let ((word "A")) |
| 24 | + (is (= 1 (scrabble-score:score-word word))))) |
23 | 25 |
|
24 |
| -(test scores-small-word (is (equal 1 (scrabble-score:score-word "a")))) |
| 26 | +(test valuable-letter |
| 27 | + (let ((word "f")) |
| 28 | + (is (= 4 (scrabble-score:score-word word))))) |
25 | 29 |
|
26 |
| -(test is-case-insensitive (is (equal 1 (scrabble-score:score-word "A")))) |
| 30 | +(test short-word |
| 31 | + (let ((word "at")) |
| 32 | + (is (= 2 (scrabble-score:score-word word))))) |
27 | 33 |
|
28 |
| -(test scores-a-slightly-bigger-word |
29 |
| - (is (equal 2 (scrabble-score:score-word "at")))) |
| 34 | +(test short-valuable-word |
| 35 | + (let ((word "zoo")) |
| 36 | + (is (= 12 (scrabble-score:score-word word))))) |
30 | 37 |
|
31 |
| -(test scores-a-middle-of-the-road-word |
32 |
| - (is (equal 6 (scrabble-score:score-word "street")))) |
| 38 | +(test medium-word |
| 39 | + (let ((word "street")) |
| 40 | + (is (= 6 (scrabble-score:score-word word))))) |
33 | 41 |
|
34 |
| -(test scores-a-peculiar-word |
35 |
| - (is (equal 22 (scrabble-score:score-word "quirky")))) |
| 42 | +(test medium-valuable-word |
| 43 | + (let ((word "quirky")) |
| 44 | + (is (= 22 (scrabble-score:score-word word))))) |
36 | 45 |
|
37 |
| -(test scores-a-very-long-word |
38 |
| - (is (equal 27 (scrabble-score:score-word "UNEXCLUSIVENESS")))) |
| 46 | +(test long-mixed-case-word |
| 47 | + (let ((word "OxyphenButazone")) |
| 48 | + (is (= 41 (scrabble-score:score-word word))))) |
| 49 | + |
| 50 | +(test english-like-word |
| 51 | + (let ((word "pinata")) |
| 52 | + (is (= 8 (scrabble-score:score-word word))))) |
| 53 | + |
| 54 | +(test empty-input |
| 55 | + (let ((word "")) |
| 56 | + (is (= 0 (scrabble-score:score-word word))))) |
| 57 | + |
| 58 | +(test entire-alphabet-available |
| 59 | + (let ((word "abcdefghijklmnopqrstuvwxyz")) |
| 60 | + (is (= 87 (scrabble-score:score-word word))))) |
39 | 61 |
|
40 | 62 | (defun run-tests (&optional (test-or-suite 'scrabble-score-suite))
|
41 | 63 | "Provides human readable results of test run. Default to entire suite."
|
|
0 commit comments