¿Qué es la testing (0) en este fragment de kotlinlang.org?

Estoy tratando de resolver el problema de "carreras" en la página de KotlinKoans aquí

Aquí está mi implementación

package runs fun runs(a: IntArray): Int { var numberOfRuns = 1; for (index in 0..a.size-2) { if (a[index+1] != a[index]) numberOfRuns++ } return numberOfRuns } 

Aquí está el set de testings que se ejecuta en contra de la implementación

 class Tests { @Test fun testRuns1() { test(0) } @Test fun testRuns2() { test(1, 1) } @Test fun testRuns3() { test(3, 1, 2, 3) } @Test fun testRuns4() { test(3, 1, 2, 2, 3) } @Test fun testRuns5() { test(3, 1, 1, 2, 3) } @Test fun testRuns6() { test(1, 1, 1, 1, 1) } @Test fun testRuns7() { test(3, 1, 1, 1, 0, 1, 1) } @Test fun testRuns8() { test(3, 1, 1, 1, 0, 1) } @Test fun testRuns9() { test(5, 1, 0, 1, 0, 1) } } fun test(expected: Int, vararg data: Int) { assertEquals(expected, runs(data), "\ndata = ${Arrays.toString(data)}") } 

Todos los pases de testing excepto testRuns1 (), no entiendo qué testing (0) hace, dado que la function test () toma dos parameters como input, un valor esperado y el valor real. ¿Qué me estoy perdiendo?

El segundo argumento de test es vararg, lo que significa que puede tomar de 0 a muchos integers. Por lo tanto, una llamada a testing (0) ha esperado = 0 y datos = una list vararg vacía.

La llamada a ejecuciones (datos) simplemente devuelve 1 dado que la list está vacía y el ciclo for no tiene nada que recorrer.

EDITAR: Aunque ahora lo pienso. Esto significa que esta testing fallaría, ya que afirma que la cantidad esperada de ejecuciones debería ser 0, pero va a volver a ser 1 por lo que puedo decir.