Gần đây tôi đã thiết kế một mô-đun chuỗi thời gian trong đó chuỗi thời gian của tôi về cơ bản là a SortedDictionnary<DateTime, double>
.
Bây giờ tôi muốn tạo các bài kiểm tra đơn vị để đảm bảo rằng mô-đun này luôn hoạt động và tạo ra kết quả mong đợi.
Một hoạt động phổ biến là tính toán hiệu suất giữa các điểm trong chuỗi thời gian.
Vì vậy, những gì tôi làm là tạo một chuỗi thời gian với, giả sử, {1.0, 2.0, 4.0} (tại một số ngày) và tôi hy vọng kết quả sẽ là {100%, 100%}.
Vấn đề là, nếu tôi tự tạo một chuỗi thời gian với các giá trị {1.0, 1.0} và tôi kiểm tra sự bằng nhau (bằng cách so sánh từng điểm), thử nghiệm sẽ không vượt qua, vì sẽ luôn có sự không chính xác khi làm việc với các biểu diễn nhị phân của thực số.
Do đó, tôi quyết định tạo chức năng sau:
private static bool isCloseEnough(double expected, double actual, double tolerance=0.002)
{
return squaredDifference(expected, actual) < Math.Pow(tolerance,2);
}
Có một cách phổ biến khác để đối phó với một trường hợp như vậy?