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

                Assert.AreEqual("   0: 0: 0.0", sweph.HMS(0, 0, false));
                Assert.AreEqual("   0: 0: 0.0", sweph.HMS(0, 0, true));

                Assert.AreEqual("  12: 0: 0.0", sweph.HMS(12, 0, false));
                Assert.AreEqual("  12: 0: 0.0", sweph.HMS(12, 0, true));

                Assert.AreEqual(" -12: 0: 0.0", sweph.HMS(-12, 0, false));
                Assert.AreEqual(" -12: 0: 0.0", sweph.HMS(-12, 0, true));

                Assert.AreEqual(" 123: 0: 0.0", sweph.HMS(123, 0, false));
                Assert.AreEqual(" 123: 0: 0.0", sweph.HMS(123, 0, true));

                Assert.AreEqual("-123: 0: 0.0", sweph.HMS(-123, 0, false));
                Assert.AreEqual("-123: 0: 0.0", sweph.HMS(-123, 0, true));

                Assert.AreEqual("  12: 5:59.1", sweph.HMS(12.1, 0, false));
                Assert.AreEqual("  12: 9: 0.0", sweph.HMS(12.15, 0, false));
                Assert.AreEqual("  12:30: 0.0", sweph.HMS(12.5, 0, true));

                Assert.AreEqual("  98:45:55.5", sweph.HMS(98.7654321, 0, false));
                Assert.AreEqual("  98:45:55.5", sweph.HMS(98.7654321, 0, true));

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

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

                Assert.AreEqual("  12:09:17.1", sweph.HMS(12.155, SwissEph.BIT_LZEROES, false));
                Assert.AreEqual("  12:09:17.1", sweph.HMS(12.155, SwissEph.BIT_LZEROES, true));

                Assert.AreEqual("  98:45:56", sweph.HMS(98.7654321, SwissEph.BIT_ROUND_SEC, false));
                Assert.AreEqual("  98:45:56", sweph.HMS(98.7654321, SwissEph.BIT_ROUND_SEC, true));

                Assert.AreEqual("  98:46", sweph.HMS(98.7654321, SwissEph.BIT_ROUND_MIN, false));
                Assert.AreEqual("  98:46", sweph.HMS(98.7654321, SwissEph.BIT_ROUND_MIN, true));

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

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

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

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

                Assert.AreEqual("   0: 0: 0.0", sweph.HMS(0, 0, false));
                Assert.AreEqual("   0: 0: 0.0", sweph.HMS(0, 0, true));

                Assert.AreEqual("  12: 0: 0.0", sweph.HMS(12, 0, false));
                Assert.AreEqual("  12: 0: 0.0", sweph.HMS(12, 0, true));

                Assert.AreEqual(" -12: 0: 0.0", sweph.HMS(-12, 0, false));
                Assert.AreEqual(" -12: 0: 0.0", sweph.HMS(-12, 0, true));

                Assert.AreEqual(" 123: 0: 0.0", sweph.HMS(123, 0, false));
                Assert.AreEqual(" 123: 0: 0.0", sweph.HMS(123, 0, true));

                Assert.AreEqual("-123: 0: 0.0", sweph.HMS(-123, 0, false));
                Assert.AreEqual("-123: 0: 0.0", sweph.HMS(-123, 0, true));

                Assert.AreEqual("  12: 5:59.1", sweph.HMS(12.1, 0, false));
                Assert.AreEqual("  12: 9: 0.0", sweph.HMS(12.15, 0, false));
                Assert.AreEqual("  12:30: 0.0", sweph.HMS(12.5, 0, true));

                Assert.AreEqual("  98:45:55.5", sweph.HMS(98.7654321, 0, false));
                Assert.AreEqual("  98:45:55.5", sweph.HMS(98.7654321, 0, true));

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

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

                Assert.AreEqual("  12:09:17.1", sweph.HMS(12.155, SwissEph.BIT_LZEROES, false));
                Assert.AreEqual("  12:09:17.1", sweph.HMS(12.155, SwissEph.BIT_LZEROES, true));

                Assert.AreEqual("  98:45:56", sweph.HMS(98.7654321, SwissEph.BIT_ROUND_SEC, false));
                Assert.AreEqual("  98:45:56", sweph.HMS(98.7654321, SwissEph.BIT_ROUND_SEC, true));

                Assert.AreEqual("  98:46", sweph.HMS(98.7654321, SwissEph.BIT_ROUND_MIN, false));
                Assert.AreEqual("  98:46", sweph.HMS(98.7654321, SwissEph.BIT_ROUND_MIN, true));

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

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

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