示例#1
0
        public void MinusOperator_ShouldReturnCorrectDistanceBetweenTwoOfCoordinates()
        {
            // Arrange
            var coordinateA = new CoordinateMh(10.122f, Direction.S);
            var coordinateB = new CoordinateMh(17.333f, Direction.S);
            var expected    = new CoordinateMh(7.211f, Direction.S);

            // Act
            _outputHelper.WriteLine("Coordinate A DD MM SS: " + coordinateA.GetDecimalDegreeFormat());
            _outputHelper.WriteLine("Coordinate A DD.DDDDD: " + coordinateA.GetDegreeMinuteSecondFormat());
            _outputHelper.WriteLine("Coordinate B DD MM SS: " + coordinateB.GetDecimalDegreeFormat());
            _outputHelper.WriteLine("Coordinate B DD.DDDDD: " + coordinateB.GetDegreeMinuteSecondFormat());
            var actual = coordinateA - coordinateB;

            // Assert
            Assert.Equal(expected.Degree, actual.Degree);
            Assert.Equal(expected.Minute, actual.Minute);
            Assert.Equal(expected.Second, actual.Second);

            // output
            _outputHelper.WriteLine(" ");
            _outputHelper.WriteLine("Get distance between A and B coordinate");
            _outputHelper.WriteLine("Result DD MM SS: " + actual.GetDecimalDegreeFormat());
            _outputHelper.WriteLine("Result DD.DDDDD: " + actual.GetDegreeMinuteSecondFormat());
        }
示例#2
0
        public static float ToDecimalDegree(this CoordinateMh coordinateMh)
        {
            float m = coordinateMh.Minute;
            float s = coordinateMh.Second;

            return(coordinateMh.Degree + m / 60 + s / 3600);
        }
示例#3
0
        public void GetDegreeMinuteSecondFormat_ShouldReturnCorrectDecimalDegreeFormat()
        {
            // Arrange
            var          coordinate = new CoordinateMh(17.355f, Direction.S);
            const string expected   = "17°21'17\" S";

            // Act
            var actual = coordinate.GetDegreeMinuteSecondFormat();

            // Assert
            Assert.Equal(expected, actual);
        }
示例#4
0
        public void ToDecimalDegree_ShouldReturnCorrectDecimalDegreeFormat()
        {
            // Arrange
            var         coordinate = new CoordinateMh("13°49'50\"S");
            const float expected   = 13.830556f;

            // Act
            var actual = coordinate.ToDecimalDegree();

            _outputHelper.WriteLine("13°49'50\"S");
            _outputHelper.WriteLine("Converted to DD.DDDDD" + actual.ToString(CultureInfo.InvariantCulture));

            // Assert
            Assert.Equal(expected, actual);
        }
示例#5
0
 public static string GetDecimalDegreeFormat(this CoordinateMh coordinateXy)
 {
     return(string.Format(CoordinateFormat, "{0:D}", coordinateXy));
 }
示例#6
0
 public static string GetDegreeMinuteSecondFormat(this CoordinateMh coordinateXy)
 {
     return(string.Format(CoordinateFormat, "{0:G}", coordinateXy));
 }