46 lines
986 B
Ruby
46 lines
986 B
Ruby
#!/usr/bin/ruby
|
|
# encoding: utf-8
|
|
|
|
require 'antlr3'
|
|
require 'test/unit'
|
|
require 'spec'
|
|
|
|
class TestDFA < Test::Unit::TestCase
|
|
def setup
|
|
@A = ANTLR3::Scope.new( :a, :b )
|
|
@B = ANTLR3::Scope.new( 'count = 3' )
|
|
@C = ANTLR3::Scope.new( 'a', 'b = 0', 'c = {}' )
|
|
end
|
|
|
|
def test_members
|
|
@A.members.map( &:to_s ).should == %w( a b )
|
|
@B.members.map( &:to_s ).should == %w( count )
|
|
@C.members.map( &:to_s ).should == %w( a b c )
|
|
end
|
|
|
|
def test_defaults_without_arguments
|
|
@A.new.to_a.should == [ nil, nil ]
|
|
@B.new.to_a.should == [ 3 ]
|
|
@C.new.to_a.should == [ nil, 0, {} ]
|
|
end
|
|
|
|
def test_C_defaults_with_arguments
|
|
c = @C.new( Object )
|
|
c.a.should == Object
|
|
c.b.should == 0
|
|
c.c.should == {}
|
|
end
|
|
|
|
def test_B_defaults_with_arguments
|
|
b = @B.new( 7000 )
|
|
b.count.should == 7000
|
|
end
|
|
|
|
def test_A_defaults_with_arguments
|
|
a = @A.new( "apple", :orange )
|
|
a.a.should == 'apple'
|
|
a.b.should == :orange
|
|
end
|
|
|
|
end
|