私は2つのTraversable
がその順序に関係なく同じ要素を含んでいるかどうかをチェックしたいと思います。 the documentationが言うように2つのTraversableが全く同じ要素を含んでいることを比較するには?
implicit val l = 3
implicit def equality(implicit l: Int) = new Equality[String] {
override def areEqual(a: String, b: Any): Boolean = (a, b) match {
case (_, b: Int) => a.toInt == b
}
}
"Test" should "check how equality works" in {
List("1") should contain theSameElementsAs Vector(1) //Fine
List("1", "2") should contain theSameElementsAs Vector(1, 2) //Fine
List("1", "2", "3") should contain theSameElementsAs Vector(1, 2, 3) //Fine
List("1", "2", "2") should contain theSameElementsAs Vector(1, 2, 2) //Error
List("2", "1") should contain theSameElementsAs Vector(1, 2) //Error
}
:
「
contain theSameElementsAs
」構文を使用すると、2件の 集計が同じが含まれていることを主張することができますだから、私はそれを自分自身を試してみましたが、次の簡単な例を書きましたオブジェクト
重複や秩序を考慮する必要はありません。それのどこが悪いんだい?
完全に同意します。平等[L]の正確な契約を知らなかっただけです。 –