code: def test_normalize_characters():
      strings = cudf.Series(
          [
              "乾 \t 乿",
              "ĂĆCĖÑTÜATE",
              "âscénd, Descend",
              "",
              None,
              "Stock^ $1",
          ]
      )
      expected = cudf.Series(
          [
              " 乾     乿 ",
              "accentuate",
              "ascend ,  descend",
              "",
              None,
              "stock ^   $ 1",
          ]
      )
  
      actual = strings.str.normalize_characters()
      assert type(expected) == type(actual)
      assert_eq(expected, actual)
  
      expected = cudf.Series(
          [
              " 乾     乿 ",
              "ĂĆCĖÑTÜATE",
              "âscénd ,  Descend",
              "",
              None,
              "Stock ^   $ 1",
          ]
      )
      actual = strings.str.normalize_characters(do_lower=False)
      assert type(expected) == type(actual)
      assert_eq(expected, actual)
  
imports: import random
  import string
  import numpy
  import pytest
  import cudf
  from cudf.core.byte_pair_encoding import BytePairEncoder
  from cudf.core.tokenize_vocabulary import TokenizeVocabulary
  from cudf.testing._utils import assert_eq
label_desc: Use image node_id 7 for calling a global function with example usage: test_normalize_characters() without return types