我正在尝试使用Jest测试用TypeScript编写的科学软件。
我想将我的所有浮点结果测试为8个有效数字,但这似乎是ts笑话中唯一可用的测试方法,"toBeCloseTo",适用于十进制记数法中小数点后的匹配数字。
https://jestjs.io/docs/en/expect#tobeclosetonumber-数字
科学和工程界的工作重点是重要的数字,而不是小数点后的数字我是否忽略了一些功能。如果没有,是否有计划添加它
与此同时,我有一个变通方法,它只适用于十进制记数法中小数点后的有效数字在科学记数法所需有效数字范围内的数字。
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个有效数字(无效,因为在十进制记数法中,没有相关的有效数字出现在小数点之后。
好吧,我自己也尝试过,并向facebook/jest主团队创建了一个pull请求,以包含我的fork"float_sig_filg",它添加到BeCloseToSigFig中,标准化科学记数法中的幂是相同的,尾数与所需数量的有效数字匹配。多亏了Chux,我确保了日志(0(案例被覆盖。
如果它被接受,这将是我对开源软件项目的第一次开源贡献。