code: def _testWhere(
      self, x, truth, expected_err_re=None, fn=array_ops.where
  ):
      with self.cached_session():
          ans = fn(x)
          self.assertTrue(
              ans.get_shape().is_compatible_with([None, x.ndim])
          )
          if expected_err_re is None:
              tf_ans = self.evaluate(ans)
              self.assertAllClose(tf_ans, truth, atol=1e-10)
          else:
              with self.assertRaisesOpError(expected_err_re):
                  self.evaluate(ans)
  
imports: import itertools
  import sys
  import numpy
  from tensorflow.python.client import session
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import ops
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import random_ops
  from tensorflow.python.ops import resource_variable_ops
  from tensorflow.python.platform import benchmark
  from tensorflow.python.platform import test
label_desc: Use image node_id 1 for calling the WhereOpTest obj's underlying member method code with example usage: obj._testWhere(x, truth, expected_err_re, fn) without return types