code: def test_E():
      assert E(z, 0) == z
      assert E(0, m) == 0
      assert E(i * pi / 2, m) == i * E(m)
      assert E(z, oo) is zoo
      assert E(z, -oo) is zoo
      assert E(0) == pi / 2
      assert E(1) == 1
      assert E(oo) == I * oo
      assert E(-oo) is oo
      assert E(zoo) is zoo
  
      assert E(-z, m) == -E(z, m)
  
      assert E(z, m).diff(z) == sqrt(1 - m * sin(z) ** 2)
      assert E(z, m).diff(m) == (E(z, m) - F(z, m)) / (2 * m)
      assert E(z).diff(z) == (E(z) - K(z)) / (2 * z)
      r = randcplx()
      assert td(E(r, m), m)
      assert td(E(z, r), z)
      assert td(E(z), z)
  
      mi = Symbol("m", real=False)
      assert E(z, mi).conjugate() == E(z.conjugate(), mi.conjugate())
      assert E(mi).conjugate() == E(mi.conjugate())
      mr = Symbol("m", negative=True)
      assert E(z, mr).conjugate() == E(z.conjugate(), mr)
      assert E(mr).conjugate() == E(mr)
  
      assert E(z).rewrite(hyper) == (pi / 2) * hyper(
          (Rational(-1, 2), S.Half), (S.One,), z
      )
      assert tn(
          E(z), (pi / 2) * hyper((Rational(-1, 2), S.Half), (S.One,), z)
      )
      assert (
          E(z).rewrite(meijerg)
          == -meijerg(
              ((S.Half, Rational(3, 2)), []), ((S.Zero,), (S.Zero,)), -z
          )
          / 4
      )
      assert tn(
          E(z),
          -meijerg(
              ((S.Half, Rational(3, 2)), []), ((S.Zero,), (S.Zero,)), -z
          )
          / 4,
      )
  
      assert E(z, m).series(z) == z + z**5 * (
          -(m**2) / 40 + m / 30
      ) - m * z**3 / 6 + O(z**6)
      assert E(z).series(
          z
      ) == pi / 2 - pi * z / 8 - 3 * pi * z**2 / 128 - 5 * pi * z**3 / 512 - 175 * pi * z**4 / 32768 - 441 * pi * z**5 / 131072 + O(
          z**6
      )
  
      assert (
          E(z, m)
          .rewrite(Integral)
          .dummy_eq(Integral(sqrt(1 - m * sin(t) ** 2), (t, 0, z)))
      )
      assert (
          E(m)
          .rewrite(Integral)
          .dummy_eq(Integral(sqrt(1 - m * sin(t) ** 2), (t, 0, pi / 2)))
      )
  
file_path: sympy/sympy/functions/special/tests/test_elliptic_integrals.py
imports: from sympy.core.numbers import I, Rational, oo, pi, zoo
  from sympy.core.singleton import S
  from sympy.core.symbol import Dummy, Symbol
  from sympy.functions.elementary.hyperbolic import atanh
  from sympy.functions.elementary.miscellaneous import sqrt
  from sympy.functions.elementary.trigonometric import sin, tan
  from sympy.functions.special.gamma_functions import gamma
  from sympy.functions.special.hyper import hyper, meijerg
  from sympy.integrals.integrals import Integral
  from sympy.series.order import O
  from sympy.functions.special.elliptic_integrals import elliptic_k, elliptic_f, elliptic_e, elliptic_pi
  from sympy.core.random import test_derivative_numerically, random_complex_number, verify_numerically
  from sympy.abc import z, m, n
label_desc: Use image node_id 3 for calling a global function with example usage: test_E() without return types