OverviewFilesCommitsIssuesDocsReleasesPeers

opencog-atomspace / tests / query / signature-test.scm

83 lines · scm ref:
#! /usr/bin/env guile
-s
!#
;
; signature-test.scm -- Verify that SignatureLinks work.
;

(use-modules (opencog))
(use-modules (opencog test-runner))

(opencog-test-runner)
(define tname "signature-test")
(test-begin tname)

(Evaluation
	(Predicate "foo")
	(List (Concept "A") (Concept "B")))
(Evaluation
	(PredicateNode "bar")
	(List (Concept "C") (Concept "D")))
(Evaluation
	(Predicate "foo")
	(List (Number 5) (Number 6)))

(define meet-b
	(Meet
		(TypedVariable (Variable "$x") (Type 'ConceptNode))
		(Evaluation
			(PredicateNode "foo")
			(List (Sign 'Concept) (Variable "$x")))))

(define meet-bd
	(Meet
		(TypedVariable (Variable "$x") (Type 'ConceptNode))
		(Evaluation
			(Sign 'PredicateNode)
			(List (Sign 'Concept) (Variable "$x")))))

(define meet-foon
	(Meet
		(TypedVariable (Variable "$p") (Type 'PredicateNode))
		(Evaluation
			(Variable "$p")
			(List (Sign 'Number) (Sign 'Number)))))

(define meet-soon
	(Meet
		(TypedVariable (Variable "$p") (Type 'PredicateNode))
		(Evaluation
			(Variable "$p")
			(List (Signature (Type 'Number)) (Signature (Type 'Number))))))

(define meet-sfoon
	(Meet
		(TypedVariable (Variable "$p") (Type 'PredicateNode))
		(Evaluation
			(Variable "$p")
			(Signature (List (Type 'Number) (Type 'Number))))))

(test-assert "got meet-b"
	(equal? (cog-execute! (CollectionOf meet-b))
		(Set (Concept "B"))))

(test-assert "got meet-bd"
	(equal? (cog-execute! (CollectionOf meet-bd))
		(Set (Concept "B") (Concept "D"))))

(test-assert "got meet-foon"
	(equal? (cog-execute! (CollectionOf meet-foon))
		(Set (Predicate "foo"))))

(test-assert "got meet-soon"
	(equal? (cog-execute! (CollectionOf meet-soon))
		(Set (Predicate "foo"))))

(test-assert "got meet-sfoon"
	(equal? (cog-execute! (CollectionOf meet-sfoon))
		(Set (Predicate "foo"))))

(test-end tname)

(opencog-test-end)