AbstractLogicProgrammingScopeTest

Base class for test suites exercising a BaseLogicProgrammingScope subtype S (e.g. MinimalLogicProgrammingScope, LogicProgrammingScopeWithOperators, or any richer mixin combination assembled downstream, such as LogicProgrammingScopeWithUnification in :dsl-unify or LogicProgrammingScopeWithTheories in :dsl-theory): concrete subclasses only need to implement createLogicProgrammingScope and then write @Test methods using the helpers below to build and assert on DSL expressions.

A typical concrete test looks like:

class TestLogicProgrammingScopeWithUnification :
AbstractLogicProgrammingScopeTest<LogicProgrammingScopeWithUnification<*>>() {
override fun createLogicProgrammingScope(): LogicProgrammingScopeWithUnification<*> = LogicProgrammingScope.empty()

@Test
fun testUnify() =
logicProgramming {
assertEquals(unified, unify(term1, term2))
}
}

Constructors

Link copied to clipboard
constructor()