From ef833533f66fff4f52c54f62684b7d8c29e9f165 Mon Sep 17 00:00:00 2001 From: raj_mathe Date: Sat, 6 Nov 2021 18:21:16 +0100 Subject: [PATCH] =?UTF-8?q?master=20>=20master:=20code=20-=20metrics=20f?= =?UTF-8?q?=C3=BCr=20moves?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/golang/internal/core/metrics/metrics.go | 14 +++++++++ code/golang/internal/setup/setup_display.go | 1 + code/golang/internal/types/types_counter.go | 12 +++++--- code/python/src/core/metrics.py | 32 ++++++++++++++------ code/python/src/setup/display.py | 8 +++-- 5 files changed, 51 insertions(+), 16 deletions(-) diff --git a/code/golang/internal/core/metrics/metrics.go b/code/golang/internal/core/metrics/metrics.go index e1ae241..b3ca821 100644 --- a/code/golang/internal/core/metrics/metrics.go +++ b/code/golang/internal/core/metrics/metrics.go @@ -17,6 +17,7 @@ import ( * ---------------------------------------------------------------- */ var _ctr_time = types.NewCounter() +var _ctr_moves = types.NewCounter() var _ctr_space = types.NewCounter() var _tmr = types.NewTimer() @@ -26,6 +27,7 @@ var _tmr = types.NewTimer() func ResetMetrics() { _ctr_time.Reset() + _ctr_moves.Reset() _ctr_space.Reset() _tmr.Reset() } @@ -42,14 +44,26 @@ func AddTimeCost(options ...int) { _ctr_time.Add(options...) } +func AddMovesCost(options ...int) { + _ctr_moves.Add(options...) +} + func AddSpaceCost(options ...int) { _ctr_space.Add(options...) } +func SetSpaceCost(n int) { + _ctr_space.Set(n) +} + func GetTimeCost() int { return _ctr_time.Size() } +func GetMovesCost() int { + return _ctr_moves.Size() +} + func GetSpaceCost() int { return _ctr_space.Size() } diff --git a/code/golang/internal/setup/setup_display.go b/code/golang/internal/setup/setup_display.go index fb370e6..963a1e5 100644 --- a/code/golang/internal/setup/setup_display.go +++ b/code/golang/internal/setup/setup_display.go @@ -104,6 +104,7 @@ func DisplayMetrics() { // logging.Plain("Dauer der Ausführung: t = \033[1m%[1]v\033[0m", metrics.GetTimeElapsed()) logging.Plain("Dauer der Ausführung: t = \033[1m%[1]v\033[0m", metrics.GetTimeElapsedLongFormat()) logging.Plain("Kosten (Zeit): T(n) = \033[1m%[1]v\033[0m", displayCost(metrics.GetTimeCost())) + logging.Plain("Kosten (#Züge): M(n) = \033[1m%[1]v\033[0m", displayCost(metrics.GetMovesCost())) logging.Plain("Kosten (Platz): S(n) = \033[1m%[1]v\033[0m", displayCost(metrics.GetSpaceCost())) return } diff --git a/code/golang/internal/types/types_counter.go b/code/golang/internal/types/types_counter.go index d149b0b..2da5cc0 100644 --- a/code/golang/internal/types/types_counter.go +++ b/code/golang/internal/types/types_counter.go @@ -39,6 +39,14 @@ func (self Counter) Size() int { return self.nr } +func (self *Counter) Reset() { + self.nr = 0 +} + +func (self *Counter) Set(n int) { + self.nr = n +} + func (self *Counter) Add(options ...int) { n := 1 if len(options) > 0 { @@ -46,7 +54,3 @@ func (self *Counter) Add(options ...int) { } self.nr += n } - -func (self *Counter) Reset() { - self.nr = 0 -} diff --git a/code/python/src/core/metrics.py b/code/python/src/core/metrics.py index 441a988..cd25427 100644 --- a/code/python/src/core/metrics.py +++ b/code/python/src/core/metrics.py @@ -22,24 +22,20 @@ _tmr = None; # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ class Counter(object): - _nr_steps: int; + value: int; def __init__(self): self.reset(); def __str__(self) -> str: - return str(self._nr_steps); - - @property - def numberOfStep(self) -> int: - return self._nr_steps; + return str(self.value); def add(self, n: int = 1): - self._nr_steps += n; + self.value += n; return self; def reset(self): - self._nr_steps = 0; + self.value = 0; return self; # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -86,6 +82,7 @@ class Timer(object): ## Initialisierung: _ctr_time = Counter(); +_ctr_moves = Counter(); _ctr_space = Counter(); _tmr = Timer(); @@ -95,10 +92,12 @@ _tmr = Timer(); def ResetMetrics(): global _ctr_time; + global _ctr_moves; global _ctr_space; global _tmr; _ctr_time.reset(); + _ctr_moves.reset(); _ctr_space.reset(); _tmr.reset(); return; @@ -116,16 +115,29 @@ def AddTimeCost(n: int = 1): _ctr_time.add(n); return; +def AddMovesCost(n: int = 1): + global _ctr_moves; + _ctr_moves.add(n); + return; + def AddSpaceCost(n: int = 1): global _ctr_space; _ctr_space.add(n); return; +def SetSpaceCost(n: int): + global _ctr_space; + _ctr_space.value = n; + return; + def GetTimeCost() -> int: - return _ctr_time.numberOfStep; + return _ctr_time.value; + +def GetMovesCost() -> int: + return _ctr_moves.value; def GetSpaceCost() -> int: - return _ctr_space.numberOfStep; + return _ctr_space.value; def GetTimeElapsed() -> timedelta: global _tmr; diff --git a/code/python/src/setup/display.py b/code/python/src/setup/display.py index cdee9f7..fa5c445 100644 --- a/code/python/src/setup/display.py +++ b/code/python/src/setup/display.py @@ -69,8 +69,9 @@ def DisplayEndOfAlgorithm(*_: Any, **outputs: Any): def DisplayMetrics(): logPlain('Dauer der Ausführung: t = \033[1m{}\033[0m'.format(GetTimeElapsed())); - logPlain('Kosten (Zeit): T(n) = \033[1m{}\033[0m'.format(GetTimeCost())); - logPlain('Kosten (Platz): S(n) = \033[1m{}\033[0m'.format(GetSpaceCost())); + logPlain('Kosten (Zeit): T(n) = \033[1m{}\033[0m'.format(displayCost(GetTimeCost()))); + logPlain('Kosten (#Züge): M(n) = \033[1m{}\033[0m'.format(displayCost(GetMovesCost()))); + logPlain('Kosten (Platz): S(n) = \033[1m{}\033[0m'.format(displayCost(GetSpaceCost()))); return; # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -80,3 +81,6 @@ def DisplayMetrics(): def DisplayBar(n: int = 80): logPlain('+{}+'.format('-'*n)); return; + +def displayCost(cost: int) -> str: + return str(cost) if cost > 0 else '-';