Skip to content

Conversation

@guitargeek
Copy link
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)
@github-actions
Copy link

Test Results

    21 files      21 suites   3d 20h 44m 19s ⏱️
 3 710 tests  3 710 ✅ 0 💤 0 ❌
76 055 runs  76 055 ✅ 0 💤 0 ❌

Results for commit efed5b4.

@guitargeek guitargeek merged commit aa63e73 into root-project:v6-38-00-patches Dec 24, 2025
31 checks passed
@guitargeek guitargeek deleted the bp_1 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