예제 #1
0
        public void Test_Tenary_Operator()
        {
            uint a = 5;
            var  b = a == 5 ? 1 : 0;

            Assert.AreEqual(b, 1);
        }
예제 #2
0
        public void FuncTest_Lambda_Closure()
        {
            int        a    = 5;
            Func <int> func = () => a;

            Assert.AreEqual(func(), 5);
        }
예제 #3
0
 public int StaticMethod(int a, MockObject o1, MockObject o2)
 {
     Assert.AreEqual(a, 3);
     Assert.AreEqual(o1.F, 12);
     Assert.AreEqual(o2.F, 13);
     return(5);
 }
예제 #4
0
        public void Test_Tenary_Operator_2()
        {
            uint a = 5;
            var  b = a == 6 ? 1 : 0;

            Assert.AreEqual(b, 0);
        }
예제 #5
0
        public void Int_Array()
        {
            var sut = new int[5];

            Assert.AreEqual(sut.Length, 5);
            sut[1] = 6;
            Assert.AreEqual(sut[1], 6);
        }
예제 #6
0
        public void Test_Virtual_Chain()
        {
            TestA a = new TestA();
            TestA b = new TestB();

            Assert.AreEqual(a.Virtual2(), 5);
            Assert.AreEqual(b.Virtual2(), 6);
        }
예제 #7
0
        public void Call_Instance_Method()
        {
            var sut = new Test();

            sut.field1 = 6;
            sut.IncField1();
            Assert.AreEqual(sut.field1, 7);
        }
예제 #8
0
        public void String_Array_Initializer()
        {
            var sut = new string[] { "a", "bb" };

            Assert.AreEqual(sut.Length, 2);
            Assert.AreEqual(sut[0].Length, 1);
            Assert.AreEqual(sut[1].Length, 2);
        }
예제 #9
0
        public void Test_Virtual_With_Parameter()
        {
            TestA a = new TestA();
            TestA b = new TestB();

            Assert.AreEqual(a.VirtualParam(5), 6);
            Assert.AreEqual(b.VirtualParam(5), 7);
        }
예제 #10
0
        public void FuncTest_Instance_Method()
        {
            Func <int> func = (new FuncTestA {
                X = 19
            }).Bar;

            Assert.AreEqual(func(), 19);
        }
예제 #11
0
        public void Set_Get_Field()
        {
            var sut = new Test();

            sut.field1 = 5;
            sut.field2 = 3;
            Assert.AreEqual(sut.field1, 5);
            Assert.AreEqual(sut.field2, 3);
        }
예제 #12
0
        public void Int_Array_Initializer()
        {
            int a   = 5;
            int b   = 6;
            var sut = new int[] { a, b };

            Assert.AreEqual(sut.Length, 2);
            Assert.AreEqual(sut[1], 6);
        }
예제 #13
0
        public void Set_Get_Property()
        {
            var sut = new Test();

            sut.Property1 = 5;
            sut.Property2 = 2;
            Assert.AreEqual(sut.Property1, 5);
            Assert.AreEqual(sut.Property2, 4);
        }
예제 #14
0
        public void For_Loop()
        {
            int i = 0;

            for (; i < 10; i++)
            {
            }
            Assert.AreEqual(i, 10);
        }
예제 #15
0
        public void Object_Array()
        {
            var sut = new MockObject[5];

            Assert.AreEqual(sut.Length, 5);
            sut[1] = new MockObject {
                F = 5
            };
            Assert.AreEqual(sut[1].F, 5);
        }
예제 #16
0
        public void While_Loop()
        {
            int i = 0;

            while (i < 10)
            {
                i++;
            }
            Assert.AreEqual(i, 10);
        }
예제 #17
0
        public void Long_Array()
        {
            var sut = new long[5];

            Assert.AreEqual(sut.Length, 5);
            sut[0] = 12L;
            sut[3] = 13L;
            Assert.AreEqual((int)sut[0], 12);
            Assert.AreEqual((int)sut[3], 13);
        }
예제 #18
0
        public void Test_Instance_Method()
        {
            var result = InstanceMethod(3, new MockObject {
                F = 12
            }, new MockObject {
                F = 13
            });

            Assert.AreEqual(result, 5);
        }
예제 #19
0
        public void Test_Virtual_Method_Call_void()
        {
            TestA a = new TestA();
            TestA b = new TestB();

            a.VirtualVoid();
            Assert.AreEqual(TestA.F, 12);
            b.VirtualVoid();
            Assert.AreEqual(TestA.F, 14);
        }
예제 #20
0
        public void Test_Static_Method()
        {
            var result = StaticMethod(3, new MockObject {
                F = 12
            }, new MockObject {
                F = 13
            });

            Assert.AreEqual(result, 5);
        }
예제 #21
0
        public void Object_Initializer_With_String()
        {
            var sut = new TestWithString()
            {
                field1 = 3,
                field2 = "xxx",
            };

            Assert.AreEqual(sut.field1, 3);
            Assert.AreEqual(sut.field2.Length, 3);
        }
