2 つの値を補間してパーセンタイルを推定する式があります。
windowMin + (currentPercentile - lastPercentile) * (windowMax - windowMin) / (percentile - lastPercentile)
これにより、非常に優れた現実世界の結果が得られました。ただし、単体テストでは、常に重大な丸め誤差が発生するため、正しく機能していると断言するのに苦労しています。
3 つのテスト ケースで、40パーセンタイル、 50パーセンタイル、および 60パーセンタイルを取得しようとした結果、次の計算が行われました。
1 + (0.4 - 0.3333333333333333) * (2 - 1) / (0.6666666666666666 - 0.3333333333333333)
1 + (0.5 - 0.3333333333333333) * (2 - 1) / (0.6666666666666666 - 0.3333333333333333)
1 + (0.6 - 0.3333333333333333) * (2 - 1) / (0.6666666666666666 - 0.3333333333333333)
これにより、次の結果が得られます。
{
"0.4": 1.2000000000000002,
"0.5": 1.5,
"0.6": 1.8
}
1.2
これは、40パーセンタイルを探しているという私の主張に反します。
すべてのケースで精度を向上させるためにこの式を再構築する方法はありますか? そうでない場合、chai アサーションでこの問題を回避する簡単な方法はありますか?