protected override void Check() { var sm1 = new StateMachine<int>(17, 18); sm1.InitialStates.ShouldBe(new[] { 17, 18 }); var sm2 = new StateMachine<E>(E.A, E.B, E.C); sm2.InitialStates.ShouldBe(new[] { E.A, E.B, E.C }); StateMachine<int> sm3 = new[] { 17, 18 }; sm3.InitialStates.ShouldBe(new[] { 17, 18 }); StateMachine<E> sm4 = new[] { E.A, E.B, E.C }; sm4.InitialStates.ShouldBe(new[] { E.A, E.B, E.C }); }
protected override void Check() { var o = new object(); var e = new[] { new object() }; var c = new C { X = { A = 3, B = 6, C = { A = 1, B = 2 }, D = o, E = e, F = new[] { new Y { A = 11, B = 12, C = false }, new Y { A = 13, B = 14, C = true } } }, Y = { A = 17, B = 44, C = true } }; c.Z = new Z { A = 99, B = c.X }; GenerateCode(SerializationMode.Optimized, c, e, o, c.X.F); StateSlotCount.ShouldBe(12); Serialize(); c.X.F[0] = new Y(); c.X.F[1] = new Y(); c.X = new X(); c.Y = new Y(); c.Z = new Z(); Deserialize(); c.X.A.ShouldBe(3); c.X.B.ShouldBe((ushort)6); c.X.C.A.ShouldBe((byte)1); c.X.C.B.ShouldBe((ushort)2); c.X.D.ShouldBe(o); c.X.E.ShouldBe(e); c.X.F[0].A.ShouldBe((byte)11); c.X.F[0].B.ShouldBe((ushort)12); c.X.F[0].C.ShouldBe(false); c.X.F[1].A.ShouldBe((byte)13); c.X.F[1].B.ShouldBe((ushort)14); c.X.F[1].C.ShouldBe(true); c.Y.A.ShouldBe((byte)17); c.Y.B.ShouldBe((ushort)44); c.Y.C.ShouldBe(true); c.Z.A.ShouldBe(99); c.Z.B.A.ShouldBe(3); c.Z.B.B.ShouldBe((ushort)6); c.Z.B.C.A.ShouldBe((byte)1); c.Z.B.C.B.ShouldBe((ushort)2); c.Z.B.D.ShouldBe(o); c.Z.B.E.ShouldBe(e); c.Z.B.F[0].A.ShouldBe((byte)11); c.Z.B.F[0].B.ShouldBe((ushort)12); c.Z.B.F[0].C.ShouldBe(false); c.Z.B.F[1].A.ShouldBe((byte)13); c.Z.B.F[1].B.ShouldBe((ushort)14); c.Z.B.F[1].C.ShouldBe(true); c.Y.C = false; Serialize(); c.Y.C = true; Deserialize(); c.Y.C.ShouldBe(false); }