ForAll
This commit is contained in:
parent
6b46965435
commit
256a189125
4 changed files with 70 additions and 4 deletions
42
tests/prolog/logic/TermAnalysisConstructionTest.kt
Normal file
42
tests/prolog/logic/TermAnalysisConstructionTest.kt
Normal file
|
@ -0,0 +1,42 @@
|
|||
package prolog.logic
|
||||
|
||||
import org.junit.jupiter.api.Assertions.assertFalse
|
||||
import org.junit.jupiter.api.Assertions.assertTrue
|
||||
import org.junit.jupiter.api.Test
|
||||
import prolog.ast.terms.Atom
|
||||
import prolog.ast.terms.Structure
|
||||
|
||||
/**
|
||||
* Based on [Predicates for analyzing/constructing terms](https://github.com/dtonhofer/prolog_notes/blob/master/swipl_notes/about_term_analysis_and_construction/term_analysis_construction.png)
|
||||
*
|
||||
* Notes by [David Tonhofer](https://github.com/dtonhofer)
|
||||
*/
|
||||
class TermAnalysisConstructionTest {
|
||||
@Test
|
||||
fun atomic_term_properties() {
|
||||
val atom = Atom("foo")
|
||||
|
||||
assertTrue(atomic(atom))
|
||||
assertFalse(compound(atom))
|
||||
|
||||
assertTrue(functor(atom, Atom("foo"), 0))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun compound_arity_0_properties() {
|
||||
val structure = Structure(Atom("foo"), emptyList())
|
||||
|
||||
assertFalse(atomic(structure))
|
||||
assertTrue(compound(structure))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun compound_arity_1_properties() {
|
||||
val structure = Structure(Atom("foo"), listOf(Atom("bar")))
|
||||
|
||||
assertFalse(atomic(structure))
|
||||
assertTrue(compound(structure))
|
||||
|
||||
assertTrue(functor(structure, Atom("foo"), 1))
|
||||
}
|
||||
}
|
Reference in a new issue