Sha256: df50a2f624b3ed98cb2bc647468603017f80f9a24e9bac27a05cfdc8debba53c
Contents?: true
Size: 1.23 KB
Versions: 1
Compression:
Stored size: 1.23 KB
Contents
require 'spec_helper' RSpec.describe('Quantifier scanning') do tests = { 'a?' => [:quantifier, :zero_or_one, '?'], 'a??' => [:quantifier, :zero_or_one_reluctant, '??'], 'a?+' => [:quantifier, :zero_or_one_possessive, '?+'], 'a*' => [:quantifier, :zero_or_more, '*'], 'a*?' => [:quantifier, :zero_or_more_reluctant, '*?'], 'a*+' => [:quantifier, :zero_or_more_possessive, '*+'], 'a+' => [:quantifier, :one_or_more, '+'], 'a+?' => [:quantifier, :one_or_more_reluctant, '+?'], 'a++' => [:quantifier, :one_or_more_possessive, '++'], 'a{2}' => [:quantifier, :interval, '{2}'], 'a{2,}' => [:quantifier, :interval, '{2,}'], 'a{,2}' => [:quantifier, :interval, '{,2}'], 'a{2,4}' => [:quantifier, :interval, '{2,4}'], } tests.each_with_index do |(pattern, (type, token, text)), count| name = token == :interval ? "interval_#{count}" : token specify("scan_#{type}_#{name}") do tokens = RS.scan(pattern) result = tokens.last expect(result[0]).to eq type expect(result[1]).to eq token expect(result[2]).to eq text end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
regexp_parser-1.5.0 | spec/scanner/quantifiers_spec.rb |