예제 #1
0
        public void TestDecoding1()
        {
            Assert.Catch <ArgumentOutOfRangeException>(() =>
            {
                HeaderConvertor.Decode(new byte[] { 0 }, 4);
            });

            // decode a test header.
            var header = HeaderConvertor.Decode(new byte[] { 11 }, 0);

            Assert.AreEqual(3, header.Version);
            Assert.AreEqual(false, header.ArF0);
            Assert.AreEqual(false, header.IsPoint);
            Assert.AreEqual(false, header.ArF1);
            Assert.AreEqual(true, header.HasAttributes);

            // decode another test header.
            header = HeaderConvertor.Decode(new byte[] { 35 }, 0);
            Assert.AreEqual(3, header.Version);
            Assert.AreEqual(false, header.ArF0);
            Assert.AreEqual(true, header.IsPoint);
            Assert.AreEqual(false, header.ArF1);
            Assert.AreEqual(false, header.HasAttributes);

            // decode another test header.
            header = HeaderConvertor.Decode(new byte[] { 43 }, 0);
            Assert.AreEqual(3, header.Version);
            Assert.AreEqual(false, header.ArF0);
            Assert.AreEqual(true, header.IsPoint);
            Assert.AreEqual(false, header.ArF1);
            Assert.AreEqual(true, header.HasAttributes);

            // decode another test header.
            header = HeaderConvertor.Decode(new byte[] { 3 }, 0);
            Assert.AreEqual(3, header.Version);
            Assert.AreEqual(false, header.ArF0);
            Assert.AreEqual(false, header.IsPoint);
            Assert.AreEqual(false, header.ArF1);
            Assert.AreEqual(false, header.HasAttributes);

            // decode another test header.
            header = HeaderConvertor.Decode(new byte[] { 67 }, 0);
            Assert.AreEqual(3, header.Version);
            Assert.AreEqual(false, header.ArF0);
            Assert.AreEqual(false, header.IsPoint);
            Assert.AreEqual(true, header.ArF1);
            Assert.AreEqual(false, header.HasAttributes);

            // decode another test header.
            header = HeaderConvertor.Decode(new byte[] { 19 }, 0);
            Assert.AreEqual(3, header.Version);
            Assert.AreEqual(true, header.ArF0);
            Assert.AreEqual(false, header.IsPoint);
            Assert.AreEqual(false, header.ArF1);
            Assert.AreEqual(false, header.HasAttributes);
        }
예제 #2
0
        /// <summary>
        /// Returns true if the given data can be decoded by this decoder.
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        protected override bool CanDecode(byte[] data)
        {
            // decode the header first.
            var header = HeaderConvertor.Decode(data, 0);

            // check header info.
            if (!header.ArF1 ||
                header.IsPoint ||
                !header.ArF0 ||
                !header.HasAttributes)
            { // header is incorrect.
                return(false);
            }
            return(true);
        }
예제 #3
0
        /// <summary>
        /// Returns true if the given data can be decoded by this decoder.
        /// </summary>
        public static bool CanDecode(byte[] data)
        {
            // decode the header first.
            var header = HeaderConvertor.Decode(data, 0);

            // check header info.
            if (header.ArF1 &&
                !header.IsPoint &&
                header.ArF0 &&
                !header.HasAttributes)
            { // header is incorrect.
                return(false);
            }

            return(data != null && (data.Length == 20 || data.Length == 21));
        }
예제 #4
0
        /// <summary>
        /// Returns true if the given data can be decoded by this decoder.
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        protected override bool CanDecode(byte[] data)
        {
            // decode the header first.
            var header = HeaderConvertor.Decode(data, 0);

            // check header info.
            if (header.ArF1 ||
                header.IsPoint ||
                header.ArF0 ||
                header.HasAttributes)
            { // header is incorrect.
                return(false);
            }

            return(data != null && (data.Length == 8 || data.Length == 9 || data.Length == 10 || data.Length == 11));
        }
예제 #5
0
        /// <summary>
        /// Returns true if the given data can be decoded but this decoder.
        /// </summary>
        public static bool CanDecode(byte[] data)
        {
            if (data != null)
            {
                // decode the header first.
                var header = HeaderConvertor.Decode(data, 0);

                // check header info.
                if (header.ArF1 ||
                    header.IsPoint ||
                    header.ArF0 ||
                    !header.HasAttributes)
                { // header is incorrect.
                    return(false);
                }

                return(true);
            }
            return(false);
        }
예제 #6
0
        /// <summary>
        /// Returns true if the given data can be decoded but this decoder.
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        protected override bool CanDecode(byte[] data)
        {
            if (data != null)
            {
                // decode the header first.
                var header = HeaderConvertor.Decode(data, 0);

                // check header info.
                if (header.ArF1 ||
                    header.IsPoint ||
                    !header.ArF0 ||
                    header.HasAttributes)
                { // header is incorrect.
                    return(false);
                }

                int count = (data.Length - 15);
                return(count % 4 == 0);
            }
            return(false);
        }
예제 #7
0
        /// <summary>
        /// Returns true if the given data can be decoded but this decoder.
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        protected override bool CanDecode(byte[] data)
        {
            if (data != null)
            {
                // decode the header first.
                var header = HeaderConvertor.Decode(data, 0);

                // check header info.
                if (header.ArF1 ||
                    header.IsPoint ||
                    header.ArF0 ||
                    !header.HasAttributes)
                { // header is incorrect.
                    return(false);
                }

                //// check size.
                //int count = data.Length - 16;
                //int mod7 = count % 7;
                //return mod7 == 0 || mod7 == 1 || mod7 == 2;
                return(true);
            }
            return(false);
        }