All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jetbrains.kotlinx.jupyter.test.repl.AbstractSingleReplTest.kt Maven / Gradle / Ivy

package org.jetbrains.kotlinx.jupyter.test.repl

import io.kotest.matchers.types.shouldBeTypeOf
import org.jetbrains.kotlinx.jupyter.api.Code
import org.jetbrains.kotlinx.jupyter.messaging.ExecutionCount
import org.jetbrains.kotlinx.jupyter.repl.EvalRequestData
import org.jetbrains.kotlinx.jupyter.repl.ReplForJupyter
import org.jetbrains.kotlinx.jupyter.repl.result.EvalResultEx
import org.jetbrains.kotlinx.jupyter.test.getOrFail

abstract class AbstractSingleReplTest : AbstractReplTest() {
    protected abstract val repl: ReplForJupyter

    protected fun eval(
        code: Code,
        executionCount: Int = -1,
        storeHistory: Boolean = true,
    ) = repl.evalEx(EvalRequestData(code, ExecutionCount(executionCount), storeHistory))

    protected inline fun  evalError(code: Code): T {
        val result = eval(code)
        result.shouldBeTypeOf()
        return result.error.shouldBeTypeOf()
    }

    protected fun completeOrFail(
        code: Code,
        cursor: Int,
    ) = repl.completeBlocking(code, cursor).getOrFail()

    protected fun complete(
        codeWithCursor: String,
        cursorSign: String = "|",
    ) = completeOrFail(
        codeWithCursor.replace(cursorSign, ""),
        codeWithCursor.indexOf(cursorSign),
    )

    protected fun listErrors(code: Code) = repl.listErrorsBlocking(code)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy