diff --git a/src/tests/Yaku1Test.kt b/src/tests/Yaku1Test.kt new file mode 100644 index 0000000..ce9b811 --- /dev/null +++ b/src/tests/Yaku1Test.kt @@ -0,0 +1,71 @@ +package dev.araozu.tests + +import dev.araozu.juego.* +import dev.araozu.juego.yaku.Yaku + +fun testYakuDobleSecuencia(): Boolean { + val cartas = arrayListOf( + 10, 11, 12, 12, 14, 15, 52, 52, 192, 192 + ) + val op = OportunidadRon.verificar( + valorCarta = 52, + cartasMano = cartas + ) + return existeYaku(op, Yaku.DobleSecuencia) +} + +fun testYakuVariedad(): Boolean { + val cartas = arrayListOf( + 6, 8, 10, 40, 42, 44, 96, 96, 256, 256 + ) + val op = OportunidadRon.verificar( + valorCarta = 96, + cartasMano = cartas + ) + return existeYaku(op, Yaku.Variedad) +} + +fun testYakuRealeza(): Boolean { + val cartas = arrayListOf( + 6, 8, 10, 40, 42, 44, 96, 96, 256, 256 + ) + val op = OportunidadRon.verificar( + valorCarta = 256, + cartasMano = cartas + ) + return existeYaku(op, Yaku.Realeza) +} + +fun testYakuTripleTriples(): Boolean { + val cartas = arrayListOf( + 2, + 2, + 3, + 20, + 20, + 96, + 96 + ) + val op = OportunidadRon.verificar( + valorCarta = 96, + cartasMano = cartas, + gruposAbiertos = arrayListOf( + arrayListOf(34, 34, 35) + ) + ) + return existeYaku(op, Yaku.TripleTriples) +} + +fun testYakuInterior(): Boolean { + val cartas = arrayListOf( + 4, 6, 8, 6, 8, 10, 48 + ) + val op = OportunidadRon.verificar( + valorCarta = 48, + cartasMano = cartas, + gruposAbiertos = arrayListOf( + arrayListOf(44, 44, 45) + ) + ) + return existeYaku(op, Yaku.Interior) +} diff --git a/src/tests/Yaku2Test.kt b/src/tests/Yaku2Test.kt new file mode 100644 index 0000000..21ad788 --- /dev/null +++ b/src/tests/Yaku2Test.kt @@ -0,0 +1,86 @@ +package dev.araozu.tests + +import dev.araozu.juego.* +import dev.araozu.juego.yaku.Yaku + +fun testYakuDobleSecuenciaPura(): Boolean { + val cartas = arrayListOf( + 2, + 2, + 4, + 4, + 6, + 6, + 34, + 34, + 35, + 96 + ) + val op = OportunidadRon.verificar( + valorCarta = 96, + cartasMano = cartas + ) + return existeYaku(op, Yaku.DobleSecuenciaPura) +} + +fun testYakuSemiExterior(): Boolean { + val cartas = arrayListOf( + 2, + 4, + 6, + 20, + 20, + 34, + 36, + 38, + 96, + 96 + ) + val op = OportunidadRon.verificar( + valorCarta = 96, + cartasMano = cartas + ) + return existeYaku(op, Yaku.SemiExterior) +} + +fun testYakuRojo(): Boolean { + val cartas = arrayListOf( + 38, + 38, + 38, + 52, + 52, + 34, + 34, + 35, + c(CartaDragonRojo()), + c(CartaDragonRojo()) + ) + val op = OportunidadRon.verificar( + valorCarta = c(CartaDragonRojo()), + cartasMano = cartas + ) + return existeYaku(op, Yaku.Rojo) +} + +fun testYakuNegro(): Boolean { + val cartas = arrayListOf( + 2, 2, 2, 10, 10, 10, 16, 16, 20, 20 + ) + val op = OportunidadRon.verificar( + valorCarta = 20, + cartasMano = cartas + ) + return existeYaku(op, Yaku.Negro) +} + +fun testYakuEscalera(): Boolean { + val cartas = arrayListOf( + 2, 4, 6, 8, 10, 12, 14, 16, 18, 96 + ) + val op = OportunidadRon.verificar( + valorCarta = 96, + cartasMano = cartas + ) + return existeYaku(op, Yaku.Escalera) +} diff --git a/src/tests/Yaku3Test.kt b/src/tests/Yaku3Test.kt new file mode 100644 index 0000000..3a72278 --- /dev/null +++ b/src/tests/Yaku3Test.kt @@ -0,0 +1,44 @@ +package dev.araozu.tests + +import dev.araozu.juego.* +import dev.araozu.juego.yaku.Yaku + +fun testYakuExterior(): Boolean { + val cartas = arrayListOf( + 2, + 2, + 3, + 20, + 20, + 34, + 34, + 35, + 96, + 96 + ) + val op = OportunidadRon.verificar( + valorCarta = 96, + cartasMano = cartas + ) + return existeYaku(op, Yaku.Exterior) +} + +fun testYakuTripleTriplesCerrados(): Boolean { + val cartas = arrayListOf( + 2, + 2, + 3, + 20, + 20, + 34, + 34, + 35, + 96, + 96 + ) + val op = OportunidadRon.verificar( + valorCarta = 96, + cartasMano = cartas + ) + return existeYaku(op, Yaku.TripleTriplesCerrados) +} diff --git a/src/tests/YakuTest.kt b/src/tests/YakuTest.kt index 77e0b09..e660461 100644 --- a/src/tests/YakuTest.kt +++ b/src/tests/YakuTest.kt @@ -33,4 +33,22 @@ fun main() { // Yaku5 impErr(testYakuEscaleraFull(), "Escalera Full") + // Yaku3 + impErr(testYakuExterior(), "Exterior") + impErr(testYakuTripleTriplesCerrados(), "Triple Triples Cerrados") + + // Yaku2 + impErr(testYakuDobleSecuenciaPura(), "Doble Secuencia Pura") + impErr(testYakuSemiExterior(), "Semi Exterior") + impErr(testYakuRojo(), "Rojo") + impErr(testYakuNegro(), "Negro") + impErr(testYakuEscalera(), "Escalera") + + // Yaku1 + impErr(testYakuDobleSecuencia(), "Doble Secuencia") + impErr(testYakuVariedad(), "Variedad") + impErr(testYakuRealeza(), "Realeza") + impErr(testYakuTripleTriples(), "Triple Triples") + impErr(testYakuInterior(), "Interior") + }