File: human_name_spec.rb

package info (click to toggle)
ruby-regexp-parser 2.6.1-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 968 kB
  • sloc: ruby: 6,396; sh: 12; makefile: 6
file content (29 lines) | stat: -rw-r--r-- 2,206 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
require 'spec_helper'

RSpec.describe('Regexp::Expression::Shared#human_name') do
  include_examples 'parse', //,              []      => [human_name: 'root']
  include_examples 'parse', /a/,             [0]     => [human_name: 'literal']
  include_examples 'parse', /./,             [0]     => [human_name: 'match-all']
  include_examples 'parse', /[abc]/,         [0]     => [human_name: 'character set']
  include_examples 'parse', /[a-c]/,         [0, 0]  => [human_name: 'character range']
  include_examples 'parse', /\d/,            [0]     => [human_name: 'digit type']
  include_examples 'parse', /\n/,            [0]     => [human_name: 'newline escape']
  include_examples 'parse', /\u{61 62 63}/,  [0]     => [human_name: 'codepoint list escape']
  include_examples 'parse', /\p{ascii}/,     [0]     => [human_name: 'ascii property']
  include_examples 'parse', /[[:ascii:]]/,   [0, 0]  => [human_name: 'ascii posixclass']
  include_examples 'parse', /a{5}/,          [0, :q] => [human_name: 'interval quantifier']
  include_examples 'parse', /^/,             [0]     => [human_name: 'beginning of line']
  include_examples 'parse', /(?=abc)/,       [0]     => [human_name: 'lookahead']
  include_examples 'parse', /(a)(b)/,        [0]     => [human_name: 'capture group 1']
  include_examples 'parse', /(a)(b)/,        [1]     => [human_name: 'capture group 2']
  include_examples 'parse', /(?<x>abc)/,     [0]     => [human_name: 'named capture group']
  include_examples 'parse', /   /x,          [0]     => [human_name: 'free space']
  include_examples 'parse', /#comment
                            /x,              [0]     => [human_name: 'comment']
  include_examples 'parse', /(?#comment)/x,  [0]     => [human_name: 'comment group']
  include_examples 'parse', /(abc)\1/,       [1]     => [human_name: 'backreference']
  include_examples 'parse', /(?<x>)\k<x>/,   [1]     => [human_name: 'backreference by name']
  include_examples 'parse', /(abc)\g<-1>/,   [1]     => [human_name: 'relative subexpression call']
  include_examples 'parse', /a|bc/,          [0]     => [human_name: 'alternation']
  include_examples 'parse', /a|bc/,          [0, 0]  => [human_name: 'alternative']
end