public void TestSimpleInvocation()
        {
            //подготовка
            var point = new RelativePoint
            {
                Latitude = 1,
                Longitude = 2,
                Seconds = 3
            };

            //действие
            var result = point.ToBytes();

            //проверка
            Assert.IsNotNull(result);
            Assert.AreEqual(12, result.Length);
            Assert.AreEqual(1, result[0]);
            Assert.AreEqual(2, result[4]);
            Assert.AreEqual(3, result[8]);
            foreach (int index in new[]{1,2,3,5,6,7,9,10,11})
            {
                Assert.AreEqual(0, result[index]);
            }

        }
        /// <summary>
        /// Преобразуем массив абсолютных координат в массив относительных координат
        /// </summary>
        /// <param name="input">массив абсолютных координат,упорядоченный по времени</param>
        /// <returns>массив относительных координат</returns>
        public IList<RelativePoint> Convert(IList<AbsolutePoint> input)
        {
            if (input.Count == 0)
            {
                return new RelativePoint[0];
            }
            var result = new RelativePoint[input.Count - 1];

            var previous = input[0];
            for (int index = 1; index < input.Count; index++)
            {
                result[index - 1].Latitude = Normalise(input[index].Latitude, previous.Latitude);
                result[index - 1].Longitude = Normalise(input[index].Longitude, previous.Longitude);
                result[index - 1].Seconds = ToInt32(Round((input[index].Date - previous.Date).TotalSeconds));

                previous = input[index];
            }
            return result;
        }
 /// <summary>
 /// Преобразовать в бинарный массив
 /// </summary>
 public byte[] ToByteArray(RelativePoint obj)
 {
     return obj.ToBytes();
 }