Esempio n. 1
0
        public void SerDeserSubarray_OneSimplePersonWithByteArray_Small()
        {
            var row1 = new SimplePersonWithByteArrayRow
            {
                Age    = 123,
                Bool1  = true,
                ID     = new GDID(12, 234),
                Name   = "Jacques Mudakes",
                Salary = 143098,
                Str1   = "Night Flower",
                Date   = new DateTime(1980, 08, 12, 13, 45, 11),
                Buffer = new byte[] { 1, 7, 9 }
            };

            var data = ArowSerializer.SerializeToSubarray(row1);


            var row2 = new SimplePersonWithByteArrayRow();

            ArowSerializer.Deserialize(row2, data.Array, 0);

            Aver.AreEqual(row1.ID, row2.ID);
            Aver.AreEqual(row1.Bool1, row2.Bool1);
            Aver.AreEqual(row1.Name, row2.Name);
            Aver.AreEqual(row1.Age, row2.Age);
            Aver.AreEqual(row1.Salary, row2.Salary);
            Aver.AreEqual(row1.Str1, row2.Str1);
            Aver.AreEqual(row1.Date, row2.Date);
            Aver.AreArraysEquivalent(row1.Buffer, row2.Buffer);
        }
Esempio n. 2
0
        public void ASCII8_Class()
        {
            using (var ms = new MemoryStream())
            {
                var s = new SlimSerializer();

                var dIn = new withASCII8
                {
                    Name = "Josh",
                    Int  = 9876500,
                    A1   = new Atom(123),
                    A2   = null,
                    A3   = Atom.Encode("abc"),
                    A4   = new [] { Atom.Encode("a"), Atom.Encode("b") },
                    A5   = new Atom?[] { null, Atom.Encode("b"), null, null, Atom.Encode("zzz") }
                };

                s.Serialize(ms, dIn);
                ms.Seek(0, SeekOrigin.Begin);

                var dOut = (withASCII8)s.Deserialize(ms);

                Aver.IsNotNull(dOut);

                Aver.AreEqual(dIn.Name, dOut.Name);
                Aver.AreEqual(dIn.Int, dOut.Int);

                Aver.IsFalse(dOut.A2.HasValue);
                Aver.AreEqual("abc", dOut.A3.Value.Value);
                Aver.AreArraysEquivalent(dIn.A4, dOut.A4);
                Aver.AreArraysEquivalent(dIn.A5, dOut.A5);
            }
        }
Esempio n. 3
0
        public void Arrays_1D_Nullable_T_throws_3()
        {
            var a1 = new int?[] { 1, 2, null, 4, null };
            var a2 = new int?[] { 1, 2, null, 4, null, null, 1, 2 };

            Aver.AreArraysEquivalent(a1, a2);
        }
Esempio n. 4
0
        public void Arrays_1D_T_throws_3()
        {
            var a1 = new int[] { 1, 2, 3, 4, 5 };
            var a2 = new int[] { 1, 2, -3, 4, 5, 7, 8, 9, 0, 1 };

            Aver.AreArraysEquivalent(a1, a2);
        }
Esempio n. 5
0
        public void Arrays_1D_arrays_throws()
        {
            Array a1 = new int[] { 1, 2, 3, 4, 5 };
            Array a2 = new int[] { 1, -2, 3, 4, 5 };

            Aver.AreArraysEquivalent(a1, a2);
        }
