2022-03-30 18:00:11 +02:00
|
|
|
# ADS2 - Implementierung in Python #
|
|
|
|
|
2022-04-19 09:02:04 +02:00
|
|
|
Im Ordner [./src/*](src/) findet Module mit Datenstrukturen und Algorithmen.
|
|
|
|
|
|
|
|
Im Ordner [./tests/*](tests/) findet man _unit tests_,
|
|
|
|
die die verschiedenen Datenstrukturen und Algorithmen mit Testfälle belasten.
|
|
|
|
Man kann auch direkt im Code von [./src/main.rs](src/main.rs) aus
|
|
|
|
die Methoden mit Daten ausprobieren.
|
|
|
|
|
|
|
|
## Voraussetzungen ##
|
|
|
|
|
2022-04-19 09:05:31 +02:00
|
|
|
1. Der Python-Compiler **`^3.10.*`** wird benötigt.
|
2022-06-12 10:32:25 +02:00
|
|
|
2. Das **`justfile`**-Tool wird benötigt (siehe <https://github.com/casey/just#installation>).
|
2022-04-19 09:02:04 +02:00
|
|
|
|
2022-06-10 11:50:59 +02:00
|
|
|
## Build -> Test -> Run ##
|
2022-04-19 09:02:04 +02:00
|
|
|
|
|
|
|
In einem IDE in dem Repo zu diesem Ordner navigieren.
|
|
|
|
</br>
|
|
|
|
Eine bash-Konsole aufmachen und folgende Befehle ausführen:
|
|
|
|
|
|
|
|
```bash
|
2022-06-09 18:12:35 +02:00
|
|
|
# Zeige alle Befehle:
|
|
|
|
just
|
2022-06-12 10:32:25 +02:00
|
|
|
# Zur Installation der Requirements (nur und immer nach Änderungen nötig):
|
|
|
|
just build
|
2022-04-19 09:02:04 +02:00
|
|
|
# Zur Ausführung der unit tests:
|
2022-06-12 10:32:25 +02:00
|
|
|
just tests
|
2022-04-19 09:02:04 +02:00
|
|
|
# Zur Ausführung des Programms
|
2022-06-12 10:32:25 +02:00
|
|
|
just run
|
2022-04-19 09:02:04 +02:00
|
|
|
# Zur Bereinigung aller Artefakte
|
2022-06-12 10:32:25 +02:00
|
|
|
just clean
|
2022-04-19 09:02:04 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
Man kann auch mit einem guten Editor/IDE die Tests einzeln ausführen.
|
2022-06-10 11:50:59 +02:00
|
|
|
|
|
|
|
## Testfälle durch Config-Datei ##
|
|
|
|
|
|
|
|
Statt den Code immer anfassen zu müssen, kann man Fälle für die verschiedenen Algorithmen
|
2022-06-10 12:08:31 +02:00
|
|
|
in der **[./assets/commands.yaml](assets/commands.yaml)** erfassen und (mittels `just run`)
|
2022-06-10 11:50:59 +02:00
|
|
|
das Programm ausführen.
|
2022-06-10 12:08:31 +02:00
|
|
|
|
|
|
|
Weitere globale Einstellungen (z. B. über Verbosity, Penalty-Konstanten, usw.) kann man in
|
|
|
|
**[./assets/config.yaml](assets/config.yaml)** einstellen.
|