File: negative_spec.rb

package info (click to toggle)
ruby-regexp-parser 2.11.3-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,092 kB
  • sloc: ruby: 6,891; makefile: 6; sh: 3
file content (32 lines) | stat: -rw-r--r-- 1,688 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
30
31
32
# frozen_string_literal: true

require 'spec_helper'

RSpec.describe('Expression::Base#negative?') do
  include_examples 'parse', //,            []  => [:root,             negative?: false]
  include_examples 'parse', /a/,           [0] => [:literal,          negative?: false]

  include_examples 'parse', /\b/,          [0] => [:word_boundary,    negative?: false]
  include_examples 'parse', /\B/,          [0] => [:nonword_boundary, negative?: true]

  include_examples 'parse', /(?=)/,        [0] => [:lookahead,        negative?: false]
  include_examples 'parse', /(?!)/,        [0] => [:nlookahead,       negative?: true]

  include_examples 'parse', /(?<=)/,       [0] => [:lookbehind,       negative?: false]
  include_examples 'parse', /(?<!)/,       [0] => [:nlookbehind,      negative?: true]

  include_examples 'parse', /[a]/,         [0] => [:character,        negative?: false]
  include_examples 'parse', /[^a]/,        [0] => [:character,        negative?: true]

  include_examples 'parse', /\d/,          [0] => [:digit,            negative?: false]
  include_examples 'parse', /\D/,          [0] => [:nondigit,         negative?: true]

  include_examples 'parse', /[[:word:]]/,  [0, 0] => [:word,          negative?: false]
  include_examples 'parse', /[[:^word:]]/, [0, 0] => [:word,          negative?: true]

  include_examples 'parse', /\p{word}/,    [0] => [:word,             negative?: false]
  include_examples 'parse', /\p{^word}/,   [0] => [:word,             negative?: true]

  include_examples 'parse', //,            []  => [:root,             negated?: false]
  include_examples 'parse', /[^a]/,        [0] => [:character,        negated?: true]
end