beLike
/** matches if the value returns a successful result when applied to a PartialFunction */ def beLike[T](pattern: PartialFunction[T, MatchResult[_]]) = new Matcher[T] { def apply[S <: T](a: Expectable[S]) = { val r = if (pattern.isDefinedAt(a.value)) pattern.apply(a.value) else MatchFailure("", "", a) result(r.isSuccess, a.description + " is correct: " + r.message, a.description + " is incorrect: " + r.message, a) } }