Example #1
0
        public void DecodeEmptyStringIsError()
        {
            var dr = new DecodeReturn("");

            Code.Decode(dr);
            Assert.AreEqual(dr.Type, DecodeReturn.T_ERROR);
        }
Example #2
0
        public void DecodedTypeFromIntegerOne()
        {
            var dr = new DecodeReturn("i1|");

            Code.Decode(dr);
            Assert.AreEqual(dr.Type, DecodeReturn.T_INTEGER);
            Assert.AreEqual(dr.L, 1);
        }
Example #3
0
        public void DecodeShortOne()
        {
            var dr = new DecodeReturn("s1|");

            Code.Decode(dr);
            Assert.AreEqual(dr.Type, DecodeReturn.T_SHORT);
            Assert.AreEqual(dr.L, 1);
        }
Example #4
0
        public void DecodeSByteOne()
        {
            var dr = new DecodeReturn("b1|"); // NOTE: sbyte encoded with 'b'

            Code.Decode(dr);
            Assert.AreEqual(dr.Type, DecodeReturn.T_BYTE);
            Assert.AreEqual(dr.L, 1);
        }
Example #5
0
        public void DecodeSByteMin()
        {
            var dr = new DecodeReturn("b-128|"); // NOTE: sbyte encoded with 'b'

            Code.Decode(dr);
            Assert.AreEqual(dr.Type, DecodeReturn.T_BYTE);
            Assert.AreEqual(dr.L, SByte.MinValue);
        }
Example #6
0
        public void DecodeLongOne()
        {
            var dr = new DecodeReturn("l1|");

            Code.Decode(dr);
            Assert.AreEqual(dr.Type, DecodeReturn.T_LONG);
            Assert.AreEqual(dr.L, 1);
        }
Example #7
0
        public void DecodeDoubleOnePointOneHumanReadableOnly()
        {
            var s  = "d|1.1|";
            var dr = new DecodeReturn(s);

            Code.Decode(dr);
            Assert.AreEqual(dr.Type, DecodeReturn.T_DOUBLE);
            Assert.AreEqual(dr.D, 1.1);
        }
Example #8
0
        public void DecodedTypeFromCharUnicodeZero()
        {
            var dr = new DecodeReturn("'\x0000'");

            Code.Decode(dr);
            Assert.AreEqual(dr.Type, DecodeReturn.T_CHAR);
            Assert.IsTrue(dr.C.HasValue);
            Assert.AreEqual(dr.C.Value, '\0');
        }
Example #9
0
        public void DecodedTypeFromCharBackslash()
        {
            var dr = new DecodeReturn("'\\\\'");

            Code.Decode(dr);
            Assert.AreEqual(dr.Type, DecodeReturn.T_CHAR);
            Assert.IsTrue(dr.C.HasValue);
            Assert.AreEqual(dr.C.Value, '\\');
        }
Example #10
0
        public void DecodeCharDoubleQuote()
        {
            var dr = new DecodeReturn("'\"'");

            Code.Decode(dr);
            Assert.AreEqual(dr.Type, DecodeReturn.T_CHAR);
            Assert.IsTrue(dr.C.HasValue);
            Assert.AreEqual(dr.C.Value, '\"');
        }
Example #11
0
        public void DecodeCharBackspace()
        {
            var dr = new DecodeReturn("'\b'");

            Code.Decode(dr);
            Assert.AreEqual(dr.Type, DecodeReturn.T_CHAR);
            Assert.IsTrue(dr.C.HasValue);
            Assert.AreEqual(dr.C.Value, '\b');
        }
Example #12
0
        public void DecodeCharLowercaseA()
        {
            var dr = new DecodeReturn("'a'");

            Code.Decode(dr);
            Assert.AreEqual(dr.Type, DecodeReturn.T_CHAR);
            Assert.IsTrue(dr.C.HasValue);
            Assert.AreEqual(dr.C.Value, 'a');
        }
Example #13
0
        public void DecodeBooleanUppercaseFalse()
        {
            var dr = new DecodeReturn("FALSE");

            Code.Decode(dr);
            Assert.IsTrue(dr.B.HasValue);
            Assert.IsFalse(dr.B.Value);
            Assert.AreEqual(dr.Type, DecodeReturn.T_BOOLEAN);
        }
Example #14
0
        public void DecodeBooleanPropercaseTrue()
        {
            var dr = new DecodeReturn("True");

            Code.Decode(dr);
            Assert.IsTrue(dr.B.HasValue);
            Assert.IsTrue(dr.B.Value);
            Assert.AreEqual(dr.Type, DecodeReturn.T_BOOLEAN);
        }
Example #15
0
        public void DecodeShortMaxValue()
        {
            //var sh = short.MaxValue;
            //context.WriteLine(sh.ToString());
            var dr = new DecodeReturn("s32767|");

            Code.Decode(dr);
            Assert.AreEqual(dr.Type, DecodeReturn.T_SHORT);
            Assert.AreEqual(dr.L, short.MaxValue);
        }
Example #16
0
        public void DecodedTypeFromCharUnicodeAmperstand()
        {
            var dr = new DecodeReturn("'\u0026'");

            Code.Decode(dr);
            Assert.AreEqual(dr.Type, DecodeReturn.T_CHAR);
            Assert.IsTrue(dr.C.HasValue);
            Assert.AreEqual(dr.C.Value, '\u0026');
            Assert.AreEqual(dr.C.Value, '&');
        }
Example #17
0
        public void DecodedTypeFromIntegerMaxValue()
        {
            //var i = int.MaxValue;
            //context.WriteLine(i.ToString());
            var dr = new DecodeReturn("i2147483647|");

            Code.Decode(dr);
            Assert.AreEqual(dr.Type, DecodeReturn.T_INTEGER);
            Assert.AreEqual(dr.L, int.MaxValue);
        }
Example #18
0
        public void DecodeFloatOnePointOneHumanReadableOnly()
        {
            var f  = 1.1f;
            var s  = "f|" + f.ToString("R") + "|";
            var dr = new DecodeReturn(s);

            Code.Decode(dr);
            Assert.AreEqual(dr.Type, DecodeReturn.T_FLOAT);
            Assert.AreEqual(dr.D, 1.1f);
        }
Example #19
0
        public void DecodeLongMinValue()
        {
            //var l = long.MinValue;
            //context.WriteLine(l.ToString());
            var dr = new DecodeReturn("l-9223372036854775808|");

            Code.Decode(dr);
            Assert.AreEqual(dr.Type, DecodeReturn.T_LONG);
            Assert.AreEqual(dr.L, long.MinValue);
        }
Example #20
0
        public void DecodeFloatOnePointOne()
        {
            var f = 1.1f;
            var s = "f" + BitConverter.DoubleToInt64Bits(f) + "|" + f.ToString("R") + "|";
            //var s = "f4607632778870128640|1.1|";
            var dr = new DecodeReturn(s);

            Code.Decode(dr);
            Assert.AreEqual(dr.Type, DecodeReturn.T_FLOAT);
            Assert.AreEqual(dr.D, 1.1f);
        }
Example #21
0
        public void DecodeFloatMinValue()
        {
            var f = float.MinValue;
            var s = "f" + BitConverter.DoubleToInt64Bits(f) + "|" + f.ToString("R") + "|";

            context.WriteLine(s);
            var dr = new DecodeReturn("f-4039728866288205824|-3.40282347E+38|");

            Code.Decode(dr);
            Assert.AreEqual(dr.Type, DecodeReturn.T_FLOAT);
            Assert.AreEqual(dr.D, f);
        }
Example #22
0
        public void DecodeFloatMaxValueHumanReadableOnly()
        {
            var f = float.Parse(float.MaxValue.ToString("R"));
            var s = "f" + BitConverter.DoubleToInt64Bits(f) + "|" + f.ToString("R") + "|";

            context.WriteLine(s);
            var dr = new DecodeReturn(s);

            Code.Decode(dr);
            Assert.AreEqual(dr.Type, DecodeReturn.T_FLOAT);
            Assert.AreEqual(dr.D, f);
        }