Esempio n. 6
0
        public void SerDeserSubarray_OneSimplePersonWithByteArray_Large()
        {
            var row1 = new SimplePersonWithByteArrayRow
            {
                Age    = 123,
                Bool1  = true,
                ID     = new GDID(12, 234),
                Name   = "Jacques Marazmos",
                Salary = 143098,
                Str1   = "Drunk Clowns on a hill",
                Date   = new DateTime(1980, 08, 12, 13, 45, 11),
                Buffer = new byte[1024 * 1024] //large buffer which will out-grow buffer cache
            };

            var data = ArowSerializer.SerializeToSubarray(row1);


            var row2 = new SimplePersonWithByteArrayRow();

            ArowSerializer.Deserialize(row2, data.Array, 0);

            Aver.AreEqual(row1.ID, row2.ID);
            Aver.AreEqual(row1.Bool1, row2.Bool1);
            Aver.AreEqual(row1.Name, row2.Name);
            Aver.AreEqual(row1.Age, row2.Age);
            Aver.AreEqual(row1.Salary, row2.Salary);
            Aver.AreEqual(row1.Str1, row2.Str1);
            Aver.AreEqual(row1.Date, row2.Date);
            Aver.AreArraysEquivalent(row1.Buffer, row2.Buffer);

            //================== Try to reuse the serializer cache with smaller payload

            var row1_2 = new SimplePersonWithByteArrayRow
            {
                Age    = 321,
                Bool1  = true,
                ID     = new GDID(112, 243234),
                Name   = "Ghabar Singh!",
                Salary = 13498,
                Str1   = "Hungry Moon",
                Date   = new DateTime(1990, 08, 12, 13, 45, 11),
                Buffer = new byte[] { 21, 7, 9 }
            };

            var data_2 = ArowSerializer.SerializeToSubarray(row1_2);


            var row2_2 = new SimplePersonWithByteArrayRow();

            ArowSerializer.Deserialize(row2_2, data.Array, 0);

            Aver.AreEqual(row1_2.ID, row2_2.ID);
            Aver.AreEqual(row1_2.Bool1, row2_2.Bool1);
            Aver.AreEqual(row1_2.Name, row2_2.Name);
            Aver.AreEqual(row1_2.Age, row2_2.Age);
            Aver.AreEqual(row1_2.Salary, row2_2.Salary);
            Aver.AreEqual(row1_2.Str1, row2_2.Str1);
            Aver.AreEqual(row1_2.Date, row2_2.Date);
            Aver.AreArraysEquivalent(row1_2.Buffer, row2_2.Buffer);
        }
Esempio n. 7
0
        public void RootArrayWriteRead_1D_nullabledatetime()
        {
            using (var ms = new MemoryStream())
            {
                var s = new PODSlimSerializer();

                var originalData = new DateTime?[100];
                var sd           = DateTime.UtcNow;
                for (var i = 0; i < originalData.Length; i++)
                {
                    if ((i % 2) == 0)
                    {
                        originalData[i] = sd;
                        sd = sd.AddHours(i + (i * 0.01));
                    }
                }

                s.Serialize(ms, originalData);
                ms.Seek(0, SeekOrigin.Begin);

                var convertedData = s.Deserialize(ms) as DateTime?[];
                Aver.AreNotSameRef(originalData, convertedData);
                Aver.AreArraysEquivalent(originalData, convertedData);
            }
        }
Esempio n. 8
0
        public void Arrays_1D_Objects()
        {
            string[] a1 = null;
            string[] a2 = null;
            Aver.AreArraysEquivalent(a1, a2);

            a1 = new string[] { "a", "b", null };
            a2 = new string[] { "a", "b", null };
            Aver.AreArrayObjectsEquivalent(a1, a2);
        }
Esempio n. 9
0
        public void Arrays_1D_Nullable_T()
        {
            int?[] a1 = null;
            int?[] a2 = null;
            Aver.AreArraysEquivalent(a1, a2);

            a1 = new int?[] { 1, 2, null, 4, null };
            a2 = new int?[] { 1, 2, null, 4, null };
            Aver.AreArraysEquivalent(a1, a2);
        }
Esempio n. 10
0
        public void Arrays_1D_T()
        {
            int[] a1 = null;
            int[] a2 = null;
            Aver.AreArraysEquivalent(a1, a2);

            a1 = new int[] { 1, 2, 3, 4, 5 };
            a2 = new int[] { 1, 2, 3, 4, 5 };
            Aver.AreArraysEquivalent(a1, a2);
        }
Esempio n. 11
0
        public void Arrays_3D_throws_2()
        {
            var a1 = new int[, , ] {
                { { 1, 2 }, { -1, -2 }, { -10, -20 } }
            };
            var a2 = new int[, , ] {
                { { 1, 2, 3, 4, 5 }, { -1, -2, -3, 234, -5 }, { -10, -20, -30, -40, -50 } }
            };

            Aver.AreArraysEquivalent(a1, a2);
        }
Esempio n. 12
0
        public void Arrays_2D_throws_2()
        {
            var a1 = new int[, ] {
                { 1, 2, 3, 4, 5, 4 }, { -1, -2, -3, -4, -5, -7 }
            };
            var a2 = new int[, ] {
                { 1, 2, 3, 4, 5 }, { -1, -2, -3, -4, -5 }
            };

            Aver.AreArraysEquivalent(a1, a2);
        }
