xref: /aosp_15_r20/external/antlr/runtime/Ruby/test/unit/test-streams.rb (revision 16467b971bd3e2009fad32dd79016f2c7e421deb)
1*16467b97STreehugger Robot#!/usr/bin/ruby
2*16467b97STreehugger Robot# encoding: utf-8
3*16467b97STreehugger Robot
4*16467b97STreehugger Robotrequire 'antlr3'
5*16467b97STreehugger Robotrequire 'test/unit'
6*16467b97STreehugger Robotrequire 'spec'
7*16467b97STreehugger Robot
8*16467b97STreehugger Robot
9*16467b97STreehugger Robotinclude ANTLR3
10*16467b97STreehugger Robot
11*16467b97STreehugger Robotclass TestStringStream < Test::Unit::TestCase
12*16467b97STreehugger Robot  def setup
13*16467b97STreehugger Robot    @stream = StringStream.new( "oh\nhey!\n" )
14*16467b97STreehugger Robot  end
15*16467b97STreehugger Robot
16*16467b97STreehugger Robot  def test_size
17*16467b97STreehugger Robot    @stream.size.should == 8
18*16467b97STreehugger Robot  end
19*16467b97STreehugger Robot
20*16467b97STreehugger Robot  def test_index
21*16467b97STreehugger Robot    @stream.index.should == 0
22*16467b97STreehugger Robot  end
23*16467b97STreehugger Robot
24*16467b97STreehugger Robot  def test_consume
25*16467b97STreehugger Robot    @stream.consume # o
26*16467b97STreehugger Robot    @stream.index.should == 1
27*16467b97STreehugger Robot    @stream.column.should == 1
28*16467b97STreehugger Robot    @stream.line.should == 1
29*16467b97STreehugger Robot
30*16467b97STreehugger Robot    @stream.consume  # h
31*16467b97STreehugger Robot    @stream.index.should == 2
32*16467b97STreehugger Robot    @stream.column.should == 2
33*16467b97STreehugger Robot    @stream.line.should == 1
34*16467b97STreehugger Robot
35*16467b97STreehugger Robot    @stream.consume # \n
36*16467b97STreehugger Robot    @stream.index.should == 3
37*16467b97STreehugger Robot    @stream.column.should == 0
38*16467b97STreehugger Robot    @stream.line.should == 2
39*16467b97STreehugger Robot
40*16467b97STreehugger Robot    @stream.consume #  h
41*16467b97STreehugger Robot    @stream.index.should == 4
42*16467b97STreehugger Robot    @stream.column.should == 1
43*16467b97STreehugger Robot    @stream.line.should == 2
44*16467b97STreehugger Robot
45*16467b97STreehugger Robot    @stream.consume # e
46*16467b97STreehugger Robot    @stream.index.should == 5
47*16467b97STreehugger Robot    @stream.column.should == 2
48*16467b97STreehugger Robot    @stream.line.should == 2
49*16467b97STreehugger Robot
50*16467b97STreehugger Robot    @stream.consume # y
51*16467b97STreehugger Robot    @stream.index.should == 6
52*16467b97STreehugger Robot    @stream.column.should == 3
53*16467b97STreehugger Robot    @stream.line.should == 2
54*16467b97STreehugger Robot
55*16467b97STreehugger Robot    @stream.consume # !
56*16467b97STreehugger Robot    @stream.index.should == 7
57*16467b97STreehugger Robot    @stream.column.should == 4
58*16467b97STreehugger Robot    @stream.line.should == 2
59*16467b97STreehugger Robot
60*16467b97STreehugger Robot    @stream.consume # \n
61*16467b97STreehugger Robot    @stream.index.should == 8
62*16467b97STreehugger Robot    @stream.column.should == 0
63*16467b97STreehugger Robot    @stream.line.should == 3
64*16467b97STreehugger Robot
65*16467b97STreehugger Robot    @stream.consume # EOF
66*16467b97STreehugger Robot    @stream.index.should == 8
67*16467b97STreehugger Robot    @stream.column.should == 0
68*16467b97STreehugger Robot    @stream.line.should == 3
69*16467b97STreehugger Robot
70*16467b97STreehugger Robot    @stream.consume # EOF
71*16467b97STreehugger Robot    @stream.index.should == 8
72*16467b97STreehugger Robot    @stream.column.should == 0
73*16467b97STreehugger Robot    @stream.line.should == 3
74*16467b97STreehugger Robot  end
75*16467b97STreehugger Robot
76*16467b97STreehugger Robot  def test_reset
77*16467b97STreehugger Robot    2.times { @stream.consume }
78*16467b97STreehugger Robot    @stream.reset
79*16467b97STreehugger Robot    @stream.index.should == 0
80*16467b97STreehugger Robot    @stream.line.should == 1
81*16467b97STreehugger Robot    @stream.column.should == 0
82*16467b97STreehugger Robot    @stream.peek(1).should == ?o.ord
83*16467b97STreehugger Robot  end
84*16467b97STreehugger Robot
85*16467b97STreehugger Robot  def test_look
86*16467b97STreehugger Robot    @stream.look(1).should == 'o'
87*16467b97STreehugger Robot    @stream.look(2).should == 'h'
88*16467b97STreehugger Robot    @stream.look(3).should == "\n"
89*16467b97STreehugger Robot    @stream.peek(1).should == ?o.ord
90*16467b97STreehugger Robot    @stream.peek(2).should == ?h.ord
91*16467b97STreehugger Robot    @stream.peek(3).should == ?\n.ord
92*16467b97STreehugger Robot
93*16467b97STreehugger Robot    6.times { @stream.consume }
94*16467b97STreehugger Robot    @stream.look(1).should == '!'
95*16467b97STreehugger Robot    @stream.look(2).should == "\n"
96*16467b97STreehugger Robot    @stream.look(3).should be_nil
97*16467b97STreehugger Robot    @stream.peek(1).should == ?!.ord
98*16467b97STreehugger Robot    @stream.peek(2).should == ?\n.ord
99*16467b97STreehugger Robot    @stream.peek(3).should == EOF
100*16467b97STreehugger Robot  end
101*16467b97STreehugger Robot
102*16467b97STreehugger Robot  def test_substring
103*16467b97STreehugger Robot    @stream.substring(0,0).should == 'o'
104*16467b97STreehugger Robot    @stream.substring(0,1).should == 'oh'
105*16467b97STreehugger Robot    @stream.substring(0,8).should == "oh\nhey!\n"
106*16467b97STreehugger Robot    @stream.substring(3,6).should == "hey!"
107*16467b97STreehugger Robot  end
108*16467b97STreehugger Robot
109*16467b97STreehugger Robot  def test_seek_forward
110*16467b97STreehugger Robot    @stream.seek(3)
111*16467b97STreehugger Robot    @stream.index.should == 3
112*16467b97STreehugger Robot    @stream.line.should == 2
113*16467b97STreehugger Robot    @stream.column.should == 0
114*16467b97STreehugger Robot    @stream.peek(1).should == ?h.ord
115*16467b97STreehugger Robot  end
116*16467b97STreehugger Robot
117*16467b97STreehugger Robot  def test_mark
118*16467b97STreehugger Robot    @stream.seek(4)
119*16467b97STreehugger Robot    marker = @stream.mark
120*16467b97STreehugger Robot    marker.should == 1
121*16467b97STreehugger Robot
122*16467b97STreehugger Robot    2.times { @stream.consume }
123*16467b97STreehugger Robot    marker = @stream.mark
124*16467b97STreehugger Robot
125*16467b97STreehugger Robot    marker.should == 2
126*16467b97STreehugger Robot  end
127*16467b97STreehugger Robot
128*16467b97STreehugger Robot  def test_release_last
129*16467b97STreehugger Robot    @stream.seek(4)
130*16467b97STreehugger Robot    marker1 = @stream.mark
131*16467b97STreehugger Robot
132*16467b97STreehugger Robot    2.times { @stream.consume }
133*16467b97STreehugger Robot    marker2 = @stream.mark
134*16467b97STreehugger Robot
135*16467b97STreehugger Robot    @stream.release
136*16467b97STreehugger Robot    @stream.mark_depth.should == 2
137*16467b97STreehugger Robot    @stream.release
138*16467b97STreehugger Robot    @stream.mark_depth.should == 1
139*16467b97STreehugger Robot  end
140*16467b97STreehugger Robot
141*16467b97STreehugger Robot  def test_release_nested
142*16467b97STreehugger Robot    @stream.seek(4)
143*16467b97STreehugger Robot    marker1 = @stream.mark()
144*16467b97STreehugger Robot
145*16467b97STreehugger Robot    @stream.consume()
146*16467b97STreehugger Robot    marker2 = @stream.mark()
147*16467b97STreehugger Robot
148*16467b97STreehugger Robot    @stream.consume()
149*16467b97STreehugger Robot    marker3 = @stream.mark()
150*16467b97STreehugger Robot
151*16467b97STreehugger Robot    @stream.release(marker2)
152*16467b97STreehugger Robot    @stream.mark_depth.should == 2
153*16467b97STreehugger Robot
154*16467b97STreehugger Robot  end
155*16467b97STreehugger Robot
156*16467b97STreehugger Robot  def test_rewind_last
157*16467b97STreehugger Robot    @stream.seek(4)
158*16467b97STreehugger Robot
159*16467b97STreehugger Robot    marker = @stream.mark
160*16467b97STreehugger Robot    @stream.consume
161*16467b97STreehugger Robot    @stream.consume
162*16467b97STreehugger Robot
163*16467b97STreehugger Robot    @stream.rewind
164*16467b97STreehugger Robot    @stream.mark_depth.should == 1
165*16467b97STreehugger Robot    @stream.index.should == 4
166*16467b97STreehugger Robot    @stream.line.should == 2
167*16467b97STreehugger Robot    @stream.column.should == 1
168*16467b97STreehugger Robot    @stream.peek(1).should == ?e.ord
169*16467b97STreehugger Robot
170*16467b97STreehugger Robot  end
171*16467b97STreehugger Robot
172*16467b97STreehugger Robot  def test_through
173*16467b97STreehugger Robot    @stream.through( 2 ).should == 'oh'
174*16467b97STreehugger Robot    @stream.through( -2 ).should == ''
175*16467b97STreehugger Robot    @stream.seek( 5 )
176*16467b97STreehugger Robot    @stream.through( 0 ).should == ''
177*16467b97STreehugger Robot    @stream.through( 1 ).should == 'y'
178*16467b97STreehugger Robot    @stream.through( -2 ).should == 'he'
179*16467b97STreehugger Robot    @stream.through( 5 ).should == "y!\n"
180*16467b97STreehugger Robot  end
181*16467b97STreehugger Robot
182*16467b97STreehugger Robot  def test_rewind_nested
183*16467b97STreehugger Robot    @stream.seek(4)
184*16467b97STreehugger Robot    marker1 = @stream.mark()
185*16467b97STreehugger Robot
186*16467b97STreehugger Robot    @stream.consume
187*16467b97STreehugger Robot    marker2 = @stream.mark
188*16467b97STreehugger Robot
189*16467b97STreehugger Robot    @stream.consume
190*16467b97STreehugger Robot    marker3 = @stream.mark
191*16467b97STreehugger Robot
192*16467b97STreehugger Robot    @stream.rewind(marker2)
193*16467b97STreehugger Robot    @stream.mark_depth.should == 2
194*16467b97STreehugger Robot    @stream.index().should == 5
195*16467b97STreehugger Robot    @stream.line.should == 2
196*16467b97STreehugger Robot    @stream.column.should == 2
197*16467b97STreehugger Robot    @stream.peek(1).should == ?y.ord
198*16467b97STreehugger Robot  end
199*16467b97STreehugger Robotend
200*16467b97STreehugger Robot
201*16467b97STreehugger Robotclass TestFileStream < Test::Unit::TestCase
202*16467b97STreehugger Robot
203*16467b97STreehugger Robot
204*16467b97STreehugger Robot  def test_no_encoding
205*16467b97STreehugger Robot
206*16467b97STreehugger Robot    path = File.join(File.dirname(__FILE__), 'sample-input/file-stream-1')
207*16467b97STreehugger Robot    @stream = FileStream.new(path)
208*16467b97STreehugger Robot
209*16467b97STreehugger Robot    @stream.seek(4)
210*16467b97STreehugger Robot    marker1 = @stream.mark()
211*16467b97STreehugger Robot
212*16467b97STreehugger Robot    @stream.consume()
213*16467b97STreehugger Robot    marker2 = @stream.mark()
214*16467b97STreehugger Robot
215*16467b97STreehugger Robot    @stream.consume()
216*16467b97STreehugger Robot    marker3 = @stream.mark()
217*16467b97STreehugger Robot
218*16467b97STreehugger Robot    @stream.rewind(marker2)
219*16467b97STreehugger Robot    @stream.index().should == 5
220*16467b97STreehugger Robot    @stream.line.should == 2
221*16467b97STreehugger Robot    @stream.column.should == 1
222*16467b97STreehugger Robot    @stream.mark_depth.should == 2
223*16467b97STreehugger Robot    @stream.look(1).should == 'a'
224*16467b97STreehugger Robot    @stream.peek(1).should == ?a.ord
225*16467b97STreehugger Robot  end
226*16467b97STreehugger Robot
227*16467b97STreehugger Robot  def test_encoded
228*16467b97STreehugger Robot
229*16467b97STreehugger Robot  end
230*16467b97STreehugger Robotend
231*16467b97STreehugger Robot
232*16467b97STreehugger Robotclass TestInputStream < Test::Unit::TestCase
233*16467b97STreehugger Robot  def test_no_encoding
234*16467b97STreehugger Robot
235*16467b97STreehugger Robot  end
236*16467b97STreehugger Robot
237*16467b97STreehugger Robot  def test_encoded
238*16467b97STreehugger Robot
239*16467b97STreehugger Robot  end
240*16467b97STreehugger Robotend
241*16467b97STreehugger Robot
242*16467b97STreehugger Robotclass TestCommonTokenStream < Test::Unit::TestCase
243*16467b97STreehugger Robot  class MockSource
244*16467b97STreehugger Robot    include ANTLR3::TokenSource
245*16467b97STreehugger Robot    attr_accessor :tokens
246*16467b97STreehugger Robot    def initialize
247*16467b97STreehugger Robot      @tokens = []
248*16467b97STreehugger Robot    end
249*16467b97STreehugger Robot    def next_token
250*16467b97STreehugger Robot      @tokens.shift
251*16467b97STreehugger Robot    end
252*16467b97STreehugger Robot  end
253*16467b97STreehugger Robot
254*16467b97STreehugger Robot  # vvvvvvvv tests vvvvvvvvv
255*16467b97STreehugger Robot  def test_init
256*16467b97STreehugger Robot    @source = MockSource.new
257*16467b97STreehugger Robot    @stream = CommonTokenStream.new( @source )
258*16467b97STreehugger Robot    @stream.position.should == 0
259*16467b97STreehugger Robot  end
260*16467b97STreehugger Robot
261*16467b97STreehugger Robot  def test_rebuild
262*16467b97STreehugger Robot    @source1 = MockSource.new
263*16467b97STreehugger Robot    @source2 = MockSource.new
264*16467b97STreehugger Robot    @source2.tokens << new_token( 10, :channel => ANTLR3::HIDDEN ) << new_token( 11 )
265*16467b97STreehugger Robot    @stream = CommonTokenStream.new( @source1 )
266*16467b97STreehugger Robot
267*16467b97STreehugger Robot    @stream.position.should == 0
268*16467b97STreehugger Robot    @stream.tokens.length.should == 0
269*16467b97STreehugger Robot
270*16467b97STreehugger Robot    @stream.rebuild( @source2 )
271*16467b97STreehugger Robot    @stream.token_source.should == @source2
272*16467b97STreehugger Robot    @stream.position.should == 1
273*16467b97STreehugger Robot    @stream.tokens.should have( 2 ).things
274*16467b97STreehugger Robot  end
275*16467b97STreehugger Robot
276*16467b97STreehugger Robot  def test_look_empty_source
277*16467b97STreehugger Robot    @source = MockSource.new
278*16467b97STreehugger Robot    @stream = CommonTokenStream.new(@source)
279*16467b97STreehugger Robot    @stream.look.should == ANTLR3::EOF_TOKEN
280*16467b97STreehugger Robot  end
281*16467b97STreehugger Robot
282*16467b97STreehugger Robot  def test_look1
283*16467b97STreehugger Robot    @source = MockSource.new
284*16467b97STreehugger Robot    @source.tokens << new_token(12)
285*16467b97STreehugger Robot    @stream = CommonTokenStream.new(@source)
286*16467b97STreehugger Robot    @stream.look(1).type.should == 12
287*16467b97STreehugger Robot  end
288*16467b97STreehugger Robot
289*16467b97STreehugger Robot  def test_look1_with_hidden
290*16467b97STreehugger Robot    # FIX
291*16467b97STreehugger Robot    @source = MockSource.new
292*16467b97STreehugger Robot    @source.tokens << new_token(12, :channel => ANTLR3::HIDDEN_CHANNEL) <<
293*16467b97STreehugger Robot      new_token(13)
294*16467b97STreehugger Robot    @stream = CommonTokenStream.new(@source)
295*16467b97STreehugger Robot    @stream.look(1).type.should == 13
296*16467b97STreehugger Robot  end
297*16467b97STreehugger Robot
298*16467b97STreehugger Robot  def test_look2_beyond_end
299*16467b97STreehugger Robot    @source = MockSource.new
300*16467b97STreehugger Robot    @source.tokens << new_token(12) <<
301*16467b97STreehugger Robot      new_token(13, :channel => ANTLR3::HIDDEN_CHANNEL)
302*16467b97STreehugger Robot
303*16467b97STreehugger Robot    @stream = CommonTokenStream.new(@source)
304*16467b97STreehugger Robot    @stream.look(2).type.should == EOF
305*16467b97STreehugger Robot  end
306*16467b97STreehugger Robot
307*16467b97STreehugger Robot  def test_look_negative
308*16467b97STreehugger Robot    @source = MockSource.new
309*16467b97STreehugger Robot    @source.tokens << new_token(12) << new_token(13)
310*16467b97STreehugger Robot    @stream = CommonTokenStream.new(@source)
311*16467b97STreehugger Robot    @stream.consume
312*16467b97STreehugger Robot
313*16467b97STreehugger Robot    @stream.look(-1).type.should == 12
314*16467b97STreehugger Robot  end
315*16467b97STreehugger Robot
316*16467b97STreehugger Robot  def test_lb1
317*16467b97STreehugger Robot    @source = MockSource.new
318*16467b97STreehugger Robot    @source.tokens << new_token(12) << new_token(13)
319*16467b97STreehugger Robot    @stream = CommonTokenStream.new(@source)
320*16467b97STreehugger Robot
321*16467b97STreehugger Robot    @stream.consume
322*16467b97STreehugger Robot    @stream.look(-1).type.should == 12
323*16467b97STreehugger Robot  end
324*16467b97STreehugger Robot
325*16467b97STreehugger Robot  def test_look_zero
326*16467b97STreehugger Robot    # FIX
327*16467b97STreehugger Robot    @source = MockSource.new
328*16467b97STreehugger Robot    @source.tokens << new_token(12) << new_token(13)
329*16467b97STreehugger Robot    @stream = CommonTokenStream.new(@source)
330*16467b97STreehugger Robot    @stream.look(0).should == nil
331*16467b97STreehugger Robot  end
332*16467b97STreehugger Robot
333*16467b97STreehugger Robot  def test_lb_beyond_begin
334*16467b97STreehugger Robot    @source = MockSource.new
335*16467b97STreehugger Robot    @source.tokens << new_token(10) <<
336*16467b97STreehugger Robot      new_token(11, :channel => HIDDEN_CHANNEL) <<
337*16467b97STreehugger Robot      new_token(12, :channel => HIDDEN_CHANNEL) <<
338*16467b97STreehugger Robot      new_token(13)
339*16467b97STreehugger Robot    @stream = CommonTokenStream.new(@source)
340*16467b97STreehugger Robot
341*16467b97STreehugger Robot    @stream.look(-1).should == nil
342*16467b97STreehugger Robot    2.times { @stream.consume }
343*16467b97STreehugger Robot    @stream.look(-3).should == nil
344*16467b97STreehugger Robot  end
345*16467b97STreehugger Robot
346*16467b97STreehugger Robot  def test_fill_buffer
347*16467b97STreehugger Robot    @source = MockSource.new
348*16467b97STreehugger Robot    @source.tokens << new_token(12) << new_token(13) <<  new_token(14) << new_token(EOF)
349*16467b97STreehugger Robot    @stream = CommonTokenStream.new(@source)
350*16467b97STreehugger Robot
351*16467b97STreehugger Robot    @stream.instance_variable_get(:@tokens).length.should == 3
352*16467b97STreehugger Robot    @stream.tokens[0].type.should == 12
353*16467b97STreehugger Robot    @stream.tokens[1].type.should == 13
354*16467b97STreehugger Robot    @stream.tokens[2].type.should == 14
355*16467b97STreehugger Robot  end
356*16467b97STreehugger Robot
357*16467b97STreehugger Robot  def test_consume
358*16467b97STreehugger Robot    @source = MockSource.new
359*16467b97STreehugger Robot    @source.tokens << new_token(12) << new_token(13) << new_token(EOF)
360*16467b97STreehugger Robot    @stream = CommonTokenStream.new(@source)
361*16467b97STreehugger Robot    @stream.peek.should == 12
362*16467b97STreehugger Robot    @stream.consume
363*16467b97STreehugger Robot    @stream.peek.should == 13
364*16467b97STreehugger Robot    @stream.consume
365*16467b97STreehugger Robot    @stream.peek.should == EOF
366*16467b97STreehugger Robot    @stream.consume
367*16467b97STreehugger Robot    @stream.peek.should == EOF
368*16467b97STreehugger Robot  end
369*16467b97STreehugger Robot
370*16467b97STreehugger Robot  def test_seek
371*16467b97STreehugger Robot    @source = MockSource.new
372*16467b97STreehugger Robot    @source.tokens << new_token(12) << new_token(13) << new_token(EOF)
373*16467b97STreehugger Robot    @stream = CommonTokenStream.new(@source)
374*16467b97STreehugger Robot
375*16467b97STreehugger Robot    @stream.peek(1).should == 12
376*16467b97STreehugger Robot    @stream.seek(2).peek.should == EOF
377*16467b97STreehugger Robot    @stream.seek(0).peek.should == 12
378*16467b97STreehugger Robot    @stream.seek(-3).position.should == 0
379*16467b97STreehugger Robot    @stream.seek(10).position.should == 2
380*16467b97STreehugger Robot  end
381*16467b97STreehugger Robot
382*16467b97STreehugger Robot  def test_mark_rewind
383*16467b97STreehugger Robot    @source = MockSource.new
384*16467b97STreehugger Robot    @source.tokens << new_token(12) << new_token(13) << new_token(EOF)
385*16467b97STreehugger Robot    @stream = CommonTokenStream.new(@source)
386*16467b97STreehugger Robot    @stream.consume
387*16467b97STreehugger Robot    marker = @stream.mark
388*16467b97STreehugger Robot    @stream.consume
389*16467b97STreehugger Robot    @stream.rewind(marker)
390*16467b97STreehugger Robot    @stream.peek(1).should == 13
391*16467b97STreehugger Robot  end
392*16467b97STreehugger Robot
393*16467b97STreehugger Robot  def test_to_string
394*16467b97STreehugger Robot    @source = MockSource.new
395*16467b97STreehugger Robot    @source.tokens << new_token(12, 'foo') <<
396*16467b97STreehugger Robot      new_token(13, 'bar') << new_token(14, 'gnurz') <<
397*16467b97STreehugger Robot      new_token(15, 'blarz')
398*16467b97STreehugger Robot    @stream = CommonTokenStream.new(@source)
399*16467b97STreehugger Robot    @stream.to_s.should == "foobargnurzblarz"
400*16467b97STreehugger Robot    @stream.to_s(1,2).should == 'bargnurz'
401*16467b97STreehugger Robot    @stream.to_s(@stream[1], @stream[-2]).should == 'bargnurz'
402*16467b97STreehugger Robot  end
403*16467b97STreehugger Robot
404*16467b97STreehugger Robot  def new_token(type, opts = {})
405*16467b97STreehugger Robot    fields = {}
406*16467b97STreehugger Robot    case type
407*16467b97STreehugger Robot    when Hash then fields.update(type)
408*16467b97STreehugger Robot    else
409*16467b97STreehugger Robot      fields[:type] = type
410*16467b97STreehugger Robot    end
411*16467b97STreehugger Robot    case opts
412*16467b97STreehugger Robot    when Hash then fields.update(opts)
413*16467b97STreehugger Robot    when String then fields[:text] = opts
414*16467b97STreehugger Robot    end
415*16467b97STreehugger Robot    CommonToken.create(fields)
416*16467b97STreehugger Robot  end
417*16467b97STreehugger Robot
418*16467b97STreehugger Robotend
419*16467b97STreehugger Robot
420*16467b97STreehugger Robot
421*16467b97STreehugger Robot__END__
422*16467b97STreehugger Robotteststreams.py                                | LN  | STATUS
423*16467b97STreehugger Robot----------------------------------------------+-----+--------------
424*16467b97STreehugger Robotclass TestStringStream(unittest.TestCase)     | 009 | [x]
425*16467b97STreehugger Robot  def testSize(self)                          | 012 | [x]
426*16467b97STreehugger Robot  def testIndex(self)                         | 020 | [x]
427*16467b97STreehugger Robot  def testConsume(self)                       | 028 | [x]
428*16467b97STreehugger Robot  def testReset(self)                         | 079 | [x]
429*16467b97STreehugger Robot  def testLA(self)                            | 094 | [x]
430*16467b97STreehugger Robot  def testSubstring(self)                     | 111 | [x]
431*16467b97STreehugger Robot  def testSeekForward(self)                   | 122 | [x]
432*16467b97STreehugger Robot  def testMark(self)                          | 150 | [x]
433*16467b97STreehugger Robot  def testReleaseLast(self)                   | 167 | [x]
434*16467b97STreehugger Robot  def testReleaseNested(self)                 | 186 | [x]
435*16467b97STreehugger Robot  def testRewindLast(self)                    | 204 | [x]
436*16467b97STreehugger Robot  def testRewindNested(self)                  | 223 | [x]
437*16467b97STreehugger Robotclass TestFileStream(unittest.TestCase)       | 245 | [o]
438*16467b97STreehugger Robot  def testNoEncoding(self)                    | 249 | [x]
439*16467b97STreehugger Robot  def testEncoded(self)                       | 272 | [ ]
440*16467b97STreehugger Robotclass TestInputStream(unittest.TestCase)      | 296 | [ ]
441*16467b97STreehugger Robot  def testNoEncoding(self)                    | 299 | [ ]
442*16467b97STreehugger Robot  def testEncoded(self)                       | 322 | [ ]
443*16467b97STreehugger Robotclass TestCommonTokenStream(unittest.TestCase)| 345 | [ ]
444*16467b97STreehugger Robot  def setUp(self)                             | 348 | [x]
445*16467b97STreehugger Robot  def testInit(self)                          | 369 | [x]
446*16467b97STreehugger Robot  def testSetTokenSource(self)                | 376 | [x]
447*16467b97STreehugger Robot  def testLTEmptySource(self)                 | 385 | [x]
448*16467b97STreehugger Robot  def testLT1(self)                           | 394 | [x]
449*16467b97STreehugger Robot  def testLT1WithHidden(self)                 | 407 | [x]
450*16467b97STreehugger Robot  def testLT2BeyondEnd(self)                  | 424 | [x]
451*16467b97STreehugger Robot  def testLTNegative(self)                    | 442 | [x]
452*16467b97STreehugger Robot  def testLB1(self)                           | 461 | [x]
453*16467b97STreehugger Robot  def testLTZero(self)                        | 479 | [x]
454*16467b97STreehugger Robot  def testLBBeyondBegin(self)                 | 496 | [x]
455*16467b97STreehugger Robot  def testFillBuffer(self)                    | 523 | [x]
456*16467b97STreehugger Robot  def testConsume(self)                       | 551 | [x]
457*16467b97STreehugger Robot  def testSeek(self)                          | 579 | [x]
458*16467b97STreehugger Robot  def testMarkRewind(self)                    | 604 | [x]
459*16467b97STreehugger Robot  def testToString(self)                      | 631 | [x]
460*16467b97STreehugger Robot
461