Пример #1
0
        public void GetDefineString()
        {
            Machine machine = new Machine();
            IMetaClass meta = BaseMetaClass.CreateMetaClass(null, machine);
            BaseClass bclass = new BaseClass(meta, "Class", null, machine, string.Empty);

            bclass.DefineInstanceVariable("x");
            bclass.DefineInstanceVariable("y");

            string definition = bclass.ToDefineString();

            Assert.IsNotNull(definition);
            Assert.IsTrue(definition.Contains("subclass: #Class"));
            Assert.IsTrue(definition.Contains("instanceVariableNames: 'x y'"));
            Assert.IsTrue(definition.Contains("classVariableNames: ''"));
            Assert.IsTrue(definition.Contains("poolDictionaries: ''"));
            Assert.IsTrue(definition.Contains("category: ''"));
        }
Пример #2
0
        public void DefineInstanceVariables()
        {
            Machine machine = new Machine();
            BaseClass bclass = new BaseClass("Class", machine);

            bclass.DefineInstanceVariable("x");
            bclass.DefineInstanceVariable("y");

            Assert.AreEqual(2, bclass.NoInstanceVariables);
            Assert.AreEqual(0, bclass.GetInstanceVariableOffset("x"));
            Assert.AreEqual(1, bclass.GetInstanceVariableOffset("y"));
            Assert.AreEqual(-1, bclass.GetInstanceVariableOffset("z"));
            Assert.AreEqual("x y", bclass.GetInstanceVariableNamesAsString());
            Assert.AreEqual(string.Empty, bclass.GetClassVariableNamesAsString());
            Assert.AreEqual(null, bclass.GetClassVariableNames());

            var result = bclass.GetInstanceVariableNames();

            Assert.IsNotNull(result);
            Assert.AreEqual(2, result.Count);
            Assert.AreEqual("x", result.ElementAt(0));
            Assert.AreEqual("y", result.ElementAt(1));
        }