Skip to content
This repository was archived by the owner on Jul 29, 2026. It is now read-only.
This repository was archived by the owner on Jul 29, 2026. It is now read-only.

[S2] Six test gaps that leave known bugs undetected in CI #56

Description

@erinepshovel-code

Six specific test gaps were identified during code review. Each gap means a corresponding bug (#47#50) can regress or remain broken without any CI signal.

1. BoneToken.entry round-trip through compress/decompress
test_round_trip_dict checks bone_count matches but does not verify per-token entry fields. Finding #50 (entry={} after decode) is not caught. Add an assertion that token.entry equals the original canon dict after a full compress → decompress cycle.

2. Affix false positives
test_affix_stripping covers true positives ("unhappy" → affix bone). No test verifies that words like "uncle", "unit", "universe" are not classified via the un- prefix. Finding #49 (over-fire) has no coverage. Add a negative test using a word whose stripped residual is not a real stem.

3. Monologue / single-speaker transcripts
No fixture tests a transcript where all turns share the same speaker. The round-builder boundary logic is untested for the degenerate case (no speaker change = no natural round close).

4. SYS/TOOL turn exclusion from round anchoring
core/parsing/round_builder.py excludes SYS/TOOL turns from round-closure; backend/src/edcmbone/parser/turns_rounds.py does not. No test exercises a transcript containing SYS/TOOL turns to verify either parser's behavior, let alone their divergence.

5. Smart-apostrophe input through parser tokenization
Tests/test_backend.py::test_tokenize_ascii_apostrophe_contraction covers stats.py::_WORD_RE but not parser/turns_rounds.py::_WORD_RE. Input containing U+2019 (') contractions is untested through the parser path.

6. normalizer.py no-op replace
Finding #47: .replace("'", "'") is a no-op. No test feeds a smart-quote contraction through normalize_text_for_matching and asserts that the output contains an ASCII apostrophe. The bug is dormant and undetected for any real-world word-processed input.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions