Deep equals. Micro library. Type safe, compile time comparison chain. Based on shapeless.LabelledGeneric
Scala: 2.11.11, 2.12.2+
libraryDependencies += "org.rudogma" %% "equalator" % "1.1"
ScalaJS (compiled with 0.6.21)
libraryDependencies += "org.rudogma" %%% "equalator" % "1.1"
import org.rudogma.equalator._
import org.rudogma.equalator.Implicits._
case class Test(field0:Int, field1:String, field2:Array[Int])
val v1 = Test(1, "2", Array(3,4))
val v2 = Test(1, "2", Array(3,5))
Equalator[Test].deepEquals(v1, v2) // will be Left(Error(... org.rudogma.equalator.Error: Left != Right, at $root.field2.[1] ...))