Make modulo require units to be same or dimensionless

Fixes #19517
This commit is contained in:
Benjamin Nauck
2025-02-11 15:33:30 +01:00
committed by Chris Hennes
parent 82b5ce2d10
commit 0ba52f0e22
2 changed files with 12 additions and 6 deletions

View File

@@ -2471,7 +2471,9 @@ Py::Object FunctionExpression::evaluate(const Expression *expr, int f, const std
case MOD:
if (e2.isNone())
_EXPR_THROW("Invalid second argument.",expr);
unit = v1.getUnit() / v2.getUnit();
if (v1.getUnit() != v2.getUnit() && !v1.isDimensionless() && !v2.isDimensionless())
_EXPR_THROW("Units must be equal or dimensionless.",expr);
unit = v1.getUnit();
break;
case POW: {
if (e2.isNone())