Подтвердить что ты не робот

Как я могу проверить равенство с плавающей запятой, используя chai?

Мы используем Chai BDD API для написания модульных тестов.

Как мы можем утверждать равенство с плавающей запятой?

Например, если я попытаюсь сделать это утверждение для проверки возвращаемого значения 66%:

expect(percentage).to.equal(2 / 3 * 100.0);

Я получаю этот отказ:

AssertionError: expected 66.66666666666667 to equal 66.66666666666666
Expected :66.66666666666666
Actual   :66.66666666666667
4b9b3361

Ответ 1

Я тоже искал это, и кроме этого вопроса я также нашел эту дискуссию в отношении запроса функции, который привел к добавлению closeTo. С этим вы можете указать значение и +/- delta, поэтому в основном это позволяет указать точность проверки результата.

percentage.should.be.closeTo(6.666, 0.001);

Это не идеально, конечно, потому что это одобрит любое число от 6.665 до 6.667.

Ответ 2

Утверждение within может использоваться для проверки того, близко ли число с плавающей запятой к его предполагаемому результату:

expect(percentage).to.be.within(66.666, 66.667);