code: def _test_noncontinuous_ngram_tf(
      ngram_fields, synthetic_dataset, reader_factory
  ):
      """Test non continuous ngram in tf of a certain length. Non continuous here refers
      to that the reader will not necessarily return consecutive ngrams because partition is more
      than one and false is true."""
  
      dataset_dicts = synthetic_dataset.data
      ngram = NGram(
          fields=ngram_fields,
          delta_threshold=10,
          timestamp_field=TestSchema.id,
      )
      reader = reader_factory(
          synthetic_dataset.url, schema_fields=ngram
      )
  
      readout_examples = tf_tensors(reader)
  
      # Make sure we have static shape info for all fields
      for timestep in readout_examples:
          for field in readout_examples[timestep]:
              assert field.get_shape().dims is not None
  
      # Read a bunch of entries from the dataset and compare the data to reference
      with tf.Session() as sess:
          for _ in range(5):
              actual = sess.run(readout_examples)
              expected_ngram = _get_named_tuple_from_ngram(
                  ngram, dataset_dicts, actual[min(actual.keys())].id
              )
              _assert_equal_ngram(actual, expected_ngram)
  
      reader.stop()
      reader.join()
  
imports: from decimal import Decimal
  import numpy
  import pytest
  import tensorflow.compat.v1
  from unittest import mock
  from petastorm import make_reader
  from petastorm.ngram import NGram
  from petastorm.tests.conftest import SyntheticDataset, maybe_cached_dataset
  from petastorm.tests.test_common import create_test_dataset, TestSchema
  from petastorm.tests.test_tf_utils import create_tf_graph
  from petastorm.tf_utils import tf_tensors
label_desc: Use image node_id 8 for calling a global function with example usage: _test_noncontinuous_ngram_tf(ngram_fields, synthetic_dataset, reader_factory) without return types