xref: /aosp_15_r20/external/antlr/runtime/Ruby/test/unit/test-dfa.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 DFASubclass < ANTLR3::DFA
9*16467b97STreehugger Robot  EOT = [1, 2].freeze
10*16467b97STreehugger Robot  EOF = [3, 4].freeze
11*16467b97STreehugger Robot  MAX = [5, 6].freeze
12*16467b97STreehugger Robot  MIN = [7, 8].freeze
13*16467b97STreehugger Robot  ACCEPT = [9, 10, 11].freeze
14*16467b97STreehugger Robot  SPECIAL = [12].freeze
15*16467b97STreehugger Robot  TRANSITION = [
16*16467b97STreehugger Robot    [13, 14, 15, 16].freeze,
17*16467b97STreehugger Robot    [].freeze
18*16467b97STreehugger Robot  ].freeze
19*16467b97STreehugger Robotend
20*16467b97STreehugger Robot
21*16467b97STreehugger Robotclass TestDFA < Test::Unit::TestCase
22*16467b97STreehugger Robot  def test_init
23*16467b97STreehugger Robot    dfa = DFASubclass.new(nil, 1)
24*16467b97STreehugger Robot    dfa.eot.should == DFASubclass::EOT
25*16467b97STreehugger Robot    dfa.eof.should == DFASubclass::EOF
26*16467b97STreehugger Robot    dfa.max.should == DFASubclass::MAX
27*16467b97STreehugger Robot    dfa.min.should == DFASubclass::MIN
28*16467b97STreehugger Robot    dfa.accept.should == DFASubclass::ACCEPT
29*16467b97STreehugger Robot    dfa.special.should == DFASubclass::SPECIAL
30*16467b97STreehugger Robot    dfa.transition.should == DFASubclass::TRANSITION
31*16467b97STreehugger Robot  end
32*16467b97STreehugger Robot
33*16467b97STreehugger Robot  def test_unpack
34*16467b97STreehugger Robot    packed = [
35*16467b97STreehugger Robot      1, 3, 1, 4, 2, -1, 1, 5, 18, -1, 1, 2,
36*16467b97STreehugger Robot      25, -1, 1, 6, 6, -1, 26, 6, 4, -1, 1, 6,
37*16467b97STreehugger Robot      1, -1, 26, 6
38*16467b97STreehugger Robot    ]
39*16467b97STreehugger Robot    unpacked = [
40*16467b97STreehugger Robot      3, 4, -1, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
41*16467b97STreehugger Robot     -1, -1, -1, -1, -1, -1, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1,
42*16467b97STreehugger Robot     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
43*16467b97STreehugger Robot      6, -1, -1, -1, -1, -1, -1, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
44*16467b97STreehugger Robot      6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, -1, -1, -1, -1, 6, -1,
45*16467b97STreehugger Robot      6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
46*16467b97STreehugger Robot      6, 6, 6, 6, 6
47*16467b97STreehugger Robot    ]
48*16467b97STreehugger Robot
49*16467b97STreehugger Robot    ANTLR3::DFA.unpack(*packed).should == unpacked
50*16467b97STreehugger Robot  end
51*16467b97STreehugger Robot
52*16467b97STreehugger Robotend
53