dart:test
предоставляет для этой цели сопоставитель closeTo
:
expect(areaUnderCurveWithRectangleRule(f1, 0,1,1000), closeTo(2, epsilon));
Обратите внимание, что closeTo
использует абсолютную дельту, которая может не подходить для плавающей запятой значения, которые имеют очень разные величины.
Если вместо этого вам нужна версия, которая сравнивается на основе процентного соотношения, вам будет легко обернуть closeTo
своей собственной функцией, например:
Matcher closeToPercentage(num value, double fraction) {
final delta = value * fraction;
return closeTo(value, delta);
}