public void Dict() { Dictionary <object, object> dOne = new Dictionary <object, object> { { "Hello", 12 }, { "Blah", 15 } }; // Test Encode string dump = Rencode.EncodeToString(dOne); Assert.AreEqual(((char)(RencodeTypeCode.EncodedLengthDictionary + 2)).ToString() + ((char)(RencodeTypeCode.EncodedLengthString + 5)).ToString() + "Hello" + ((char)12) + ((char)(RencodeTypeCode.EncodedLengthString + 4)).ToString() + "Blah" + ((char)15), dump); Assert.AreEqual(dOne, Rencode.Decode(dump)); Dictionary <object, object> dTwo = new Dictionary <object, object>(); for (int i = 0; i < 35; i++) { dTwo.Add(i.ToString(), i); } Assert.AreEqual(dTwo, Rencode.Decode(Rencode.Encode(dTwo))); }
public void Bool() { Assert.AreEqual(((char)RencodeTypeCode.BooleanTrue).ToString(), Rencode.EncodeToString(true)); Assert.AreEqual(((char)RencodeTypeCode.BooleanFalse).ToString(), Rencode.EncodeToString(false)); Assert.AreEqual(true, Rencode.Decode(Rencode.Encode(true))); Assert.AreEqual(false, Rencode.Decode(Rencode.Encode(false))); }
public void List() { Assert.AreEqual(new object[] { "one", "two", "three" }, Rencode.Decode( Rencode.Encode(new object[] { "one", "two", "three" }) ) ); Assert.AreEqual(new object[] { 1, 2, 3 }, Rencode.Decode( Rencode.Encode(new object[] { 1, 2, 3 }) ) ); Assert.AreEqual(new object[] { -1, -2, -3 }, Rencode.Decode( Rencode.Encode(new object[] { -1, -2, -3 }) ) ); Assert.AreEqual(new object[] { new object[] { "one", "two", "three" }, new object[] { "four", "five", "six" } }, Rencode.Decode( Rencode.Encode(new object[] { new object[] { "one", "two", "three" }, new object[] { "four", "five", "six" } }) ) ); Assert.AreEqual(new object[] { new object[] { 1, 2, 3 }, new object[] { 4, 5, 6 } }, Rencode.Decode( Rencode.Encode(new object[] { new object[] { 1, 2, 3 }, new object[] { 4, 5, 6 } }) ) ); object[] non_fixed_list_test = new object[100]; Random rand = new Random(); for (int i = 0; i < 100; i++) { non_fixed_list_test[i] = rand.Next(); } string dump = Rencode.EncodeToString(non_fixed_list_test); Assert.AreEqual(RencodeTypeCode.List, (RencodeTypeCode)dump[0]); Assert.AreEqual(RencodeTypeCode.Termination, (RencodeTypeCode)dump[dump.Length - 1]); Assert.AreEqual(non_fixed_list_test, Rencode.Decode(dump)); }
public void String() { // ENCODE STRING Assert.AreEqual("\x85Hello", Rencode.EncodeToString("Hello")); Assert.AreEqual("78:abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz", Rencode.EncodeToString("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz")); // DECODE STRING Assert.AreEqual("Hello", Rencode.Decode("\x85Hello")); Assert.AreEqual("abcdefghij", Rencode.Decode("10:abcdefghij")); }
public void Integer() { // ENCODE INT1 Assert.AreEqual((char)RencodeTypeCode.SByte + "\x78", Rencode.EncodeToString(120)); Assert.AreEqual((char)RencodeTypeCode.SByte + "\x88", Rencode.EncodeToString(-120)); // ENCODE INT2 Assert.AreEqual((char)RencodeTypeCode.Int16 + "\x06\x04", Rencode.EncodeToString(1540)); Assert.AreEqual((char)RencodeTypeCode.Int16 + "\xF9\xFC", Rencode.EncodeToString(-1540)); // ENCODE INT4 Assert.AreEqual((char)RencodeTypeCode.Int32 + "\x7F\xff\xff\xd0", Rencode.EncodeToString(2147483600)); Assert.AreEqual((char)RencodeTypeCode.Int32 + "\x80\x00\x00\x30", Rencode.EncodeToString(-2147483600)); // ENCODE INT8 Assert.AreEqual(65, Rencode.Encode(9223372036854700000L)[0]); Assert.AreEqual(127, Rencode.Encode(9223372036854700000L)[1]); Assert.AreEqual(255, Rencode.Encode(9223372036854700000L)[2]); Assert.AreEqual(255, Rencode.Encode(9223372036854700000L)[3]); Assert.AreEqual((char)RencodeTypeCode.Int64 + "\x7F\xFF\xFF\xFF\xFF\xFE\xD7\xE0", Rencode.EncodeToString(9223372036854700000L)); Assert.AreEqual((char)RencodeTypeCode.Int64 + "\x80\x00\x00\x00\x00\x01( ", Rencode.EncodeToString(-9223372036854700000L)); // DECODE INT var bi = new BigInteger(long.MaxValue) * 2; Assert.AreEqual(bi, Rencode.Decode((char)RencodeTypeCode.BigInteger + bi.ToString() + (char)RencodeTypeCode.Termination)); // DECODE INT1 Assert.AreEqual(120, Rencode.Decode((char)RencodeTypeCode.SByte + "\x78")); Assert.AreEqual(-120, Rencode.Decode((char)RencodeTypeCode.SByte + "\x88")); // DECODE INT2 Assert.AreEqual(1540, Rencode.Decode((char)RencodeTypeCode.Int16 + "\x06\x04")); Assert.AreEqual(-1540, Rencode.Decode((char)RencodeTypeCode.Int16 + "\xF9\xFC")); // DECODE INT4 Assert.AreEqual(2147483600, Rencode.Decode((char)RencodeTypeCode.Int32 + "\x7f\xff\xff\xd0")); Assert.AreEqual(-2147483600, Rencode.Decode((char)RencodeTypeCode.Int32 + "\x80\x00\x00\x30")); // DECODE INT8 Assert.AreEqual(9223372036854700000L, Rencode.Decode((char)RencodeTypeCode.Int64 + "\x7F\xFF\xFF\xFF\xFF\xFE\xD7\xE0")); Assert.AreEqual(-9223372036854700000L, Rencode.Decode((char)RencodeTypeCode.Int64 + "\x80\x00\x00\x00\x00\x01( ")); }
public void Integer() { // ENCODE INT1 Assert.AreEqual((char)RencodeConst.CHR_INT1 + "\x78", Rencode.EncodeToString(120)); Assert.AreEqual((char)RencodeConst.CHR_INT1 + "\x88", Rencode.EncodeToString(-120)); // ENCODE INT2 Assert.AreEqual((char)RencodeConst.CHR_INT2 + "\x06\x04", Rencode.EncodeToString(1540)); Assert.AreEqual((char)RencodeConst.CHR_INT2 + "\xF9\xFC", Rencode.EncodeToString(-1540)); // ENCODE INT4 Assert.AreEqual((char)RencodeConst.CHR_INT4 + "\x7F\xff\xff\xd0", Rencode.EncodeToString(2147483600)); Assert.AreEqual((char)RencodeConst.CHR_INT4 + "\x80\x00\x00\x30", Rencode.EncodeToString(-2147483600)); // ENCODE INT8 Assert.AreEqual(65, Rencode.Encode(9223372036854700000L)[0]); Assert.AreEqual(127, Rencode.Encode(9223372036854700000L)[1]); Assert.AreEqual(255, Rencode.Encode(9223372036854700000L)[2]); Assert.AreEqual(255, Rencode.Encode(9223372036854700000L)[3]); Assert.AreEqual((char)RencodeConst.CHR_INT8 + "\x7F\xFF\xFF\xFF\xFF\xFE\xD7\xE0", Rencode.EncodeToString(9223372036854700000L)); Assert.AreEqual((char)RencodeConst.CHR_INT8 + "\x80\x00\x00\x00\x00\x01( ", Rencode.EncodeToString(-9223372036854700000L)); // DECODE INT Assert.AreEqual((short)1000, Rencode.Decode((char)RencodeConst.CHR_INT + "1000" + (char)RencodeConst.CHR_TERM)); // DECODE INT1 Assert.AreEqual((sbyte)120, Rencode.Decode((char)RencodeConst.CHR_INT1 + "\x78")); Assert.AreEqual((sbyte)-120, Rencode.Decode((char)RencodeConst.CHR_INT1 + "\x88")); // DECODE INT2 Assert.AreEqual((short)1540, Rencode.Decode((char)RencodeConst.CHR_INT2 + "\x06\x04")); Assert.AreEqual((short)-1540, Rencode.Decode((char)RencodeConst.CHR_INT2 + "\xF9\xFC")); // DECODE INT4 Assert.AreEqual(2147483600, Rencode.Decode((char)RencodeConst.CHR_INT4 + "\x7f\xff\xff\xd0")); Assert.AreEqual(-2147483600, Rencode.Decode((char)RencodeConst.CHR_INT4 + "\x80\x00\x00\x30")); // DECODE INT8 Assert.AreEqual(9223372036854700000L, Rencode.Decode((char)RencodeConst.CHR_INT8 + "\x7F\xFF\xFF\xFF\xFF\xFE\xD7\xE0")); Assert.AreEqual(-9223372036854700000L, Rencode.Decode((char)RencodeConst.CHR_INT8 + "\x80\x00\x00\x00\x00\x01( ")); }
public void Null() { Assert.AreEqual(((char)RencodeConst.CHR_NONE).ToString(), Rencode.EncodeToString(null)); Assert.AreEqual(null, Rencode.Decode(Rencode.Encode(null))); }
public void Null() { Assert.AreEqual(((char)RencodeTypeCode.Null).ToString(), Rencode.EncodeToString(null)); Assert.AreEqual(null, Rencode.Decode(Rencode.Encode(null))); }