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