Agregar pruebas a los yaku

master
Araozu 2020-12-28 11:04:47 -05:00
parent 64c802ad85
commit b02afac301
4 changed files with 190 additions and 0 deletions

46
src/tests/Yaku10Test.kt Normal file
View File

@ -0,0 +1,46 @@
package dev.araozu.tests
import dev.araozu.juego.*
import dev.araozu.juego.yaku.Yaku
fun testYakuVerde(): Boolean {
val cartasMano = carr(
CartaDragonVerde(),
CartaDragonVerde(),
CartaRealezaJ(),
CartaRealezaJ(),
CartaRealezaK(),
CartaRealezaK(),
CartaRealezaK(),
CartaRealezaQ(),
CartaRealezaQ(),
CartaRealezaQ()
)
val op = OportunidadRon.verificar(
valorCarta = c(CartaDragonVerde()),
cartasMano = cartasMano
)
return existeYaku(op, Yaku.Verde)
}
fun testYakuDragonesFull(): Boolean {
val cartas = carr(
CartaDragonVerde(),
CartaDragonAzul(),
CartaDragonAzul(),
CartaDragonAzul(),
CartaDragonRojo(),
CartaDragonRojo(),
CartaDragonRojo(),
CartaDragonNegro(),
CartaDragonNegro(),
CartaDragonNegro()
)
val op = OportunidadRon.verificar(
valorCarta = c(CartaDragonVerde()),
cartasMano = cartas
)
return existeYaku(op, Yaku.DragonesFull)
}

24
src/tests/Yaku5Test.kt Normal file
View File

@ -0,0 +1,24 @@
package dev.araozu.tests
import dev.araozu.juego.*
import dev.araozu.juego.yaku.Yaku
fun testYakuEscaleraFull(): Boolean {
val cartas = arrayListOf(
2,
3,
4,
6,
8,
10,
13,
14,
16,
18
)
val op = OportunidadRon.verificar(
valorCarta = 20,
cartasMano = cartas
)
return existeYaku(op, Yaku.EscaleraFull)
}

84
src/tests/Yaku7Test.kt Normal file
View File

@ -0,0 +1,84 @@
package dev.araozu.tests
import dev.araozu.juego.*
import dev.araozu.juego.yaku.Yaku
fun testYakuA10(): Boolean {
val cartasMano = arrayListOf(
2,
2,
3,
20,
20,
21,
34,
34,
52,
52
)
val op = OportunidadRon.verificar(
valorCarta = 35,
cartasMano = cartasMano
)
return existeYaku(op, Yaku.A10)
}
fun testYakuEscaleraPerfecta(): Boolean {
val cartas = arrayListOf(
2,
2,
4,
6,
8,
10,
12,
14,
16,
18
)
val op = OportunidadRon.verificar(
valorCarta = 20,
cartasMano = cartas
)
return existeYaku(op, Yaku.EscaleraPerfecta)
}
fun testYakuRealezaFull(): Boolean {
val cartas = arrayListOf(
2,
192,
192,
192,
224,
224,
224,
256,
256,
256
)
val op = OportunidadRon.verificar(
valorCarta = 2,
cartasMano = cartas
)
return existeYaku(op, Yaku.RealezaFull)
}
fun testYakuRealezaDragones(): Boolean {
val cartas = arrayListOf(
256,
64,
64,
64,
128,
128,
128,
192,
192,
192
)
val op = OportunidadRon.verificar(
valorCarta = 256,
cartasMano = cartas
)
return existeYaku(op, Yaku.RealezaDragones)
}

36
src/tests/YakuTest.kt Normal file
View File

@ -0,0 +1,36 @@
package dev.araozu.tests
import dev.araozu.juego.*
import dev.araozu.juego.yaku.Yaku
fun c(c: Carta): Int = c.valor
fun carr(vararg carr: Carta): ArrayList<Int> {
val cartas = arrayListOf<Int>()
cartas.addAll(carr.map(::c))
return cartas
}
fun existeYaku(op: OportunidadRon?, yaku: Yaku): Boolean {
if (op == null) return false
return null != op.yaku.find { it == yaku }
}
fun impErr(res: Boolean, nombreYaku: String) {
if (!res) System.err.println("Error al ejecutar yaku $nombreYaku")
}
fun main() {
// Yaku10
impErr(testYakuVerde(), "Verde")
impErr(testYakuDragonesFull(), "Dragones Full")
// Yaku7
impErr(testYakuA10(), "A-10")
impErr(testYakuEscaleraPerfecta(), "Escalera Perfecta")
impErr(testYakuRealezaFull(), "Realeza Full")
impErr(testYakuRealezaDragones(), "Realeza y Dragones")
// Yaku5
impErr(testYakuEscaleraFull(), "Escalera Full")
}