in ratatool-diffy/src/main/scala/com/spotify/ratatool/diffy/Diffy.scala [94:115]
def apply(x: T, y: T): Seq[Delta]
/** Delta function for comparing a single node between two records. */
def delta(x: Any, y: Any): DeltaValue = {
val tryNum = Try(numericDelta(x.toString.toDouble, y.toString.toDouble))
if (tryNum.isSuccess) {
NumericDelta(tryNum.get)
} else if (x.isInstanceOf[CharSequence] && y.isInstanceOf[CharSequence]) {
StringDelta(stringDelta(x.toString, y.toString))
} else {
val tryVector = Try {
val vx = x.asInstanceOf[java.util.List[_]].asScala.map(_.toString.toDouble).toList
val vy = y.asInstanceOf[java.util.List[_]].asScala.map(_.toString.toDouble).toList
vectorDelta(vx, vy)
}
if (tryVector.isSuccess) {
VectorDelta(tryVector.get)
} else {
UnknownDelta
}
}
}