修正
This commit is contained in:
121
debug_income_tax.py
Normal file
121
debug_income_tax.py
Normal file
@@ -0,0 +1,121 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
所得税計算のデバッグスクリプト
|
||||
ユーザーが提供したデータ:
|
||||
- 月収(控除後): 356,600円
|
||||
- 扶養人数: 3人
|
||||
- 期待される所得税: 5,840円
|
||||
"""
|
||||
|
||||
# サンプルCSVデータから月収356,600に対応する税額を逆算
|
||||
sample_data_3 = """
|
||||
月収From,月収To,扶養人数,税額
|
||||
0,96000,3,0
|
||||
96000,98000,3,150
|
||||
98000,100000,3,200
|
||||
100000,102000,3,280
|
||||
102000,104000,3,360
|
||||
104000,106000,3,440
|
||||
106000,108000,3,520
|
||||
108000,110000,3,600
|
||||
110000,112000,3,680
|
||||
112000,114000,3,760
|
||||
114000,116000,3,840
|
||||
116000,118000,3,930
|
||||
118000,127000,3,1100
|
||||
127000,129000,3,1230
|
||||
129000,131000,3,1360
|
||||
131000,133000,3,1490
|
||||
133000,135000,3,1620
|
||||
135000,137000,3,1750
|
||||
137000,139000,3,1880
|
||||
139000,141000,3,2010
|
||||
141000,143000,3,2140
|
||||
143000,145000,3,2270
|
||||
145000,147000,3,2400
|
||||
147000,149000,3,2530
|
||||
149000,151000,3,2660
|
||||
151000,153000,3,2790
|
||||
153000,155000,3,2920
|
||||
155000,157000,3,3050
|
||||
157000,159000,3,3180
|
||||
159000,161000,3,3310
|
||||
161000,163000,3,3430
|
||||
163000,165000,3,3560
|
||||
165000,167000,3,3690
|
||||
167000,169000,3,3820
|
||||
169000,171000,3,3950
|
||||
171000,173000,3,4080
|
||||
173000,175000,3,4210
|
||||
175000,177000,3,4340
|
||||
177000,179000,3,4470
|
||||
179000,181000,3,4600
|
||||
181000,183000,3,4730
|
||||
183000,185000,3,4860
|
||||
185000,187000,3,4990
|
||||
187000,189000,3,5120
|
||||
189000,191000,3,5250
|
||||
191000,193000,3,5380
|
||||
193000,195000,3,5510
|
||||
195000,197000,3,5640
|
||||
197000,199000,3,5770
|
||||
199000,201000,3,5900
|
||||
201000,203000,3,6030
|
||||
203000,205000,3,6160
|
||||
205000,207000,3,6290
|
||||
207000,209000,3,6420
|
||||
209000,211000,3,6550
|
||||
211000,213000,3,6680
|
||||
213000,215000,3,6810
|
||||
215000,217000,3,6940
|
||||
217000,219000,3,7070
|
||||
219000,221000,3,7200
|
||||
221000,223000,3,7330
|
||||
223000,225000,3,7460
|
||||
225000,227000,3,7590
|
||||
"""
|
||||
|
||||
# パースして月収356,600に対応する税額を探す
|
||||
lines = sample_data_3.strip().split('\n')[1:] # ヘッダーをスキップ
|
||||
monthly_income = 356600
|
||||
|
||||
print(f"月収 {monthly_income:,} 円に対応する所得税を検索...\n")
|
||||
|
||||
found = False
|
||||
for line in lines:
|
||||
parts = line.split(',')
|
||||
from_val = int(parts[0])
|
||||
to_val = int(parts[1])
|
||||
dependents = int(parts[2])
|
||||
tax = int(parts[3])
|
||||
|
||||
# 月収が範囲内か確認
|
||||
if from_val <= monthly_income < to_val:
|
||||
print(f"✓ 見つかりました!")
|
||||
print(f" 月収範囲: {from_val:,} ~ {to_val:,}")
|
||||
print(f" 扶養人数: {dependents}人")
|
||||
print(f" 所得税: ¥{tax:,}")
|
||||
found = True
|
||||
break
|
||||
elif from_val <= monthly_income <= to_val:
|
||||
print(f"✓ 見つかりました(Toが同値)!")
|
||||
print(f" 月収範囲: {from_val:,} ~ {to_val:,}")
|
||||
print(f" 扶養人数: {dependents}人")
|
||||
print(f" 所得税: ¥{tax:,}")
|
||||
found = True
|
||||
break
|
||||
|
||||
if not found:
|
||||
print(f"✗ 月収 {monthly_income:,} に対応する範囲が見つかりません")
|
||||
print(f"\n最後の10行:")
|
||||
for line in lines[-10:]:
|
||||
parts = line.split(',')
|
||||
from_val = int(parts[0])
|
||||
to_val = int(parts[1])
|
||||
tax = int(parts[3])
|
||||
print(f" {from_val:,} ~ {to_val:,}: ¥{tax:,}")
|
||||
|
||||
print(f"\n=== ユーザーが提供した期待値 ===")
|
||||
print(f" 月収: ¥356,600")
|
||||
print(f" 扶養人数: 3人")
|
||||
print(f" 期待される所得税: ¥5,840")
|
||||
Reference in New Issue
Block a user