Şamandıralar veya şamandıralar (vektörler veya matrisler gibi) içeren nesneler için testler yazarken, çoğunlukla eşitlik için değil, "neredeyse eşit" için test yapmak istiyorum. (fark bazı epsilon olmasına izin verdi).ScalaTest - şamandıralar ve şamandıralar içeren nesneler için "hemen hemen eşit" olup olmadığını kontrol edin
ScalaTest FunSuite kullanırken, normalde assert(xxx == yyy)
yazıyor. Şamandıralar ve beğenilerle assert(math.abs(xxx - yyy)<epsilon)
yazabilirim, ancak ScalaTest assert macro'un güzel özelliğini, hata mesajının bir parçası olarak karşılaştırılan değerleri bildirmiyorum.
ScalaTest'te float "neredeyse eşitlik" testini nasıl gerçekleştirebilirim, böylece test başarısız olduğunda değerler hata mesajının bir parçası olarak yazılır?
Testi örnek: Bu TolerantNumerics kullanarak ve ==
yerine ===
kullanılarak yapılabilir
import org.scalatest.FunSuite
class FloatTest extends FunSuite {
test("Testing computations") {
import math._
assert(sin(Pi/4)==sqrt(0.5))
assert(sin(Pi)==0)
}
}
[http://stackoverflow.com/questions/27213930/scalatest-testing-equality-between-two-floating-point-arrays-with-error-margin](http://stackoverflow.com/questions/27213930/scalatest-test-eşitlik-iki-kayan noktalı-dizi-hata-ile-hata-marjı) – user2829759
Ben bu bir çoğaltılmış ve ben bu şekilde işaretlenmiş olmasına rağmen, ancak ikinci okumada hedef soru ile ilgili, ama farklı Bu, beklenmedik bir şekilde geçen çift testlerle ilgilidir, onları nasıl geçtikleri ile ilgili değildir. – Suma