test- js: научное c программное обеспечение: значимые цифры - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь протестировать научное c программное обеспечение, написанное на TypeScript, используя Jest.

Я хочу проверить все мои результаты с плавающей запятой до 8 значащих цифр, но, кажется, единственный метод тестирования, доступный в ts- jest, "toBeCloseTo", работает над сопоставлением цифр после десятичной точки в десятичной системе счисления.

https://jestjs.io/docs/en/expect#tobeclosetonumber -numdigits

Работает научное сообщество c и инженерное сообщество до значащих цифр, а не чисел после запятой. Я пропустил некоторые функции. Если нет, то есть ли план по его добавлению?

Между тем, у меня есть обходной путь, который будет работать только для чисел, где значащие цифры после десятичной точки в десятичной записи находятся в диапазоне значимые цифры требуются в научной нотации c.

test("MyFunction", () =>{
    let sigAfterDecimal = SIG_FIG - Math.floor((Math.log(ExpectedResult)/Math.log(10)));
    expect(IF97_B23T(functionInput)).toBeCloseTo(SigAfterDecimal, thisTestAccuracy);
});

Но для проверки это не сработает, например. константа Авогадро, 6.02214076 × 10 ^ 23–8 значащих цифр, поскольку ни одна из значимых значащих цифр не появляется после десятичной точки в десятичной записи.

1 Ответ

0 голосов
/ 03 мая 2020

Ну, у меня был go сам, и я создал запрос на получение от основной команды facebook / jest для включения моего форка "float_sig_fig", который добавляет toBeCloseToSigFig, что полномочия в нормализованной нотации scientifi c являются то же самое и то, что мантиссы соответствуют необходимому числу значащих цифр. Благодаря Chux я убедился, что случай log (0) накрыт.

Это будет мой первый вклад в проект программного обеспечения с открытым исходным кодом, если он будет принят.

...