public void EvaluateProcessConversation()
{
Process process = new Process();
Process.Current = process;
this.EvaluateExpression("Pid = spawn(fun() -> receive { Sender, ping } -> Sender ! { self(), pong } end end).");
this.EvaluateExpression("Pid ! { self(), ping }.");
var result = this.EvaluateExpression("receive X -> X end.");
Assert.IsNotNull(result);
Assert.IsInstanceOfType(result, typeof(Tuple));
var tuple = (Tuple)result;
Assert.AreEqual(2, tuple.Arity);
Assert.AreSame(this.context.GetValue("Pid"), tuple.ElementAt(0));
Assert.IsInstanceOfType(tuple.ElementAt(1), typeof(Atom));
Assert.AreEqual(((Atom)tuple.ElementAt(1)).Name, "pong");
}