mirror of
https://github.com/pybind/pybind11.git
synced 2026-03-14 20:27:47 +00:00
Fix functional.h bug + introduce test to verify that it is fixed (#4254)
* Illustrate bug in functional.h * style: pre-commit fixes * Make functional casting more robust / add workaround * Make function_record* casting even more robust * See if this fixes PyPy issue * It still fails on PyPy sadly * Do not make new CTOR just yet * Fix test * Add name to ensure correctness * style: pre-commit fixes * Clean up tests + remove ifdef guards * Add comments * Improve comments, error handling, and safety * Fix compile error * Fix magic logic * Extract helper function * Fix func signature * move to local internals * style: pre-commit fixes * Switch to simpler design * style: pre-commit fixes * Move to function_record * style: pre-commit fixes * Switch to internals, update tests and docs * Fix lint * Oops, forgot to resolve last comment * Fix typo * Update in response to comments * Implement suggestion to improve test * Update comment * Simple fixes Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Aaron Gokaslan <aaronGokaslan@gmail.com>
This commit is contained in:
@@ -193,3 +193,16 @@ def test_callback_num_times():
|
||||
if len(rates) > 1:
|
||||
print("Min Mean Max")
|
||||
print(f"{min(rates):6.3f} {sum(rates) / len(rates):6.3f} {max(rates):6.3f}")
|
||||
|
||||
|
||||
def test_custom_func():
|
||||
assert m.custom_function(4) == 36
|
||||
assert m.roundtrip(m.custom_function)(4) == 36
|
||||
|
||||
|
||||
@pytest.mark.skipif(
|
||||
m.custom_function2 is None, reason="Current PYBIND11_INTERNALS_VERSION too low"
|
||||
)
|
||||
def test_custom_func2():
|
||||
assert m.custom_function2(3) == 27
|
||||
assert m.roundtrip(m.custom_function2)(3) == 27
|
||||
|
||||
Reference in New Issue
Block a user