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

tests.test_operator_definition   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 43
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 32
dl 0
loc 43
rs 10
c 0
b 0
f 0
wmc 7
1
from typing import Callable
2
3
from networkx_query.definition import (
4
    NETWORKX_OPERATORS_REGISTERY,
5
    OperatorDefinition,
6
    OperatoryArity,
7
    register_operator,
8
)
9
10
11
def test_operator_definition():
12
    definition = OperatorDefinition(name="test", function=lambda a: a, arity=OperatoryArity.UNARY, alias="alias_test")
13
    assert definition.name == "test"
14
    assert definition.arity == OperatoryArity.UNARY
15
    assert definition.alias == "alias_test"
16
    assert definition.combinator == False
17
    assert not definition.profile
18
    assert isinstance(definition.function, Callable)
19
20
    assert str(definition) == definition.name
21
22
23
def test_register_operator_register_alias():
24
    register_operator(name="test", arity=OperatoryArity.UNARY, alias="alias_test")(lambda a: a)
25
    assert 'test' in NETWORKX_OPERATORS_REGISTERY
26
    assert 'alias_test' in NETWORKX_OPERATORS_REGISTERY
27
28
29
def test_register_operator_register_all_parameters():
30
    register_operator(name="test2", arity=OperatoryArity.UNARY)(lambda a: a)
31
32
    definition = NETWORKX_OPERATORS_REGISTERY['test2']
33
    assert definition.name == "test2"
34
    assert definition.arity == OperatoryArity.UNARY
35
    assert not definition.alias
36
    assert not definition.combinator
37
    assert not definition.profile
38
    assert isinstance(definition.function, Callable)
39
40
    register_operator(name="test3", arity=OperatoryArity.UNARY, combinator=True)(lambda a: a)
41
    definition = NETWORKX_OPERATORS_REGISTERY['test3']
42
    assert definition.combinator
43