mirror of
https://github.com/kuhyx/WUT_Computer_Science.git
synced 2026-11-10 20:47:09 +01:00
main
2 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
| a8a2710ebd |
ECOTE and ECRYPT_PROJECT: zero findings, tests still green
kuhy chose the strict branch: no per-file-ignores at all, not even the S101 block that ruff's own docs and the rest of this fleet carry for test code. So 125 test assertions were rewritten to raise instead of assert. Rather than 125 copies of `if x != y: raise AssertionError(...)`, each course grows a small expect module -- expect_equal / expect_in / expect_true / expect_false. That is also strictly better output than a bare assert here: pytest's assertion rewriting does not reach into a helper, so the helper has to print both values, and it does. The rewrite itself went through ast, not a regex, because seven of ECOTE's asserts were wrapped over several lines. Everything else in the two courses is gone as well: - 66 argument and 37 return annotations on the translator, worked out from what each function actually returns rather than stamped on as Any -- `list[str] | str` where a function returns "Error!" or the parsed columns. - 16 prints became logger.error with %-style arguments. The messages still reach stderr with no basicConfig, via logging's last-resort handler, so the translator behaves exactly as before. - Two `open()` calls became Path.open / Path.write_text, six RET504 assign-then-return pairs collapsed, one 380-character expected-HTML literal split into implicitly concatenated pieces (it cannot be wrapped any other way, which is what ISC001 being off is for), and one block of commented-out code deleted. - ECRYPT_PROJECT/__init__.py removed. It made the COURSE directory a package, which nothing imports, and it was the sole cause of `N999 Invalid module name: 'ECRYPT_PROJECT'`; with it gone, sieve is the top-level package and its name is fine. Verified by running both, not by reading: ECOTE 26 tests pass and `python -m translator.main --filename examples/complicated/table1.tex` still writes the same HTML with the same three column-count warnings on stderr; ECRYPT_PROJECT 99 tests pass. Repo-wide: 3,686 findings -> 3,159. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0172dj34FDpao6wsix8ZuCzE |
|||
| a8d873b4fd |
Run all 33 safe courses; fix what that broke
Running one directory (EADS) had already produced four bugs, so all of them
were run. 11 failed. Every one was real -- either in the coursework or in the
harness I had just written -- and the split was roughly even.
Coursework bugs:
- 15 .tex files use Polish ogonek characters with no fontenc, so pdflatex
dies with "Command \k unavailable in encoding OT1". Fixed where it was
actually needed, not blanket-applied.
- BSS had \documentclass{article}[12pt] -- options after the class name,
where they are not options at all.
- SDM's beamer deck had a stray } on an \item, which took out the frame.
- EOOP/Various/currency included "currency2.hpp"; the file is currency.hpp.
- ECRYPT_PROJECT had the SAME stdlib-shadowing bug as ECOTE: a package named
code/. Renamed to sieve/, and its 99 tests now run. With ECOTE's 26 that
is 125 tests that could not execute at all before today.
Harness bugs, which the run is what exposed:
- COURSE_ENTRY pointed at directories for PORR and ECRYPT_PROJECT, so python
looked for __main__.py and reported the wrong problem.
- main.py was auto-picked via find's first result. EARIN has six labs and
six main.py files, so that ran an arbitrary lab and called it the course.
Now only auto-picked when exactly one exists.
- Only the first requirements.txt was installed, which is why EARIN still
died on gymnasium after a venv was created for it. All of them now.
- The notebook probe accepted jupyter being on PATH. This machine's jupyter
is a pipx shim whose interpreter is gone, so "runnable" was a lie; it now
invokes jupyter --version and PBAD/twm_4 report blocked, honestly.
- Nothing ran a course's tests. Where a suite exists it is now the check,
which matters most for ECRYPT_PROJECT, whose program prompts on stdin and
cannot be run headlessly at all.
- Which directory pytest runs from is course-specific and unguessable, so
stubs pass --test-dir: ECOTE needs program/ for imports, ECRYPT_PROJECT
needs sieve/ because its fixtures open a CSV by relative path.
gates/known-incomplete.txt records the one file that genuinely cannot build:
EOOP/Various/set/set.cpp includes set.hpp, which `git log --all` shows has
never existed here. The course supplied it and only the .cpp was submitted.
That is a factual record with a stated check, not a lint allowlist -- and
fabricating the header would be inventing coursework.
Status is now 36 runnable / 5 no-code / 3 blocked.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0172dj34FDpao6wsix8ZuCzE
|