tradecatlabs's picture
deploy FateCat HF Space free web workbench
acb2cec verified
Raw
History Blame Contribute Delete
3.93 kB
# -*- coding: utf-8 -*-
import unittest
from lunar_python import Solar
from lunar_python.util import SolarUtil
class SolarTest(unittest.TestCase):
def test(self):
solar = Solar.fromYmd(2019, 5, 1)
self.assertEqual("2019-05-01", solar.toString())
self.assertEqual("2019-05-01 00:00:00 星期三 (劳动节) 金牛座", solar.toFullString())
self.assertEqual("二〇一九年三月廿七", solar.getLunar().toString())
self.assertEqual("二〇一九年三月廿七 己亥(猪)年 戊辰(龙)月 戊戌(狗)日 子(鼠)时 纳音[平地木 大林木 平地木 桑柘木] 星期三 西方白虎 星宿[参水猿](吉) 彭祖百忌[戊不受田田主不祥 戌不吃犬作怪上床] 喜神方位[巽](东南) 阳贵神方位[艮](东北) 阴贵神方位[坤](西南) 福神方位[艮](东北) 财神方位[坎](正北) 冲[(壬辰)龙] 煞[北]", solar.getLunar().toFullString())
def test1(self):
solar = Solar.fromYmdHms(2020, 5, 24, 13, 0, 0)
self.assertEqual("二〇二〇年闰四月初二", solar.getLunar().toString())
def test2(self):
solar = Solar.fromYmd(11, 1, 1)
self.assertEqual("一〇年腊月初八", solar.getLunar().toString())
def test3(self):
solar = Solar.fromYmd(11, 3, 1)
self.assertEqual("一一年二月初八", solar.getLunar().toString())
def test4(self):
solar = Solar.fromYmd(26, 4, 13)
self.assertEqual("二六年三月初八", solar.getLunar().toString())
def test6(self):
solar = Solar.fromYmd(1, 1, 1)
self.assertEqual("0001-01-01", solar.toString())
def test5(self):
date = Solar.fromYmd(2020, 1, 23)
self.assertEqual("2020-01-24", date.next(1).toString())
# 仅工作日,跨越春节假期
self.assertEqual("2020-02-03", date.next(1, True).toString())
date = Solar.fromYmd(2020, 2, 3)
self.assertEqual("2020-01-31", date.next(-3).toString())
# 仅工作日,跨越春节假期
self.assertEqual("2020-01-21", date.next(-3, True).toString())
date = Solar.fromYmd(2020, 2, 9)
self.assertEqual("2020-02-15", date.next(6).toString())
# 仅工作日,跨越周末
self.assertEqual("2020-02-17", date.next(6, True).toString())
date = Solar.fromYmd(2020, 1, 17)
self.assertEqual("2020-01-18", date.next(1).toString())
# 仅工作日,周日调休按上班算
self.assertEqual("2020-01-19", date.next(1, True).toString())
def test10(self):
self.assertEqual(True, SolarUtil.isLeapYear(1500))
def test11(self):
solar = Solar.fromYmd(2022, 3, 28)
self.assertEqual("全国中小学生安全教育日", solar.getFestivals()[0])
def test12(self):
self.assertEqual("壬午", Solar.fromYmd(1991, 5, 12).getLunar().getDayInGanZhi())
def test13(self):
self.assertEqual("1582-09-30", Solar.fromYmd(1582, 10, 15).next(-5).toYmd())
def test14(self):
self.assertEqual("1582-10-04", Solar.fromYmd(1582, 10, 15).next(-1).toYmd())
def test15(self):
self.assertEqual("1582-09-29", Solar.fromYmd(1582, 10, 15).next(-6).toYmd())
def test16(self):
self.assertEqual(2, SolarUtil.getDaysBetween(100, 2, 28, 100, 3, 1))
def test17(self):
self.assertEqual(59, SolarUtil.getDaysInYear(100, 2, 28))
def test18(self):
self.assertEqual(61, SolarUtil.getDaysInYear(100, 3, 1))
def test19(self):
self.assertEqual("2023-09-30", Solar.fromYmd(2023, 8, 31).nextMonth(1).toYmd())
def test20(self):
self.assertEqual("2023-10-31", Solar.fromYmd(2023, 8, 31).nextMonth(2).toYmd())
def test21(self):
self.assertEqual("2024-02-29", Solar.fromYmd(2023, 8, 31).nextMonth(6).toYmd())
def test22(self):
self.assertEqual("2025-08-31", Solar.fromYmd(2023, 8, 31).nextYear(2).toYmd())