public void LoadAreaServer()
{
Machine machine = new Machine();
var module = machine.LoadModule("area_server");
Assert.IsNotNull(module);
Assert.IsNotNull(module.Context);
Assert.AreEqual("area_server", module.Name);
Assert.IsNotNull(module.Context.GetValue("loop/0"));
machine.RootContext.SetValue(module.Name, module);
this.EvaluateExpression("Pid = spawn(fun() -> area_server:loop() end).", machine.RootContext);
Process process = new Process();
Process.Current = process;
this.EvaluateExpression("Pid ! {self(), rectangle, 6, 10}.", machine.RootContext);
Assert.AreEqual(60, process.GetMessage());
this.EvaluateExpression("Pid ! {self(), circle, 23}.", machine.RootContext);
Assert.AreEqual(3.14159 * 23 * 23, process.GetMessage());
this.EvaluateExpression("Pid ! stop.", machine.RootContext);
}