Skip to content

fix: checkMinOverlap() off-by-one at the exact minimum-overlap boundary - #59

Merged
vertesy merged 3 commits into
devfrom
fix/checkminoverlap-off-by-one
Aug 30, 2026
Merged

fix: checkMinOverlap() off-by-one at the exact minimum-overlap boundary#59
vertesy merged 3 commits into
devfrom
fix/checkminoverlap-off-by-one

Conversation

@vertesy

@vertesy vertesy commented Aug 29, 2026

Copy link
Copy Markdown
Owner

What was the bug?

checkMinOverlap()'s own docs say it "checks if the overlap ... is at least a specified percentage" of the shorter vector — but the comparison used strict >:

pass <- overlap_len > required_overlap

What was the impact?

An overlap that exactly equals the required minimum (e.g. exactly 20% with the default min_overlap = 0.2) failed the check and triggered stop()/warning() ("Minimum overlap condition not met"), contradicting the documented "at least" semantics — a boundary-value bug that silently rejects valid input right at the threshold.

The fix

Changed > to >=, matching the documented behavior exactly. This function is not deprecated — it's a normal, actively-documented, exported function.

Testing

With x of length 10 and min_overlap = 0.2 (so required_overlap = exactly 2):

  • overlap_len == 2 (exact boundary): now passes — previously failed.

  • overlap_len == 1 (below boundary): still fails, unchanged.

  • overlap_len == 5 (above boundary): still passes, unchanged.

  • R CMD build + R CMD check: no new NOTEs/WARNINGs/ERRORs vs. the current dev branch (the one remaining ERROR, a missing @export on pU(), is pre-existing and already tracked separately).

  • No .Rd/NAMESPACE change needed (roxygen block unchanged).

  • No testthat/automated tests added, per repo convention.


Generated by Claude Code

The function's own docs say it "checks if the overlap ... is at
least a specified percentage," but the comparison used strict `>`:
pass <- overlap_len > required_overlap
So an overlap that exactly equals the required minimum (e.g. exactly
20% with the default min_overlap = 0.2) failed the check and threw/
warned "Minimum overlap condition not met," contradicting the
documented "at least" semantics.

Changed to `>=`, matching the doc. Not deprecated; this is a normal,
actively-documented, exported function.

Verified with x of length 10 and min_overlap = 0.2 (required overlap
= exactly 2):
- overlap == 2 (exact boundary): now passes (previously failed).
- overlap == 1 (below boundary): still fails, unchanged.
- overlap == 5 (above boundary): still passes, unchanged.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 221bad64cd

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread R/CodeAndRoll2.R
vertesy pushed a commit that referenced this pull request Aug 30, 2026
Per repo convention (AGENTS.md) and reviewer feedback. Distinct from
sibling Batch 2 PRs (#59 -> 2.8.11, #61 -> 2.8.12) bumping from the
same 2.8.9 base, so they stay mergeable in any order.
Per repo convention (AGENTS.md) and reviewer feedback. Distinct from
sibling Batch 2 PRs (#58 -> 2.8.10, #61 -> 2.8.12) bumping from the
same 2.8.9 base, so they stay mergeable in any order.
vertesy pushed a commit that referenced this pull request Aug 30, 2026
Per repo convention (AGENTS.md). Distinct from sibling Batch 2 PRs
(#58 -> 2.8.10, #59 -> 2.8.11) bumping from the same 2.8.9 base, so
they stay mergeable in any order.
@vertesy
vertesy merged commit 05476a3 into dev Aug 30, 2026
@vertesy
vertesy deleted the fix/checkminoverlap-off-by-one branch August 30, 2026 16:17
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.

2 participants