Agregar pruebas a los yaku
This commit is contained in:
parent
64c802ad85
commit
b02afac301
46
src/tests/Yaku10Test.kt
Normal file
46
src/tests/Yaku10Test.kt
Normal 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
24
src/tests/Yaku5Test.kt
Normal 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
84
src/tests/Yaku7Test.kt
Normal 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
36
src/tests/YakuTest.kt
Normal 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")
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user