# -*- coding: utf-8 -*- import unittest from datetime import datetime from lunar_python import Solar, Lunar class EightCharTest(unittest.TestCase): def test_gan_zhi(self): solar = Solar.fromYmdHms(2005, 12, 23, 8, 37, 0) lunar = solar.getLunar() eight_char = lunar.getEightChar() self.assertEqual("乙酉", eight_char.getYear()) self.assertEqual("戊子", eight_char.getMonth()) self.assertEqual("辛巳", eight_char.getDay()) self.assertEqual("壬辰", eight_char.getTime()) def test_shen_gong(self): lunar = Solar.fromYmdHms(1995, 12, 18, 10, 28, 0).getLunar() self.assertEqual("壬午", lunar.getEightChar().getShenGong()) def test_shen_gong1(self): lunar = Solar.fromYmdHms(1994, 12, 6, 2, 0, 0).getLunar() self.assertEqual("丁丑", lunar.getEightChar().getShenGong()) def test_shen_gong2(self): lunar = Solar.fromYmdHms(1990, 12, 11, 6, 0, 0).getLunar() self.assertEqual("庚辰", lunar.getEightChar().getShenGong()) def test_shen_gong3(self): lunar = Solar.fromYmdHms(1993, 5, 23, 4, 0, 0).getLunar() self.assertEqual("庚申", lunar.getEightChar().getShenGong()) def test4(self): lunar = Lunar.fromYmd(1985, 12, 27) self.assertEqual("1995-11-05", lunar.getEightChar().getYun(1).getStartSolar().toYmd()) def test5(self): lunar = Lunar.fromYmd(1985, 1, 27) self.assertEqual("1989-03-28", lunar.getEightChar().getYun(1).getStartSolar().toYmd()) def test6(self): lunar = Lunar.fromYmd(1986, 12, 27) self.assertEqual("1990-04-15", lunar.getEightChar().getYun(1).getStartSolar().toYmd()) def test7(self): solar = Solar.fromYmdHms(2022, 8, 28, 1, 50, 0) lunar = solar.getLunar() eight_char = lunar.getEightChar() self.assertEqual("壬寅", eight_char.getYear()) self.assertEqual("戊申", eight_char.getMonth()) self.assertEqual("癸丑", eight_char.getDay()) self.assertEqual("癸丑", eight_char.getTime()) def test8(self): lunar = Lunar.fromYmdHms(2022, 8, 2, 1, 50, 0) eight_char = lunar.getEightChar() self.assertEqual("壬寅", eight_char.getYear()) self.assertEqual("戊申", eight_char.getMonth()) self.assertEqual("癸丑", eight_char.getDay()) self.assertEqual("癸丑", eight_char.getTime()) def test9(self): lunar = Lunar.fromDate(datetime.strptime('2022-08-28 01:50:00', '%Y-%m-%d %H:%M:%S')) eight_char = lunar.getEightChar() self.assertEqual("壬寅", eight_char.getYear()) self.assertEqual("戊申", eight_char.getMonth()) self.assertEqual("癸丑", eight_char.getDay()) self.assertEqual("癸丑", eight_char.getTime()) def test10(self): lunar = Solar.fromYmdHms(1988, 2, 15, 23, 30, 0).getLunar() eight_char = lunar.getEightChar() self.assertEqual("戊辰", eight_char.getYear()) self.assertEqual("甲寅", eight_char.getMonth()) self.assertEqual("庚子", eight_char.getDay()) self.assertEqual("戊子", eight_char.getTime()) def test11(self): lunar = Lunar.fromYmdHms(1987, 12, 28, 23, 30, 0) eight_char = lunar.getEightChar() self.assertEqual("戊辰", eight_char.getYear()) self.assertEqual("甲寅", eight_char.getMonth()) self.assertEqual("庚子", eight_char.getDay()) self.assertEqual("戊子", eight_char.getTime()) def test12(self): solar_list = Solar.fromBaZi("己卯", "辛未", "甲戌", "癸酉") self.assertLess(1, len(solar_list)) def test13(self): lunar = Lunar.fromYmdHms(1991, 4, 5, 3, 37, 0) eight_char = lunar.getEightChar() self.assertEqual("辛未", eight_char.getYear()) self.assertEqual("癸巳", eight_char.getMonth()) self.assertEqual("戊子", eight_char.getDay()) self.assertEqual("甲寅", eight_char.getTime()) def test14(self): solar_list = Solar.fromBaZi("己卯", "辛未", "甲戌", "壬申") actual = [] for solar in solar_list: actual.append(solar.toYmdHms()) expected = ["1939-08-05 16:00:00", "1999-07-21 16:00:00"] self.assertListEqual(expected, actual) def test15(self): solar_list = Solar.fromBaZi("庚子", "戊子", "己卯", "庚午") actual = [] for solar in solar_list: actual.append(solar.toYmdHms()) expected = ["1901-01-01 12:00:00", "1960-12-17 12:00:00"] self.assertListEqual(expected, actual) def test16(self): solar_list = Solar.fromBaZi("癸卯", "甲寅", "癸丑", "甲子", 2, 1843) actual = [] for solar in solar_list: actual.append(solar.toYmdHms()) expected = ["1843-02-08 23:00:00", "2023-02-24 23:00:00"] self.assertListEqual(expected, actual) def test17(self): solar_list = Solar.fromBaZi("己亥", "丁丑", "壬寅", "戊申") actual = [] for solar in solar_list: actual.append(solar.toYmdHms()) expected = ["1900-01-29 16:00:00", "1960-01-15 16:00:00"] self.assertListEqual(expected, actual) def test18(self): solar_list = Solar.fromBaZi("己亥", "丙子", "癸酉", "庚申") actual = [] for solar in solar_list: actual.append(solar.toYmdHms()) expected = ["1959-12-17 16:00:00"] self.assertListEqual(expected, actual) def test19(self): solar_list = Solar.fromBaZi("丁卯", "丁未", "甲申", "乙丑", 1, 1900) actual = [] for solar in solar_list: actual.append(solar.toYmdHms()) expected = ["1987-08-03 02:00:00"] self.assertListEqual(expected, actual)