public void TestSmallTypes() { var js = new JsonSerializer(); var v1 = new SampleSmallTypes { Ch = 'A', Sh = -2000, USh = 2001, B = 198, Sb = -109 }; js.JsonOptions.Indent = ""; var result = js.ToString(v1); Assert.AreEqual("{\n\"B\":198,\n\"Ch\":\"A\",\n\"Sb\":-109,\n\"Sh\":-2000,\n\"USh\":2001\n}", result); var v2 = new SampleSmallTypes(); var jd = new JsonDeserializer(); jd.FromString(v2, result); Assert.AreEqual(v1.Ch, v2.Ch); Assert.AreEqual(v1.USh, v2.USh); Assert.AreEqual(v1.Sh, v2.Sh); Assert.AreEqual(v1.B, v2.B); Assert.AreEqual(v1.Sb, v2.Sb); v2 = (SampleSmallTypes)SampleSmallTypes_JsonDeserializer.Instance.FromString(result); Assert.AreEqual(v1.Ch, v2.Ch); Assert.AreEqual(v1.USh, v2.USh); Assert.AreEqual(v1.Sh, v2.Sh); Assert.AreEqual(v1.B, v2.B); Assert.AreEqual(v1.Sb, v2.Sb); XAssert.Throws<YuzuException>(() => jd.FromString(v2, result.Replace("A", "ABC")), "ABC"); XAssert.Throws<OverflowException>(() => jd.FromString(v2, result.Replace("198", "298"))); XAssert.Throws<OverflowException>(() => jd.FromString(v2, result.Replace("109", "209"))); XAssert.Throws<OverflowException>(() => jd.FromString(v2, result.Replace("2000", "40000"))); XAssert.Throws<OverflowException>(() => jd.FromString(v2, result.Replace("2001", "200000"))); jd.FromString(v2, "{\n\"B\":255,\n\"Ch\":\"Z\",\n\"Sb\":-128,\n\"Sh\":-32768,\n\"USh\":32767\n}"); Assert.AreEqual('Z', v2.Ch); Assert.AreEqual(32767, v2.USh); Assert.AreEqual(-32768, v2.Sh); Assert.AreEqual(255, v2.B); Assert.AreEqual(-128, v2.Sb); }
public void TestSmallTypes() { var bs = new BinarySerializer(); var v1 = new SampleSmallTypes { Ch = 'A', Sh = -2000, USh = 2001, B = 198, Sb = -109 }; var result = bs.ToBytes(v1); Assert.AreEqual( XS(RoughType.Record) + " 01 00 " + XS(typeof(SampleSmallTypes)) + " 05 00 " + XS("B", RoughType.Byte, "Ch", RoughType.Char) + " " + XS("Sb", RoughType.SByte, "Sh", RoughType.Short, "USh", RoughType.UShort) + " 01 00 C6 02 00 41 03 00 93 04 00 30 F8 05 00 D1 07 00 00", XS(result)); var v2 = new SampleSmallTypes(); var bd = new BinaryDeserializer(); bd.FromBytes(v2, result); Assert.AreEqual(v1.Ch, v2.Ch); Assert.AreEqual(v1.USh, v2.USh); Assert.AreEqual(v1.Sh, v2.Sh); Assert.AreEqual(v1.B, v2.B); Assert.AreEqual(v1.Sb, v2.Sb); v2 = (SampleSmallTypes)((new BinaryDeserializerGen()).FromBytes(result)); Assert.AreEqual(v1.Ch, v2.Ch); Assert.AreEqual(v1.USh, v2.USh); Assert.AreEqual(v1.Sh, v2.Sh); Assert.AreEqual(v1.B, v2.B); Assert.AreEqual(v1.Sb, v2.Sb); bd.FromBytes(v2, new byte[] { 0x20, 01, 00, 01, 00, 255, 02, 00, 65 + 25, 03, 00, 256 - 128, 04, 00, 00, 128, 05, 00, 255, 127, 00, 00 }); Assert.AreEqual('Z', v2.Ch); Assert.AreEqual(32767, v2.USh); Assert.AreEqual(-32768, v2.Sh); Assert.AreEqual(255, v2.B); Assert.AreEqual(-128, v2.Sb); }