code: def test_param_learning_rate(sample_gb_class, learning_rate):
      est_cls, x, y = sample_gb_class
      model = est_cls(learning_rate=learning_rate)
  
      msg = (
          f"The 'learning_rate' parameter of {est_cls.__name__} must be a float "
          r"in the range \[0\.0, inf\)\. "
          f"Got {learning_rate} instead\\."
      )
  
      with pytest.raises(ValueError, match=msg):
          model.fit(x, y)
  
imports: from contextlib import nullcontext
  from os.path import dirname, join
  import numpy
  from numpy.testing import assert_array_almost_equal, assert_array_equal
  import pandas
  import pytest
  from sklearn.metrics import mean_squared_error
  from sksurv.column import categorical_to_numeric, standardize
  from sksurv.datasets import load_whas500
  from sksurv.ensemble import ComponentwiseGradientBoostingSurvivalAnalysis, GradientBoostingSurvivalAnalysis
  from sksurv.testing import FixtureParameterFactory, assert_cindex_almost_equal
  from sksurv.util import Surv
label_desc: Use image node_id 4 for calling a global function with example usage: test_param_learning_rate(sample_gb_class, learning_rate) without return types