public void LoadAndUseFiboModule()
{
Machine machine = new Machine();
var module = machine.LoadModule("fibo");
Assert.IsNotNull(module);
Assert.IsNotNull(module.Context);
Assert.AreEqual("fibo", module.Name);
Assert.IsNotNull(module.Context.GetValue("fibo/1"));
Assert.IsInstanceOfType(module.Context.GetValue("fibo/1"), typeof(MultiFunction));
var ffunc = (MultiFunction)module.Context.GetValue("fibo/1");
Assert.AreEqual(1, ffunc.Apply(null, new object[] { 0 }));
Assert.AreEqual(1, ffunc.Apply(null, new object[] { 1 }));
Assert.AreEqual(2, ffunc.Apply(null, new object[] { 2 }));
Assert.AreEqual(3, ffunc.Apply(null, new object[] { 3 }));
Assert.AreEqual(5, ffunc.Apply(null, new object[] { 4 }));
}