File size: 1,913 Bytes
bf25e2b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#!/usr/bin/env python3
"""Test BaZi format generation"""

import sys
import os
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

from datetime import datetime
from bazi_calculator import BaziCalculator, compute_birth_pillars
from bazi_favorable_elements import calculate_favorable_elements
from api_v3 import generate_future_bazi_data

# Test person
person = {
    'name': 'TestUser',
    'gender': 'Male',
    'year': 1990,
    'month': 5,
    'day': 15,
    'hour': 10,
    'minute': 30,
    'is_twin': False
}

# Prepare birth datetime
birth_date = datetime(
    person['year'], person['month'], person['day'],
    person['hour'], person['minute']
)

print(f"Birth date: {birth_date}")

# Calculate BaZi pillars manually
birth_pillars = compute_birth_pillars(birth_date)
print(f"Birth pillars: {birth_pillars}")

# Calculate favorable elements
fav_elements = calculate_favorable_elements(birth_pillars)
print(f"Favorable elements: {fav_elements}")

# Generate future BaZi data
calculator = BaziCalculator(
    birth_datetime=birth_date,
    gender=person['gender'],
    birth_pillars=birth_pillars
)

print("Generating future data...")
future_data = generate_future_bazi_data(calculator, years_ahead=100)

print(f"Generated {len(future_data['luck_pillars'])} luck pillars")
print(f"Generated {len(future_data['annual_pillars'])} annual pillars")
print(f"Generated {len(future_data['monthly_pillars'])} monthly pillars")
print(f"Generated {len(future_data['daily_pillars'])} daily pillars")

# Now format it
from dataset.dataset_generator import format_bazi_production_style

bazi_data = {
    'birth_pillars': birth_pillars,
    'favorable_elements': fav_elements,
    'future_data': future_data,
    'birth_date': birth_date,
    'calculator': calculator
}

formatted = format_bazi_production_style(person, bazi_data)
print("\n\nFormatted output:")
print("=" * 50)
print(formatted)