Solver: Mage: Fix node name generator.

scenarios
Pierre-Antoine Rouby 2024-08-09 16:30:07 +02:00
parent 4a333ff988
commit fa9ffccb19
1 changed files with 26 additions and 7 deletions

View File

@ -123,11 +123,15 @@ class Mage(CommandLineSolver):
_l_alph = len(_alph) _l_alph = len(_alph)
_nodes_cnt = 0
_nodes_names = {}
_nodes_views = set()
def get_reach_name(self, reach): def get_reach_name(self, reach):
return f"Reach_{reach.pamhyr_id:>3}".replace(" ", "0") return f"Reach_{reach.pamhyr_id:>3}".replace(" ", "0")
def get_node_name(self, node): def get_node_name(self, node):
"""Generate a 3 char name from node pamhyr_id """Generate a 3 char name for node
Args: Args:
node: The node node: The node
@ -137,18 +141,33 @@ class Mage(CommandLineSolver):
""" """
n = node.pamhyr_id n = node.pamhyr_id
return "".join( if n in self._nodes_names:
list( return self._nodes_names[n]
name = ""
checked_new = False
while not checked_new:
self._nodes_cnt += 1
nc = self._nodes_cnt
name = "".join(
map( map(
lambda i: self._alph[i % self._l_alph], lambda i: self._alph[i % self._l_alph],
[ [
int(n/1000), int(nc / (self._l_alph * self._l_alph)),
int(n/10), int(nc / self._l_alph),
n nc
] ]
) )
) )
)
checked_new = name not in self._nodes_views
self._nodes_views.add(name)
self._nodes_names[n] = name
return name
def cmd_args(self, study): def cmd_args(self, study):
lst = super(Mage, self).cmd_args(study) lst = super(Mage, self).cmd_args(study)