gem-graph-client/src/space.py

51 lines
1.4 KiB
Python

import model
sp = model.testmodel.get_states().get_space(0)
size = model.testmodel.get_parameters().spaceparam.get_dimension().get_x()
sites = int(model.testmodel.get_parameters().spaceparam.get_site_multiplicity())
nb_arrows = int(model.testmodel.get_states().get_space(0).get_nb_arrows())
print("\n space size = ", size, " nb de sites par cellule = ", sites,
" nb total de flèches dans l'espace = ", nb_arrows)
print(' | ', end=' ')
# TODO Contrôles de cohérence des données
# condition et arrow
# 1) weight < weight_max (à définir)
# 2) arrow.site < site_multiplicity
# 3) arrow.x < space-param.dimension.x (idem autres axes)
# condition
# 1) parent <= condition.node_id max value (donc deux lectures)
# 2) pas de node sans un node_parent_id
for n in range(0, size + 1):
for s in range(0, sites):
arr = 0
for a in range(0, nb_arrows):
if (
sp.get_arrow(a).get_coord("x") == n
and sp.get_arrow(a).get_site() == s
):
arr = sp.get_arrow(a).get_weight()
if arr > 0:
print(str(arr), end=' ')
else:
print('.', end=' ')
print(' | ', end=' ')
print('\n ' + ' ' * sites * 2, end='')
for k in range(0, size + 1):
if k < 9:
print(k + 1, end=' ' + ' ' * sites * 2)
else:
print(k + 1, end=' ' + ' ' * sites * 2)
print('\n', end = "")