// :domain — the pure rules of SPEC §14.5 (split, balances, allocation, settlement check, analytics). plugins { id("kvitt.jvm.library") } dependencies { api(project(":core:model")) testImplementation(libs.kotlinx.serialization.json) } // The shared test vectors (SPEC §14.5.5) are copied from the repository's contracts/ folder into the test resources. // A missing file is not tolerated: VectorFilesTest fails unless exactly the seven files of §14.5.5 are present. val testVectorsRoot = layout.buildDirectory.dir("generated/test-vectors") val copyTestVectors = tasks.register("copyTestVectors") { description = "Copies contracts/test-vectors/*.json into the :domain test resources." from(layout.projectDirectory.dir("../../contracts/test-vectors")) { include("*.json") } into(testVectorsRoot.map { it.dir("test-vectors") }) } sourceSets.named("test") { resources.srcDir(testVectorsRoot) } tasks.named("processTestResources") { dependsOn(copyTestVectors) }