From 6f934004c5832de570cab4f91c4393810014fde7 Mon Sep 17 00:00:00 2001 From: jedlimlx Date: Sat, 22 Jun 2024 16:36:01 +0800 Subject: [PATCH] Add tests for B0 rules --- src/commonTest/kotlin/search/CFindTest.kt | 25 +++++++++++++++++++++++ src/jvmMain/kotlin/Main.jvm.kt | 18 +++++++++++++--- 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/src/commonTest/kotlin/search/CFindTest.kt b/src/commonTest/kotlin/search/CFindTest.kt index f526086..cd3807d 100644 --- a/src/commonTest/kotlin/search/CFindTest.kt +++ b/src/commonTest/kotlin/search/CFindTest.kt @@ -12,6 +12,8 @@ import kotlin.test.Ignore import kotlin.test.Test import kotlin.test.assertEquals + +@Ignore class Test { private val searchStrategies = listOf(SearchStrategy.HYBRID_BFS, SearchStrategy.PRIORITY_QUEUE) @@ -158,6 +160,29 @@ class Test { } } + @Test + fun strobingTest() { + for (strategy in searchStrategies) { + // Checking it works for strobing rules for 2-states or n-states + val search = CFind( + HROT("R2,C2,S3-4,6,B0-7,N+"), 4, 1, 4, symmetry = ShipSymmetry.ODD, + verbosity = 1, searchStrategy = strategy, numShips = 1 + ) + search.search() + + assertEquals(search.searchResults.size, 1) + + val search2 = CFind( + HROTGenerations("01246/0134/3"), 3, 2, 6, symmetry = ShipSymmetry.EVEN, + verbosity = 1, searchStrategy = strategy + ) + search2.search() + + assertEquals(search2.searchResults.size, 1) + } + + } + // Miscellaneous tests @Test fun dfsTest() { diff --git a/src/jvmMain/kotlin/Main.jvm.kt b/src/jvmMain/kotlin/Main.jvm.kt index d5892f9..129f6bd 100644 --- a/src/jvmMain/kotlin/Main.jvm.kt +++ b/src/jvmMain/kotlin/Main.jvm.kt @@ -210,9 +210,21 @@ actual fun main() { //INTGenerations("023456/0123456/3"), 3, 1, 7, ShipSymmetry.ODD, val search = CFind( - HROT("B02/S2V"), 4, 1, 13, ShipSymmetry.ODD, - verbosity = 1, searchStrategy = SearchStrategy.PRIORITY_QUEUE, - transpositionTableSize = 1 shl 23, direction = Coordinate(1, 1) + HROT("R2,C2,S3-4,6,B0-7,N+"), 4, 1, 4, symmetry = ShipSymmetry.ODD, + verbosity = 1, searchStrategy = SearchStrategy.PRIORITY_QUEUE, numShips = 1 ) search.search() + + val search2 = CFind( + HROTGenerations("01246/0134/3"), 3, 2, 6, symmetry = ShipSymmetry.EVEN, + verbosity = 1, searchStrategy = SearchStrategy.PRIORITY_QUEUE + ) + search2.search() + +// val search = CFind( +// HROT("B02/S2V"), 4, 1, 13, ShipSymmetry.ODD, +// verbosity = 1, searchStrategy = SearchStrategy.PRIORITY_QUEUE, +// transpositionTableSize = 1 shl 23, direction = Coordinate(1, 1) +// ) +// search.search() } \ No newline at end of file