public void TestDMS()
        {
            using (var sweph=new SwissEph()) {
                Assert.AreEqual("nan", sweph.DMS(double.NaN, 0, false));

                Assert.AreEqual("   0° 0' 0.0000", sweph.DMS(0, 0, false));
                Assert.AreEqual("   0° 0' 0.00000", sweph.DMS(0, 0, true));

                Assert.AreEqual("  12° 0' 0.0000", sweph.DMS(12, 0, false));
                Assert.AreEqual("  12° 0' 0.00000", sweph.DMS(12, 0, true));

                Assert.AreEqual(" -12° 0' 0.0000", sweph.DMS(-12, 0, false));
                Assert.AreEqual(" -12° 0' 0.00000", sweph.DMS(-12, 0, true));

                Assert.AreEqual(" 123° 0' 0.0000", sweph.DMS(123, 0, false));
                Assert.AreEqual(" 123° 0' 0.00000", sweph.DMS(123, 0, true));

                Assert.AreEqual("-123° 0' 0.0000", sweph.DMS(-123, 0, false));
                Assert.AreEqual("-123° 0' 0.00000", sweph.DMS(-123, 0, true));

                Assert.AreEqual("  12° 5'59.10000", sweph.DMS(12.1, 0, false));
                Assert.AreEqual("  12° 9' 0.0000", sweph.DMS(12.15, 0, false));
                Assert.AreEqual("  12°30' 0.00000", sweph.DMS(12.5, 0, true));

                Assert.AreEqual("  98°45'55.5556", sweph.DMS(98.7654321, 0, false));
                Assert.AreEqual("  98°45'55.55556", sweph.DMS(98.7654321, 0, true));

                Assert.AreEqual("  98h45'55.5556", sweph.DMS(98.7654321, SwissEph.SEFLG_EQUATORIAL, false));
                Assert.AreEqual("  98h45'55.55556", sweph.DMS(98.7654321, SwissEph.SEFLG_EQUATORIAL, true));

                Assert.AreEqual("   8 cn 45'55.5556", sweph.DMS(98.7654321, SwissEph.BIT_ZODIAC, false));
                Assert.AreEqual("   8 cn 45'55.55556", sweph.DMS(98.7654321, SwissEph.BIT_ZODIAC, true));

                Assert.AreEqual("  12°09'17.10000", sweph.DMS(12.155, SwissEph.BIT_LZEROES, false));
                Assert.AreEqual("  12°09'17.100000", sweph.DMS(12.155, SwissEph.BIT_LZEROES, true));

                Assert.AreEqual("  98°45'56\"", sweph.DMS(98.7654321, SwissEph.BIT_ROUND_SEC, false));
                Assert.AreEqual("  98°45'56\"", sweph.DMS(98.7654321, SwissEph.BIT_ROUND_SEC, true));

                Assert.AreEqual("  98°46'", sweph.DMS(98.7654321, SwissEph.BIT_ROUND_MIN, false));
                Assert.AreEqual("  98°46'", sweph.DMS(98.7654321, SwissEph.BIT_ROUND_MIN, true));

                Assert.AreEqual("  120ar009'17.10000", sweph.DMS(12.155, SwissEph.BIT_ZODIAC | SwissEph.BIT_LZEROES, false));
                Assert.AreEqual("  120ar009'17.100000", sweph.DMS(12.155, SwissEph.BIT_ZODIAC | SwissEph.BIT_LZEROES, true));

                Assert.AreEqual("   8 cn 45'56\"", sweph.DMS(98.7654321, SwissEph.BIT_ZODIAC | SwissEph.BIT_ROUND_SEC, false));
                Assert.AreEqual("   8 cn 45'56\"", sweph.DMS(98.7654321, SwissEph.BIT_ZODIAC | SwissEph.BIT_ROUND_SEC, true));

                Assert.AreEqual("   8 cn 46", sweph.DMS(98.7654321, SwissEph.BIT_ZODIAC | SwissEph.BIT_ROUND_MIN, false));
                Assert.AreEqual("   8 cn 46", sweph.DMS(98.7654321, SwissEph.BIT_ZODIAC | SwissEph.BIT_ROUND_MIN, true));

            }
        }
        public void TestDMS()
        {
            using (var sweph = new SwissEph()) {
                Assert.AreEqual("nan", sweph.DMS(double.NaN, 0, false));

                Assert.AreEqual("   0° 0' 0.0000", sweph.DMS(0, 0, false));
                Assert.AreEqual("   0° 0' 0.00000", sweph.DMS(0, 0, true));

                Assert.AreEqual("  12° 0' 0.0000", sweph.DMS(12, 0, false));
                Assert.AreEqual("  12° 0' 0.00000", sweph.DMS(12, 0, true));

                Assert.AreEqual(" -12° 0' 0.0000", sweph.DMS(-12, 0, false));
                Assert.AreEqual(" -12° 0' 0.00000", sweph.DMS(-12, 0, true));

                Assert.AreEqual(" 123° 0' 0.0000", sweph.DMS(123, 0, false));
                Assert.AreEqual(" 123° 0' 0.00000", sweph.DMS(123, 0, true));

                Assert.AreEqual("-123° 0' 0.0000", sweph.DMS(-123, 0, false));
                Assert.AreEqual("-123° 0' 0.00000", sweph.DMS(-123, 0, true));

                Assert.AreEqual("  12° 5'59.10000", sweph.DMS(12.1, 0, false));
                Assert.AreEqual("  12° 9' 0.0000", sweph.DMS(12.15, 0, false));
                Assert.AreEqual("  12°30' 0.00000", sweph.DMS(12.5, 0, true));

                Assert.AreEqual("  98°45'55.5556", sweph.DMS(98.7654321, 0, false));
                Assert.AreEqual("  98°45'55.55556", sweph.DMS(98.7654321, 0, true));

                Assert.AreEqual("  98h45'55.5556", sweph.DMS(98.7654321, SwissEph.SEFLG_EQUATORIAL, false));
                Assert.AreEqual("  98h45'55.55556", sweph.DMS(98.7654321, SwissEph.SEFLG_EQUATORIAL, true));

                Assert.AreEqual("   8 cn 45'55.5556", sweph.DMS(98.7654321, SwissEph.BIT_ZODIAC, false));
                Assert.AreEqual("   8 cn 45'55.55556", sweph.DMS(98.7654321, SwissEph.BIT_ZODIAC, true));

                Assert.AreEqual("  12°09'17.10000", sweph.DMS(12.155, SwissEph.BIT_LZEROES, false));
                Assert.AreEqual("  12°09'17.100000", sweph.DMS(12.155, SwissEph.BIT_LZEROES, true));

                Assert.AreEqual("  98°45'56\"", sweph.DMS(98.7654321, SwissEph.BIT_ROUND_SEC, false));
                Assert.AreEqual("  98°45'56\"", sweph.DMS(98.7654321, SwissEph.BIT_ROUND_SEC, true));

                Assert.AreEqual("  98°46'", sweph.DMS(98.7654321, SwissEph.BIT_ROUND_MIN, false));
                Assert.AreEqual("  98°46'", sweph.DMS(98.7654321, SwissEph.BIT_ROUND_MIN, true));

                Assert.AreEqual("  120ar009'17.10000", sweph.DMS(12.155, SwissEph.BIT_ZODIAC | SwissEph.BIT_LZEROES, false));
                Assert.AreEqual("  120ar009'17.100000", sweph.DMS(12.155, SwissEph.BIT_ZODIAC | SwissEph.BIT_LZEROES, true));

                Assert.AreEqual("   8 cn 45'56\"", sweph.DMS(98.7654321, SwissEph.BIT_ZODIAC | SwissEph.BIT_ROUND_SEC, false));
                Assert.AreEqual("   8 cn 45'56\"", sweph.DMS(98.7654321, SwissEph.BIT_ZODIAC | SwissEph.BIT_ROUND_SEC, true));

                Assert.AreEqual("   8 cn 46", sweph.DMS(98.7654321, SwissEph.BIT_ZODIAC | SwissEph.BIT_ROUND_MIN, false));
                Assert.AreEqual("   8 cn 46", sweph.DMS(98.7654321, SwissEph.BIT_ZODIAC | SwissEph.BIT_ROUND_MIN, true));
            }
        }