Improvements

try to make it run on Android (still unsuccessful)
This commit is contained in:
Christian Basler
2024-08-21 17:03:52 +02:00
parent 082899152f
commit 8399f98d75
4 changed files with 90 additions and 90 deletions

View File

@@ -1,43 +1,38 @@
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
plugins {
alias(libs.plugins.kotlin.multiplatform)
alias(libs.plugins.android.library)
}
kotlin {
jvm{
tasks.withType<KotlinJvmCompile>().configureEach {
compilerOptions {
jvmTarget.set(JvmTarget.JVM_17)
}
}
}
jvmToolchain(libs.versions.jdk.get().toInt())
androidTarget{
tasks.withType<KotlinJvmCompile>().configureEach {
compilerOptions {
jvmTarget.set(JvmTarget.JVM_11)
}
}
}
jvm()
androidTarget()
android.apply {
compileSdk = libs.versions.android.compileSdk.get().toInt()
namespace = "ch.dissem.yaep.domain"
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
}
// @OptIn(ExperimentalWasmDsl::class)
// wasmJs {
// moduleName = "yaep-commonUI"
// browser()
// binaries.executable()
// }
sourceSets {
val commonTest by getting {
commonMain {
dependencies {
implementation(libs.logging)
}
}
commonTest {
dependencies {
implementation(libs.kotlin.test)
implementation(libs.atrium)
}
}
}
}
android {
compileSdk = libs.versions.android.compileSdk.get().toInt()
namespace = "ch.dissem.yaep.domain"
}

View File

@@ -9,6 +9,7 @@ import ch.tutteli.atrium.api.fluent.en_GB.toBeGreaterThan
import ch.tutteli.atrium.api.fluent.en_GB.toBeLessThan
import ch.tutteli.atrium.api.fluent.en_GB.toEqual
import ch.tutteli.atrium.api.verbs.expect
import co.touchlab.kermit.Logger
import kotlin.test.Test
import kotlin.time.Duration.Companion.milliseconds
import kotlin.time.measureTime
@@ -17,7 +18,7 @@ class GameTest {
@Test
fun `ensure generated games are solvable`() {
val tries = 2000
val tries = 1000
var fastest = 500.milliseconds
var slowest = 0.milliseconds
var total = 0.milliseconds
@@ -29,10 +30,10 @@ class GameTest {
val time = measureTime {
game = generateGame()
}
println("Generated game #$i in ${time.inWholeMilliseconds}ms")
Logger.i { "Generated game #$i in ${time.inWholeMilliseconds}ms" }
val solvable = solve(game.grid, game.clues)
if (solvable != SOLVABLE) {
println("Puzzle:\n$game")
Logger.i { "Puzzle:\n$game" }
}
expect(solvable).toEqual(SOLVABLE)
expect(time).toBeLessThan(500.milliseconds)
@@ -43,22 +44,22 @@ class GameTest {
slowest = time
}
total += time
if (game.clues.size > most){
if (game.clues.size > most) {
most = game.clues.size
}
if (game.clues.size < least){
if (game.clues.size < least) {
least = game.clues.size
}
totalClues += game.clues.size
}
println("Slowest: $slowest")
println("Fastest: $fastest")
println("Average: ${total / tries}")
println("Clues:")
println("Most: $most")
println("Least: $least")
println("Average: ${totalClues / tries}")
Logger.i { "Slowest: $slowest" }
Logger.i { "Fastest: $fastest" }
Logger.i { "Average: ${total / tries}" }
Logger.i { "Clues:" }
Logger.i { "Most: $most" }
Logger.i { "Least: $least" }
Logger.i { "Average: ${totalClues / tries}" }
}
@Test
@@ -75,8 +76,8 @@ class GameTest {
feature(Collection<Clue>::size).toBeLessThan(30)
}
}
println("Clues: ${game.clues.size}")
println("Time: $time")
Logger.i{"Clues: ${game.clues.size}"}
Logger.i{"Time: $time"}
expect(solve(game.grid, game.clues)).toEqual(SOLVABLE)
expect(time).toBeLessThan(500.milliseconds)
}
@@ -130,7 +131,8 @@ class GameTest {
@Test
fun `ensure specific game is solvable`() {
val game = Game.parse("""
val game = Game.parse(
"""
👩🏿‍⚕️👨🏽‍🎤👩🏿‍⚕️ 👩🏾‍🚀🧑🏿‍🏫
🐜🐕 🐐 🐐
🍉🥭🍐🍇🍍
@@ -162,7 +164,8 @@ class GameTest {
* ROCK_STAR and UNITED_KINGDOM are in the same column
* ROCK_STAR is next to DOUGHNUT
* PINEAPPLE is between the neighbours TEACHER and GRAPES to both sides
""".trimIndent())
""".trimIndent()
)
expect(solve(game.grid, game.clues)).toEqual(SOLVABLE)
}