code: def test_Pow():
      with _check_warns(
          [_W.DEFAULTING_TO_FLOAT, _W.WILL_NOT_ASSERT]
      ) as w:
          assert (
              smtlib_code(x**3, auto_declare=False, log_warn=w)
              == "(pow x 3)"
          )
      with _check_warns(
          [
              _W.DEFAULTING_TO_FLOAT,
              _W.DEFAULTING_TO_FLOAT,
              _W.WILL_NOT_ASSERT,
          ]
      ) as w:
          assert (
              smtlib_code(x ** (y**3), auto_declare=False, log_warn=w)
              == "(pow x (pow y 3))"
          )
      with _check_warns(
          [_W.DEFAULTING_TO_FLOAT, _W.WILL_NOT_ASSERT]
      ) as w:
          assert (
              smtlib_code(
                  x ** Rational(2, 3), auto_declare=False, log_warn=w
              )
              == "(pow x (/ 2 3))"
          )
  
          a = Symbol("a", integer=True)
          b = Symbol("b", real=True)
          c = Symbol("c")
  
          def g(x):
              return 2 * x
  
          # if x=1, y=2, then expr=2.333...
          expr = 1 / (g(a) * 3.5) ** (a - b**a) / (a**2 + b)
  
      with _check_warns([]) as w:
          assert (
              smtlib_code(
                  [
                      Eq(a < 2, c),
                      Eq(b > a, c),
                      c & True,
                      Eq(expr, 2 + Rational(1, 3)),
                  ],
                  log_warn=w,
              )
              == "(declare-const a Int)\n"
              "(declare-const b Real)\n"
              "(declare-const c Bool)\n"
              "(assert (= (< a 2) c))\n"
              "(assert (= (> b a) c))\n"
              "(assert c)\n"
              "(assert (= "
              "(* (pow (* 7.0 a) (+ (pow b a) (* -1 a))) (pow (+ b (pow a 2)) -1)) "
              "(/ 7 3)"
              "))"
          )
  
      with _check_warns(
          [_W.DEFAULTING_TO_FLOAT, _W.WILL_NOT_ASSERT]
      ) as w:
          assert (
              smtlib_code(
                  Mul(
                      -2,
                      c,
                      Pow(
                          Mul(b, b, evaluate=False), -1, evaluate=False
                      ),
                      evaluate=False,
                  ),
                  log_warn=w,
              )
              == "(declare-const b Real)\n"
              "(declare-const c Real)\n"
              "(* -2 c (pow (* b b) -1))"
          )
  
imports: import contextlib
  import itertools
  import re
  import typing
  from enum import Enum
  from typing import Callable
  import sympy
  from sympy import Add, Implies, sqrt
  from sympy.core import Mul, Pow
  from sympy.core import S, pi, symbols, Function, Rational, Integer, Symbol, Eq, Ne, Le, Lt, Gt, Ge
  from sympy.functions import Piecewise, exp, sin, cos
  from sympy.assumptions.ask import Q
  from sympy.printing.smtlib import smtlib_code
  from sympy.testing.pytest import raises, Failed
label_desc: Use image node_id 8 for calling a global function with example usage: test_Pow() and returns: unknown