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()); }
public static float ToDecimalDegree(this CoordinateMh coordinateMh) { float m = coordinateMh.Minute; float s = coordinateMh.Second; return(coordinateMh.Degree + m / 60 + s / 3600); }
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); }
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); }
public static string GetDecimalDegreeFormat(this CoordinateMh coordinateXy) { return(string.Format(CoordinateFormat, "{0:D}", coordinateXy)); }
public static string GetDegreeMinuteSecondFormat(this CoordinateMh coordinateXy) { return(string.Format(CoordinateFormat, "{0:G}", coordinateXy)); }