FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

🐛 [TestRemoval] - Mbpp/287 float ground truth from canonical true division mismatches the documented integer task for 17 large-n tests · Issue #308 · evalplus/evalplus · GitHub

🐛 [TestRemoval] - Mbpp/287 float ground truth from canonical true division mismatches the documented integer task for 17 large-n tests #308

Description

EvalPlus version

0.3.1

Output of running ls ~/.cache/evalplus

92743def42b30b354a30898e4fa33fb0.pkl HumanEvalPlus-v0.1.10.jsonl MbppPlus-v0.2.0.jsonl (Windows cache dir, %LOCALAPPDATA%\evalplus\evalplus\Cache)

Task ID of the programming task

Mbpp/287

Test input

# plus_input index 3 of Mbpp/287 (MBPP+ v0.2.0); 16 more tests of the same shape
(1000000,)

Description

The task documentation states an integer-valued function:

Write a python function takes in an integer n and returns the sum of squares of first n even natural numbers.
assert square_Sum(2) == 20

The canonical solution computes 2 * n * (n + 1) * (2 * n + 1) / 3 with true division, so every stored expected value is a float. For 17 of the 106 plus tests (the n ≈ 10^6 region), that float is not equal to the mathematically exact sum — e.g. for n = 1000000 the stored expected value is 1.333335333334e+18 while the exact sum of squares is 1333335333334000000 (the stored float equals 1333335333334000128, i.e. 128 greater than the exact integer). Verified against MbppPlus.jsonl.gz v0.2.0 by re-executing the canonical solution: 17 of 106 plus tests have int(exact) != stored_float; largest |deviation| observed is 128.

Here is a correct solution but it is incorrectly falsified by the test because it returns the mathematically exact integer:

def square_Sum(n):
    return 2 * n * (n + 1) * (2 * n + 1) // 3

On the 17 affected tests the comparison path in evalplus/eval/__init__.py first fails out == exp (the exact int differs numerically from the imprecise float), then enters the float fallback where assert type(out) == type(exp) rejects int against float before np.allclose can apply. So an implementation matching the documented integer semantics fails these tests, while implementations reproducing the canonical's float rounding pass them. The stored oracle and the documented statement of the task disagree on those inputs; we are reporting the mismatch rather than proposing a specific remedy — though we note tools/mbpp/fix_v020.py shows precedent for repairing canonical solutions in place.

Other context:

We hit this while auditing false positives of base-vs-plus scoring for a paper (https://arxiv.org/abs/2607.11022). In the same audit we saw structurally similar tensions — canonical-derived expected values that penalize alternative correct implementations — on Mbpp/267 (same formula family, odd numbers) and Mbpp/806; happy to provide details on request, but this report is deliberately scoped to Mbpp/287 only.

Other context

No response

Metadata

Metadata

Assignees

No one assigned

    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


    Back | FazBrowse Home | New Git URL