< Summary

Class:Azure.Core.GeoJson.GeoPosition
Assembly:Azure.Core.Experimental
File(s):C:\Git\azure-sdk-for-net\sdk\core\Azure.Core.Experimental\src\Spatial\GeoPosition.cs
Covered lines:11
Uncovered lines:6
Coverable lines:17
Total lines:99
Line coverage:64.7% (11 of 17)
Covered branches:3
Total branches:8
Branch coverage:37.5% (3 of 8)

Metrics

MethodCyclomatic complexity Line coverage Branch coverage
get_Altitude()-100%100%
get_Longitude()-100%100%
get_Latitude()-100%100%
.ctor(...)-100%100%
.ctor(...)-100%100%
Equals(...)-100%50%
Equals(...)-100%50%
GetHashCode()-0%100%
op_Equality(...)-0%100%
op_Inequality(...)-0%100%
ToString()-0%0%

File(s)

C:\Git\azure-sdk-for-net\sdk\core\Azure.Core.Experimental\src\Spatial\GeoPosition.cs

#LineLine coverage
 1// Copyright (c) Microsoft Corporation. All rights reserved.
 2// Licensed under the MIT License.
 3
 4using System;
 5
 6namespace Azure.Core.GeoJson
 7{
 8    /// <summary>
 9    ///
 10    /// </summary>
 11    public readonly struct GeoPosition
 12    {
 13        /// <summary>
 14        /// Gets the altitude of the position.
 15        /// </summary>
 110216        public double? Altitude { get; }
 17
 18        /// <summary>
 19        /// Gets the longitude of the position.
 20        /// </summary>
 85021        public double Longitude { get; }
 22
 23        /// <summary>
 24        /// Gets the latitude of the position.
 25        /// </summary>
 85026        public double Latitude { get; }
 27
 28        /// <summary>
 29        /// Initializes a new instance of <see cref="GeoPosition"/>.
 30        /// </summary>
 31        /// <param name="longitude">The longitude of the position.</param>
 32        /// <param name="latitude">The latitude of the position.</param>
 9833        public GeoPosition(double longitude, double latitude) : this(longitude, latitude, null)
 34        {
 9835        }
 36
 37        /// <summary>
 38        /// Initializes a new instance of <see cref="GeoPosition"/>.
 39        /// </summary>
 40        /// <param name="longitude">The longitude of the position.</param>
 41        /// <param name="latitude">The latitude of the position.</param>
 42        /// <param name="altitude">The altitude of the position.</param>
 43        public GeoPosition(double longitude, double latitude, double? altitude)
 44        {
 86645            Longitude = longitude;
 86646            Latitude = latitude;
 86647            Altitude = altitude;
 86648        }
 49
 50
 51        /// <inheritdoc />
 52        public bool Equals(GeoPosition other)
 53        {
 16854            return Nullable.Equals(Altitude, other.Altitude) && Longitude.Equals(other.Longitude) && Latitude.Equals(oth
 55        }
 56
 57        /// <inheritdoc />
 58        public override bool Equals(object? obj)
 59        {
 16860            return obj is GeoPosition other && Equals(other);
 61        }
 62
 63        /// <inheritdoc />
 064        public override int GetHashCode() => HashCodeBuilder.Combine(Longitude, Latitude, Altitude);
 65
 66        /// <summary>
 67        /// Determines whether two specified positions have the same value.
 68        /// </summary>
 69        /// <param name="left">The first position to compare.</param>
 70        /// <param name="right">The first position to compare.</param>
 71        /// <returns><c>true</c> if the value of <c>left</c> is the same as the value of <c>b</c>; otherwise, <c>false</
 72        public static bool operator ==(GeoPosition left, GeoPosition right)
 73        {
 074            return left.Equals(right);
 75        }
 76
 77        /// <summary>
 78        /// Determines whether two specified positions have the same value.
 79        /// </summary>
 80        /// <param name="left">The first position to compare.</param>
 81        /// <param name="right">The first position to compare.</param>
 82        /// <returns><c>false</c> if the value of <c>left</c> is the same as the value of <c>b</c>; otherwise, <c>true</
 83        public static bool operator !=(GeoPosition left, GeoPosition right)
 84        {
 085            return !left.Equals(right);
 86        }
 87
 88        /// <inheritdoc />
 89        public override string ToString()
 90        {
 091            if (Altitude == null)
 92            {
 093                return $"[{Longitude:G17}, {Latitude:G17}]";
 94            }
 95
 096            return $"[{Longitude:G17}, {Latitude:G17}, {Altitude.Value:G17}]";
 97        }
 98    }
 99}