-
-
Notifications
You must be signed in to change notification settings - Fork 62
/
Copy pathtest_deletecases.py
29 lines (25 loc) · 1.06 KB
/
test_deletecases.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
# -*- coding: utf-8 -*-
import pytest
from .helper import evaluate
@pytest.mark.parametrize(
"str_expr,str_expected",
[
# DeleteCases tests
(r"DeleteCases[A,{_,_}]", "{{{1, 2, 3}, {a, b}, {1, 2, 3}}}"),
(r"DeleteCases[A,{_,_},1]", "{{{1, 2, 3}, {a, b}, {1, 2, 3}}}"),
(r"DeleteCases[A,{_,_},1,1]", "{{{1, 2, 3}, {a, b}, {1, 2, 3}}, {10, 11}}"),
(r"DeleteCases[A,{_,_},2]", "{{{1, 2, 3}, {1, 2, 3}}}"),
(r"DeleteCases[A,{_,_},3]", "{{{1, 2, 3}, {1, 2, 3}}}"),
(r"DeleteCases[A,{_,_},{2}]", "{{{1, 2, 3}, {1, 2, 3}},{a, b}, {10, 11}}"),
(r"DeleteCases[A,{_,_},{2,3}]", "{{{1, 2, 3}, {1, 2, 3}}, {a, b}, {10, 11}}"),
(r"DeleteCases[A,{_,_},{1,3},2]", "{{{1, 2, 3}, {1, 2, 3}},{10, 11}}"),
],
)
def test_evaluation(str_expr: str, str_expected: str, message=""):
evaluate("A={{{1, 2, 3}, {a, b}, {1, 2, 3}}, {a, b}, {10, 11}};")
result = evaluate(str_expr)
expected = evaluate(str_expected)
if message:
assert result == expected, message
else:
assert result == expected