code: def test_chebval(self):
      # check empty input
      assert_equal(cheb.chebval([], [1]).size, 0)
  
      # check normal input)
      x = np.linspace(-1, 1)
      y = [polyval(x, c) for c in Tlist]
      for i in range(10):
          msg = f"At i={i}"
          tgt = y[i]
          res = cheb.chebval(x, [0] * i + [1])
          assert_almost_equal(res, tgt, err_msg=msg)
  
      # check that shape is preserved
      for i in range(3):
          dims = [2] * i
          x = np.zeros(dims)
          assert_equal(cheb.chebval(x, [1]).shape, dims)
          assert_equal(cheb.chebval(x, [1, 0]).shape, dims)
          assert_equal(cheb.chebval(x, [1, 0, 0]).shape, dims)
  
imports: from functools import reduce
  import numpy
  import numpy.polynomial.chebyshev
  from numpy.polynomial.polynomial import polyval
  from numpy.testing import assert_almost_equal, assert_raises, assert_equal, assert_
label_desc: Use image node_id 1 for calling the TestEvaluation obj's underlying member method code with example usage: obj.test_chebval() without return types