diff --git a/koru-processor/src/jvmMain/kotlin/com/futuremind/koru/processor/InheritanceHelper.kt b/koru-processor/src/jvmMain/kotlin/com/futuremind/koru/processor/InheritanceHelper.kt index bdb1498..81901d5 100644 --- a/koru-processor/src/jvmMain/kotlin/com/futuremind/koru/processor/InheritanceHelper.kt +++ b/koru-processor/src/jvmMain/kotlin/com/futuremind/koru/processor/InheritanceHelper.kt @@ -61,11 +61,9 @@ internal class Graph( } while (!queue.isEmpty()) { - println("Queue: ${queue.map { "${it.descriptor}" }}") val vertex = queue.remove() orderedList.add(vertex) visitedNodes++ - println("${vertex.descriptor} has incoming ${adjacencyMap[vertex]!!.map { it.descriptor }}") adjacencyMap[vertex]!!.forEach { it.inDegree-- if (it.inDegree == 0) queue.add(it) diff --git a/koru-processor/src/jvmMain/kotlin/com/futuremind/koru/processor/Processor.kt b/koru-processor/src/jvmMain/kotlin/com/futuremind/koru/processor/Processor.kt index 8438398..72a483e 100644 --- a/koru-processor/src/jvmMain/kotlin/com/futuremind/koru/processor/Processor.kt +++ b/koru-processor/src/jvmMain/kotlin/com/futuremind/koru/processor/Processor.kt @@ -67,7 +67,6 @@ class Processor : AbstractProcessor() { generatedInterfaces = generatedInterfaces, targetDir = kaptGeneratedDir ) - println("Generated: ${generatedInterface.name} from $typeName") generatedInterfaces[typeName] = generatedInterface } diff --git a/koru-processor/src/jvmTest/kotlin/com/futuremind/koru/processor/InheritanceSortTest.kt b/koru-processor/src/jvmTest/kotlin/com/futuremind/koru/processor/InheritanceSortTest.kt index 4c31e79..dbb90e2 100644 --- a/koru-processor/src/jvmTest/kotlin/com/futuremind/koru/processor/InheritanceSortTest.kt +++ b/koru-processor/src/jvmTest/kotlin/com/futuremind/koru/processor/InheritanceSortTest.kt @@ -3,6 +3,7 @@ package com.futuremind.koru.processor import com.futuremind.koru.processor.InheritanceSortTest.Ver.* import org.junit.jupiter.api.Assertions.* import org.junit.jupiter.api.Test +import java.lang.IllegalArgumentException internal class InheritanceSortTest { @@ -60,6 +61,24 @@ internal class InheritanceSortTest { } + @Test + fun `should throw on cyclic graph`() { + val graph = Graph(listOf(a, b)) + graph.addEdge(a, b) + graph.addEdge(b, a) + assertThrows(IllegalArgumentException::class.java) { graph.topologicalOrder() } + } + + @Test + fun `should throw on cyclic graph (larger)`() { + val graph = Graph(listOf(a, b, c, d)) + graph.addEdge(a, b) + graph.addEdge(b, c) + graph.addEdge(c, d) + graph.addEdge(d, a) + assertThrows(IllegalArgumentException::class.java) { graph.topologicalOrder() } + } + private fun test( graph: Graph, expectedSorted: List>