Ejemplo n.º 1
0
        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)));
        }
Ejemplo n.º 2
0
        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)));
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
        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"));
        }
Ejemplo n.º 5
0
        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( "));
        }
Ejemplo n.º 6
0
        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( "));
        }
Ejemplo n.º 7
0
        public void Null()
        {
            Assert.AreEqual(((char)RencodeConst.CHR_NONE).ToString(), Rencode.EncodeToString(null));

            Assert.AreEqual(null, Rencode.Decode(Rencode.Encode(null)));
        }
Ejemplo n.º 8
0
        public void Null()
        {
            Assert.AreEqual(((char)RencodeTypeCode.Null).ToString(), Rencode.EncodeToString(null));

            Assert.AreEqual(null, Rencode.Decode(Rencode.Encode(null)));
        }