OverviewFilesCommitsIssuesDocsReleasesPeers

opencog-atomspace-storage / tests / persist / proxy / read-proxy-test.scm

67 lines · scm ref:
#! /usr/bin/env guile
-s
!#
;
; read-proxy-test.scm -- Unit test for ReadThru and WriteThru proxies.
;
(use-modules (opencog) (opencog persist))
(use-modules (opencog persist-sql))
(use-modules (opencog exec))
(use-modules (opencog test-runner))
(use-modules (srfi srfi-64))

; ---------------------------------------------------------------------
(opencog-test-runner)
(define tname "read-proxy-test")
(test-begin tname)

; Could be any StorageNode, e.g. RocksStorageNode, etc.
; but, for convenience, we just use Postgres for now.
(define sto (PostgresStorageNode
	"postgres:///opencog_test?user=opencog_tester&password=cheese"))

(define wsto (WriteThruProxy "writer"))
(cog-set-value! wsto (Predicate "*-proxy-parts-*") sto)

(cog-set-value! wsto (*-open-*))
(define b1 (Concept "b1"))
(cog-set-value! b1 (Predicate "*-TruthValueKey-*") (FloatValue 0.1 0.1))
(cog-set-value! wsto (*-store-atom-*) b1)
(define b2 (Concept "b2"))
(cog-set-value! b2 (Predicate "*-TruthValueKey-*") (FloatValue 0.2 0.2))
(cog-set-value! wsto (*-store-atom-*) b2)
(define b3 (Concept "b3"))
(cog-set-value! b3 (Predicate "*-TruthValueKey-*") (FloatValue 0.3 0.3))
(cog-set-value! wsto (*-store-atom-*) b3)
(define b4 (Concept "b4"))
(cog-set-value! b4 (Predicate "*-TruthValueKey-*") (FloatValue 0.4 0.4))
(cog-set-value! wsto (*-store-atom-*) b4)
(cog-set-value! wsto (*-close-*))

; ----------------------------
; Now, read it back.
; But first, clear the atomspace
(cog-atomspace-clear)

(set! sto (PostgresStorageNode
	"postgres:///opencog_test?user=opencog_tester&password=cheese"))

(define rsto (ReadThruProxy "reader"))
(cog-set-value! rsto (Predicate "*-proxy-parts-*") sto)

(cog-set-value! rsto (*-open-*))
(cog-set-value! rsto (*-fetch-atom-*) (Concept "b1"))
(cog-set-value! rsto (*-fetch-atom-*) (Concept "b2"))
(cog-set-value! rsto (*-fetch-atom-*) (Concept "b3"))
(cog-set-value! rsto (*-fetch-atom-*) (Concept "b4"))
(cog-set-value! rsto (*-close-*))

(test-approximate "b1" 0.1 (cog-mean (Concept "b1")) 1.0e-8)
(test-approximate "b2" 0.2 (cog-mean (Concept "b2")) 1.0e-8)
(test-approximate "b3" 0.3 (cog-mean (Concept "b3")) 1.0e-8)
(test-approximate "b4" 0.4 (cog-mean (Concept "b4")) 1.0e-8)

(test-end tname)

(opencog-test-end)