networks,tbn->network: Use make-01-network.
Also add some tests.
This commit is contained in:
parent
c0ec7369fd
commit
5419278462
1 changed files with 5 additions and 3 deletions
|
@ -1438,7 +1438,7 @@
|
||||||
|
|
||||||
;;; Constructs a network from a network form defining a TBN.
|
;;; Constructs a network from a network form defining a TBN.
|
||||||
(define (tbn->network tbn)
|
(define (tbn->network tbn)
|
||||||
(make-boolean-network (for/hash ([(var tbf) (in-hash tbn)])
|
(make-01-network (for/hash ([(var tbf) (in-hash tbn)])
|
||||||
(values var ((curry apply-tbf/state) tbf)))))
|
(values var ((curry apply-tbf/state) tbf)))))
|
||||||
|
|
||||||
(module+ test
|
(module+ test
|
||||||
|
@ -1449,13 +1449,15 @@
|
||||||
(define s1 (make-state '((a . 0) (b . 0))))
|
(define s1 (make-state '((a . 0) (b . 0))))
|
||||||
(check-equal? (update n s1 '(a b))
|
(check-equal? (update n s1 '(a b))
|
||||||
(make-state '((a . 0) (b . 1))))
|
(make-state '((a . 0) (b . 1))))
|
||||||
|
(check-equal? (network-domains n) #hash((a . (0 1)) (b . (0 1))))
|
||||||
|
|
||||||
(define sbn (make-sbn `((a . ,(make-sbf/state '((b . -1))))
|
(define sbn (make-sbn `((a . ,(make-sbf/state '((b . -1))))
|
||||||
(b . ,(make-sbf/state '((a . 1)))))))
|
(b . ,(make-sbf/state '((a . 1)))))))
|
||||||
(define sn (tbn->network sbn))
|
(define sn (tbn->network sbn))
|
||||||
(define s2 (make-state '((a . 1) (b . 1))))
|
(define s2 (make-state '((a . 1) (b . 1))))
|
||||||
(check-equal? (update sn s2 '(a b))
|
(check-equal? (update sn s2 '(a b))
|
||||||
(make-state '((a . 0) (b . 1))))))
|
(make-state '((a . 0) (b . 1))))
|
||||||
|
(check-equal? (network-domains sn) #hash((a . (0 1)) (b . (0 1))))))
|
||||||
|
|
||||||
;;; A helper function for read-org-tbn and read-org-sbn. It reads a
|
;;; A helper function for read-org-tbn and read-org-sbn. It reads a
|
||||||
;;; TBN from an Org-mode sexp containing a list of lists of numbers.
|
;;; TBN from an Org-mode sexp containing a list of lists of numbers.
|
||||||
|
|
Loading…
Reference in a new issue