code: def test_classify_diop():
      raises(TypeError, lambda: classify_diop(x**2 / 3 - 1))
      raises(ValueError, lambda: classify_diop(1))
      raises(
          NotImplementedError, lambda: classify_diop(w * x * y * z - 1)
      )
      raises(
          NotImplementedError,
          lambda: classify_diop(x**3 + y**3 + z**4 - 90),
      )
      assert classify_diop(14 * x**2 + 15 * x - 42) == (
          [x],
          {1: -42, x: 15, x**2: 14},
          "univariate",
      )
      assert classify_diop(x * y + z) == (
          [x, y, z],
          {x * y: 1, z: 1},
          "inhomogeneous_ternary_quadratic",
      )
      assert classify_diop(x * y + z + w + x**2) == (
          [w, x, y, z],
          {x * y: 1, w: 1, x**2: 1, z: 1},
          "inhomogeneous_general_quadratic",
      )
      assert classify_diop(x * y + x * z + x**2 + 1) == (
          [x, y, z],
          {x * y: 1, x * z: 1, x**2: 1, 1: 1},
          "inhomogeneous_general_quadratic",
      )
      assert classify_diop(x * y + z + w + 42) == (
          [w, x, y, z],
          {x * y: 1, w: 1, 1: 42, z: 1},
          "inhomogeneous_general_quadratic",
      )
      assert classify_diop(x * y + z * w) == (
          [w, x, y, z],
          {x * y: 1, w * z: 1},
          "homogeneous_general_quadratic",
      )
      assert classify_diop(x * y**2 + 1) == (
          [x, y],
          {x * y**2: 1, 1: 1},
          "cubic_thue",
      )
      assert classify_diop(
          x**4 + y**4 + z**4 - (1 + 16 + 81)
      ) == (
          [x, y, z],
          {1: -98, x**4: 1, z**4: 1, y**4: 1},
          "general_sum_of_even_powers",
      )
      assert classify_diop(x**2 + y**2 + z**2) == (
          [x, y, z],
          {x**2: 1, y**2: 1, z**2: 1},
          "homogeneous_ternary_quadratic_normal",
      )
  
imports: from sympy.core.add import Add
  from sympy.core.mul import Mul
  from sympy.core.numbers import Rational, oo, pi
  from sympy.core.relational import Eq
  from sympy.core.singleton import S
  from sympy.core.symbol import symbols
  from sympy.matrices.dense import Matrix
  from sympy.ntheory.factor_ import factorint
  from sympy.simplify.powsimp import powsimp
  from sympy.core.function import _mexpand
  from sympy.core.sorting import default_sort_key, ordered
  from sympy.functions.elementary.trigonometric import sin
  from sympy.solvers.diophantine import diophantine
  from sympy.solvers.diophantine.diophantine import diop_DN, diop_solve, diop_ternary_quadratic_normal, diop_general_pythagorean, diop_ternary_quadratic, diop_linear, diop_quadratic, diop_general_sum_of_squares, diop_general_sum_of_even_powers, descent, diop_bf_DN, divisible, equivalent, find_DN, ldescent, length, reconstruct, partition, power_representation, prime_as_sum_of_two_squares, square_factor, sum_of_four_squares, sum_of_three_squares, transformation_to_DN, transformation_to_normal, classify_diop, base_solution_linear, cornacchia, sqf_normal, gaussian_reduce, holzer, check_param, parametrize_ternary_quadratic, sum_of_powers, sum_of_squares, _diop_ternary_quadratic_normal, _nint_or_floor, _odd, _even, _remove_gcd, _can_do_sum_of_squares, DiophantineSolutionSet, GeneralPythagorean, BinaryQuadratic
  from sympy.testing.pytest import slow, raises, XFAIL
  from sympy.utilities.iterables import signed_permutations
label_desc: Use image node_id 5 for calling a global function with example usage: test_classify_diop() without return types