code: def testConvertFromArrayInterface(self):
      context.ensure_initialized()
      ctx = context.context()
  
      class MyArrayClass(object):
          def __init__(self):
              self.array = np.random.random(16)
  
          def __array__(self):
              return self.array
  
      a = MyArrayClass()
      t = ops.EagerTensor(a, device=ctx.device_name, dtype=None)
      self.assertAllEqual(t, a)
  
imports: import sys
  import traceback
  import numpy
  from tensorflow.python import pywrap_tfe
  from tensorflow.python.eager import backprop
  from tensorflow.python.eager import context
  from tensorflow.python.eager import core
  from tensorflow.python.eager import def_function
  from tensorflow.python.eager import test
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import errors
  from tensorflow.python.framework import ops
  from tensorflow.python.framework import test_ops
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import array_ops_stack
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import random_ops
  from tensorflow.python.ops import resource_variable_ops
label_desc: Use image node_id 18 for calling the Tests obj's underlying member method code with example usage: obj.testConvertFromArrayInterface() and returns: self