Sha256: 9cd1e629813cd4df7214f7d1da6394e0ed82af492b3eaabf5f34cec14dc6f83e
Contents?: true
Size: 1.92 KB
Versions: 2
Compression:
Stored size: 1.92 KB
Contents
require 'abstract_unit' module ActionDispatch module Journey module NFA class TestTransitionTable < ActiveSupport::TestCase def setup @parser = Journey::Parser.new end def test_eclosure table = tt '/' assert_equal [0], table.eclosure(0) table = tt ':a|:b' assert_equal 3, table.eclosure(0).length table = tt '(:a|:b)' assert_equal 5, table.eclosure(0).length assert_equal 5, table.eclosure([0]).length end def test_following_states_one table = tt '/' assert_equal [1], table.following_states(0, '/') assert_equal [1], table.following_states([0], '/') end def test_following_states_group table = tt 'a|b' states = table.eclosure 0 assert_equal 1, table.following_states(states, 'a').length assert_equal 1, table.following_states(states, 'b').length end def test_following_states_multi table = tt 'a|a' states = table.eclosure 0 assert_equal 2, table.following_states(states, 'a').length assert_equal 0, table.following_states(states, 'b').length end def test_following_states_regexp table = tt 'a|:a' states = table.eclosure 0 assert_equal 1, table.following_states(states, 'a').length assert_equal 1, table.following_states(states, /[^\.\/\?]+/).length assert_equal 0, table.following_states(states, 'b').length end def test_alphabet table = tt 'a|:a' assert_equal [/[^\.\/\?]+/, 'a'], table.alphabet table = tt 'a|a' assert_equal ['a'], table.alphabet end private def tt string ast = @parser.parse string builder = Builder.new ast builder.transition_table end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
activejob-lock-0.0.2 | rails/actionpack/test/journey/nfa/transition_table_test.rb |
activejob-lock-0.0.1 | rails/actionpack/test/journey/nfa/transition_table_test.rb |