2015-09-24 12 views
13

हम इकाई परीक्षण लिखने के लिए Chai's BDD API का उपयोग कर रहे हैं।मैं चाई का उपयोग कर फ्लोटिंग-पॉइंट समानता का परीक्षण कैसे कर सकता हूं?

हम कैसे फ़्लोटिंग पॉइंट समानता का दावा कर सकते हैं?

उदाहरण के लिए, अगर मैं एक 66⅔% वापसी मान के लिए जाँच करने के लिए इस दावे को बनाने की कोशिश:

expect(percentage).to.equal(2/3 * 100.0); 

मैं इस असफलता मिलती है:

AssertionError: expected 66.66666666666667 to equal 66.66666666666666 
Expected :66.66666666666666 
Actual :66.66666666666667 

उत्तर

5

within दावे की जांच करने के लिए इस्तेमाल किया जा सकता है चाहे एक फ़्लोटिंग-पॉइंट नंबर इसके इच्छित परिणाम के करीब है:

expect(percentage).to.be.within(66.666, 66.667); 
16

मैं देख रहा था इसके लिए भी, और इस सवाल के अलावा, मुझे एक सुविधा अनुरोध के संबंध में this discussion भी मिला जो closeTo के अतिरिक्त हुआ। इसके साथ आप एक मान और एक +/- डेल्टा निर्दिष्ट कर सकते हैं, इसलिए मूल रूप से यह आपको सटीकता निर्दिष्ट करने देता है जिसके परिणामस्वरूप जांच की जाती है।

percentage.should.be.closeTo(6.666, 0.001); 

यह बिल्कुल सही नहीं है, क्योंकि यह 6.665 से 6.667 तक किसी भी संख्या को स्वीकृति देगा।

संबंधित मुद्दे