Ejemplo n.º 1
0
        public void Create_Seal_SerializeDeserialize_Read()
        {
            var names = new List <string> {
                "Kozloff", "Sergeev", "Aroyan", "Gurevich"
            };

            var parcel = new PeopleNamesParcel(new GDID(0, 123), names);

            Aver.IsTrue(ParcelState.Creating == parcel.State);
            parcel.Seal(FakeNOPBank.Instance);



            var ser = new SlimSerializer(Parcel.STANDARD_KNOWN_SERIALIZER_TYPES);

            var ms = new MemoryStream();

            ser.Serialize(ms, parcel);
            ms.Position = 0;
            var parcel2 = ser.Deserialize(ms) as PeopleNamesParcel;

            Aver.IsNotNull(parcel2);
            var payload2 = parcel2.Payload;

            Aver.IsNotNull(payload2);


            Aver.AreEqual(payload2.Count, names.Count);
            Aver.IsTrue(payload2.SequenceEqual(names));
        }
Ejemplo n.º 2
0
        public void Parcel_DeepClone_Benchmark_Parallel()
        {
            const int CNT = 100000;

            var names = new List <string> {
                "Kozloff", "Sergeev", "Aroyan", "Gurevich"
            };
            var p1 = new PeopleNamesParcel(new GDID(0, 123), names);

            p1.Seal(FakeNOPBank.Instance);

            var sw = System.Diagnostics.Stopwatch.StartNew();

            System.Threading.Tasks.Parallel.For(0, CNT,
                                                (i) =>
            {
                var p2 = p1.DeepClone() as PeopleNamesParcel;

                Aver.IsFalse(object.ReferenceEquals(p1, p2));
                Aver.IsFalse(object.ReferenceEquals(p1.Payload, p2.Payload));

                Aver.IsTrue(p1.Payload.Count == p2.Payload.Count);
                Aver.AreEqual(p1.GDID, p2.GDID);
            });
            sw.Stop();
            Console.WriteLine("NOTE: Core i7 x 6 cores 3.2Ghz 47000+ ops/sec on subsequent runs w/o optimization in non-server GC mode");
            Console.WriteLine("Cloned {0} times in {1} ms at {2} ops/sec", CNT, sw.ElapsedMilliseconds, CNT / (sw.ElapsedMilliseconds / 1000d));
        }
Ejemplo n.º 3
0
        public void Parcel_DeepClone_Benchmark()
        {
            const int CNT = 25000;

            var names = new List <string> {
                "Kozloff", "Sergeev", "Aroyan", "Gurevich"
            };
            var p1 = new PeopleNamesParcel(new GDID(0, 123), names);

            p1.Seal(FakeNOPBank.Instance);

            var sw = System.Diagnostics.Stopwatch.StartNew();

            for (var i = 0; i < CNT; i++)
            {
                var p2 = p1.DeepClone() as PeopleNamesParcel;

                Aver.IsFalse(object.ReferenceEquals(p1, p2));
                Aver.IsFalse(object.ReferenceEquals(p1.Payload, p2.Payload));

                Aver.IsTrue(p1.Payload.Count == p2.Payload.Count);
                Aver.AreEqual(p1.GDID, p2.GDID);
            }
            sw.Stop();
            Console.WriteLine("NOTE: Core i7 3.2Ghz 14000 ops/sec on subsequent runs w/o optimization");
            Console.WriteLine("Cloned {0} times in {1} ms at {2} ops/sec", CNT, sw.ElapsedMilliseconds, CNT / (sw.ElapsedMilliseconds / 1000d));
        }
Ejemplo n.º 4
0
        public void Create_Seal_ValidationError()
        {
            var names = new List <string> {
                "Kozloff", "Sergeev", "NoAroyan", "Gurevich"
            };

            var parcel = new PeopleNamesParcel(new GDID(0, 123), names);

            Aver.IsTrue(ParcelState.Creating == parcel.State);
            parcel.Seal(FakeNOPBank.Instance);
        }
Ejemplo n.º 5
0
        public void Parcel_DeepClone_2_Equals_ToString()
        {
            var names = new List <string> {
                "Kozloff", "Sergeev", "Aroyan", "Gurevich"
            };
            var p1 = new PeopleNamesParcel(new GDID(0, 123), names);

            p1.Seal(FakeNOPBank.Instance);
            var p2 = p1.DeepClone() as PeopleNamesParcel;

            Aver.IsFalse(object.ReferenceEquals(p1, p2));
            Aver.IsTrue(p1.Equals(p2));

            Console.WriteLine(p1.ToString());
        }
Ejemplo n.º 6
0
        public void Parcel_DeepClone_1()
        {
            var names = new List <string> {
                "Kozloff", "Sergeev", "Aroyan", "Gurevich"
            };
            var p1 = new PeopleNamesParcel(new GDID(0, 123), names);

            p1.Seal(FakeNOPBank.Instance);
            var p2 = p1.DeepClone() as PeopleNamesParcel;

            Aver.IsFalse(object.ReferenceEquals(p1, p2));
            Aver.IsFalse(object.ReferenceEquals(p1.Payload, p2.Payload));

            Aver.IsTrue(p1.Payload.SequenceEqual(p2.Payload));
            Aver.AreEqual(p1.GDID, p2.GDID);
        }
Ejemplo n.º 7
0
        public void StateError_4()
        {
            var names = new List <string> {
                "Kozloff", "Sergeev", "Aroyan", "Gurevich"
            };

            var parcel = new PeopleNamesParcel(new GDID(0, 123), names);

            Aver.IsTrue(ParcelState.Creating == parcel.State);
            //not sealed
            var ser = new SlimSerializer(Parcel.STANDARD_KNOWN_SERIALIZER_TYPES);

            var ms = new MemoryStream();

            ser.Serialize(ms, parcel);//can not serialize open parcel
        }
Ejemplo n.º 8
0
        public void FullLifecycle()
        {
            var names = new List <string> {
                "Kozloff", "Sergeev", "Aroyan", "Gurevich"
            };

            var parcel = new PeopleNamesParcel(new GDID(0, 123), names);

            Aver.IsTrue(ParcelState.Creating == parcel.State);
            parcel.Seal(FakeNOPBank.Instance);

            var ser = new SlimSerializer(Parcel.STANDARD_KNOWN_SERIALIZER_TYPES);

            var ms = new MemoryStream();

            ser.Serialize(ms, parcel);
            ms.Position = 0;
            var parcel2 = ser.Deserialize(ms) as PeopleNamesParcel;

            Aver.IsNotNull(parcel2);

            Aver.IsTrue(ParcelState.Sealed == parcel2.State);
            parcel2.Open();
            Aver.IsTrue(ParcelState.Modifying == parcel2.State);

            parcel2.Payload[1] = "Boyarskiy";
            parcel2.Seal(FakeNOPBank.Instance);

            ms.Position = 0;
            ser.Serialize(ms, parcel2);
            ms.Position = 0;
            var parcel3 = ser.Deserialize(ms) as PeopleNamesParcel;

            Aver.IsTrue(new List <string> {
                "Kozloff", "Boyarskiy", "Aroyan", "Gurevich"
            }.SequenceEqual(parcel3.Payload));
        }
Ejemplo n.º 9
0
 public void StateError_3()
 {
     var parcel = new PeopleNamesParcel(new GDID(0, 123), null);
 }