Esempio n. 13
0
        public void BatchByTests_2()
        {
            var seq = 1.ToEnumerable(3, 5, 9, 10, 20, 30, 40).BatchBy(2).ToArray();

            Aver.AreEqual(4, seq.Length);

            Aver.AreArraysEquivalent(new[] { 1, 3, 5, 9, 10, 20, 30, 40 }, seq.SelectMany(e => e).ToArray());

            Aver.AreArraysEquivalent(new[] { 1, 3 }, seq[0].ToArray());
            Aver.AreArraysEquivalent(new[] { 5, 9 }, seq[1].ToArray());
            Aver.AreArraysEquivalent(new[] { 10, 20 }, seq[2].ToArray());
            Aver.AreArraysEquivalent(new[] { 30, 40 }, seq[3].ToArray());
        }
Esempio n. 14
0
        public void Arrays_3D()
        {
            int[,,] a1 = null;
            int[,,] a2 = null;
            Aver.AreArraysEquivalent(a1, a2);

            a1 = new int[, , ] {
                { { 1, 2, 3, 4, 5 }, { -1, -2, -3, -4, -5 }, { -10, -20, -30, -40, -50 } }
            };
            a2 = new int[, , ] {
                { { 1, 2, 3, 4, 5 }, { -1, -2, -3, -4, -5 }, { -10, -20, -30, -40, -50 } }
            };
            Aver.AreArraysEquivalent(a1, a2);
        }
Esempio n. 15
0
        public void Base64FullCycle(byte[] a)
        {
            var encoded = a.ToWebSafeBase64();
            var b       = encoded.FromWebSafeBase64();

            //Console.WriteLine( a.ToDumpString(DumpFormat.Hex ));
            //Console.WriteLine(b.ToDumpString(DumpFormat.Hex));
            //Console.WriteLine(encoded);

            //We use two equality comparisons to protect against possible bug in one
            //as To/FromBase64WebSafeString() is a very important method used in security throughout
            Aver.AreArraysEquivalent(a, b);
            Aver.IsTrue(a.MemBufferEquals(b));
        }
Esempio n. 16
0
        public void IntArray1()
        {
            var sut = new Typed();

            sut.SetFieldValue(Schema.GetForTypedDoc <Typed>()["IntArray1"], null);
            Aver.IsNull(sut.IntArray1);
            sut.SetFieldValue(Schema.GetForTypedDoc <Typed>()["IntArray1"], new int[] { 1, 2, 3 });
            Aver.AreArraysEquivalent(new int[] { 1, 2, 3 }, sut.IntArray1);
            sut.SetFieldValue(Schema.GetForTypedDoc <Typed>()["IntArray1"], null);
            Aver.IsNull(sut.IntArray1);
            sut["IntArray1"] = null;
            Aver.IsNull(sut.IntArray1);
            sut["IntArray1"] = new int[] { 2, 1, 2, 3 };
            Aver.AreArraysEquivalent(new int[] { 2, 1, 2, 3 }, sut.IntArray1);
        }
Esempio n. 17
0
        public void IntArray2()
        {
            var sut = new Typed();

            sut.SetFieldValue(Schema.GetForTypedDoc <Typed>()["IntArray2"], null);
            Aver.IsNull(sut.IntArray2);
            sut.SetFieldValue(Schema.GetForTypedDoc <Typed>()["IntArray2"], new int?[] { 1, null, 7, 1 });
            Aver.AreArraysEquivalent(new int?[] { 1, null, 7, 1 }, sut.IntArray2);
            sut.SetFieldValue(Schema.GetForTypedDoc <Typed>()["IntArray2"], null);
            Aver.IsNull(sut.IntArray2);
            sut["IntArray2"] = null;
            Aver.IsNull(sut.IntArray2);
            sut["IntArray2"] = new int?[] { 2, 1, 2, null, null, -5 };
            Aver.AreArraysEquivalent(new int?[] { 2, 1, 2, null, null, -5 }, sut.IntArray2);
        }
Esempio n. 18
0
        public void RootArrayWriteRead_5D()
        {
            using (var ms = new MemoryStream())
            {
                var s = new PODSlimSerializer();

                var originalData = new int[10, 4, 6, 2, 2];

                s.Serialize(ms, originalData);
                ms.Seek(0, SeekOrigin.Begin);

                var convertedData = s.Deserialize(ms) as int[, , , , ];
                Aver.AreNotSameRef(originalData, convertedData);
                Aver.AreArraysEquivalent(originalData, convertedData);
            }
        }