예제 #22
0
        public void Object_Array_Initializer()
        {
            var sut = new MockObject[] { new MockObject {
                                             F = 12
                                         }, new MockObject {
                                             F = 13
                                         } };

            Assert.AreEqual(sut.Length, 2);
            Assert.AreEqual(sut[1].F, 13);
        }
예제 #23
0
        public void Hierarchies_Local_Variable_Root()
        {
            var a1 = new TestObject()
            {
                Id = 1, Child = new TestObject()
            };
            var a2 = new TestObject()
            {
                Id = 2, Child = a1
            };
            var a3 = new TestObject()
            {
                Id = 3, Child = a2
            };

            var b1 = new TestObject()
            {
                Id = 4
            };
            var b2 = new TestObject()
            {
                Id = 5, Child = b1
            };
            var b3 = new TestObject()
            {
                Id = 6, Child = b2
            };

            var a1id = C64.Debug.GetObjectId(a1);
            var a2id = C64.Debug.GetObjectId(a2);
            var a3id = C64.Debug.GetObjectId(a3);

            var b1id = C64.Debug.GetObjectId(b1);
            var b2id = C64.Debug.GetObjectId(b2);
            var b3id = C64.Debug.GetObjectId(b3);

            a1 = a2 = a3 = null;
            b1 = b2 = null;

            GC.Collect();

            Assert.IsFalse(C64.Debug.IsAlive(a1id), "IsAlive(a1id)");
            Assert.IsFalse(C64.Debug.IsAlive(a2id), "IsAlive(a2id)");
            Assert.IsFalse(C64.Debug.IsAlive(a3id), "IsAlive(a3id)");

            Assert.AreEqual(b3.Id, 6, "b3.Id==6");
            Assert.AreEqual(b3.Child.Id, 5, "b3.Child.Id == 5");
            Assert.AreEqual(b3.Child.Child.Id, 4, "b3.Child.Child.Id == 4");

            Assert.IsTrue(C64.Debug.IsAlive(b1id), "IsAlive(b1id)");
            Assert.IsTrue(C64.Debug.IsAlive(b2id), "IsAlive(b2id)");
            Assert.IsTrue(C64.Debug.IsAlive(b3id), "IsAlive(b3id)");
        }
예제 #24
0
        public void Test_Virtual_Method_Call()
        {
            TestA a = new TestA();
            TestA b = new TestB();

            Assert.AreEqual(a.NonVirtual(), 17);
            Assert.AreEqual(a.Virtual(), 18);
            Assert.AreEqual(a.NonVirtual2(), 19);

            // for (ulong i = 0; i < 5ul; i++)
            // a.Virtual3(5);
        }
예제 #25
0
        public void While_Loop_With_Break()
        {
            int i = 0;

            while (true)
            {
                i++;
                if (i == 10)
                {
                    break;
                }
            }
            Assert.AreEqual(i, 10);
        }
예제 #26
0
        public void Two_Instances()
        {
            var sut1 = new Test()
            {
                field1 = 5
            };
            var sut2 = new Test()
            {
                field1 = 6
            };

            Assert.AreEqual(sut1.field1, 5);
            Assert.AreEqual(sut2.field1, 6);
        }
예제 #27
0
        public void Object_Initializer()
        {
            var sut = new Test()
            {
                field1    = 3,
                field2    = 5,
                Ulong1    = 1234,
                Property1 = 6
            };

            Assert.AreEqual(sut.field1, 3);
            Assert.AreEqual(sut.field2, 5);
            Assert.AreEqual(sut.Property1, 6);
        }
예제 #28
0
        public void Multiple_Int_Array()
        {
            var sut1 = new int[3];

            sut1[0] = sut1[1] = sut1[2] = 1;
            var sut2 = new int[3];

            sut2[0] = sut2[1] = sut2[2] = 2;
            Assert.AreEqual(sut1[0], 1);
            Assert.AreEqual(sut1[1], 1);
            Assert.AreEqual(sut1[2], 1);
            Assert.AreEqual(sut2[0], 2);
            Assert.AreEqual(sut2[1], 2);
            Assert.AreEqual(sut2[2], 2);
        }
예제 #29
0
        public void Two_Instances_First_GCd_Static_Field()
        {
            s_a1 = new TestObject()
            {
                Id = 4
            };
            s_a2 = new TestObject()
            {
                Id = 5
            };

            var objId  = C64.Debug.GetObjectId(s_a1);
            var objId2 = C64.Debug.GetObjectId(s_a2);

            Assert.IsTrue(C64.Debug.IsAlive(objId), "instance should be alive");
            s_a1 = null;
            GC.Collect();

            Assert.IsFalse(C64.Debug.IsAlive(objId), "instance should not be alive");
            Assert.IsTrue(C64.Debug.IsAlive(objId2), "instance should be alive");
            Assert.AreEqual(s_a2.Id, 5);
        }
예제 #30
0
        public void FuncTest_Static_Method()
        {
            Func <int> func = FuncTestA.Foo;

            Assert.AreEqual(func(), 17);
        }