csys: simplify setup / initialization in test

This commit is contained in:
Helmut Merz 2026-04-01 13:57:43 +02:00
parent de72fe9aaf
commit cd62c8eed4
2 changed files with 12 additions and 17 deletions

View file

@ -8,11 +8,10 @@
(:shape :scopes/shape)
(:util :scopes/util)
(:alx :alexandria))
(:export #:environment #:*environment* #:procs
#:init
(:export #:environment #:*environment* #:actions #:procs #:sensors
#:send #:send-message
#:neuron #:synapse
#:make-neuron #:update-neuron
#:neuron #:synapse #:std-proc
#:make-neuron #:update-neuron #:create-sensor
#:handle-action))
(in-package :scopes/csys)
@ -28,13 +27,6 @@
(defvar *environment* (make-instance 'environment))
(defun init ()
(setf (gethash :sensor (actions *environment*)) #'create-sensor)
(setf (gethash :default (procs *environment*)) #'std-proc)
(let* ((eff-proc (gethash '(:effect :default) (procs *environment*) #'std-proc))
(zero (make-neuron nil :proc eff-proc)))
(setf (gethash '(:init :zero) (sensors *environment*)) (list zero))))
;;;; neurons (= behavior factories) and synapses (connection factories)
(defun neuron (proc &optional state syns (env *environment*))
@ -89,7 +81,6 @@
(defun do-log (msg state syns env)
(util:lgi msg))
;;;; helper / utility funtions
(defun forward (msg syns)

View file

@ -52,16 +52,20 @@
(sleep 0.1)
(t:show-result))))
;;;; tests
;;;; test: initialization
(defun init ()
(setf (gethash :sensor (csys:actions csys:*environment*)) #'csys:create-sensor)
(let ((zero (csys:make-neuron nil :proc #'eff-proc)))
(setf (gethash '(:init :zero) (csys:sensors csys:*environment*)) (list zero))))
(deftest test-init ()
(let ((csys:*environment* (make-instance 'test-env :test-suite t:*test-suite*))
rcvr)
(setf (gethash '(:effect :default) (csys:procs csys:*environment*)) #'eff-proc)
(let ((csys:*environment* (make-instance 'test-env :test-suite t:*test-suite*)))
;(setup-xxx)
(setup-config)
(core:setup-services)
(setf (tc:receiver t:*test-suite*) (core:find-service :test-receiver))
(csys:init)
(init) ; end of setup
(csys:send-message '(:csys :sensor :init :zero) '(:std :s1))
(csys:send-message '(:csys :sensor :init :zero) '(:std :s2))
(sleep 0.1)