Esempio n. 19
0
        public void Test_WithVariousNullableStructsDoc_CharArray()
        {
            var d1 = new WithVariousNullableStructsDoc {
                CharArray = new char[] { 'a', '2', ' ' }
            };
            var json = d1.ToJson(JsonWritingOptions.PrettyPrintRowsAsMap);

            Console.WriteLine(json);
            var map = json.JsonToDataObject() as JsonDataMap;

            var d2 = new WithVariousNullableStructsDoc();

            JsonReader.ToDoc(d2, map);

            Aver.AreArraysEquivalent(d1.CharArray, d2.CharArray);
        }
Esempio n. 20
0
        public void Test_WithVariousNullableStructsDoc_StringArray()
        {
            var d1 = new WithVariousNullableStructsDoc {
                StringArray = new string[] { "German", null, "English" }
            };
            var json = d1.ToJson(JsonWritingOptions.PrettyPrintRowsAsMap);

            Console.WriteLine(json);
            var map = json.JsonToDataObject() as JsonDataMap;

            var d2 = new WithVariousNullableStructsDoc();

            JsonReader.ToDoc(d2, map);

            Aver.AreArraysEquivalent(d1.StringArray, d2.StringArray);
        }
Esempio n. 21
0
        public void Test_WithVariousNullableStructsDoc_GdidArray()
        {
            var d1 = new WithVariousNullableStructsDoc {
                GdidArray = new GDID[] { new GDID(1, 2, 3), new GDID(2, 3, 4) }
            };
            var json = d1.ToJson(JsonWritingOptions.PrettyPrintRowsAsMap);

            Console.WriteLine(json);
            var map = json.JsonToDataObject() as JsonDataMap;

            var d2 = new WithVariousNullableStructsDoc();

            JsonReader.ToDoc(d2, map);

            Aver.AreArraysEquivalent(d1.GdidArray, d2.GdidArray);
        }
Esempio n. 22
0
        public void Test_WithByteArrays_2()
        {
            var d1 = new WithByteArrays {
                Id = "Abc", Array1 = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
            };                                                                                          //written as BASE64

            var json = d1.ToJson();

            json.See();

            var d2 = JsonReader.ToDoc <WithByteArrays>(json);

            Aver.AreEqual("Abc", d2.Id);
            Aver.IsNotNull(d2.Array1);

            d2.Array1.See();

            Aver.AreArraysEquivalent(d1.Array1, d2.Array1);
        }
Esempio n. 23
0
        public void AverEquality(AllTypesDoc another)
        {
            foreach (var fdef in Schema)
            {
                var v1 = this[fdef.Order];
                var v2 = another[fdef.Order];

                if (v1 is Array a)
                {
                    Aver.AreArraysEquivalent(a, v2 as Array);
                }
                if (v1 is IEnumerable <object> eo)
                {
                    Aver.IsTrue(eo.SequenceEqual(v2 as IEnumerable <object>));
                }
                else
                {
                    Aver.AreObjectsEqual(v1, v2);
                }
            }
        }
Esempio n. 24
0
        public void Test_WithByteArrays_3()
        {
            var d1 = new WithByteArrays
            {
                Id     = "Abc123",
                Array1 = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 },
                List1  = new List <byte> {
                    10, 11, 12, 13, 14, 1, 5, 1, 6, 1, 7, 18, 1, 9, 20, 21, 21
                },
                List2 = new List <byte[]>
                {
                    null,
                    new byte[] { 1, 2, 3 },
                    new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 }
                }
            };//written as BASE64

            var json = d1.ToJson();

            json.See();

            var d2 = JsonReader.ToDoc <WithByteArrays>(json);

            Aver.AreEqual("Abc123", d2.Id);
            Aver.IsNotNull(d2.Array1);
            Aver.IsNotNull(d2.List1);
            Aver.IsNotNull(d2.List2);
            d2.See();

            Aver.AreEqual(10, d2.Array1.Length);
            Aver.AreEqual(17, d2.List1.Count);
            Aver.AreEqual(3, d2.List2.Count);

            Aver.AreArraysEquivalent(d1.Array1, d2.Array1);
            Aver.IsNull(d2.List2[0]);
            Aver.AreArraysEquivalent(d1.List2[1], d2.List2[1]);
            Aver.AreArraysEquivalent(d1.List2[2], d2.List2[2]);
        }