code: def test_triangular_transform():
      with pm.Model() as m:
          x = pm.Triangular("x", lower=0, c=1, upper=2)
  
      transform = m.rvs_to_transforms[x]
      assert np.isclose(
          transform.backward(-np.inf, *x.owner.inputs).eval(), 0
      )
      assert np.isclose(
          transform.backward(np.inf, *x.owner.inputs).eval(), 2
      )
  
imports: import numpy
  import pytensor
  import pytensor.tensor
  import pytest
  from numpy.testing import assert_allclose, assert_array_equal
  from pytensor.tensor.variable import TensorConstant
  import pymc
  import pymc.distributions.transforms
  from pymc.logprob.basic import transformed_conditional_logp
  from pymc.logprob.transforms import Transform
  from pymc.pytensorf import floatX, jacobian
  from pymc.testing import Circ, MultiSimplex, R, Rminusbig, Rplusbig, Simplex, SortedVector, Unit, UnitSortedVector, Vector
label_desc: Use image node_id 21 for calling a global function with example usage: test_triangular_transform() without return types