public void InheritsVariables()
{
Machine machine = new Machine();
IClass supercls = machine.CreateClass("Figure");
supercls.DefineInstanceVariable("x");
supercls.DefineInstanceVariable("y");
IClass cls = machine.CreateClass("Rectangle", supercls);
Assert.AreEqual(supercls, cls.SuperClass);
cls.DefineInstanceVariable("width");
cls.DefineInstanceVariable("height");
Assert.IsNotNull(cls);
Assert.AreEqual("Rectangle", cls.Name);
Assert.AreEqual(0, supercls.GetInstanceVariableOffset("x"));
Assert.AreEqual(1, supercls.GetInstanceVariableOffset("y"));
Assert.AreEqual(0, cls.GetInstanceVariableOffset("x"));
Assert.AreEqual(1, cls.GetInstanceVariableOffset("y"));
Assert.AreEqual(2, cls.GetInstanceVariableOffset("width"));
Assert.AreEqual(3, cls.GetInstanceVariableOffset("height"));
}