Passed
Branch master (c311bb)
by Guibert
02:53 queued 02:10
created

tests.test_arity_definition   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 53
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 43
dl 0
loc 53
rs 10
c 0
b 0
f 0
wmc 5
1
from networkx_query.definition import OperatoryArity
2
3
4
def test_operator_arity_definition():
5
    assert OperatoryArity.UNARY.arity == 1
6
    assert OperatoryArity.BINARY.arity == 2
7
    assert OperatoryArity.TERNARY.arity == 3
8
    assert OperatoryArity.NARY.arity == 1
9
10
11
def test_operator_arity_unary_is_compliant():
12
    t = OperatoryArity.UNARY.is_compliant([])
13
    assert t == (True, 0)
14
    t = OperatoryArity.UNARY.is_compliant([True])
15
    assert t == (False, 1)
16
17
18
def test_operator_arity_binary_is_compliant():
19
    t = OperatoryArity.BINARY.is_compliant([])
20
    assert t == (False, -1)
21
    t = OperatoryArity.BINARY.is_compliant([True])
22
    assert t == (True, 0)
23
    t = OperatoryArity.BINARY.is_compliant([True, True])
24
    assert t == (False, 1)
25
    t = OperatoryArity.BINARY.is_compliant([True, True, True])
26
    assert t == (False, 2)
27
28
29
def test_operator_arity_ternary_is_compliant():
30
    t = OperatoryArity.TERNARY.is_compliant([])
31
    assert t == (False, -2)
32
    t = OperatoryArity.TERNARY.is_compliant([True])
33
    assert t == (False, -1)
34
    t = OperatoryArity.TERNARY.is_compliant([True, True])
35
    assert t == (True, 0)
36
    t = OperatoryArity.TERNARY.is_compliant([True, True, True])
37
    assert t == (False, 1)
38
    t = OperatoryArity.TERNARY.is_compliant([True, True, True, True])
39
    assert t == (False, 2)
40
41
42
def test_operator_arity_nary_is_compliant():
43
    t = OperatoryArity.NARY.is_compliant([])
44
    assert t == (False, -1)
45
    t = OperatoryArity.NARY.is_compliant([True])
46
    assert t == (True, 0)
47
    t = OperatoryArity.NARY.is_compliant([True, True])
48
    assert t == (True, 0)
49
    t = OperatoryArity.NARY.is_compliant([True, True, True])
50
    assert t == (True, 0)
51
    t = OperatoryArity.NARY.is_compliant([True, True, True, True])
52
    assert t == (True, 0)
53