Skip to content

A mark, not the same mark twice - #21

Merged
tannevaled merged 1 commit into
mainfrom
a-mark-not-the-same-mark
Oct 12, 2026
Merged

tannevaled merged 1 commit into
mainfrom
a-mark-not-the-same-mark

Conversation

@tannevaled

Copy link
Copy Markdown
Contributor

The bullet rule asked for one repeated mark, and that was the wrong
question twice over.

it read • • - - as a table of four rows the bullets were not all the same character, and a reader sees two lists there. go-pdfkit/document found this: it could not make a list of what extract had already called a table.
it read a first column of A and A as an ornament because A is one character and it repeated. A label is data. On a 6-page technical paper that silently cost a table.

The question is whether the column carries information.

  • a mark of one or two characters with no letter and no digit does not:
    - carries exactly as little as •;
  • a letter or a digit does: A/B are labels, 1./2. are a numbering
    somebody may want, 90/91 are years. Taking those would be deciding that
    a table of dates is a list.

Measured

The 6-page paper now reports 15 tables where it reported 14, and the extra
one is real. The 213-page bullet-list document is unchanged at 40, which is
the control this rule was written against in the first place.

A spot check of the paper's first page, which is the reason the rule matters:

-- p1 9x4
  | Système      | Configuration réelle          | Prix estimé 2026 | À retenir
  | HGX B300     | 8 boîtiers B300, 2,1 To HB... | 300–500 k$       | seul déployable en salle a...
  | GH200 NVL32  | 32 superpuces GH200, 4,6 T... | ≈1,5–1,9 M$      | génération sortie ; 2 à 3 ...
  ...

A dead guard went with it

seen reported "found no mark at all", and dropEmptyColumns has already
taken away the columns nothing was drawn in — so nothing could reach that
state. The invariant is named where the loop ends instead of being tested
where it cannot happen.

100% of statements, no uncovered blocks, 9 mutations caught.

🤖 Generated with Claude Code

The bullet rule asked for ONE repeated mark, and that was the wrong question
twice over.

  it read "• • - -" as a table of four rows, because the bullets were not all
  the same character -- and a reader sees two lists there. go-pdfkit/document
  found this: it could not make a list of what extract had already called a
  table.

  it read a first column of "A" and "A" as an ornament, because "A" is one
  character and it repeated. A label is data. On a 6-page technical paper that
  silently cost a table; the same paper now reports 15 where it reported 14,
  and the extra one is real.

The question is whether the column carries INFORMATION. A mark of one or two
characters with no letter and no digit in it does not: "-" carries exactly as
little as "•". A letter or a digit does: "A"/"B" are labels, "1."/"2." are a
numbering somebody may want, "90"/"91" are years, and taking those would be
deciding that a table of dates is a list.

The 213-page bullet-list document is unchanged at 40 tables, which is the
control the rule was written against in the first place.

`seen` went with it: dropEmptyColumns has already taken away the columns
nothing was drawn in, so "found no mark at all" was a state nothing could
reach. The invariant is named where the loop ends instead.

100% of statements, no uncovered blocks, 9 mutations caught.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@tannevaled
tannevaled merged commit df1ba7f into main Oct 12, 2026
1 check passed
@tannevaled
tannevaled deleted the a-mark-not-the-same-mark branch October 12, 2026 07:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant