-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathtest_inplace_modification_pattern.py
32 lines (30 loc) · 1.79 KB
/
test_inplace_modification_pattern.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
from larray_editor.editor import SUBSET_UPDATE_PATTERN
def test_pattern():
assert SUBSET_UPDATE_PATTERN.match('arr1[1] = 2')
assert SUBSET_UPDATE_PATTERN.match('arr1[1]= 2')
assert SUBSET_UPDATE_PATTERN.match('arr1[1]=2')
assert SUBSET_UPDATE_PATTERN.match("arr1['a'] = arr2")
assert SUBSET_UPDATE_PATTERN.match("arr1[func(mapping['a'])] = arr2")
assert SUBSET_UPDATE_PATTERN.match("arr1.i[0, 0] = arr2")
assert SUBSET_UPDATE_PATTERN.match("arr1.iflat[0, 0] = arr2")
assert SUBSET_UPDATE_PATTERN.match("arr1.points[0, 0] = arr2")
assert SUBSET_UPDATE_PATTERN.match("arr1.ipoints[0, 0] = arr2")
assert SUBSET_UPDATE_PATTERN.match("arr1[0] += arr2")
assert SUBSET_UPDATE_PATTERN.match("arr1[0] -= arr2")
assert SUBSET_UPDATE_PATTERN.match("arr1[0] *= arr2")
assert SUBSET_UPDATE_PATTERN.match("arr1[0] /= arr2")
assert SUBSET_UPDATE_PATTERN.match("arr1[0] %= arr2")
assert SUBSET_UPDATE_PATTERN.match("arr1[0] //= arr2")
assert SUBSET_UPDATE_PATTERN.match("arr1[0] **= arr2")
assert SUBSET_UPDATE_PATTERN.match("arr1[0] &= arr2")
assert SUBSET_UPDATE_PATTERN.match("arr1[0] |= arr2")
assert SUBSET_UPDATE_PATTERN.match("arr1[0] ^= arr2")
assert SUBSET_UPDATE_PATTERN.match("arr1[0] >>= arr2")
assert SUBSET_UPDATE_PATTERN.match("arr1[0] <<= arr2")
assert SUBSET_UPDATE_PATTERN.match("arr1[0]") is None
assert SUBSET_UPDATE_PATTERN.match("arr1.method()") is None
assert SUBSET_UPDATE_PATTERN.match("arr1[0].method()") is None
assert SUBSET_UPDATE_PATTERN.match("arr1[0].method(arg=thing)") is None
assert SUBSET_UPDATE_PATTERN.match("arr1[0].method(arg==thing)") is None
# this test fails but I don't think it is possible to fix it with regex
# assert SUBSET_UPDATE_PATTERN.match("arr1[func('[]=0')].method()") is None