// saju-lab/tests/fixtures/generate_reference.ts // Usage (run from saju-web/ so solarlunar resolves): // cd C:/Users/jaeoh/Desktop/workspace/saju-web // npx -y tsx ../web-backend/saju-lab/tests/fixtures/generate_reference.ts > ../web-backend/saju-lab/tests/fixtures/reference_saju.json import { calculateSaju } from '../../../../saju-web/lib/saju-calculator'; import { performFullAnalysis } from '../../../../saju-web/lib/ai-interpretation'; import { calculateDaeun } from '../../../../saju-web/lib/daeun-calculator'; const CASES = [ { year: 1990, month: 5, day: 15, hour: 14, gender: 'male' as const }, { year: 1985, month: 1, day: 1, hour: 0, gender: 'female' as const }, { year: 2000, month: 2, day: 29, hour: 12, gender: 'male' as const }, { year: 1995, month: 2, day: 3, hour: 23, gender: 'female' as const }, { year: 1995, month: 2, day: 4, hour: 13, gender: 'male' as const }, { year: 1995, month: 2, day: 5, hour: 5, gender: 'female' as const }, { year: 1980, month: 6, day: 6, hour: 6, gender: 'male' as const }, { year: 1975, month: 11, day: 11, hour: 11, gender: 'female' as const }, { year: 2010, month: 12, day: 31, hour: 23, gender: 'male' as const }, { year: 1960, month: 4, day: 8, hour: 16, gender: 'female' as const }, { year: 1972, month: 7, day: 24, hour: 9, gender: 'male' as const }, { year: 1968, month: 10, day: 15, hour: 21, gender: 'female' as const }, { year: 1955, month: 3, day: 3, hour: 7, gender: 'male' as const }, { year: 1992, month: 8, day: 8, hour: 18, gender: 'female' as const }, { year: 1988, month: 9, day: 9, hour: 4, gender: 'male' as const }, { year: 1999, month: 12, day: 22, hour: 22, gender: 'female' as const }, { year: 2005, month: 6, day: 22, hour: 14, gender: 'male' as const }, { year: 2015, month: 3, day: 21, hour: 12, gender: 'female' as const }, { year: 2020, month: 9, day: 23, hour: 12, gender: 'male' as const }, { year: 1945, month: 8, day: 15, hour: 12, gender: 'male' as const }, { year: 1950, month: 6, day: 25, hour: 4, gender: 'male' as const }, { year: 1977, month: 7, day: 7, hour: 7, gender: 'female' as const }, { year: 1983, month: 11, day: 23, hour: 13, gender: 'male' as const }, { year: 1991, month: 4, day: 14, hour: 19, gender: 'female' as const }, { year: 1996, month: 5, day: 5, hour: 5, gender: 'male' as const }, { year: 2003, month: 10, day: 10, hour: 10, gender: 'female' as const }, { year: 2008, month: 8, day: 8, hour: 8, gender: 'male' as const }, { year: 2012, month: 12, day: 12, hour: 12, gender: 'female' as const }, { year: 1965, month: 1, day: 20, hour: 23, gender: 'male' as const }, { year: 1973, month: 7, day: 4, hour: 17, gender: 'female' as const }, ]; const CURRENT_YEAR = 2026; const out = CASES.map((input) => { const saju = calculateSaju(input.year, input.month, input.day, input.hour, input.gender); const analysis = performFullAnalysis(saju, CURRENT_YEAR); const daeun = calculateDaeun( input.year, input.month, input.day, input.gender, saju.month.stem, saju.month.branch, ); return { input, expected: { saju, analysis, daeun } }; }); console.log(JSON.stringify(out, null, 2));