vamp 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,221 @@
1
+ require "spec_helper"
2
+
3
+ describe Vamp::Graphic::Transfer do
4
+ describe "screen 9x9" do
5
+ subject do
6
+ s = described_class.new(Vamp::Graphic::Context.new(Vamp::Graphic::TextDotter.new(9, 9)))
7
+ s.context.draw_line_direct 0, 0, 8, 8
8
+ s.context.draw_line_direct 2, 8, 8, 5
9
+ s.context.draw_line_direct 7, 0, 7, 0
10
+ s
11
+ end
12
+ it "has correct starting picture" do
13
+ expect(subject.context.screen).to eq <<-'END'
14
+ +---------+
15
+ |X X |
16
+ | X |
17
+ | X |
18
+ | X |
19
+ | X |
20
+ | X X|
21
+ | XX |
22
+ | XX X |
23
+ | XX X|
24
+ +---------+
25
+ END
26
+ end
27
+
28
+ describe "#mappping" do
29
+ it "has correct minus pattern" do
30
+ expect(subject.mapping["-"].screen).to eq <<-'END'
31
+ +---+
32
+ | |
33
+ |XXX|
34
+ | |
35
+ +---+
36
+ END
37
+ end
38
+ end
39
+
40
+ describe "#get_pattern" do
41
+ it "gets top left pattern correct" do
42
+ expect(subject.get_pattern(0, 0).screen).to eq <<-'END'
43
+ +---+
44
+ |X |
45
+ | X |
46
+ | X|
47
+ +---+
48
+ END
49
+ end
50
+
51
+ it "gets top left + 1x pattern correct" do
52
+ expect(subject.get_pattern(1, 0).screen).to eq <<-'END'
53
+ +---+
54
+ | |
55
+ |X |
56
+ | X |
57
+ +---+
58
+ END
59
+ end
60
+
61
+ it "gets top left + 1y pattern correct" do
62
+ expect(subject.get_pattern(0, 1).screen).to eq <<-'END'
63
+ +---+
64
+ | X |
65
+ | X|
66
+ | |
67
+ +---+
68
+ END
69
+ end
70
+
71
+ it "gets empty pattern correct" do
72
+ expect(subject.get_pattern(4, 1).screen).to eq <<-'END'
73
+ +---+
74
+ | |
75
+ | |
76
+ | |
77
+ +---+
78
+ END
79
+ end
80
+
81
+ it "gets nearly empty pattern correct" do
82
+ expect(subject.get_pattern(4, 2).screen).to eq <<-'END'
83
+ +---+
84
+ | |
85
+ | |
86
+ |X |
87
+ +---+
88
+ END
89
+ end
90
+
91
+ it "gets down right pattern correct" do
92
+ expect(subject.get_pattern(6, 5).screen).to eq <<-'END'
93
+ +---+
94
+ | X|
95
+ |XX |
96
+ | X |
97
+ +---+
98
+ END
99
+ end
100
+ end
101
+
102
+ describe "#get_matching" do
103
+ it "gets pipe pattern correctly" do
104
+ p = subject.create_pattern(<<-'END'
105
+ _X_
106
+ _X_
107
+ _X_
108
+ END
109
+ )
110
+ expect(subject.get_matching(p)).to eq "|"
111
+ end
112
+
113
+ it "gets correct ascii" do
114
+ expect(subject.ascii).to eq "\\ '\n" \
115
+ " \\ \n" \
116
+ " /\\"
117
+ end
118
+ end
119
+ end
120
+ describe "screen 87x51" do
121
+ subject do
122
+ s = described_class.new(Vamp::Graphic::Context.new(Vamp::Graphic::TextDotter.new(87, 51)))
123
+ s.context.line 0, 0, 43, 25
124
+ s.context.line 43, 25, 86, 50
125
+ s.context.line 43, 25, 0, 50
126
+ s.context.line 43, 25, 86, 0
127
+ s.context.line 0, 25, 43, 25
128
+ s.context.line 43, 25, 86, 25
129
+ s.context.line 43, 25, 43, 50
130
+ s.context.line 43, 25, 43, 0
131
+ s.context.line 21, 0, 43, 25
132
+ s.context.line 65, 0, 43, 25
133
+ s.context.line 21, 50, 43, 25
134
+ s.context.line 65, 50, 43, 25
135
+ s.context.line 0, 13, 43, 25
136
+ s.context.line 86, 13, 43, 25
137
+ s.context.line 0, 37, 43, 25
138
+ s.context.line 86, 37, 43, 25
139
+ s
140
+ end
141
+ it "has correct starting picture" do
142
+ expect(subject.context.screen).to eq <<-'END'
143
+ +---------------------------------------------------------------------------------------+
144
+ |X X X X X|
145
+ | XX X X X XX |
146
+ | XX X X X XX |
147
+ | XX X X X XX |
148
+ | X X X X X |
149
+ | XX X X X XX |
150
+ | XX X X X XX |
151
+ | X X X X X |
152
+ | XX X X X XX |
153
+ | XX X X X XX |
154
+ | XX X X X XX |
155
+ | X X X X X |
156
+ | XX X X X XX |
157
+ |XX XX X X X XX XX|
158
+ | XXXX X X X X X XXXX |
159
+ | XXX XX X X X XX XXX |
160
+ | XXXX XX X X X XX XXXX |
161
+ | XXXX XX X X X XX XXXX |
162
+ | XXX X X X X X XXX |
163
+ | XXXX XX X X X XX XXXX |
164
+ | XXX XX X X X XX XXX |
165
+ | XXXX X X X X X XXXX |
166
+ | XXXX XX X X X XX XXXX |
167
+ | XXX XXX X XXX XXX |
168
+ | XXXXXXXXXXX |
169
+ |XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX|
170
+ | XXXXXXXXXXX |
171
+ | XXX XXX X XXX XXX |
172
+ | XXXX XX X X X XX XXXX |
173
+ | XXXX X X X X X XXXX |
174
+ | XXX XX X X X XX XXX |
175
+ | XXXX XX X X X XX XXXX |
176
+ | XXX X X X X X XXX |
177
+ | XXXX XX X X X XX XXXX |
178
+ | XXXX XX X X X XX XXXX |
179
+ | XXX XX X X X XX XXX |
180
+ | XXXX X X X X X XXXX |
181
+ |XX XX X X X XX XX|
182
+ | XX X X X XX |
183
+ | X X X X X |
184
+ | XX X X X XX |
185
+ | XX X X X XX |
186
+ | XX X X X XX |
187
+ | X X X X X |
188
+ | XX X X X XX |
189
+ | XX X X X XX |
190
+ | X X X X X |
191
+ | XX X X X XX |
192
+ | XX X X X XX |
193
+ | XX X X X XX |
194
+ |X X X X X|
195
+ +---------------------------------------------------------------------------------------+
196
+ END
197
+ end
198
+ it "gets correct ascii" do
199
+ expect(subject.ascii.split("\n").map(&:rstrip).join("\n")).to eq (<<-'END'
200
+ \_ \ | / _/
201
+ \ \ | / /`
202
+ '_ . | .` _`
203
+ `. . | .` .'
204
+ \_ \ | ` /` _/
205
+ "-__ '\ ' | ' /` __-"
206
+ `-_ '_' | '_' _-'`
207
+ "\\/\|////"
208
+ -------------###-------------
209
+ _////|\/\\_
210
+ _-" .'.`| .`. "-_
211
+ _-'` _/`.` | . \_ '`-_
212
+ /" /` ` | \ "\
213
+ _' ' | ' '_
214
+ _' ' | ' `_
215
+ /` / | \ \
216
+ /` / | \ '\
217
+ END
218
+ ).chomp
219
+ end
220
+ end
221
+ end
data/spec/spec_helper.rb CHANGED
@@ -2,3 +2,11 @@ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
2
  require 'vamp'
