move (example) init sequence to Program; + clean-up

This commit is contained in:
Helmut Merz 2026-05-20 16:44:53 +02:00
parent b223400225
commit 046f518289
2 changed files with 20 additions and 23 deletions

View file

@ -128,4 +128,19 @@ alias Scopes.CSys
state_n = %{state | stage: :initial}
{state_n, get_proc(state_n), syns, env}
end
# demo init sequences
def init_seq_b1() do [
fn [zero | _ns] -> CSys.send_message(zero, [:csys, :create, :pred],
%{op: [CSys.data_only(), negate()]}) end,
fn [one | _ns] -> CSys.send_message(one, [:csys, :create, :succ],
%{op: CSys.data_only()}) end,
fn [two | _ns] -> CSys.send_message(two, [:csys, :create, :pred]) end,
fn [three | others] ->
zero = List.last(others)
CSys.send_message(three, [:csys, :connect], %{target: zero})
end
]
end
end

View file

@ -16,34 +16,16 @@ defmodule Scopes.CSysTest do
Shape.data(receive_select(head))
end
def init_seq() do [
fn [zero | _ns] -> CSys.send_message(zero, [:csys, :create, :pred],
%{op: [CSys.data_only(), Program.negate()]}) end,
fn [one | _ns] -> CSys.send_message(one, [:csys, :create, :succ],
%{op: CSys.data_only()}) end,
fn [two | _ns] -> CSys.send_message(two, [:csys, :create, :pred]) end,
fn [three | others] ->
zero = List.last(others)
CSys.send_message(three, [:csys, :connect], %{target: zero})
end
]
end
describe "basic:" do
test "minimal-neural-net" do
_env = Environ.setup(Program.prepare_basic(), init_seq())
_env = Environ.setup(Program.prepare_basic(), Program.init_seq_b1())
zero = receive_data([:csys, :created]).new
CSys.send_value(zero, 0)
assert 0 = receive_data().value
#CSys.send_message(zero, [:csys, :create, :pred],
# %{op: [CSys.data_only(), Program.negate()]})
one = receive_data([:csys, :created]).new
#CSys.send_message(one, [:csys, :create, :succ], %{op: CSys.data_only()})
_two = receive_data([:csys, :created]).new
#CSys.send_message(two, [:csys, :create, :pred])
three = receive_data([:csys, :created]).new
#CSys.send_message(three, [:csys, :connect], %{target: zero})
Process.sleep(3)
Process.sleep(5)
CSys.send_value(one, 1)
assert receive_data().value == 1
#assert receive_data().value in [-1, 1]