code: def test_fraction_read_support_and_describer(self):
      shape = (10, 15)
      filler_channels = [0] * 4
      all_support = filler_channels + [np.zeros(shape) + 254]
      no_support = filler_channels + [np.zeros(shape) + 100]
      empty = filler_channels + [np.zeros(shape)]
      golden_pileup = filler_channels + [
          _mock_pileup_array_with_reads()
      ]
  
      self.assertEqual(1, vis.fraction_read_support(all_support))
      self.assertEqual(
          vis.ReadSupport.ALL, vis.describe_read_support(all_support)
      )
  
      self.assertEqual(0, vis.fraction_read_support(no_support))
      self.assertEqual(
          vis.ReadSupport.LOW, vis.describe_read_support(no_support)
      )
  
      self.assertEqual(0, vis.fraction_read_support(empty))
      self.assertEqual(
          vis.ReadSupport.LOW, vis.describe_read_support(empty)
      )
  
      self.assertEqual(0.75, vis.fraction_read_support(golden_pileup))
      self.assertEqual(
          vis.ReadSupport.HALF, vis.describe_read_support(golden_pileup)
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import glob
  import os
  from absl.testing import absltest
  from absl.testing import parameterized
  import numpy
  from third_party.nucleus.protos import variants_pb2
  from third_party.nucleus.testing import test_utils
  from third_party.nucleus.util import vis
  from tensorflow.core.example import example_pb2
  from tensorflow.core.example import feature_pb2
label_desc: Use image node_id 23 for calling the VisTest obj's underlying member method code with example usage: obj.test_fraction_read_support_and_describer() without return types