test-scope.rb revision 324c4644fee44b9898524c09511bd33c3f12e2df
1324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#!/usr/bin/ruby 2324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# encoding: utf-8 3324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 4324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverrequire 'antlr3' 5324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverrequire 'test/unit' 6324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverrequire 'spec' 7324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 8324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverclass TestDFA < Test::Unit::TestCase 9324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver def setup 10324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver @A = ANTLR3::Scope.new( :a, :b ) 11324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver @B = ANTLR3::Scope.new( 'count = 3' ) 12324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver @C = ANTLR3::Scope.new( 'a', 'b = 0', 'c = {}' ) 13324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver end 14324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 15324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver def test_members 16324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver @A.members.map( &:to_s ).should == %w( a b ) 17324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver @B.members.map( &:to_s ).should == %w( count ) 18324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver @C.members.map( &:to_s ).should == %w( a b c ) 19324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver end 20324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 21324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver def test_defaults_without_arguments 22324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver @A.new.to_a.should == [ nil, nil ] 23324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver @B.new.to_a.should == [ 3 ] 24324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver @C.new.to_a.should == [ nil, 0, {} ] 25324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver end 26324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 27324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver def test_C_defaults_with_arguments 28324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver c = @C.new( Object ) 29324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver c.a.should == Object 30324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver c.b.should == 0 31324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver c.c.should == {} 32324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver end 33324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 34324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver def test_B_defaults_with_arguments 35324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver b = @B.new( 7000 ) 36324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver b.count.should == 7000 37324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver end 38324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 39324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver def test_A_defaults_with_arguments 40324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver a = @A.new( "apple", :orange ) 41324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver a.a.should == 'apple' 42324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver a.b.should == :orange 43324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver end 44324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 45324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend 46