मैंने हाल ही में एक समय श्रृंखला मॉड्यूल तैयार किया है, जहां मेरा समय श्रृंखला अनिवार्य रूप से एक है SortedDictionnary<DateTime, double>
।
अब मैं यह सुनिश्चित करने के लिए इकाई परीक्षण बनाना चाहूंगा कि यह मॉड्यूल हमेशा काम कर रहा है और अपेक्षित परिणाम उत्पन्न कर रहा है।
एक सामान्य ऑपरेशन समय श्रृंखला में बिंदुओं के बीच प्रदर्शन की गणना करना है।
इसलिए मैं क्या करता हूं, {1.0, 2.0, 4.0} (कुछ तिथियों पर) के साथ एक समय श्रृंखला बनाएं, और मुझे परिणाम की उम्मीद है कि {100%, 100%}।
बात यह है, अगर मैं मैन्युअल रूप से मान {1.0, 1.0} के साथ एक समय श्रृंखला बनाता हूं और मैं समानता (प्रत्येक बिंदु की तुलना करके) की जांच करता हूं, तो परीक्षण पास नहीं होगा, क्योंकि वास्तविक बाइनरी अभ्यावेदन के साथ काम करने पर हमेशा अशुद्धि रहेगी संख्या।
इसलिए, मैंने निम्नलिखित फ़ंक्शन बनाने का निर्णय लिया:
private static bool isCloseEnough(double expected, double actual, double tolerance=0.002)
{
return squaredDifference(expected, actual) < Math.Pow(tolerance,2);
}
क्या इस तरह के मामले से निपटने का एक और सामान्य तरीका है?