Исправление и тестирование Python-алгоритма Push–Relabel

Ссылка на работу
Личный технический проект: переработка исследовательского прототипа алгоритма максимального потока в понятный и проверяемый Python-модуль. Задача: — найти причины ошибочных результатов и зависания; — отделить программную логику от Jupyter Notebook; — добавить единый публичный интерфейс; — обеспечить воспроизводимую проверку результатов. Что сделано: — пять вариантов Push–Relabel приведены к общему API; — исправлены два воспроизводимых дефекта: неверный подсчёт потока при наличии рёбер, входящих в источник, и незавершение global relabeling; — добавлена независимая эталонная реализация Edmonds–Karp; — написаны регрессионные и сравнительные тесты; — подготовлены README и инструкции запуска. Проверяемый результат: — проходят 17 тестов; — пять вариантов сопоставлены с Edmonds–Karp на 70 малых детерминированных графах; — проверены циклы, встречные рёбра, отсутствие пути, несколько маршрутов и другие граничные случаи; — входные данные не изменяются. Технологии: Python, pytest, Jupyter Notebook, Git, GitHub. Кейс показывает, как я работаю с ошибочным или зависающим Python-кодом: локализую причину, исправляю, добавляю регрессионные тесты и оставляю понятный воспроизводимый результат.
https://github.com/tina-ds/PushRelabel