code: def test_clean_page_citations(self):
      text = """This page has some text.
  Some lines don't end with punctuation
  And some of these lines end with citations.[3]
  Or have requested citations[citation needed]. Or the option to edit.[edit]
  """
      expected_clean_text = """This page has some text.
  And some of these lines end with citations.
  Or have requested citations. Or the option to edit."""
      expected_counters = {
          "line-passed": 3,
          "line-filtered:no_endmark": 1,
          "passed": 1,
      }
      out, counters = self.run_clean_page(
          PageFeatures(
              text=text,
              content_type=FAKE_CONTENT_TYPE,
              content_length=FAKE_CONTENT_LENGTH,
              timestamp=FAKE_TIMESTAMP,
          )
      )
      self.assertEqual(expected_clean_text, out.text)
      self.assertEqual(expected_counters, dict(counters))
  
imports: import collections
  import os
  import six
  from tensorflow_datasets import testing
  from tensorflow_datasets.core.lazy_imports_lib import lazy_imports
  from tensorflow_datasets.text import c4_utils
label_desc: Use image node_id 6 for calling the C4UtilsTest obj's underlying member method code with example usage: obj.test_clean_page_citations() without return types