3

intarray をテストするための適切で簡潔な方法を見つけたいと思います

最初に私は試しました

mFaces[0].mIndices shouldBe intArrayOf(0, 1, 2)

どこmIndicesですか

var mIndices: IntArray = IntArray(0)

しかし失敗します。Intellij は、 sでオーバーライドequals()することも提案していますArray

それから私はこのようなことを試してみたかった

mFaces[0].mIndices.all { it. == index } shouldBe true

it内部のインデックスを取得する方法がないように見えますが、all{..}これは

var p = 0
mFaces[0].mIndices.all { it == p++ } shouldBe true

唯一の可能性は?

4

1 に答える 1

4

Java (Kotlin) では、配列は内容ではなく参照によって比較されます。ということですintArrayOf(1, 2, 3) != intArrayOf(1, 2, 3)

配列の内容を比較するには、次の 2 つのオプションがあります。

  1. 深い比較を使用する:

    Arrays.deepequals(mFaces[0].mIndices, intArrayOf(0, 1, 2))

  2. 使用リスト:

    mFaces[0].mIndices.toList() == listOf(0, 1, 2)

于 2016-11-19T10:51:54.640 に答える