in src/math_verify/grader.py [0:0]
def is_atomic_or_pct_atomic(expr: Basic | MatrixBase, atomic_type: type) -> bool:
"""Check if expression is either an atomic type or percentage atomic type.
Args:
expr: The sympy expression to check
atomic_type: The atomic type to check for
Returns:
True if expr is atomic_type or percentage atomic type, False otherwise
"""
return isinstance(expr, atomic_type) or (
# Check for percentage representation: latex2sympy_extended converts "X%" into X*Rational(1,100)
# So we detect percentages by looking for this multiplication structure
isinstance(expr, Mul)
and len(expr.args) == 2
and expr.args[1] == Rational(1, 100)
and isinstance(expr.args[0], atomic_type)
)