code: def test_valuation_at_prime_ideal():
      p = 7
      T = Poly(cyclotomic_poly(p))
      ZK, dK = round_two(T)
      P = prime_decomp(p, T, dK=dK, ZK=ZK)
      assert len(P) == 1
      P0 = P[0]
      v = P0.valuation(p * ZK)
      assert v == P0.e
      # Test easy 0 case:
      assert P0.valuation(5 * ZK) == 0
  
imports: from math import prod
  from sympy import QQ, ZZ
  from sympy.abc import x, theta
  from sympy.ntheory import factorint
  from sympy.ntheory.residue_ntheory import n_order
  from sympy.polys import Poly, cyclotomic_poly
  from sympy.polys.matrices import DomainMatrix
  from sympy.polys.numberfields.basis import round_two
  from sympy.polys.numberfields.exceptions import StructureError
  from sympy.polys.numberfields.modules import PowerBasis, to_col
  from sympy.polys.numberfields.primes import prime_decomp, _two_elt_rep, _check_formal_conditions_for_maximal_order
  from sympy.testing.pytest import raises
label_desc: Use image node_id 3 for calling a global function with example usage: test_valuation_at_prime_ideal() without return types