defmodule Scopes.CSysTest do use ExUnit.Case, async: true @moduletag timeout: 5000 alias Scopes.Core.Actor alias Scopes.CSys alias Scopes.CSys.Environ alias Scopes.CSys.Program describe "basic:" do test "minimal-neural-net" do env = Environ.create(self()) Environ.put_prog(env, :basic, Program.basic_prog()) proc = Environ.get_stage(env, :basic, :initial) zero = CSys.neuron({[], proc, [], env}) Actor.send(zero, "Hello Zero!") # msg = Message.create([:csys, :data], data: %{value: "Hello Zero!"}) # Actor.send(zero, msg) assert_receive "Hello Zero!" Actor.send(zero, {[:csys, :create, :parent], nil}) assert_receive {:created, new1} Actor.send(new1, {[:csys, :create, :child], nil}) assert_receive {:created, _new2} Actor.send(new1, "Hello New1!") assert_receive "Hello New1!" assert_receive "Hello New1!" Process.sleep(50) # Actor.stop(zero) refute_received msg, "unhandled message(s): #{inspect(msg)}" end end end