Compare commits
No commits in common. "e8e36113be1dbf00990ae77ca0900e0af668586e" and "8cd99c163250fda39672f4f4e9336c78a6b8364d" have entirely different histories.
e8e36113be
...
8cd99c1632
4
.gitignore
vendored
4
.gitignore
vendored
@ -28,10 +28,6 @@
|
|||||||
!/code/python/**/*.py
|
!/code/python/**/*.py
|
||||||
!/code/golang/**/*.go
|
!/code/golang/**/*.go
|
||||||
!/code/golang/go.mod
|
!/code/golang/go.mod
|
||||||
!/code/golang/assets/HELP
|
|
||||||
!/code/golang/assets/VERSION
|
|
||||||
!/code/golang/assets/LOGO
|
|
||||||
!/code/golang/assets/config.yml
|
|
||||||
!/code/*/requirements
|
!/code/*/requirements
|
||||||
!/code/config.yml
|
!/code/config.yml
|
||||||
## nicht synchronisieren:
|
## nicht synchronisieren:
|
||||||
|
@ -1,11 +0,0 @@
|
|||||||
Gebrauchsanleitung
|
|
||||||
~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
- Version und help:
|
|
||||||
|
|
||||||
ads \033[1mversion\033[0m
|
|
||||||
ads \033[1mhelp\033[0m
|
|
||||||
|
|
||||||
- Um die Algorithmen laufen zu lassen
|
|
||||||
|
|
||||||
ads \033[1mrun\033[0m [\033[1m--debug\033[0m] [\033[1m--config\033[0m=\033[2m<name of config file>\033[0m]
|
|
@ -1,3 +0,0 @@
|
|||||||
+--------------------+
|
|
||||||
| \033[32;1mAlgoDat I\033[0m |
|
|
||||||
+--------------------+
|
|
@ -1 +0,0 @@
|
|||||||
X.Y.Z
|
|
@ -1,7 +0,0 @@
|
|||||||
info:
|
|
||||||
title: "App für ADS1"
|
|
||||||
description: "Interne Configurationsdatei"
|
|
||||||
options:
|
|
||||||
display: true
|
|
||||||
checks: false
|
|
||||||
metrics: true
|
|
@ -64,19 +64,13 @@ func FancyBinarySearch(input_L []int, input_x int) (int, error) {
|
|||||||
do_once := true
|
do_once := true
|
||||||
for do_once {
|
for do_once {
|
||||||
do_once = false
|
do_once = false
|
||||||
|
|
||||||
// Start Message
|
|
||||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||||
|
|
||||||
// Metriken initialisieren
|
|
||||||
metrics.RestartMetrics()
|
metrics.RestartMetrics()
|
||||||
|
|
||||||
// Prechecks:
|
// Prechecks:
|
||||||
if setup.AppConfigPerformChecks() {
|
err = preChecks(input_L, input_x)
|
||||||
err = preChecks(input_L, input_x)
|
if err != nil {
|
||||||
if err != nil {
|
break
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ausführung des Algorithmus:
|
// Ausführung des Algorithmus:
|
||||||
@ -85,20 +79,14 @@ func FancyBinarySearch(input_L []int, input_x int) (int, error) {
|
|||||||
"index": output_index,
|
"index": output_index,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Metriken anzeigen
|
// Letzte Messages:
|
||||||
if setup.AppConfigShowMetrics() {
|
setup.DisplayMetrics()
|
||||||
setup.DisplayMetrics()
|
|
||||||
}
|
|
||||||
|
|
||||||
// End Message
|
|
||||||
setup.DisplayEndOfAlgorithm(outputs)
|
setup.DisplayEndOfAlgorithm(outputs)
|
||||||
|
|
||||||
// Postchecks:
|
// Postchecks:
|
||||||
if setup.AppConfigPerformChecks() {
|
err = postChecks(input_L, input_x, output_index)
|
||||||
err = postChecks(input_L, input_x, output_index)
|
if err != nil {
|
||||||
if err != nil {
|
break
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -66,19 +66,13 @@ func FancyInterpolationSearch(input_L []int, input_x int, input_u int, input_v i
|
|||||||
do_once := true
|
do_once := true
|
||||||
for do_once {
|
for do_once {
|
||||||
do_once = false
|
do_once = false
|
||||||
|
|
||||||
// Start Message
|
|
||||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||||
|
|
||||||
// Metriken initialisieren
|
|
||||||
metrics.RestartMetrics()
|
metrics.RestartMetrics()
|
||||||
|
|
||||||
// Prechecks:
|
// Prechecks:
|
||||||
if setup.AppConfigPerformChecks() {
|
err = preChecks(input_L, input_x, input_u, input_v)
|
||||||
err = preChecks(input_L, input_x, input_u, input_v)
|
if err != nil {
|
||||||
if err != nil {
|
break
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ausführung des Algorithmus:
|
// Ausführung des Algorithmus:
|
||||||
@ -87,20 +81,14 @@ func FancyInterpolationSearch(input_L []int, input_x int, input_u int, input_v i
|
|||||||
"index": output_index,
|
"index": output_index,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Metriken anzeigen
|
// Letzte Messages:
|
||||||
if setup.AppConfigShowMetrics() {
|
setup.DisplayMetrics()
|
||||||
setup.DisplayMetrics()
|
|
||||||
}
|
|
||||||
|
|
||||||
// End Message
|
|
||||||
setup.DisplayEndOfAlgorithm(outputs)
|
setup.DisplayEndOfAlgorithm(outputs)
|
||||||
|
|
||||||
// Postchecks:
|
// Postchecks:
|
||||||
if setup.AppConfigPerformChecks() {
|
err = postChecks(input_L, input_x, output_index)
|
||||||
err = postChecks(input_L, input_x, output_index)
|
if err != nil {
|
||||||
if err != nil {
|
break
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -61,19 +61,13 @@ func FancyFindIthSmallest(input_L []int, input_i int) (int, error) {
|
|||||||
do_once := true
|
do_once := true
|
||||||
for do_once {
|
for do_once {
|
||||||
do_once = false
|
do_once = false
|
||||||
|
|
||||||
// Start Message
|
|
||||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||||
|
|
||||||
// Metriken initialisieren
|
|
||||||
metrics.RestartMetrics()
|
metrics.RestartMetrics()
|
||||||
|
|
||||||
// Prechecks:
|
// Prechecks:
|
||||||
if setup.AppConfigPerformChecks() {
|
err = preChecks(input_L, input_i)
|
||||||
err = preChecks(input_L, input_i)
|
if err != nil {
|
||||||
if err != nil {
|
break
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ausführung des Algorithmus:
|
// Ausführung des Algorithmus:
|
||||||
@ -82,20 +76,14 @@ func FancyFindIthSmallest(input_L []int, input_i int) (int, error) {
|
|||||||
"value": output_value,
|
"value": output_value,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Metriken anzeigen
|
// Letzte Messages:
|
||||||
if setup.AppConfigShowMetrics() {
|
setup.DisplayMetrics()
|
||||||
setup.DisplayMetrics()
|
|
||||||
}
|
|
||||||
|
|
||||||
// End Message
|
|
||||||
setup.DisplayEndOfAlgorithm(outputs)
|
setup.DisplayEndOfAlgorithm(outputs)
|
||||||
|
|
||||||
// Postchecks:
|
// Postchecks:
|
||||||
if setup.AppConfigPerformChecks() {
|
err = postChecks(input_L, input_i, output_value)
|
||||||
err = postChecks(input_L, input_i, output_value)
|
if err != nil {
|
||||||
if err != nil {
|
break
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -121,19 +109,13 @@ func FancyFindIthSmallestDC(input_L []int, input_i int) (int, error) {
|
|||||||
do_once := true
|
do_once := true
|
||||||
for do_once {
|
for do_once {
|
||||||
do_once = false
|
do_once = false
|
||||||
|
|
||||||
// Start Message
|
|
||||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||||
|
|
||||||
// Metriken initialisieren
|
|
||||||
metrics.RestartMetrics()
|
metrics.RestartMetrics()
|
||||||
|
|
||||||
// Prechecks:
|
// Prechecks:
|
||||||
if setup.AppConfigPerformChecks() {
|
err = preChecks(input_L, input_i)
|
||||||
err = preChecks(input_L, input_i)
|
if err != nil {
|
||||||
if err != nil {
|
break
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ausführung des Algorithmus:
|
// Ausführung des Algorithmus:
|
||||||
@ -142,20 +124,14 @@ func FancyFindIthSmallestDC(input_L []int, input_i int) (int, error) {
|
|||||||
"value": output_value,
|
"value": output_value,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Metriken anzeigen
|
// Letzte Messages:
|
||||||
if setup.AppConfigShowMetrics() {
|
setup.DisplayMetrics()
|
||||||
setup.DisplayMetrics()
|
|
||||||
}
|
|
||||||
|
|
||||||
// End Message
|
|
||||||
setup.DisplayEndOfAlgorithm(outputs)
|
setup.DisplayEndOfAlgorithm(outputs)
|
||||||
|
|
||||||
// Postchecks:
|
// Postchecks:
|
||||||
if setup.AppConfigPerformChecks() {
|
err = postChecks(input_L, input_i, output_value)
|
||||||
err = postChecks(input_L, input_i, output_value)
|
if err != nil {
|
||||||
if err != nil {
|
break
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,19 +65,13 @@ func FancyJumpSearchLinear(input_L []int, input_x int, input_m int) (int, error)
|
|||||||
do_once := true
|
do_once := true
|
||||||
for do_once {
|
for do_once {
|
||||||
do_once = false
|
do_once = false
|
||||||
|
|
||||||
// Start Message
|
|
||||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||||
|
|
||||||
// Metriken initialisieren
|
|
||||||
metrics.RestartMetrics()
|
metrics.RestartMetrics()
|
||||||
|
|
||||||
// Prechecks:
|
// Prechecks:
|
||||||
if setup.AppConfigPerformChecks() {
|
err = preChecks(input_L, input_x, input_m)
|
||||||
err = preChecks(input_L, input_x, input_m)
|
if err != nil {
|
||||||
if err != nil {
|
break
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ausführung des Algorithmus:
|
// Ausführung des Algorithmus:
|
||||||
@ -86,20 +80,14 @@ func FancyJumpSearchLinear(input_L []int, input_x int, input_m int) (int, error)
|
|||||||
"index": output_index,
|
"index": output_index,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Metriken anzeigen
|
// Letzte Messages:
|
||||||
if setup.AppConfigShowMetrics() {
|
setup.DisplayMetrics()
|
||||||
setup.DisplayMetrics()
|
|
||||||
}
|
|
||||||
|
|
||||||
// End Message
|
|
||||||
setup.DisplayEndOfAlgorithm(outputs)
|
setup.DisplayEndOfAlgorithm(outputs)
|
||||||
|
|
||||||
// Postchecks:
|
// Postchecks:
|
||||||
if setup.AppConfigPerformChecks() {
|
err = postChecks(input_L, input_x, output_index)
|
||||||
err = postChecks(input_L, input_x, output_index)
|
if err != nil {
|
||||||
if err != nil {
|
break
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -125,19 +113,13 @@ func FancyJumpSearchExponentiell(input_L []int, input_x int) (int, error) {
|
|||||||
do_once := true
|
do_once := true
|
||||||
for do_once {
|
for do_once {
|
||||||
do_once = false
|
do_once = false
|
||||||
|
|
||||||
// Start Message
|
|
||||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||||
|
|
||||||
// Metriken initialisieren
|
|
||||||
metrics.RestartMetrics()
|
metrics.RestartMetrics()
|
||||||
|
|
||||||
// Prechecks:
|
// Prechecks:
|
||||||
if setup.AppConfigPerformChecks() {
|
err = preChecks(input_L, input_x)
|
||||||
err = preChecks(input_L, input_x)
|
if err != nil {
|
||||||
if err != nil {
|
break
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ausführung des Algorithmus:
|
// Ausführung des Algorithmus:
|
||||||
@ -146,20 +128,14 @@ func FancyJumpSearchExponentiell(input_L []int, input_x int) (int, error) {
|
|||||||
"index": output_index,
|
"index": output_index,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Metriken anzeigen
|
// Letzte Messages:
|
||||||
if setup.AppConfigShowMetrics() {
|
setup.DisplayMetrics()
|
||||||
setup.DisplayMetrics()
|
|
||||||
}
|
|
||||||
|
|
||||||
// End Message
|
|
||||||
setup.DisplayEndOfAlgorithm(outputs)
|
setup.DisplayEndOfAlgorithm(outputs)
|
||||||
|
|
||||||
// Postchecks:
|
// Postchecks:
|
||||||
if setup.AppConfigPerformChecks() {
|
err = postChecks(input_L, input_x, output_index)
|
||||||
err = postChecks(input_L, input_x, output_index)
|
if err != nil {
|
||||||
if err != nil {
|
break
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -59,19 +59,13 @@ func FancyFindPoison(input_L []int) (int, error) {
|
|||||||
do_once := true
|
do_once := true
|
||||||
for do_once {
|
for do_once {
|
||||||
do_once = false
|
do_once = false
|
||||||
|
|
||||||
// Start Message
|
|
||||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||||
|
|
||||||
// Metriken initialisieren
|
|
||||||
metrics.RestartMetrics()
|
metrics.RestartMetrics()
|
||||||
|
|
||||||
// Prechecks:
|
// Prechecks:
|
||||||
if setup.AppConfigPerformChecks() {
|
err = preChecks(input_L)
|
||||||
err = preChecks(input_L)
|
if err != nil {
|
||||||
if err != nil {
|
break
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ausführung des Algorithmus:
|
// Ausführung des Algorithmus:
|
||||||
@ -80,20 +74,14 @@ func FancyFindPoison(input_L []int) (int, error) {
|
|||||||
"index": output_index,
|
"index": output_index,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Metriken anzeigen
|
// Letzte Messages:
|
||||||
if setup.AppConfigShowMetrics() {
|
setup.DisplayMetrics()
|
||||||
setup.DisplayMetrics()
|
|
||||||
}
|
|
||||||
|
|
||||||
// End Message
|
|
||||||
setup.DisplayEndOfAlgorithm(outputs)
|
setup.DisplayEndOfAlgorithm(outputs)
|
||||||
|
|
||||||
// Postchecks:
|
// Postchecks:
|
||||||
if setup.AppConfigPerformChecks() {
|
err = postChecks(input_L, output_index)
|
||||||
err = postChecks(input_L, output_index)
|
if err != nil {
|
||||||
if err != nil {
|
break
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,19 +106,13 @@ func FancyFindPoisonFast(input_L []int) (int, error) {
|
|||||||
do_once := true
|
do_once := true
|
||||||
for do_once {
|
for do_once {
|
||||||
do_once = false
|
do_once = false
|
||||||
|
|
||||||
// Start Message
|
|
||||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||||
|
|
||||||
// Metriken initialisieren
|
|
||||||
metrics.RestartMetrics()
|
metrics.RestartMetrics()
|
||||||
|
|
||||||
// Prechecks:
|
// Prechecks:
|
||||||
if setup.AppConfigPerformChecks() {
|
err = preChecks(input_L)
|
||||||
err = preChecks(input_L)
|
if err != nil {
|
||||||
if err != nil {
|
break
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ausführung des Algorithmus:
|
// Ausführung des Algorithmus:
|
||||||
@ -139,20 +121,14 @@ func FancyFindPoisonFast(input_L []int) (int, error) {
|
|||||||
"index": output_index,
|
"index": output_index,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Metriken anzeigen
|
// Letzte Messages:
|
||||||
if setup.AppConfigShowMetrics() {
|
setup.DisplayMetrics()
|
||||||
setup.DisplayMetrics()
|
|
||||||
}
|
|
||||||
|
|
||||||
// End Message
|
|
||||||
setup.DisplayEndOfAlgorithm(outputs)
|
setup.DisplayEndOfAlgorithm(outputs)
|
||||||
|
|
||||||
// Postchecks:
|
// Postchecks:
|
||||||
if setup.AppConfigPerformChecks() {
|
err = postChecks(input_L, output_index)
|
||||||
err = postChecks(input_L, output_index)
|
if err != nil {
|
||||||
if err != nil {
|
break
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,19 +62,13 @@ func FancySequentialSearch(input_L []int, input_x int) (int, error) {
|
|||||||
do_once := true
|
do_once := true
|
||||||
for do_once {
|
for do_once {
|
||||||
do_once = false
|
do_once = false
|
||||||
|
|
||||||
// Start Message
|
|
||||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||||
|
|
||||||
// Metriken initialisieren
|
|
||||||
metrics.RestartMetrics()
|
metrics.RestartMetrics()
|
||||||
|
|
||||||
// Prechecks:
|
// Prechecks:
|
||||||
if setup.AppConfigPerformChecks() {
|
err = preChecks(input_L, input_x)
|
||||||
err = preChecks(input_L, input_x)
|
if err != nil {
|
||||||
if err != nil {
|
break
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ausführung des Algorithmus:
|
// Ausführung des Algorithmus:
|
||||||
@ -83,20 +77,14 @@ func FancySequentialSearch(input_L []int, input_x int) (int, error) {
|
|||||||
"index": output_index,
|
"index": output_index,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Metriken anzeigen
|
// Letzte Messages:
|
||||||
if setup.AppConfigShowMetrics() {
|
setup.DisplayMetrics()
|
||||||
setup.DisplayMetrics()
|
|
||||||
}
|
|
||||||
|
|
||||||
// End Message
|
|
||||||
setup.DisplayEndOfAlgorithm(outputs)
|
setup.DisplayEndOfAlgorithm(outputs)
|
||||||
|
|
||||||
// Postchecks:
|
// Postchecks:
|
||||||
if setup.AppConfigPerformChecks() {
|
err = postChecks(input_L, input_x, output_index)
|
||||||
err = postChecks(input_L, input_x, output_index)
|
if err != nil {
|
||||||
if err != nil {
|
break
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,19 +53,13 @@ func FancyMaxSubSum(input_L []int) (int, int, int, error) {
|
|||||||
do_once := true
|
do_once := true
|
||||||
for do_once {
|
for do_once {
|
||||||
do_once = false
|
do_once = false
|
||||||
|
|
||||||
// Start Message
|
|
||||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||||
|
|
||||||
// Metriken initialisieren
|
|
||||||
metrics.RestartMetrics()
|
metrics.RestartMetrics()
|
||||||
|
|
||||||
// Prechecks:
|
// Prechecks:
|
||||||
if setup.AppConfigPerformChecks() {
|
err = preChecks(input_L)
|
||||||
err = preChecks(input_L)
|
if err != nil {
|
||||||
if err != nil {
|
break
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ausführung des Algorithmus:
|
// Ausführung des Algorithmus:
|
||||||
@ -76,20 +70,14 @@ func FancyMaxSubSum(input_L []int) (int, int, int, error) {
|
|||||||
"index_to": output_indexTo,
|
"index_to": output_indexTo,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Metriken anzeigen
|
// Letzte Messages:
|
||||||
if setup.AppConfigShowMetrics() {
|
setup.DisplayMetrics()
|
||||||
setup.DisplayMetrics()
|
|
||||||
}
|
|
||||||
|
|
||||||
// End Message
|
|
||||||
setup.DisplayEndOfAlgorithm(outputs)
|
setup.DisplayEndOfAlgorithm(outputs)
|
||||||
|
|
||||||
// Postchecks:
|
// Postchecks:
|
||||||
if setup.AppConfigPerformChecks() {
|
err = postChecks(input_L, output_maxSum, output_indexFrom, output_indexTo)
|
||||||
err = postChecks(input_L, output_maxSum, output_indexFrom, output_indexTo)
|
if err != nil {
|
||||||
if err != nil {
|
break
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -116,19 +104,13 @@ func FancyMaxSubSumDC(input_L []int) (int, int, int, error) {
|
|||||||
do_once := true
|
do_once := true
|
||||||
for do_once {
|
for do_once {
|
||||||
do_once = false
|
do_once = false
|
||||||
|
|
||||||
// Start Message
|
|
||||||
setup.DisplayStartOfAlgorithm(name, inputs)
|
setup.DisplayStartOfAlgorithm(name, inputs)
|
||||||
|
|
||||||
// Metriken initialisieren
|
|
||||||
metrics.RestartMetrics()
|
metrics.RestartMetrics()
|
||||||
|
|
||||||
// Prechecks:
|
// Prechecks:
|
||||||
if setup.AppConfigPerformChecks() {
|
err = preChecks(input_L)
|
||||||
err = preChecks(input_L)
|
if err != nil {
|
||||||
if err != nil {
|
break
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ausführung des Algorithmus:
|
// Ausführung des Algorithmus:
|
||||||
@ -139,20 +121,14 @@ func FancyMaxSubSumDC(input_L []int) (int, int, int, error) {
|
|||||||
"index_to": output_indexTo,
|
"index_to": output_indexTo,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Metriken anzeigen
|
// Letzte Messages:
|
||||||
if setup.AppConfigShowMetrics() {
|
setup.DisplayMetrics()
|
||||||
setup.DisplayMetrics()
|
|
||||||
}
|
|
||||||
|
|
||||||
// End Message
|
|
||||||
setup.DisplayEndOfAlgorithm(outputs)
|
setup.DisplayEndOfAlgorithm(outputs)
|
||||||
|
|
||||||
// Postchecks:
|
// Postchecks:
|
||||||
if setup.AppConfigPerformChecks() {
|
err = postChecks(input_L, output_maxSum, output_indexFrom, output_indexTo)
|
||||||
err = postChecks(input_L, output_maxSum, output_indexFrom, output_indexTo)
|
if err != nil {
|
||||||
if err != nil {
|
break
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -94,17 +94,3 @@ func FormatTextBlockAsList(text string, options ...bool) []string {
|
|||||||
func StripAnsi(text string) string {
|
func StripAnsi(text string) string {
|
||||||
return re.Sub(`\x1b[^m]*m`, ``, text)
|
return re.Sub(`\x1b[^m]*m`, ``, text)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------- *
|
|
||||||
* METHODS string -> bool
|
|
||||||
* ---------------------------------------------------------------- */
|
|
||||||
|
|
||||||
func IsTrue(text string) bool {
|
|
||||||
text = strings.TrimSpace(text)
|
|
||||||
return re.Matches(`(?i)(^(true|t|yes|y|1|\+|\+1)$)`, text)
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsFalse(text string) bool {
|
|
||||||
text = strings.TrimSpace(text)
|
|
||||||
return re.Matches(`(?i)(^(false|f|no|n|0|-|-1)$)`, text)
|
|
||||||
}
|
|
||||||
|
@ -7,7 +7,6 @@ package endpoints
|
|||||||
import (
|
import (
|
||||||
"ads/internal/core/logging"
|
"ads/internal/core/logging"
|
||||||
"ads/internal/setup"
|
"ads/internal/setup"
|
||||||
"ads/internal/setup/cli"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
/* ---------------------------------------------------------------- *
|
/* ---------------------------------------------------------------- *
|
||||||
@ -25,12 +24,11 @@ func Version() {
|
|||||||
|
|
||||||
func Help() {
|
func Help() {
|
||||||
logging.SetForce(true)
|
logging.SetForce(true)
|
||||||
cli.ParseCli([]string{}) // <- generiere leere Instanz für Parser, um voll Hilfsanleitug zu zeigen
|
|
||||||
logging.LogPlain(
|
logging.LogPlain(
|
||||||
"",
|
"",
|
||||||
setup.Logo(),
|
setup.Logo(),
|
||||||
// setup.Help(),
|
// cli.Parser.Usage(nil),
|
||||||
cli.Parser.Usage(nil),
|
setup.Help(),
|
||||||
"",
|
"",
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -26,13 +26,6 @@ var optionsQuiet = argparse.Options{
|
|||||||
Default: false,
|
Default: false,
|
||||||
}
|
}
|
||||||
|
|
||||||
var optionsChecks = argparse.Options{
|
|
||||||
Help: "Ob vor und nach Ausführung von Algorithmen Checks auf Inputs/Outputs ausgeführt werden sollen.",
|
|
||||||
Required: false,
|
|
||||||
// NOTE: no `Boolean` option available!
|
|
||||||
Default: "false",
|
|
||||||
}
|
|
||||||
|
|
||||||
var optionsDebug = argparse.Options{
|
var optionsDebug = argparse.Options{
|
||||||
Help: "Blendet die Debugging-Befehle ein.",
|
Help: "Blendet die Debugging-Befehle ein.",
|
||||||
Required: false,
|
Required: false,
|
||||||
@ -40,7 +33,7 @@ var optionsDebug = argparse.Options{
|
|||||||
}
|
}
|
||||||
|
|
||||||
var optionsColour = argparse.Options{
|
var optionsColour = argparse.Options{
|
||||||
Help: "Ob Logging färblich angezeigt wird.",
|
Help: "Ob Logging färblich angezeigt wird (default=true).",
|
||||||
Required: false,
|
Required: false,
|
||||||
// NOTE: no `Boolean` option available!
|
// NOTE: no `Boolean` option available!
|
||||||
Default: "true",
|
Default: "true",
|
||||||
@ -65,7 +58,6 @@ func ParseCli(args []string) (*types.CliArguments, error) {
|
|||||||
Run: Parser.NewCommand("run", "Ruft Endpunkt auf, der die Algorithmen laufen lässt."),
|
Run: Parser.NewCommand("run", "Ruft Endpunkt auf, der die Algorithmen laufen lässt."),
|
||||||
Quiet: Parser.Flag("q", "quiet", &optionsQuiet),
|
Quiet: Parser.Flag("q", "quiet", &optionsQuiet),
|
||||||
Debug: Parser.Flag("", "debug", &optionsDebug),
|
Debug: Parser.Flag("", "debug", &optionsDebug),
|
||||||
Checks: Parser.String("", "checks", &optionsChecks),
|
|
||||||
Colour: Parser.String("", "colour", &optionsColour),
|
Colour: Parser.String("", "colour", &optionsColour),
|
||||||
ConfigFile: Parser.String("", "config", &optionsConfigFile),
|
ConfigFile: Parser.String("", "config", &optionsConfigFile),
|
||||||
}
|
}
|
||||||
|
@ -1,40 +0,0 @@
|
|||||||
package setup
|
|
||||||
|
|
||||||
/* ---------------------------------------------------------------- *
|
|
||||||
* IMPORTS
|
|
||||||
* ---------------------------------------------------------------- */
|
|
||||||
|
|
||||||
import (
|
|
||||||
"ads/internal/types"
|
|
||||||
|
|
||||||
"gopkg.in/yaml.v3"
|
|
||||||
)
|
|
||||||
|
|
||||||
/* ---------------------------------------------------------------- *
|
|
||||||
* GLOBAL CONSTANTS
|
|
||||||
* ---------------------------------------------------------------- */
|
|
||||||
|
|
||||||
var AppConfig = types.AppConfig{}
|
|
||||||
|
|
||||||
/* ---------------------------------------------------------------- *
|
|
||||||
* METHODS
|
|
||||||
* ---------------------------------------------------------------- */
|
|
||||||
|
|
||||||
// Extrahiert Inhalte einer YAML Config und parset dies als Struktur
|
|
||||||
func AppConfigInitialise() error {
|
|
||||||
contents := AppConfigYaml()
|
|
||||||
err := yaml.Unmarshal([]byte(contents), &AppConfig)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
func AppConfigFancyMode() bool {
|
|
||||||
return AppConfig.Options.Display
|
|
||||||
}
|
|
||||||
|
|
||||||
func AppConfigShowMetrics() bool {
|
|
||||||
return AppConfig.Options.Metrics
|
|
||||||
}
|
|
||||||
|
|
||||||
func AppConfigPerformChecks() bool {
|
|
||||||
return AppConfig.Options.Checks
|
|
||||||
}
|
|
@ -54,7 +54,3 @@ func Logo() string {
|
|||||||
func Version() string {
|
func Version() string {
|
||||||
return strings.Trim(ReadAsset("version"), "\n")
|
return strings.Trim(ReadAsset("version"), "\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
func AppConfigYaml() string {
|
|
||||||
return strings.Trim(ReadAsset("appconfig"), "\n")
|
|
||||||
}
|
|
||||||
|
@ -1,27 +0,0 @@
|
|||||||
package types
|
|
||||||
|
|
||||||
/* ---------------------------------------------------------------- *
|
|
||||||
* IMPORTS
|
|
||||||
* ---------------------------------------------------------------- */
|
|
||||||
|
|
||||||
//
|
|
||||||
|
|
||||||
/* ---------------------------------------------------------------- *
|
|
||||||
* YAML SCHEMES
|
|
||||||
* ---------------------------------------------------------------- */
|
|
||||||
|
|
||||||
type AppConfig struct {
|
|
||||||
Info *AppConfigInfo `yaml:"info"`
|
|
||||||
Options *AppConfigOptions `yaml:"options"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type AppConfigInfo struct {
|
|
||||||
Title *string `yaml:"title"`
|
|
||||||
Description *string `yaml:"description"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type AppConfigOptions struct {
|
|
||||||
Display bool `yaml:"display"`
|
|
||||||
Checks bool `yaml:"checks"`
|
|
||||||
Metrics bool `yaml:"metrics"`
|
|
||||||
}
|
|
@ -5,9 +5,11 @@ package types
|
|||||||
* ---------------------------------------------------------------- */
|
* ---------------------------------------------------------------- */
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"strings"
|
||||||
|
|
||||||
"github.com/akamensky/argparse"
|
"github.com/akamensky/argparse"
|
||||||
|
|
||||||
"ads/internal/core/utils"
|
"ads/pkg/re"
|
||||||
)
|
)
|
||||||
|
|
||||||
/* ---------------------------------------------------------------- *
|
/* ---------------------------------------------------------------- *
|
||||||
@ -20,7 +22,6 @@ type CliArguments struct {
|
|||||||
Run *argparse.Command
|
Run *argparse.Command
|
||||||
Quiet *bool
|
Quiet *bool
|
||||||
Debug *bool
|
Debug *bool
|
||||||
Checks *string
|
|
||||||
Colour *string
|
Colour *string
|
||||||
ConfigFile *string
|
ConfigFile *string
|
||||||
}
|
}
|
||||||
@ -29,22 +30,16 @@ type CliArguments struct {
|
|||||||
* METHODS convert string option to boolean
|
* METHODS convert string option to boolean
|
||||||
* ---------------------------------------------------------------- */
|
* ---------------------------------------------------------------- */
|
||||||
|
|
||||||
func (arguments CliArguments) QuietModeOn() bool {
|
func IsTrue(text string) bool {
|
||||||
return *arguments.Quiet
|
text = strings.TrimSpace(text)
|
||||||
|
return re.Matches(`(?i)(^(true|t|yes|y|1|\+|\+1)$)`, text)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (arguments CliArguments) DebugModeOn() bool {
|
func IsFalse(text string) bool {
|
||||||
return *arguments.Debug
|
text = strings.TrimSpace(text)
|
||||||
|
return re.Matches(`(?i)(^(false|f|no|n|0|-|-1)$)`, text)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (arguments CliArguments) ShowChecks() bool {
|
func (arguments *CliArguments) ShowColour() bool {
|
||||||
return !utils.IsFalse(*arguments.Checks)
|
return !IsFalse(*arguments.Colour)
|
||||||
}
|
|
||||||
|
|
||||||
func (arguments CliArguments) ShowColour() bool {
|
|
||||||
return !utils.IsFalse(*arguments.Colour)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (arguments CliArguments) GetConfigFile() string {
|
|
||||||
return *arguments.ConfigFile
|
|
||||||
}
|
}
|
||||||
|
@ -24,10 +24,9 @@ var (
|
|||||||
//go:embed assets/*
|
//go:embed assets/*
|
||||||
res embed.FS
|
res embed.FS
|
||||||
assets = map[string]string{
|
assets = map[string]string{
|
||||||
"appconfig": "assets/config.yml",
|
"version": "assets/VERSION",
|
||||||
"version": "assets/VERSION",
|
"logo": "assets/LOGO",
|
||||||
"logo": "assets/LOGO",
|
"help": "assets/HELP",
|
||||||
"help": "assets/HELP",
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -39,34 +38,25 @@ func main() {
|
|||||||
var err error
|
var err error
|
||||||
var arguments *types.CliArguments
|
var arguments *types.CliArguments
|
||||||
|
|
||||||
// assets festlegen
|
// set assets
|
||||||
setup.Res = res
|
setup.Res = res
|
||||||
setup.Assets = assets
|
setup.Assets = assets
|
||||||
|
|
||||||
// cli arguments parsen
|
// parse cli arguments
|
||||||
arguments, err = cli.ParseCli(os.Args)
|
arguments, err = cli.ParseCli(os.Args)
|
||||||
|
|
||||||
// initialisiere basic optionen wie Logging
|
// initialise logging options
|
||||||
if err == nil {
|
if err == nil {
|
||||||
logging.SetQuietMode(arguments.QuietModeOn())
|
logging.SetQuietMode(*arguments.Quiet)
|
||||||
logging.SetDebugMode(arguments.DebugModeOn())
|
logging.SetDebugMode(*arguments.Debug)
|
||||||
logging.SetAnsiMode(arguments.ShowColour())
|
logging.SetAnsiMode(arguments.ShowColour())
|
||||||
}
|
}
|
||||||
|
|
||||||
// app config (intern) intialisieren
|
|
||||||
if err == nil {
|
|
||||||
err = setup.AppConfigInitialise()
|
|
||||||
}
|
|
||||||
|
|
||||||
if err == nil {
|
|
||||||
setup.AppConfig.Options.Checks = arguments.ShowChecks()
|
|
||||||
}
|
|
||||||
|
|
||||||
if err == nil {
|
if err == nil {
|
||||||
if arguments.Version.Happened() {
|
if arguments.Version.Happened() {
|
||||||
endpoints.Version()
|
endpoints.Version()
|
||||||
} else if arguments.Run.Happened() {
|
} else if arguments.Run.Happened() {
|
||||||
err = endpoints.Run(arguments.GetConfigFile())
|
err = endpoints.Run(*arguments.ConfigFile)
|
||||||
} else { // } else if arguments.Help.Happened() {
|
} else { // } else if arguments.Help.Happened() {
|
||||||
endpoints.Help()
|
endpoints.Help()
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user