Функциональный JavaScriptUnit-тестыmedium

Проверка expect.toBeCloseTo

Реализуйте функцию expect с поддержкой метода toBeCloseTo, который проверяет, что число приблизительно равно целевому числу.

Почему нельзя использовать .toBe? Попробуйте запустить код:

console.log(0.1 + 0.2 === 0.3);

Числа с плавающей точкой (не целые) хранятся в памяти приближенно. Это значит, что на практике мы можем проверить только то, что два числа достаточно близки друг к другу:

test('Проверяем работу оператора плюс', () => { expect(0.1 + 0.2).toBeCloseTo(0.3, 5); });

Метод toBeCloseTo принимает два аргумента: обязательный number и необязательный numDigits — количество знаков после запятой, которые должны совпасть. По умолчанию numDigits считаем равным 2.

Метод toBeCloseTo ничего не возвращает в случае успешной проверки, но бросает произвольную ошибку в случае неудачи.

expect(0.12345).toBeCloseTo(0.12389, 3); // ok expect(0.12345).toBeCloseTo(0.12389, 4); // fail expect(0.12345).toBeCloseTo(0.12389); // ok