-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathtest_srl.py
45 lines (43 loc) · 2.05 KB
/
test_srl.py
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
# -*- coding: utf-8 -*-
from srl.srl import SRL
def test_parse():
assert SRL('literally "abc"').match('abc')
assert SRL('one of "abc"').match('a')
assert SRL('letter').match('a')
assert SRL('letter from a to c').match('b')
assert not SRL('letter from a to c').match('d')
assert SRL('uppercase letter').match('A')
assert SRL('letter from A to C').match('B')
assert not SRL('letter from A to C').match('D')
assert SRL('any character').match('a')
assert SRL('no character').match(' ')
assert SRL('digit').match('0')
assert not SRL('anything').match('\n')
assert SRL('anything').match('-')
assert SRL('new line').match('\n')
assert SRL('whitespace').match(' ')
assert SRL('no whitespace').match('a')
assert SRL('tab').match('\t')
assert SRL('raw "[a-zA-Z]"').match('a')
assert not SRL('raw "[a-z]"').match('A')
assert SRL('digit exactly 2 times').match('00')
assert SRL('digit exactly 2 times').match('000').group() == '00'
assert not SRL('digit between 2 and 3 times').match('1')
assert SRL('digit between 2 and 3 times').match('12')
assert SRL('digit between 2 and 3').match('12')
assert SRL('digit optional').match('a')
assert not SRL('digit once or more').match('a')
assert SRL('digit once or more').match('1')
assert SRL('digit once or more').match('12')
assert SRL('digit never or more').match('a')
assert SRL('digit never or more').match('a1')
assert not SRL('digit at least 2 times').match('1')
assert SRL('digit at least 2 times').match('11')
assert SRL('capture "abc"').match('abc')
assert SRL('capture (digit once or more)').match('1').groups() == ('1', )
assert SRL('capture (digit once or more) as "mydigit"').match('1').groups() == ('1', )
assert SRL('any of (literally "sample")').match('sample')
assert SRL('capture (anything once or more) until "m"').match('example')
assert SRL('begin with must end').match('')
assert SRL('letter case insensitive').match('A')
assert SRL('capture (letter once or more) all lazy').match('a')