Passed
Pull Request — dev (#32)
by Konstantinos
59:25 queued 55:43
created

test_so_magic   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 59
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 44
dl 0
loc 59
rs 10
c 0
b 0
f 0
wmc 4

4 Functions

Rating   Name   Duplication   Size   Complexity  
A test_somagic_scenario() 0 9 1
A test_subscriptions() 0 15 1
A so_magic_instances() 0 4 1
A test_somagic_objects() 0 21 1
1
import pytest
2
3
4
@pytest.mark.parametrize('train_args', [
5
    ([6, 8, 'toroid', 'hexagonal']),
6
    # ([12, 12, 'toroid', 'rectangular'])
7
])
8
def test_somagic_scenario(train_args, somagic, test_dataset, sample_collaped_json):
9
    attrs = ('width', 'height', 'type', 'grid_type')
10
    som = somagic.map.train(*train_args[:2], maptype=train_args[2], gridtype=train_args[3])
11
    assert som.dataset_name == sample_collaped_json
12
    assert all(parameter == getattr(som, attribute) for attribute, parameter in zip(attrs, train_args))
13
14
15
@pytest.fixture
16
def so_magic_instances():
17
    from so_magic import init_so_magic
18
    return [init_so_magic(), init_so_magic()]
19
20
21
@pytest.mark.parametrize('nb_objects, nb_observers', [
22
    (2, [(1, 1, 1),
23
         (1, 1, 1)]),
24
])
25
def test_somagic_objects(nb_objects, so_magic_instances, nb_observers):
26
    assert id(so_magic_instances[0]) != id(so_magic_instances[1])
27
    assert id(so_magic_instances[0]._data_manager) != id(so_magic_instances[1]._data_manager)
28
    assert id(so_magic_instances[0]._data_manager.engine) != id(so_magic_instances[1]._data_manager.engine)
29
    assert id(so_magic_instances[0]._data_manager.engine.backend) != id(so_magic_instances[1]._data_manager.engine.backend)
30
    assert id(so_magic_instances[0]._data_manager.engine.datapoints_manager) != id(so_magic_instances[1]._data_manager.engine.datapoints_manager)
31
32
    assert id(so_magic_instances[0]._data_manager.engine.backend.datapoints_factory) != id(so_magic_instances[1]._data_manager.engine.backend.datapoints_factory)
33
    assert id(so_magic_instances[0]._data_manager.engine.backend.datapoints_factory.subject) != id(so_magic_instances[1]._data_manager.engine.backend.datapoints_factory.subject)
34
    assert id(so_magic_instances[0]._data_manager.engine.backend.datapoints_factory.subject._observers) != id(so_magic_instances[1]._data_manager.engine.backend.datapoints_factory.subject._observers)
35
36
    assert id(so_magic_instances[0]._data_manager.engine.backend.command_factory) != id(so_magic_instances[1]._data_manager.engine.backend.command_factory)
37
38
    assert so_magic_instances[0]._data_manager.phi_class != so_magic_instances[1]._data_manager.phi_class
39
    assert id(so_magic_instances[0]._data_manager.phi_class) != id(so_magic_instances[1]._data_manager.phi_class)
40
    assert id(so_magic_instances[0]._data_manager.phi_class.subject) != id(so_magic_instances[1]._data_manager.phi_class.subject)
41
    assert id(so_magic_instances[0]._data_manager.phi_class.subject._observers) != id(so_magic_instances[1]._data_manager.phi_class.subject._observers)
42
43
44
def test_subscriptions(so_magic_instances):
45
    s = so_magic_instances[0]
46
    datapoints_fact = s._data_manager.engine.backend.datapoints_factory
47
    cmd_fact = s._data_manager.engine.backend.command_factory
48
    phi_class = s._data_manager.phi_class
49
    nb_observers = (1, 1, 1)
50
    subjects = [datapoints_fact.subject,
51
                cmd_fact.subject,
52
                phi_class.subject
53
                ]
54
55
    assert datapoints_fact.subject._observers[0] == s._data_manager.engine.datapoints_manager
56
    assert cmd_fact.subject._observers[0] == s._data_manager.commands_manager.command.accumulator
57
    assert phi_class.subject._observers[0] == s._data_manager.built_phis
58
    assert all([len(subject._observers) == column for subject, column in zip(subjects, nb_observers)])
59