Skip to content

[v636][Python] Fix TF1 Pythonization test for NumPy 2.4.0#20777

Merged
guitargeek merged 2 commits intoroot-project:v6-36-00-patchesfrom
guitargeek:bp_2
Dec 24, 2025
Merged

[v636][Python] Fix TF1 Pythonization test for NumPy 2.4.0#20777
guitargeek merged 2 commits intoroot-project:v6-36-00-patchesfrom
guitargeek:bp_2

Conversation

@guitargeek
Copy link
Copy Markdown
Contributor

Backport of #20775.

The new NumPy 2.4.0 is more strict when implicitly converting 1-element
arrays to scalars. It doesn't do that anymore, causing the TF1
Pythonization tests to fail (see log below).

This actually pointed to a real mistake in setting up the test, where a
2D array was used to define the TFormula parameters while it should be a
1D array.

```txt
 962/3718 Test   root-project#93: pyunittests-bindings-pyroot-pythonizations-pyroot-pyz-tf-pycallables ..............................***Failed    3.05 sec
test_callable (tf_pycallables.TF1.test_callable)
Test function provided as callable ... ok
test_evalpar (tf_pycallables.TF1.test_evalpar)
Test the 2D Numpy array pythonizations for TF1::EvalPar ... ERROR
test_evalpar_dynamic (tf_pycallables.TF1.test_evalpar_dynamic)
Test the 2D NumPy pythonizations with dynamic TF1 data dimensions ... ok
test_fitgauss (tf_pycallables.TF1.test_fitgauss)
Test fitting a histogram to a Python function ... ok
test_identity (tf_pycallables.TF1.test_identity)
Test simple function without parameters ... ok
test_params (tf_pycallables.TF1.test_params)
Test function with parameters ... ok
test_params (tf_pycallables.TF2.test_params)
Test function with parameters ... ok
test_params (tf_pycallables.TF3.test_params)
Test function with parameters ... ok

======================================================================
ERROR: test_evalpar (tf_pycallables.TF1.test_evalpar)
Test the 2D Numpy array pythonizations for TF1::EvalPar
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/github/home/ROOT-CI/src/bindings/pyroot/pythonizations/test/tf_pycallables.py", line 129, in test_evalpar
    expected_value = pyf_tf1_coulomb(x[i, ::2], params)
  File "/github/home/ROOT-CI/src/bindings/pyroot/pythonizations/test/tf_pycallables.py", line 33, in pyf_tf1_coulomb
    return p[1] * x[0] * x[1] / (p[0]**2) * math.exp(-p[2] / p[0])
                                            ~~~~~~~~^^^^^^^^^^^^^^
TypeError: only 0-dimensional arrays can be converted to Python scalars

----------------------------------------------------------------------
Ran 8 tests in 1.469s

FAILED (errors=1)
CMake Error at /github/home/ROOT-CI/src/cmake/modules/RootTestDriver.cmake:232 (message):
  error code: 1

```

(cherry picked from commit d5135f7)
Code-formatting with black to make the ruff linter happy.

(cherry picked from commit e95e721)
@guitargeek guitargeek self-assigned this Dec 23, 2025
@guitargeek guitargeek merged commit 50474cd into root-project:v6-36-00-patches Dec 24, 2025
21 checks passed
@guitargeek guitargeek deleted the bp_2 branch December 24, 2025 00:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant