コード例 #1
0
        protected override void Check()
        {
            var c = new C {
                F1 = 99, F2 = 12, F3 = -1, F4 = 3
            };
            var m = InitializeModel(c);

            _hasConstructorRun = false;
            Create(m);

            StateVectorSize.ShouldBe(4);
            StateFormulas.ShouldBeEmpty();
            RootComponents.Length.ShouldBe(1);

            var root = RootComponents[0];

            root.ShouldBeOfType <C>();
            ((C)root).F1.ShouldBe(5);
            ((C)root).F2.ShouldBe(5);
            ((C)root).F3.ShouldBe(0);
            ((C)root).F4.ShouldBe(3);
            root.GetSubcomponents().ShouldBeEmpty();

            _hasConstructorRun.ShouldBe(false);
        }
コード例 #2
0
        protected override void Check()
        {
            var d = new D {
                S = { F = 3, G = 4, H = 2 }
            };

            GenerateCode(SerializationMode.Optimized, d);
            StateVectorSize.ShouldBe(4);

            Serialize();
            d.S.F = 33;
            d.S.G = 0;
            d.S.H = 0;

            Deserialize();
            d.S.F.ShouldBe(3);
            d.S.G.ShouldBe(4);
            d.S.H.ShouldBe(2);

            d.S.G = -1;
            Serialize();
            Deserialize();

            d.S.F.ShouldBe(3);
            d.S.G.ShouldBe(0);
            d.S.H.ShouldBe(2);

            d.S.G = 121;
            Serialize();
            Deserialize();

            d.S.F.ShouldBe(3);
            d.S.G.ShouldBe(5);
            d.S.H.ShouldBe(2);

            d.S.H = -1;
            Serialize();
            Deserialize();

            d.S.F.ShouldBe(3);
            d.S.G.ShouldBe(5);
            d.S.H.ShouldBe(5);

            d.S.H = 111;
            Serialize();
            Deserialize();

            d.S.F.ShouldBe(3);
            d.S.G.ShouldBe(5);
            d.S.H.ShouldBe(0);

            d.S.F = -1;
            Should.Throw <RangeViolationException>(() => Serialize());
        }
コード例 #3
0
ファイル: large.cs プロジェクト: pascalpfeil/ssharp
        protected override void Check()
        {
            var cs = new C[35];

            for (var i = 0; i < cs.Length; ++i)
            {
                cs[i] = new C
                {
                    A = i % 2 == 0,
                    B = (short)(i * 2),
                    D = 100 + i,
                    E = i % 2 == 0 ? E.A : E.B
                };
            }

            GenerateCode(SerializationMode.Optimized, cs);
            StateVectorSize.ShouldBe(256);

            Serialize();

            foreach (var c in cs)
            {
                c.A = false;
                c.B = 0;
                c.D = 0;
                c.E = E.A;
            }

            Deserialize();

            for (var i = 0; i < cs.Length; ++i)
            {
                cs[i].A.ShouldBe(i % 2 == 0);
                cs[i].B.ShouldBe((short)(i * 2));
                cs[i].D = 100 + i;
                cs[i].E.ShouldBe(i % 2 == 0 ? E.A : E.B);
            }
        }
コード例 #4
0
ファイル: struct array.cs プロジェクト: pascalpfeil/ssharp
        protected override void Check()
        {
            var d = new D {
                S = new[] { new S {
                                F = 2, G = 3, H = 4
                            }, new S {
                                F = 6, G = 7, H = 8
                            } }
            };

            GenerateCode(SerializationMode.Optimized, d);
            StateVectorSize.ShouldBe(8);

            Serialize();
            d.S[0].F = 33;
            d.S[0].G = 0;
            d.S[0].H = 0;

            Deserialize();
            d.S[0].F.ShouldBe(2);
            d.S[0].G.ShouldBe(3);
            d.S[0].H.ShouldBe(4);
            d.S[1].F.ShouldBe(6);
            d.S[1].G.ShouldBe(7);
            d.S[1].H.ShouldBe(8);

            d.S[0].G = -1;
            d.S[1].G = -1;
            Serialize();
            Deserialize();

            d.S[0].F.ShouldBe(2);
            d.S[0].G.ShouldBe(0);
            d.S[0].H.ShouldBe(4);
            d.S[1].F.ShouldBe(6);
            d.S[1].G.ShouldBe(0);
            d.S[1].H.ShouldBe(8);

            d.S[0].G = 121;
            d.S[1].G = 121;
            Serialize();
            Deserialize();

            d.S[0].F.ShouldBe(2);
            d.S[0].G.ShouldBe(10);
            d.S[0].H.ShouldBe(4);
            d.S[1].F.ShouldBe(6);
            d.S[1].G.ShouldBe(10);
            d.S[1].H.ShouldBe(8);

            d.S[0].G = 3;
            d.S[1].G = 7;
            d.S[0].H = -1;
            d.S[1].H = -1;
            Serialize();
            Deserialize();

            d.S[0].F.ShouldBe(2);
            d.S[0].G.ShouldBe(3);
            d.S[0].H.ShouldBe(10);
            d.S[1].F.ShouldBe(6);
            d.S[1].G.ShouldBe(7);
            d.S[1].H.ShouldBe(10);

            d.S[0].H = 111;
            d.S[1].H = 111;
            Serialize();
            Deserialize();

            d.S[0].F.ShouldBe(2);
            d.S[0].G.ShouldBe(3);
            d.S[0].H.ShouldBe(0);
            d.S[1].F.ShouldBe(6);
            d.S[1].G.ShouldBe(7);
            d.S[1].H.ShouldBe(0);

            d.S[0].F = -1;
            Should.Throw <RangeViolationException>(() => Serialize());

            d.S[0].F = 2;
            d.S[1].F = -1;
            Should.Throw <RangeViolationException>(() => Serialize());
        }