公众授权版:normal · 1000 次 · 有效期至 2026-12-31

副本编号 LY-20261007-AC63(水印指纹已嵌入)
含 README、.gitignore;排除 .DS_Store / __pycache__ / .pytest_cache
This commit is contained in:
2026-10-07 17:29:52 +08:00
commit d9da4301cd
772 changed files with 48534 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
# 黄金样本:历史时区与夏令时 —— 设计文档 §6.1 C 组
# utc_offset_min = 钟表时间 − UTC(分钟),用于验证 UTC 解算本身;
# source 区分偏移来源:"historical_table"(自维护历史表)或 "zoneinfo"。
- name: 1988年夏_北京夏令时
place: 北京市
birth: "1988-07-15 10:00"
expect:
tz_used: "Asia/Shanghai"
is_dst: true
dst_offset_min: 60
utc_offset_min: 540 # UTC+9(夏令时),UTC = 当日 01:00
- name: 1935年_兰州民国陇蜀时区
place: 甘肃省兰州市
birth: "1935-03-20 10:00"
expect:
source: "historical_table" # tzdata 的 Asia/Chongqing 1935 段为 +8,不符民国陇蜀时区
utc_offset_min: 420 # 陇蜀时区中央经线 105°E → UTC+7
is_dst: false
- name: 1900年_北京_zoneinfo兜底
place: 北京市
birth: "1900-06-15 10:00"
expect:
source: "zoneinfo"
tz_used: "Asia/Shanghai"
is_dst: false
- name: 1990年_乌鲁木齐_不执行夏令时
place: 新疆乌鲁木齐市
birth: "1990-06-15 12:00"
expect:
is_dst: false
utc_offset_min: 480 # UTC = 钟表时间 − 8h(新疆不按夏令时拨快)
+44
View File
@@ -0,0 +1,44 @@
# 黄金样本:经度修正梯度 —— lon_correction_min = (lon − 120) × 4 分钟
# 覆盖 120°E 附近(≈0)、西部大负修正、东部正修正;lon 为城市表应有值(±0.1° 级,见 §4.1)。
- name: 上海_几乎零修正
place: 上海市
lon: 121.47
birth: "1990-06-15 12:00"
expect_lon_correction_min: 5.88
tolerance: 0.1
- name: 杭州_东经120度附近
place: 浙江省杭州市
lon: 120.16
birth: "1990-06-15 12:00"
expect_lon_correction_min: 0.64
tolerance: 0.1
- name: 喀什_最西_负修正近三小时
place: 新疆喀什市
lon: 75.99
birth: "1990-06-15 12:00"
expect_lon_correction_min: -176.04 # ≈ −176 分
tolerance: 0.1
- name: 哈尔滨_最东_正修正
place: 黑龙江省哈尔滨市
lon: 126.63
birth: "1990-06-15 12:00"
expect_lon_correction_min: 26.52 # ≈ +26.5 分
tolerance: 0.1
- name: 成都_负修正过半时辰
place: 四川省成都市
lon: 104.07
birth: "1990-06-15 12:00"
expect_lon_correction_min: -63.72
tolerance: 0.1
- name: 乌鲁木齐_负修正超两时辰
place: 新疆乌鲁木齐市
lon: 87.62
birth: "1990-06-15 12:00"
expect_lon_correction_min: -129.52
tolerance: 0.1
+46
View File
@@ -0,0 +1,46 @@
# 黄金样本:真太阳时边界(A 组)+ 晚子时日界(B 组)—— 设计文档 §6.1
#
# 经度修正公式:(lon − 120°E) × 4 分钟/度
# A 组断言 expect.lon_correction_min(容差 tolerance);
# 带 expect.true_solar_time 的条目另按 true_solar_time_tolerance_min 宽松比对;
# B 组断言全链条(geo → tz → solar → day_boundary)输出的 expect.is_late_zi。
# ---------- A 组:经度修正 ----------
- name: 乌鲁木齐_北京时间上午_必然错位
place: 新疆乌鲁木齐市
birth: "1990-06-15 08:00"
tolerance: 0.1
expect:
lon_correction_min: -129.5 # (87.62 − 120) × 4 = −129.52
true_solar_time: "1990-06-15 05:52" # 文档给定(约值)
true_solar_time_tolerance_min: 3
- name: 成都_经度修正过半
place: 四川省成都市
birth: "1990-06-15 12:00"
tolerance: 0.1
expect:
lon_correction_min: -63.7 # (104.07 − 120) × 4 = −63.72
- name: 上海_几乎无修正
place: 上海市
birth: "1990-06-15 12:00"
tolerance: 0.1
expect:
lon_correction_min: 5.9 # (121.47 − 120) × 4 = +5.88
# ---------- B 组:晚子时边界(子初换日@真太阳时 23:00) ----------
# 北京 lon=116.41,经度修正约 −14.4 分;1 月 15 日均时差约 −9.5 分。
# 注意:不能用 6–9 月的日期——1990 年北京处于夏令时(钟表已拨快 1 小时),
# 会先把钟表读数拉回 22 点,破坏样本意图。1 月无夏令时。
- name: 北京_钟表23:30_真太阳时23点_晚子时
place: 北京市
birth: "1990-01-15 23:30"
expect:
is_late_zi: true # 真太阳时 ≈ 23:06 → 归次日
- name: 北京_钟表22:30_真太阳时22点_非晚子时
place: 北京市
birth: "1990-01-15 22:30"
expect:
is_late_zi: false # 真太阳时 ≈ 22:06 → 当日