code: def test_learnable_changepoint_distribution(self):
      # checking that the prior on the changepoint has some reasonable properties
      lcp = operators.LearnableChangePoint(
          time_series_xs=jnp.linspace(-3.0, 5.0, 100)
      )
      cp_distribution = lcp.distributions()["change_point"]
  
      # zero at endpoints
      self.assertAlmostEqual(cp_distribution.prob(-3.0), 0.0)
      self.assertAlmostEqual(cp_distribution.prob(5.0), 0.0)
  
      # Greatest at midpoint
      self.assertLess(
          cp_distribution.prob(0.0), cp_distribution.prob(1.0)
      )
  
      # Flattish in middle
      early_slope = cp_distribution.prob(-1.0) - cp_distribution.prob(
          -2.0
      )
      mid_slope = cp_distribution.prob(1.0) - cp_distribution.prob(0.0)
      self.assertLess(mid_slope, early_slope)
  
file_path: probability/tensorflow_probability/python/experimental/autobnn/operators_test.py
imports: from absl.testing import parameterized
  import jax
  import jax.numpy
  import numpy
  from tensorflow_probability.python.experimental.autobnn import kernels
  from tensorflow_probability.python.experimental.autobnn import operators
  from tensorflow_probability.python.experimental.autobnn import util
  from tensorflow_probability.substrates.jax.distributions import distribution
  from absl.testing import absltest
label_desc: Use image node_id 5 for calling the OperatorsTest obj's underlying member method code with example usage: obj.test_learnable_changepoint_distribution() without return types