Example #23
0
        public void EncodeStringWithUnicodeZero()
        {
            var q      = "\"";
            var input  = "Hello World! \x0000 Goodbye!";
            var output = Code.Encode(input);

            Assert.AreEqual(q + @"Hello World! \0 Goodbye!" + q, output);
            var dr = new DecodeReturn(output);

            Code.Decode(dr);
            Assert.AreEqual(dr.Type, DecodeReturn.T_STRING);
            Assert.AreEqual(dr.S, input);
        }
Example #24
0
        public void DecodeDoubleMinValueHumanReadableOnly()
        {
            //var s = "d|" + double.MinValue.ToString("R") + "|";
            //context.WriteLine(s);
            var s = "d|-1.7976931348623157E+308|";

            context.WriteLine(s);
            var dr = new DecodeReturn(s);

            Code.Decode(dr);
            Assert.AreEqual(dr.Type, DecodeReturn.T_DOUBLE);
            Assert.AreEqual(dr.D, double.Parse(double.MinValue.ToString("R")));
        }
Example #25
0
        public void DecodeDoubleMinValue()
        {
            var d = float.MinValue;
            var s = "d" + BitConverter.DoubleToInt64Bits(d) + "|" + d.ToString("R") + "|";

            context.WriteLine(Code.Encode(double.MinValue));
            context.WriteLine(s);
            var dr = new DecodeReturn("d-4503599627370497|-1.7976931348623157E+308|");

            Code.Decode(dr);
            Assert.AreEqual(dr.Type, DecodeReturn.T_DOUBLE);
            Assert.AreEqual(dr.D, double.MinValue);
        }
Example #26
0
        public void DecodeDoubleMaxValue()
        {
            var d = double.MaxValue;
            //var s = "d" + BitConverter.DoubleToInt64Bits(d) + "|" + d + "|";
            var s = "d9218868437227405311|1.7976931348623157E+308|";

            context.WriteLine(Code.Encode(double.MaxValue));
            var dr = new DecodeReturn(s);

            Code.Decode(dr);
            Assert.AreEqual(dr.Type, DecodeReturn.T_DOUBLE);
            Assert.AreEqual(dr.D, d);
        }
Example #27
0
        public void EncodeStringWithNewline()
        {
            var q      = "\"";
            var input  = "Hello World!\n";
            var output = Code.Encode(input);

            Assert.AreEqual(q + @"Hello World!\n" + q, output);
            var dr = new DecodeReturn(output);

            Code.Decode(dr);
            Assert.AreEqual(dr.Type, DecodeReturn.T_STRING);
            Assert.AreEqual(dr.S, input);
        }
Example #28
0
        public void DecodeDoubleOnePointOne()
        {
            var d = 1.1;
            var s = "d" + BitConverter.DoubleToInt64Bits(d) + "|" + d.ToString("R") + "|";

            context.WriteLine(s);
            //var s = "d4607632778762754458|1.1|";
            var dr = new DecodeReturn(s);

            Code.Decode(dr);
            Assert.AreEqual(dr.Type, DecodeReturn.T_DOUBLE);
            Assert.AreEqual(dr.D, d);
        }
Example #29
0
        public void DecodeFloatMinValueHumanReadableOnly()
        {
            var f = float.Parse(float.MinValue.ToString("R"));
            var s = "f|" + f.ToString("R") + "|";

            //var s = "f|-3.40282347E+38|";
            context.WriteLine(s);
            var dr = new DecodeReturn(s);

            Code.Decode(dr);
            Assert.AreEqual(dr.Type, DecodeReturn.T_FLOAT);
            Assert.AreEqual(dr.D, f);
        }
Example #30
0
        public void EncodeStringWithDoubleQuote()
        {
            var q      = "\"";
            var input  = "Hello World! \"a\" Goodbye!";
            var output = Code.Encode(input);

            Assert.AreEqual(q + "Hello World! \\\"a\\\" Goodbye!" + q, output);
            var dr = new DecodeReturn(output);

            Code.Decode(dr);
            Assert.AreEqual(dr.Type, DecodeReturn.T_STRING);
            Assert.AreEqual(dr.S, input);
        }