mirror of
https://github.com/kuhyx/testsAndMisc.git
synced 2026-11-11 22:54:01 +01:00
1017 lines down to 148. Six libs: the per-language doc-URL builders (split in two only for the cap), the lookup/dispatch layer, and one per generation phase. The hard part was not the ten functions but the 335-line top-level block, which extract_shell_functions.py cannot move because it only relocates functions. It is now generate_doc_links / generate_anki_cards / generate_llm_prompt, wrapped WITHOUT re-indenting the bodies: five heredocs use quoted terminators, which must stay at column 0. Proof the split is behaviour-preserving: a golden fixture captured before any edit, re-checked after every step. All three outputs -- anki_cards.txt, documentation_links.md, llm_anki_prompt.md -- stay byte-identical by sha256sum, and stdout matches too. Four latent defects surfaced while writing the tests, all fixed: python_doc_url required a $2 it never reads, and get_doc_url has always called it with one argument. That only worked because the entry script runs `set -e` without `-u`, so "$2" silently expanded to empty; any caller with `set -u` aborted. Defaulted, along with three more positionals documented as optional but declared required. The two imports loops hardcoded `head -20` while the other seven honoured TOP_N, so --top was silently ignored for imports. Only one of nine term loops skipped comment lines, so a '#' line in an analysis file became a flashcard whose front was a comment. Introduced and fixed within this change: the comment filter has to run BEFORE `head -n` or comment lines count against the limit, and it needs `|| true`, since grep exits 1 when it filters every line and the callers run under `set -e`. The golden fixture cannot show the last three, because it has no comments and fewer than 20 imports -- which is exactly why they survived. A second fixture with 25 imports and comment lines, at --top 3, emitted 20 imports and two comment cards before, and 3 imports with zero leakage after. 166 assertions across 4 test files. 100% line coverage on study_doc_urls.sh (38/38), study_doc_urls_more.sh (30/30), study_doc_lookup.sh (49/49) and study_gen_llm.sh (54/54). study_gen_docs.sh 93.10% and study_gen_anki.sh 96.15%, where every remaining line is a `} >>"$FILE"` closing a brace group whose output a passing test asserts -- the same kcov attribution artifact recorded for services_hosts.sh. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01F3PzGc75gBcdxP3PkHXGcV |
||
|---|---|---|
| .. | ||
| tests | ||
| analyze_repo_report.sh | ||
| analyze_repo_scan.sh | ||
| analyze_repo_separate.sh | ||
| analyze_repo_symbols.sh | ||
| analyze_repo_tools.sh | ||
| android_commands.sh | ||
| android_device.sh | ||
| android_module.sh | ||
| bl9000_backup.sh | ||
| bl9000_deps.sh | ||
| bl9000_device.sh | ||
| bl9000_magisk.sh | ||
| bl9000_mtkclient.sh | ||
| bl9000_usage.sh | ||
| docs_all.sh | ||
| docs_cpp.sh | ||
| docs_js.sh | ||
| docs_python_keywords.sh | ||
| docs_python.sh | ||
| docs_rust.sh | ||
| download_classify.sh | ||
| download_media.sh | ||
| download_sizes.sh | ||
| exercism_config.sh | ||
| idle_inhibit.sh | ||
| offline_cpp.sh | ||
| offline_index.sh | ||
| offline_js.sh | ||
| offline_python.sh | ||
| offline_rust.sh | ||
| offline_status.sh | ||
| passwordless_config.sh | ||
| repo_study_steps.sh | ||
| sd_card_ops.sh | ||
| steam_api.sh | ||
| steam_credentials.sh | ||
| steam_report.sh | ||
| steam_requirements.sh | ||
| study_doc_lookup.sh | ||
| study_doc_urls_more.sh | ||
| study_doc_urls.sh | ||
| study_gen_anki.sh | ||
| study_gen_docs.sh | ||
| study_gen_llm.sh | ||