繁体   English   中英

test-js:科学软件:有效数字

[英]test-js: scientific software: significant figures

我正在尝试使用 Jest 测试用 TypeScript 编写的科学软件。

我想将所有浮点结果测试为 8 位有效数字,但似乎 ts-jest 中唯一可用的测试方法“toBeCloseTo”适用于十进制小数点后的匹配数字。

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

科学和工程界致力于有效数字,而不是小数点后的数字。 我是否忽略了一些功能。 如果没有,是否有计划添加它?

同时,我有一个解决方法,它只适用于十进制小数点后的有效数字在科学记数法要求的有效数字范围内的数字。

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 位有效数字,因为在十进制表示法中小数点后没有相关有效数字出现。

好吧,我自己有一个 go 并向主要的 facebook/jest 团队创建了一个拉取请求,以包括我的叉子“float_sig_fig”,它添加到 BeCloseToSigFig 中,标准化科学记数法中的权力是相同的,并且尾数匹配所需的有效数字数。 感谢 Chux,我确保涵盖了 log(0) 案例。

如果它被接受,这将是我对开源软件项目的第一个源代码贡献。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM