Go to file
Krzysztof kuhy Rudnicki 42007d56e4 PORR runs in 28s, and three checks so the next pass cannot repeat my mistakes
PORR was the last course whose `run` did not work. Four measurements, not
guesses, explain why -- and none of them is the matrix size everyone assumes:

  ProcessingType.PROCESSES   20.9s at n=2, 32.8s at n=5, 78.2s at n=10. That
                             is process-pool setup PER TEST, and it grows.
  matrix_type poli3          densifies a sparse .mat into a 2.3 GB npz cache
                             (nemeth12: 723 MB) -- over the 2G ceiling before
                             any solving happens.
  n=10000                    800 MB matrix, and np.linalg.solve wants a copy.
  n=5000                     spd_5000.npz was a Git LFS pointer whose object
                             404s on GitHub, so it regenerates from scratch.

Remove those and what is left still exercises the whole Richardson
implementation at every size that fits: 18 tests, 28 seconds through the
harness, exit 0. The submitted parameter set is one documented environment
variable away. `main.py` now propagates pytest's status (verified: exit 5 when
nothing is collected) -- it discarded it before, so `run` could not tell a
passing suite from a failing one.

The rest of this commit is scripts/check_refactor_safety.py, which exists
because three regressions got past both ruff and a smoke run during this
campaign, and I would rather they could not get past the next one:

  --signatures      diffs two trees function by function, parameter by
                    parameter, default by default. This is what found the 22
                    EARIN functions whose defaults an annotation pass silently
                    dropped.
  --logging         a module with a __main__ guard that logs at INFO must call
                    basicConfig, or it prints nothing at all. Found two more
                    in PORR just now.
  --print-keywords  refuses to let an automated rewrite near print(x, end="")
                    or print(x, file=sys.stderr); losing those turns a
                    rendered board into one glyph per line, or silently moves
                    error output onto stdout.

All three pass on the whole archive. Also in here: 12 latent TypeErrors mypy
found in EARIN that ruff could not -- call sites still passing positionally to
parameters this campaign had made keyword-only, plus one caller of a function
whose argument I had removed. Every one would have raised at runtime.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0172dj34FDpao6wsix8ZuCzE
2026-08-28 20:50:46 +02:00
.github/workflows Gate the invariants, fix ECOTE's unrunnable tests, contain build output 2026-08-28 18:43:13 +02:00
.vscode Merge branch 'main' of https://github.com/kuhyx/WUT_Computer_Science 2025-04-21 17:21:13 +02:00
gates Hold the coursework to the same lint bar as the tooling 2026-08-28 19:53:04 +02:00
NotProgramming EARIN: zero findings, verified against byte-identical program output 2026-08-28 20:39:53 +02:00
Programming PORR runs in 28s, and three checks so the next pass cannot repeat my mistakes 2026-08-28 20:50:46 +02:00
scripts PORR runs in 28s, and three checks so the next pass cannot repeat my mistakes 2026-08-28 20:50:46 +02:00
.binary-allowlist Gate the invariants, fix ECOTE's unrunnable tests, contain build output 2026-08-28 18:43:13 +02:00
.gitignore Run all 33 safe courses; fix what that broke 2026-08-28 18:52:31 +02:00
.pre-commit-config.yaml Gate the invariants, fix ECOTE's unrunnable tests, contain build output 2026-08-28 18:43:13 +02:00
CLAUDE.md ECOTE and ECRYPT_PROJECT: zero findings, tests still green 2026-08-28 20:03:01 +02:00
DOCS-runnability.md Hold the coursework to the same lint bar as the tooling 2026-08-28 19:53:04 +02:00
install.sh Add CI, install.sh and the run.sh harness 2026-08-28 18:26:10 +02:00
pyproject.toml Hold the coursework to the same lint bar as the tooling 2026-08-28 19:53:04 +02:00
README.md Revise README to reflect group project inclusion 2026-02-06 22:23:55 +01:00
run.sh Hold the coursework to the same lint bar as the tooling 2026-08-28 19:53:04 +02:00
TODO-file-length-250.md Declare vendored subtrees and park the data-txt cap decision 2026-08-28 17:31:30 +02:00
TODO-refactor-remaining.md Cap run.sh run at 2G RAM and 2 cores 2026-08-28 19:05:24 +02:00

WUT_Computer_Science

This repository aims to consolidate every single project I did solo during my Computer Science course on Warsaw University of Technology
It does not include projects I did in groups like:
EARIN
EDABA
ECRYPT
EOPSY

Thanks to some git magic this repo now CONTAINS all the group projects alongside with all proper contributors