Мне нужно утверждать, что переменная (a в MWE ниже) больше другой (b).
Я заметил, что утверждение a>b
внутри импортированной модели ведет себя как a>=b
. Я попытался обойти эту проблему, чтобы утверждать вместо a>(b+Constants.small)
. Изменение утверждения, даже когда утверждение для a>(b+someBiggerNumber)
все еще не работает, как ожидалось для a=b
. Если a!=b
утверждение работает, как ожидалось.
Это ошибка или я что-то не так делаю? Если это ошибка, есть ли обходной путь?
MWE:
model MWE
model SomeModel
parameter Real a(start=1);
parameter Real b(start=1);
protected
Real c=5/(a-b);
equation
assert(a > b, "a has to be bigger than b. However, a (=" + String(a) +") < b (=" + String(b) + ")");
//assert(a > (b + 1), "a has to be bigger than b+1. However, a (=" + String(a) +") < b (=" + String(b) + ")");
end SomeModel;
SomeModel sm(a = 5, b = 5);
Real var;
equation
var = sm.c;
end MWE;
// assert a > b
// a=5, b=4 no fail, as expected, same for b<4
// a=5, b=5 no fail
// a=5, b=6 fail, as expected, same for b>3
// assert a > (b + 1)
// a=5, b=3 no fail, as expected, same for b<3
// a=5, b=4 fail, as expected
// a=5, b=5 no fail
// a=5, b=6 fail, as expected, same for b>3