public void SerializeDeserializeClass()
{
Machine machine = new Machine();
IClass klass = machine.CreateClass("MyClass");
klass.DefineInstanceVariable("a");
klass.DefineInstanceVariable("b");
klass.DefineClassVariable("c");
klass.DefineClassVariable("d");
var result = this.Process(klass, machine);
Assert.IsNotNull(result);
Assert.IsInstanceOfType(result, typeof(BaseClass));
var bclass = (BaseClass)result;
Assert.AreEqual("MyClass", bclass.Name);
Assert.IsNotNull(bclass.Behavior);
Assert.AreEqual(0, bclass.GetInstanceVariableOffset("a"));
Assert.AreEqual(1, bclass.GetInstanceVariableOffset("b"));
Assert.AreEqual(0, bclass.GetClassVariableOffset("c"));
Assert.AreEqual(1, bclass.GetClassVariableOffset("d"));
}