|
1
|
|
|
import pytest |
|
2
|
|
|
|
|
3
|
|
|
|
|
4
|
|
|
@pytest.mark.parametrize('train_args', [ |
|
5
|
|
|
([10, 10, 'toroid', 'hexagonal']), |
|
6
|
|
|
# ([12, 12, 'toroid', 'rectangular']) |
|
7
|
|
|
]) |
|
8
|
|
|
def test_somagic_scenario(train_args, somagic, sample_collaped_json): |
|
9
|
|
|
somagic.load_data(sample_collaped_json, id='test_data') |
|
10
|
|
|
if not getattr(somagic.dataset, 'feature_vectors', None): |
|
11
|
|
|
cmd = somagic._data_manager.command.select_variables |
|
12
|
|
|
cmd.args = [['type', 'flavours']] |
|
13
|
|
|
cmd.execute() |
|
14
|
|
|
# |
|
15
|
|
|
# cmd = somagic._data_manager.command.encode_nominal_scalar |
|
16
|
|
|
# cmd.args = ['type'] |
|
17
|
|
|
# cmd.execute() |
|
18
|
|
|
|
|
19
|
|
|
# cmd = somagic._dataset_manager.command.select_variables |
|
20
|
|
|
# cmd.args = ['type', 'flavours'] |
|
21
|
|
|
# cmd.execute() |
|
22
|
|
|
# som = somagic.map.train(*train_args[:2]) |
|
23
|
|
|
# |
|
24
|
|
|
# attrs = ('height', 'width', 'type', 'grid_type') |
|
25
|
|
|
# |
|
26
|
|
|
# assert all(hasattr(som.som, x) for x in attrs) |
|
27
|
|
|
|
|
28
|
|
|
|
|
29
|
|
|
@pytest.mark.parametrize('nb_objects, nb_observers', [ |
|
30
|
|
|
(2, [(1, 1, 1), |
|
31
|
|
|
(1, 1, 1)]), |
|
32
|
|
|
]) |
|
33
|
|
|
def test_somagic_objects(nb_objects, nb_observers): |
|
34
|
|
|
from green_magic import init_so_magic |
|
35
|
|
|
so_magic_instances = [init_so_magic() for _ in range(nb_objects)] |
|
36
|
|
|
|
|
37
|
|
|
assert id(so_magic_instances[0]._data_manager.backend) != id(so_magic_instances[1]._data_manager.backend) |
|
38
|
|
|
assert id(so_magic_instances[0]._data_manager.backend.engine) != id(so_magic_instances[1]._data_manager.backend.engine) |
|
39
|
|
|
assert id(so_magic_instances[0]._data_manager.backend.datapoints_manager) != id(so_magic_instances[1]._data_manager.backend.datapoints_manager) |
|
40
|
|
|
|
|
41
|
|
|
assert id(so_magic_instances[0]._data_manager.backend.datapoints_factory) != id(so_magic_instances[1]._data_manager.backend.datapoints_factory) |
|
42
|
|
|
assert id(so_magic_instances[0]._data_manager.backend.datapoints_factory.subject) != id(so_magic_instances[1]._data_manager.backend.datapoints_factory.subject) |
|
43
|
|
|
assert id(so_magic_instances[0]._data_manager.backend.datapoints_factory.subject._observers) != id(so_magic_instances[1]._data_manager.backend.datapoints_factory.subject._observers) |
|
44
|
|
|
|
|
45
|
|
|
assert id(so_magic_instances[0]._data_manager.backend.engine.command_factory) != id(so_magic_instances[1]._data_manager.backend.engine.command_factory) |
|
46
|
|
|
|
|
47
|
|
|
assert so_magic_instances[0]._data_manager.phi_class != so_magic_instances[1]._data_manager.phi_class |
|
48
|
|
|
assert id(so_magic_instances[0]._data_manager.phi_class) != id(so_magic_instances[1]._data_manager.phi_class) |
|
49
|
|
|
assert id(so_magic_instances[0]._data_manager.phi_class.subject) != id(so_magic_instances[1]._data_manager.phi_class.subject) |
|
50
|
|
|
assert id(so_magic_instances[0]._data_manager.phi_class.subject._observers) != id(so_magic_instances[1]._data_manager.phi_class.subject._observers) |
|
51
|
|
|
|
|
52
|
|
|
for i, s in enumerate(so_magic_instances): |
|
53
|
|
|
datapoints_fact = s._data_manager.backend.datapoints_factory |
|
54
|
|
|
cmd_fact = s._data_manager.backend.engine.command_factory |
|
55
|
|
|
phi_class = s._data_manager.phi_class |
|
56
|
|
|
|
|
57
|
|
|
subjects = [datapoints_fact.subject, |
|
58
|
|
|
cmd_fact, |
|
59
|
|
|
phi_class.subject |
|
60
|
|
|
] |
|
61
|
|
|
assert len(set([id(x._observers) for x in subjects])) == len(subjects) |
|
62
|
|
|
|
|
63
|
|
|
assert datapoints_fact.subject._observers[0] == s._data_manager.backend.datapoints_manager |
|
64
|
|
|
assert cmd_fact._observers[0] == s._data_manager.commands_manager.command.accumulator |
|
65
|
|
|
assert phi_class.subject._observers[0] == s._data_manager.built_phis |
|
66
|
|
|
assert all([len(subject._observers) == column for subject, column in zip(subjects, nb_observers[i])]) |
|
67
|
|
|
|