xref: /aosp_15_r20/external/antlr/runtime/Ruby/test/unit/test-scope.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 Robotclass TestDFA < Test::Unit::TestCase
9*16467b97STreehugger Robot  def setup
10*16467b97STreehugger Robot    @A = ANTLR3::Scope.new( :a, :b )
11*16467b97STreehugger Robot    @B = ANTLR3::Scope.new( 'count = 3' )
12*16467b97STreehugger Robot    @C = ANTLR3::Scope.new( 'a', 'b = 0', 'c = {}' )
13*16467b97STreehugger Robot  end
14*16467b97STreehugger Robot
15*16467b97STreehugger Robot  def test_members
16*16467b97STreehugger Robot    @A.members.map( &:to_s ).should == %w( a b )
17*16467b97STreehugger Robot    @B.members.map( &:to_s ).should == %w( count )
18*16467b97STreehugger Robot    @C.members.map( &:to_s ).should == %w( a b c )
19*16467b97STreehugger Robot  end
20*16467b97STreehugger Robot
21*16467b97STreehugger Robot  def test_defaults_without_arguments
22*16467b97STreehugger Robot    @A.new.to_a.should == [ nil, nil ]
23*16467b97STreehugger Robot    @B.new.to_a.should == [ 3 ]
24*16467b97STreehugger Robot    @C.new.to_a.should == [ nil, 0, {} ]
25*16467b97STreehugger Robot  end
26*16467b97STreehugger Robot
27*16467b97STreehugger Robot  def test_C_defaults_with_arguments
28*16467b97STreehugger Robot    c = @C.new( Object )
29*16467b97STreehugger Robot    c.a.should == Object
30*16467b97STreehugger Robot    c.b.should == 0
31*16467b97STreehugger Robot    c.c.should == {}
32*16467b97STreehugger Robot  end
33*16467b97STreehugger Robot
34*16467b97STreehugger Robot  def test_B_defaults_with_arguments
35*16467b97STreehugger Robot    b = @B.new( 7000 )
36*16467b97STreehugger Robot    b.count.should == 7000
37*16467b97STreehugger Robot  end
38*16467b97STreehugger Robot
39*16467b97STreehugger Robot  def test_A_defaults_with_arguments
40*16467b97STreehugger Robot    a = @A.new( "apple", :orange )
41*16467b97STreehugger Robot    a.a.should == 'apple'
42*16467b97STreehugger Robot    a.b.should == :orange
43*16467b97STreehugger Robot  end
44*16467b97STreehugger Robot
45*16467b97STreehugger Robotend
46