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(); }