summaryrefslogtreecommitdiffstats
path: root/vendor/regex-automata/tests/data/iter.toml
blob: 6c0539fd4df579338068fe23c40457461e88b305 (plain)
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
[[tests]]
name = "1"
regex = "a"
input = "aaa"
matches = [[0, 1], [1, 2], [2, 3]]

[[tests]]
name = "2"
regex = "a"
input = "aba"
matches = [[0, 1], [2, 3]]

[[tests]]
name = "empty1"
regex = ''
input = ''
matches = [[0, 0]]

[[tests]]
name = "empty2"
regex = ''
input = 'abc'
matches = [[0, 0], [1, 1], [2, 2], [3, 3]]

[[tests]]
name = "empty3"
regex = '()'
input = 'abc'
matches = [[0, 0], [1, 1], [2, 2], [3, 3]]

[[tests]]
name = "empty4"
regex = '()*'
input = 'abc'
matches = [[0, 0], [1, 1], [2, 2], [3, 3]]

[[tests]]
name = "empty5"
regex = '()+'
input = 'abc'
matches = [[0, 0], [1, 1], [2, 2], [3, 3]]

[[tests]]
name = "empty6"
regex = '()?'
input = 'abc'
matches = [[0, 0], [1, 1], [2, 2], [3, 3]]

[[tests]]
name = "empty7"
regex = '()()'
input = 'abc'
matches = [[0, 0], [1, 1], [2, 2], [3, 3]]

[[tests]]
name = "empty8"
regex = '()+|z'
input = 'abc'
matches = [[0, 0], [1, 1], [2, 2], [3, 3]]

[[tests]]
name = "empty9"
regex = 'z|()+'
input = 'abc'
matches = [[0, 0], [1, 1], [2, 2], [3, 3]]

[[tests]]
name = "empty10"
regex = '()+|b'
input = 'abc'
matches = [[0, 0], [1, 1], [2, 2], [3, 3]]

[[tests]]
name = "empty11"
regex = 'b|()+'
input = 'abc'
matches = [[0, 0], [1, 2], [3, 3]]

[[tests]]
name = "start1"
regex = "^a"
input = "a"
matches = [[0, 1]]

[[tests]]
name = "start2"
regex = "^a"
input = "aa"
matches = [[0, 1]]

[[tests]]
name = "anchored1"
regex = "a"
input = "a"
matches = [[0, 1]]
anchored = true

# This test is pretty subtle. It demonstrates the crucial difference between
# '^a' and 'a' compiled in 'anchored' mode. The former regex exclusively
# matches at the start of a haystack and nowhere else. The latter regex has
# no such restriction, but its automaton is constructed such that it lacks a
# `.*?` prefix. So it can actually produce matches at multiple locations.
# The anchored3 test drives this point home.
[[tests]]
name = "anchored2"
regex = "a"
input = "aa"
matches = [[0, 1], [1, 2]]
anchored = true

# Unlikely anchored2, this test stops matching anything after it sees `b`
# since it lacks a `.*?` prefix. Since it is looking for 'a' but sees 'b', it
# determines that there are no remaining matches.
[[tests]]
name = "anchored3"
regex = "a"
input = "aaba"
matches = [[0, 1], [1, 2]]
anchored = true