defmodule Scopes.CSysTest do use ExUnit.Case, async: true @moduletag timeout: 5000 alias Scopes.Core.Actor alias Scopes.CSys alias Scopes.CSys.Environ def basic_prog() do %{basic: [&CSys.std_proc/2]} end describe "basic:" do test "minimal-neural-net" do env = Environ.create(self(), basic_prog()) # or: Programs.basic() std_program = Environ.get_prog(env, :basic) zero = CSys.neuron({[], std_program, [], env}) Actor.send(zero, "Hello Zero!") assert_receive "Hello Zero!" Actor.send(zero, {:parent}) assert_receive {:created, new} Actor.send(new, "Hello New!") assert_receive "Hello New!" # assert_receive "Hello New!" Process.sleep(50) # Actor.stop(zero) refute_received msg, "unhandled message(s): #{inspect(msg)}" end end end