Retract
This commit is contained in:
parent
80fb3d1e60
commit
5bfa1691dd
10 changed files with 276 additions and 17 deletions
|
@ -529,5 +529,80 @@ class PreprocessorTests {
|
|||
assertEquals(expected, result)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `asserta(fact)`() {
|
||||
val input = Structure(
|
||||
Atom("asserta"), listOf(
|
||||
Structure(
|
||||
Atom(":-"), listOf(
|
||||
Atom("a"),
|
||||
Atom("b")
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
val expected = AssertA(
|
||||
Rule(
|
||||
Atom("a"),
|
||||
Atom("b")
|
||||
)
|
||||
)
|
||||
|
||||
val result = preprocessor.preprocess(input)
|
||||
|
||||
assertEquals(expected, result)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `assertz(fact)`() {
|
||||
val input = Structure(
|
||||
Atom("assertz"), listOf(
|
||||
Structure(
|
||||
Atom(":-"), listOf(
|
||||
Atom("a"),
|
||||
Atom("b")
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
val expected = AssertZ(
|
||||
Rule(
|
||||
Atom("a"),
|
||||
Atom("b")
|
||||
)
|
||||
)
|
||||
|
||||
val result = preprocessor.preprocess(input)
|
||||
|
||||
assertEquals(expected, result)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `retract(atom)`() {
|
||||
val input = Structure(
|
||||
Atom("retract"), listOf(
|
||||
Atom("a")
|
||||
)
|
||||
)
|
||||
val expected = Retract(Atom("a"))
|
||||
|
||||
val result = preprocessor.preprocess(input)
|
||||
|
||||
assertEquals(expected, result)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `retract(compund with variable)`() {
|
||||
val input = Structure(
|
||||
Atom("retract"), listOf(
|
||||
CompoundTerm(Atom("a"), listOf(Variable("X")))
|
||||
)
|
||||
)
|
||||
val expected = Retract(CompoundTerm(Atom("a"), listOf(Variable("X"))))
|
||||
|
||||
val result = preprocessor.preprocess(input)
|
||||
|
||||
assertEquals(expected, result)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Reference in a new issue