मुझे असफल परीक्षणों का सामना करना पड़ा है जो मेरी सभी समझ में गुजरना चाहिए। क्या में यहां कुछ भूल रहा हूँ?स्केलटेस्ट 'डबल टोलरेंस' में एक बग?
import org.scalatest._
class xxxTests extends FlatSpec with ShouldMatchers {
import math.{Pi => PI}
"" should "(this should pass)" in {
assert(0.0 === 0.0) // ok
(1e-100) should equal ((0.0) plusOrMinus 1e-5) // FAILS!!! "1.0E-100 did not equal DoubleTolerance(0.0,1.0E-5)"
(1e-3) should not equal ((0.0) plusOrMinus 1e-5) // ok
(0.0) should equal ((0.0) plusOrMinus 1e-5) // FAILS!!! "0.0 did not equal DoubleTolerance(0.0,1.0E-5)"
}
}
मैंने इसे स्केलटेस्ट 1.8 और 2.0 एम 4 दोनों के साथ अनुभव किया है।
खैर होना चाहिए, अपने आप पर बहुत कठिन नहीं है। मुझे लगता है कि डीएसएल इस गलती को आमंत्रित करता है। मेरा मूल विचार यह था कि मैचर्स को कुछ तरीकों की आवश्यकता होती है जो हमेशा दो वस्तुओं पर == को कॉल करने का मतलब है, और यह बराबर है। इसके अलावा यह कॉल करता है। बाएं और दाएं ओर एक ऐरे पर रखें, तो यह एक अपवाद है। मुझे लगता है कि "x बराबर होना चाहिए (y plusOrMinus tol)" ऐसा लगता है कि इसे काम करना चाहिए, और मैंने देखा है कि एक से अधिक उपयोगकर्ता इसे आजमाएं। तो मुझे लगता है कि मैं वास्तव में स्कैलाटेस्ट के आने वाले संस्करण में उस वाक्यविन्यास का समर्थन करूंगा। यदि कोई वास्तव में समानता के लिए दो सहिष्णुता की तुलना करना चाहता है, तो वे एक दावा के साथ ऐसा कर सकते हैं। –