/
lcd_spec.rb
104 lines (89 loc) · 961 Bytes
/
lcd_spec.rb
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
require_relative "lcd"
DIGITS = <<-EOF
-
| |
| |
-
===
|
|
===
-
|
-
|
-
===
-
|
-
|
-
===
| |
-
|
===
-
|
-
|
-
===
-
|
-
| |
-
===
-
|
|
===
-
| |
-
| |
-
===
-
| |
-
|
-
EOF
describe Lcd do
(0..9).each do |digit|
it "displays #{digit}" do
expected = DIGITS.split("===\n")[digit]
expect(Lcd.convert(digit)).to eq expected
end
end
it "displays two-digit numbers" do
expected = <<-EOF
-
| | |
| | |
-
EOF
expect(Lcd.convert(10)).to eq expected
end
it "displays multiple-digit numbers" do
expected = <<-EOF
- -
| | | | |
- - -
| | | |
- -
EOF
expect(Lcd.convert(1234)).to eq expected
end
it "prints a sad face on error" do
expected = <<-EOF
- -
|
^
EOF
expect(Lcd.convert 'foo').to eq expected
end
end