Пример #1
0
        public void CanSetListIndexWithDouble()
        {
            var list = new ListValue();
            list.Add("bar");
            cpu.PushStack(list);

            const double INDEX = 0.0d;
            cpu.PushStack(INDEX);

            const string VALUE = "foo";
            cpu.PushStack(VALUE);
            
            var opcode = new OpcodeSetIndex();

            opcode.Execute(cpu);

            Assert.AreEqual(1, list.Count);
            Assert.AreNotEqual("bar", list[0]);
            Assert.AreEqual("foo", list[0]);
        }
Пример #2
0
        public void CanSetListIndex()
        {
            var list = new ListValue();
            list.Add(new StringValue("bar"));
            cpu.PushStack(list);

            const int INDEX = 0;
            cpu.PushStack(INDEX);

            const string VALUE = "foo";
            cpu.PushStack(VALUE);

            var opcode = new OpcodeSetIndex();

            opcode.Execute(cpu);

            Assert.AreEqual(1, list.Count());
            Assert.AreNotEqual(new StringValue("bar"), list[0]);
            Assert.AreEqual(new StringValue("foo"), list[0]);
        }
Пример #3
0
        public void CanSetLexiconIndex()
        {
            Encapsulation.Structure index = new StringValue("foo");

            var lex = new Lexicon();
            lex.Add(index, new StringValue("bar"));
            cpu.PushStack(lex);

            cpu.PushStack(index);

            const string VALUE = "fizz";
            cpu.PushStack(VALUE);

            var opcode = new OpcodeSetIndex();

            opcode.Execute(cpu);

            Assert.AreEqual(1, lex.Count);
            Assert.AreNotEqual("bar", lex[new StringValue("foo")]);
        }
Пример #4
0
        public void WillThrowOnNonIntListIndex()
        {
            var list = new ListValue();
            list.Add("bar");
            cpu.PushStack(list);

            const string INDEX = "fizz";
            cpu.PushStack(INDEX);

            const string VALUE = "foo";
            cpu.PushStack(VALUE);
            
            var opcode = new OpcodeSetIndex();

            opcode.Execute(cpu);
        }
Пример #5
0
        public void WillThrowOnNonListType()
        {
            const string INDEX = "foo";

            var lex = new object();
            cpu.PushStack(lex);

            cpu.PushStack(INDEX);

            const string VALUE = "fizz";
            cpu.PushStack(VALUE);
            
            var opcode = new OpcodeSetIndex();

            opcode.Execute(cpu);
        }
Пример #6
0
        public void CanSetLexiconIndex()
        {
            const string INDEX = "foo";

            var lex = new Lexicon<object,object>();
            lex.Add(INDEX, "bar");
            cpu.PushStack(lex);

            cpu.PushStack(INDEX);

            const string VALUE = "fizz";
            cpu.PushStack(VALUE);
            
            var opcode = new OpcodeSetIndex();

            opcode.Execute(cpu);

            Assert.AreEqual(1, lex.Count);
            Assert.AreNotEqual("bar", lex["foo"]);
        }