3
3
 
4
4
  include Vamp
5
+
6
+ # we want to be able to test protected or private methods
7
+ RSpec.configure do |config|
8
+ config.before(:each) do
9
+ described_class.send(:public, *described_class.protected_instance_methods)
10
+ described_class.send(:public, *described_class.private_instance_methods)
11
+ end
12
+ end
data/spec/vamp_spec.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require "spec_helper"
2
+ require "set"
2
3
 
3
4
  describe Vamp do
4
5
  it "has a version number" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vamp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Meyling
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-11-01 00:00:00.000000000 Z
11
+ date: 2016-01-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -55,15 +55,27 @@ files:
55
55
  - files/vampire.txt
56
56
  - lib/vamp.rb
57
57
  - lib/vamp/animator.rb
58
+ - lib/vamp/art.rb
58
59
  - lib/vamp/colorize.rb
60
+ - lib/vamp/graphic.rb
61
+ - lib/vamp/graphic/context.rb
62
+ - lib/vamp/graphic/dotter.rb
63
+ - lib/vamp/graphic/text_dotter.rb
64
+ - lib/vamp/graphic/transfer.rb
65
+ - lib/vamp/graphic/transfer5.rb
59
66
  - lib/vamp/ply.rb
60
67
  - lib/vamp/ply/cube.rb
61
68
  - lib/vamp/ply/ply_object.rb
62
69
  - lib/vamp/ply/vampire.rb
63
70
  - lib/vamp/version.rb
64
71
  - sample/cli.rb
72
+ - sample/gui.rb
65
73
  - sample/pyramid.rb
66
74
  - sample/vampire.rb
75
+ - spec/art_spec.rb
76
+ - spec/graphic/context_spec.rb
77
+ - spec/graphic/transfer5_spec.rb
78
+ - spec/graphic/transfer_spec.rb
67
79
  - spec/spec_helper.rb
68
80
  - spec/vamp_spec.rb
69
81
  - vamp.gemspec
@@ -92,5 +104,9 @@ signing_key:
92
104
  specification_version: 4
93
105
  summary: vampire quotes
94
106
  test_files:
107
+ - spec/art_spec.rb
108
+ - spec/graphic/context_spec.rb
109
+ - spec/graphic/transfer5_spec.rb
110
+ - spec/graphic/transfer_spec.rb
95
111
  - spec/spec_helper.rb
96
112
  - spec/vamp_spec.rb