OverviewFilesCommitsIssuesDocsReleasesPeers

opencog-atomspace / tests / atoms / flow / concatenate-test.scm

56 lines · scm ref:
#! /usr/bin/env guile
-s
!#
;
; concatenate-test.scm -- Verify that ConcatenateLink works.
;

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

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

; -------------------------------------------------------------
; Base function: flatten set of lists

(define flatten-set
	(Concatenate
		(Type 'SetLink)
		(List
			(List (Concept "a") (Concept "b"))
			(List (Concept "c") (Concept "b")))))

(define flat-set (cog-execute! flatten-set))
(format #t "flat set is ~A" flat-set)

(test-assert "flat set"
	(equal? flat-set
		(Set (Concept "b") (Concept "c") (Concept "a") (Concept "b"))))

; -------------------------------------------------------------
; Base function: flatten LinkValues
(define link-link
	(LinkValue
		(LinkValue (Concept "a") (Concept "b"))
		(LinkValue (Concept "c") (Concept "b"))))

(cog-set-value! (Anchor "rock") (Predicate "key") link-link)

(define flatten-val
	(Concatenate
		(ValueOf (Anchor "rock") (Predicate "key"))))

(define flat-val (cog-execute! flatten-val))
(format #t "flat val is ~A" flat-val)

(test-assert "flat val"
	(equal? flat-val
		(LinkValue (Concept "a") (Concept "b") (Concept "c") (Concept "b"))))

; -------------------------------------------------------------

(test-end tname)
(opencog-test-end)