code: def test_private_perfect_power():
      assert _perfect_power(0) is False
      assert _perfect_power(1) is False
      assert _perfect_power(2) is False
      assert _perfect_power(3) is False
      for x in [2, 3, 5, 6, 7, 12, 15, 105, 100003]:
          for y in range(2, 100):
              assert _perfect_power(x**y) == (x, y)
              if x & 1:
                  assert _perfect_power(x**y, next_p=3) == (x, y)
              if x == 100003:
                  assert _perfect_power(x**y, next_p=100003) == (x, y)
              assert _perfect_power(101 * x**y) == False
              # Catalan's conjecture
              if x ** y not in [8, 9]:
                  assert _perfect_power(x**y + 1) == False
                  assert _perfect_power(x**y - 1) == False
      for x in range(1, 10):
          for y in range(1, 10):
              g = gcd(x, y)
              if g == 1:
                  assert _perfect_power(5**x * 101**y) == False
              else:
                  assert _perfect_power(5**x * 101**y) == (
                      5 ** (x // g) * 101 ** (y // g),
                      g,
                  )
  
imports: from sympy.concrete.summations import summation
  from sympy.core.containers import Dict
  from sympy.core.mul import Mul
  from sympy.core.power import Pow
  from sympy.core.singleton import S
  from sympy.core.symbol import Symbol
  from sympy.functions.combinatorial.factorials import factorial
  from sympy.core.numbers import Integer, Rational
  from sympy.external.gmpy import gcd
  from sympy.ntheory import totient, factorint, primefactors, divisors, nextprime, primerange, pollard_rho, perfect_power, multiplicity, multiplicity_in_factorial, divisor_count, primorial, pollard_pm1, divisor_sigma, factorrat, reduced_totient
  from sympy.ntheory.factor_ import smoothness, smoothness_p, proper_divisors, antidivisors, antidivisor_count, core, udivisors, udivisor_sigma, udivisor_count, proper_divisor_count, primenu, primeomega, mersenne_prime_exponent, is_perfect, is_abundant, is_deficient, is_amicable, dra, drm, _perfect_power
  from sympy.testing.pytest import raises, slow
  from sympy.utilities.iterables import capture
label_desc: Use image node_id 5 for calling a global function with example usage: test_private_perfect_power() without return types