Esempio n. 1
0
        [Test] // []= [start, length]= [range]=
        public void TestIndexerSetter()
        {
            var fixnum1    = new Fixnum(1);
            var str        = new String("string");
            var nil        = new NilClass();
            var emptyArray = new Array();

            emptyArray[0] = fixnum1;
            Assert.That(emptyArray[0], Is.EqualTo(fixnum1));

            emptyArray    = new Array();
            emptyArray[1] = fixnum1;
            Assert.That(emptyArray[0], Is.EqualTo(nil));
            Assert.That(emptyArray[1], Is.EqualTo(fixnum1));

            emptyArray = new Array();
            Assert.Throws <IndexError>(() => { emptyArray[-2] = fixnum1; });

            var array = new Array(fixnum1, str);

            array[0] = str;
            array[1] = new NilClass();

            Assert.That(array[0], Is.EqualTo(str));
            Assert.That(array[1], Is.EqualTo(nil));

            array[-1] = str;
            array[-2] = new NilClass();

            Assert.That(array[-1], Is.EqualTo(str));
            Assert.That(array[-2], Is.EqualTo(nil));

            Assert.Throws <IndexError>(() => { emptyArray[-3] = fixnum1; });
        }
Esempio n. 2
0
        [Test] // [] [start, length] [range] first last slice slice!
        public void TestIndexerGetter()
        {
            var fixnum0    = new Fixnum(0);
            var str        = new String("string");
            var nil        = new NilClass();
            var emptyArray = new Array();

            Assert.That(emptyArray[0], Is.EqualTo(nil));
            var array = new Array(fixnum0, str);         // a = [0, "string"]

            // []
            Assert.That(array[0], Is.EqualTo(fixnum0));  //  a[0] => 0
            Assert.That(array[1], Is.EqualTo(str));      //  a[1] => "string"
            Assert.That(array[2], Is.EqualTo(nil));      //  a[2] => nil

            Assert.That(array[-2], Is.EqualTo(fixnum0)); // a[-2] => 0
            Assert.That(array[-1], Is.EqualTo(str));     // a[-1] => "string"
            Assert.That(array[-3], Is.EqualTo(nil));     // a[-3] => "string"

            // TODO
            // a[0, 3]  => [0, "string"]
            // a[-2, 1] => [0]
            // a[0..5]  => [0, "string"]
            // a[0...1] => [0]
            Assert.That(array.First, Is.EqualTo(fixnum0)); // a.first => 0
            Assert.That(array.Last, Is.EqualTo(str));      // a.last  => "string"

            // TODO
            // slice!
        }
Esempio n. 3
0
        public void TestFreeze()
        {
            var value = new NilClass();

            Assert.IsTrue(value.Frozen);
            Assert.That(value.Freeze(), Is.EqualTo(value));
            Assert.IsTrue(value.Frozen);
        }
Esempio n. 4
0
        public void TestIsA()
        {
            var instance = new NilClass();

            Assert.IsTrue(instance.IsA(Class.NIL));
            Assert.IsTrue(instance.IsA(Class.OBJECT));
            Assert.IsTrue(instance.IsA(Class.BASIC_OBJECT));
            Assert.IsFalse(instance.IsA(Class.STRING));
            Assert.IsFalse(instance.IsA(Class.TRUE));
        }
Esempio n. 5
0
        [Test] // compact compact!
        public void TestCompact()
        {
            var nil      = new NilClass();
            var fixnum0  = new Fixnum(0);
            var array    = new Array(nil, nil);
            var newArray = array.Compact();

            Assert.That(newArray.Count, Is.EqualTo(0));
            Assert.That(array.Count, Is.EqualTo(2));
            array.CompactSelf();
            Assert.That(array.Count, Is.EqualTo(0));
        }
Esempio n. 6
0
        [Test] // push
        public void TestPush()
        {
            var fixnum1 = new Fixnum(1);
            var str     = new String("string");
            var nil     = new NilClass();

            var emptyArray = new Array();

            Assert.That(emptyArray.Push(fixnum1), Is.EqualTo(new Array(fixnum1)));

            var array = new Array(fixnum1, str, nil);

            Assert.That(array.Push(fixnum1), Is.EqualTo(new Array(fixnum1, str, nil, fixnum1)));
        }
Esempio n. 7
0
        [Test] // inspet
        public void TestInspect()
        {
            // [1, "string", nil].to_s = "[1, \"string\", nil]"
            var fixnum1 = new Fixnum(1);
            var str     = new String("string");
            var nil     = new NilClass();

            var emptyArray = new Array();

            Assert.That(emptyArray.Inspect, Is.EqualTo("[]"));

            var array = new Array(fixnum1, str, nil);

            Assert.That(array.Inspect, Is.EqualTo("[1, \"string\", nil]"));
        }
Esempio n. 8
0
        public void TestIf()
        {
            var     actual   = Eval("if true then :a end");
            iObject expected = new Symbol("a");

            Assert.That(actual, Is.EqualTo(expected));

            actual   = Eval("if false then :a else 'b' end");
            expected = new String("b");
            Assert.That(actual, Is.EqualTo(expected));

            actual   = Eval("if true then :a else 'b' end");
            expected = new Symbol("a");
            Assert.That(actual, Is.EqualTo(expected));

            actual   = Eval("'a' if nil");
            expected = new NilClass();
            Assert.That(actual, Is.EqualTo(expected));

            actual   = Eval("'a' if :a");
            expected = new String("a");
            Assert.That(actual, Is.EqualTo(expected));

            actual   = Eval("if false then 1 elsif true then 2 else 3 end");
            expected = new Fixnum(2);
            Assert.That(actual, Is.EqualTo(expected));

            actual   = Eval("unless false then 10 end");
            expected = new Fixnum(10);
            Assert.That(actual, Is.EqualTo(expected));

            actual   = Eval("unless nil then 10 else 20 end");
            expected = new Fixnum(10);
            Assert.That(actual, Is.EqualTo(expected));

            actual   = Eval("unless true then 10 else 20 end");
            expected = new Fixnum(20);
            Assert.That(actual, Is.EqualTo(expected));

            actual   = Eval("10 unless nil");
            expected = new Fixnum(10);
            Assert.That(actual, Is.EqualTo(expected));
        }
Esempio n. 9
0
 public void Setup()
 {
     this.@class = new NilClass(null);
 }