code: def test_with_constants(self, literal_value):
      x, y, z = floats("xyz")
      e = mul(add(literal_value, y), true_div(x, y))
      comp_op = Composite([x, y], [e])
      comp_node = comp_op.make_node(x, y)
  
      c_code = comp_node.op.c_code(
          comp_node, "dummy", ["x", "y"], ["z"], dict(id=0)
      )
      assert (
          constant(literal_value).type.c_literal(literal_value)
          in c_code
      )
  
      # Make sure caching of the c_code template works
      assert hasattr(comp_node.op, "_c_code")
  
      g = FunctionGraph([x, y], [comp_node.out])
  
      # Default checker does not allow `nan`
      def checker(x, y):
          np.testing.assert_equal(x, y)
  
      fn = make_function(DualLinker(checker=checker).accept(g))
  
      test_x = 1.0
      test_y = 2.0
      np.testing.assert_equal(
          fn(test_x, test_y),
          (literal_value + test_y) * (test_x / test_y),
      )
  
imports: import numpy
  import pytest
  import pytensor
  import pytensor.tensor
  import tests.unittest_tools
  from pytensor.compile.mode import Mode
  from pytensor.graph.fg import FunctionGraph
  from pytensor.link.c.basic import DualLinker
  from pytensor.scalar.basic import ComplexError, Composite, InRange, ScalarType, add, and_, arccos, arccosh, arcsin, arcsinh, arctan, arctan2, arctanh, cast, complex64, constant, cos, cosh, deg2rad, eq, exp, exp2, expm1, float16, float32, floats, int8, int32, ints, invert, log, log1p, log2, log10, mean, mul, neq, rad2deg, reciprocal, sin, sinh, sqrt, switch, tan, tanh, true_div, uint8
  from pytensor.tensor.type import fscalar, imatrix, iscalar, matrix
  from tests.link.test_link import make_function
label_desc: Use image node_id 4 for calling the TestComposite obj's underlying member method code with example usage: obj.test_with_constants(literal_value) without return types