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); }
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); } }
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); }
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); }
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); }
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); }
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); } }
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); }
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); }
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); }
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); }
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); }
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()); }
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); }
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)); }
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); }
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); }
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); } }
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); }
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); }
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); }
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); }
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); } } }
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]); }