scala - How to compare lists of Double using Scalatest Equality type? -


here's i've tried far:

implicit val doubleeq = tolerantnumerics.tolerantdoubleequality(0.1)  implicit val listeq = new equivalence[list[double]] {   override def areequivalent(a: list[double], b: list[double]): boolean = {     (a, b) match {       case (nil, nil) => true       case (x :: xs, y :: ys) => x === y && areequivalent(xs, ys)       case _ => false     }   } } 

the first assert succeeds second 1 fails:

assert(1.0 === 1.01)  assert(list(1.0) === list(1.01)) 

is there way have collections use implicits i've defined elements well?

in case, redefined areequal method providing new equality[list[double]] subclass of equivalence[list[double]] considering areequal takes any second type parameter.

implicit val listeq = new equality[list[double]] {   def areequal(a: list[double], b: any): boolean = {     def areequalrec(a: list[double], b: list[double]): boolean = {       (a, b) match {         case (nil, nil) => true         case (x :: xs, y :: ys) => x === y && areequivalent(xs, ys)         case _ => false       }     }     b match {       case dalist: list[double] => areequalrec(a, dalist)       case _ => false     }   } }