code: def test_einsum_path(self):
      # just check examples from np.einsum_path docstring
      a = self.rng().rand(2, 2)
      b = self.rng().rand(2, 5)
      c = self.rng().rand(5, 2)
  
      path_info = np.einsum_path(
          "ij,jk,kl->il", a, b, c, optimize="greedy"
      )
      self.assertEqual(
          str(path_info[0]), "['einsum_path', (1, 2), (0, 1)]"
      )
      self.assertEqual(
          path_info[1].split("\n")[0],
          "  Complete contraction:  ij,jk,kl->il",
      )
  
      # check this doesn't crash
      I = self.rng().rand(10, 10, 10, 10)
      C = self.rng().rand(10, 10)
      np.einsum_path(
          "ea,fb,abcd,gc,hd->efgh", C, C, I, C, C, optimize="greedy"
      )
  
imports: from collections import defaultdict
  import itertools
  from absl.testing import absltest
  from absl.testing import parameterized
  import numpy
  import tensorflow.compat.v2
  from trax.tf_numpy.jax_tests.config import config
  import trax.tf_numpy.jax_tests.test_util
  import trax.tf_numpy.numpy
label_desc: Use image node_id 31 for calling the EinsumTest obj's underlying member method code with example usage: obj.test_einsum_path() without return types