move (example) init sequence to Program; + clean-up
This commit is contained in:
parent
b223400225
commit
046f518289
2 changed files with 20 additions and 23 deletions
|
|
@ -71,7 +71,7 @@ alias Scopes.CSys
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# message handlers // proc steps
|
# message handlers // proc steps
|
||||||
|
|
||||||
def process_data(msg, scope) do
|
def process_data(msg, scope) do
|
||||||
data = Shape.data(msg)
|
data = Shape.data(msg)
|
||||||
|
|
@ -111,7 +111,7 @@ alias Scopes.CSys
|
||||||
CSys.send_message(new, [:csys, :connect], Map.put(data, :target, self()))
|
CSys.send_message(new, [:csys, :connect], Map.put(data, :target, self()))
|
||||||
end
|
end
|
||||||
|
|
||||||
# synapse operations
|
# synapse operations
|
||||||
|
|
||||||
def multiply(n) do
|
def multiply(n) do
|
||||||
fn msg ->
|
fn msg ->
|
||||||
|
|
@ -122,10 +122,25 @@ alias Scopes.CSys
|
||||||
|
|
||||||
def negate(), do: multiply(-1)
|
def negate(), do: multiply(-1)
|
||||||
|
|
||||||
# helper functions
|
# helper functions
|
||||||
|
|
||||||
def restart({state, _proc, syns, env}) do
|
def restart({state, _proc, syns, env}) do
|
||||||
state_n = %{state | stage: :initial}
|
state_n = %{state | stage: :initial}
|
||||||
{state_n, get_proc(state_n), syns, env}
|
{state_n, get_proc(state_n), syns, env}
|
||||||
end
|
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
|
end
|
||||||
|
|
|
||||||
|
|
@ -16,34 +16,16 @@ defmodule Scopes.CSysTest do
|
||||||
Shape.data(receive_select(head))
|
Shape.data(receive_select(head))
|
||||||
end
|
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
|
describe "basic:" do
|
||||||
test "minimal-neural-net" 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
|
zero = receive_data([:csys, :created]).new
|
||||||
CSys.send_value(zero, 0)
|
CSys.send_value(zero, 0)
|
||||||
assert 0 = receive_data().value
|
assert 0 = receive_data().value
|
||||||
#CSys.send_message(zero, [:csys, :create, :pred],
|
|
||||||
# %{op: [CSys.data_only(), Program.negate()]})
|
|
||||||
one = receive_data([:csys, :created]).new
|
one = receive_data([:csys, :created]).new
|
||||||
#CSys.send_message(one, [:csys, :create, :succ], %{op: CSys.data_only()})
|
|
||||||
_two = receive_data([:csys, :created]).new
|
_two = receive_data([:csys, :created]).new
|
||||||
#CSys.send_message(two, [:csys, :create, :pred])
|
|
||||||
three = receive_data([:csys, :created]).new
|
three = receive_data([:csys, :created]).new
|
||||||
#CSys.send_message(three, [:csys, :connect], %{target: zero})
|
Process.sleep(5)
|
||||||
Process.sleep(3)
|
|
||||||
CSys.send_value(one, 1)
|
CSys.send_value(one, 1)
|
||||||
assert receive_data().value == 1
|
assert receive_data().value == 1
|
||||||
#assert receive_data().value in [-1, 1]
|
#assert receive_data().value in [-1, 1]
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue