code: def test_translate_recursive(self):
      def fn(pat):
          return glob.translate(
              pat, recursive=True, include_hidden=True, seps="/"
          )
  
      self.assertEqual(fn("*"), r"(?s:[^/]+)\Z")
      self.assertEqual(fn("?"), r"(?s:[^/])\Z")
      self.assertEqual(fn("**"), r"(?s:.*)\Z")
      self.assertEqual(fn("**/**"), r"(?s:.*)\Z")
      self.assertRaises(ValueError, fn, "***")
      self.assertRaises(ValueError, fn, "a**")
      self.assertRaises(ValueError, fn, "**b")
      self.assertEqual(
          fn("/**/*/*.*/**"), r"(?s:/(?:.+/)?[^/]+/[^/]*\.[^/]*/.*)\Z"
      )
  
imports: import glob
  import os
  import re
  import shutil
  import sys
  import unittest
  from test.support.os_helper import TESTFN, skip_unless_symlink, can_symlink, create_empty_file, change_cwd
label_desc: Use image node_id 29 for calling the GlobTests obj's underlying member method code with example usage: obj.test_translate_recursive() and returns: glob