public void DmsToDD_SW_Test()
        {
            var mvcm = new MontevideoCoordinateModel();
            var dd   = new DDCoordinate(
                mvcm.ShortDegreesLattitude(), mvcm.DdmMinsLat, mvcm.DmsSecondsLat,
                mvcm.ShortDegreesLongitude(), mvcm.DdmMinsLon, mvcm.DmsSecondsLon
                );
            string expectedResult = MontevideoCoordinateModel.StrDD();
            int    expectedLength = expectedResult.Length;

            string actualResult = dd.ToString();
            int    actualLength = actualResult.Length;

            decimal latDiff = Math.Abs(dd.GetLattitudeDD() - mvcm.DegreesLat);
            decimal lonDiff = Math.Abs(dd.GetLongitudeDD() - mvcm.DegreesLon);

            var dict = new Dictionary <string, decimal>
            {
                { "latDiff", latDiff },
                { "lonDiff", lonDiff }
            };

            DisplayOutput(expectedResult, actualResult, dict);

            Assert.AreEqual(expectedLength, actualLength);
            Assert.IsTrue(latDiff >= 0 && latDiff <= DegreeAccuracyThreshold);
            Assert.IsTrue(lonDiff >= 0 && lonDiff <= DegreeAccuracyThreshold);
        }
        public void CTOR_DMS_Test()
        {
            var     mcm        = new MunichCoordinatesModel();
            decimal latDegrees = mcm.ShortDegreesLattitude();
            decimal latMinutes = Math.Truncate(mcm.DdmMinsLat);
            decimal latSeconds = mcm.DmsSecondsLat;
            decimal lonDegrees = mcm.ShortDegreesLongitude();
            decimal lonMinutes = Math.Truncate(mcm.DdmMinsLon);
            decimal lonSeconds = mcm.DmsSecondsLon;

            var dd = new DDCoordinate(latDegrees, latMinutes, latSeconds, lonDegrees, lonMinutes, lonSeconds);

            string expectedResult = MunichCoordinatesModel.StrDD();
            string actualResult   = dd.ToString();

            decimal latDiff = Math.Abs(dd.GetLattitudeDD() - mcm.DegreesLat);
            decimal lonDiff = Math.Abs(dd.GetLongitudeDD() - mcm.DegreesLon);

            var dict = new Dictionary <string, decimal>
            {
                { "latDiff", latDiff },
                { "lonDiff", lonDiff }
            };

            DisplayOutput(expectedResult, actualResult, dict);

            Assert.IsTrue(latDiff >= 0 && latDiff <= DegreeAccuracyThreshold);
            Assert.IsTrue(lonDiff >= 0 && lonDiff <= DegreeAccuracyThreshold);
        }
        public void CTOR_DD_Test()
        {
            var     mvcm  = new MunichCoordinatesModel();
            decimal ddLat = mvcm.DegreesLat;
            decimal ddLon = mvcm.DegreesLon;

            var dd = new DDCoordinate(ddLat, ddLon);

            string expectedResult = MunichCoordinatesModel.StrDDM();
            string actualResult   = dd.ToString();

            decimal latDiff = Math.Abs(dd.GetLattitudeDD() - mvcm.DegreesLat);
            decimal lonDiff = Math.Abs(dd.GetLongitudeDD() - mvcm.DegreesLon);

            var dict = new Dictionary <string, decimal>
            {
                { "latDiff", latDiff },
                { "lonDiff", lonDiff }
            };

            DisplayOutput(expectedResult, actualResult, dict);

            Assert.IsTrue(latDiff >= 0 && latDiff <= DegreeAccuracyThreshold);
            Assert.IsTrue(lonDiff >= 0 && lonDiff <= DegreeAccuracyThreshold);
        }
        public void DdToDD_SE_Test()
        {
            var    wcm            = new WellingtonCoordinateModel();
            var    dd             = new DDCoordinate(wcm.DegreesLat, wcm.DegreesLon);
            string expectedResult = WellingtonCoordinateModel.StrDD();
            int    expectedLength = expectedResult.Length;

            string actualResult = dd.ToString();
            int    actualLength = actualResult.Length;

            decimal latDiff = Math.Abs(dd.GetLattitudeDD() - wcm.DegreesLat);
            decimal lonDiff = Math.Abs(dd.GetLongitudeDD() - wcm.DegreesLon);

            var dict = new Dictionary <string, decimal>
            {
                { "latDiff", latDiff },
                { "lonDiff", lonDiff }
            };

            DisplayOutput(expectedResult, actualResult, dict);

            Assert.AreEqual(expectedLength, actualLength);
            Assert.IsTrue(latDiff >= 0 && latDiff <= DegreeAccuracyThreshold);
            Assert.IsTrue(lonDiff >= 0 && lonDiff <= DegreeAccuracyThreshold);
        }
        public void DefaultCTOR_Test()
        {
            var ddCoord = new DDCoordinate();

            bool expectedResult = true;
            bool actualResult   = ddCoord.GetType().FullName == "CoordinateConversionLibrary.Models.DDCoordinate";

            Assert.IsTrue(expectedResult == actualResult);
        }
        public void GetFractionalLongitudeTest()
        {
            var mcm = new MunichCoordinatesModel();
            var dd  = new DDCoordinate(mcm.DegreesLat, mcm.DegreesLon);

            decimal expectedResult = mcm.DegreesLon - Math.Truncate(mcm.DegreesLon);
            decimal actualResult   = dd.GetFractionalLongitude();

            Assert.AreEqual(expectedResult, actualResult);
        }
        public void GetShortDegreesLatTest()
        {
            var mcm = new MunichCoordinatesModel();
            var dd  = new DDCoordinate(mcm.DegreesLat, mcm.DegreesLon);

            decimal expectedResult = mcm.ShortDegreesLattitude();
            decimal actualResult   = dd.GetShortDegreesLat();

            Assert.AreEqual(expectedResult, actualResult);
        }
        public void IsValid_InvalidLon_Test()
        {
            decimal lattitude      = 90.0m;
            decimal longitude      = -181.0m;
            bool    expectedResult = false;

            var  dd           = new DDCoordinate(lattitude, longitude);
            bool actualResult = dd.IsValid;

            Assert.AreEqual(expectedResult, actualResult);
        }
        public void IsValid_90_180_Passes_Test()
        {
            decimal lattitude      = 90.0m;
            decimal longitude      = 180.0m;
            bool    expectedResult = true;

            var  dd           = new DDCoordinate(lattitude, longitude);
            bool actualResult = dd.IsValid;

            Assert.AreEqual(expectedResult, actualResult);
        }