Skip to content

Commit 12b3823

Browse files
committed
Fix dates to line up with congen
1 parent f89f5f6 commit 12b3823

1 file changed

Lines changed: 8 additions & 8 deletions

File tree

benchmarks/congen.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -154,11 +154,14 @@ for (const [schemeName, fundamentals] of Object.entries(schemes)) {
154154
);
155155
}
156156

157-
// Equilibrium argument: congen gives V₀+u at Jan 1 00:00 UTC
158157
const jan1 = new Date(Date.UTC(year, 0, 1));
158+
const jul2 = new Date(Date.UTC(year, 6, 2));
159159
const astroJan1 = astro(jan1);
160+
const astroJul2 = astro(jul2);
161+
162+
// Equilibrium argument: congen gives V₀(Jan 1) + u(midyear Jul 2)
160163
const v0 = c.value(astroJan1);
161-
const { u } = c.correction(astroJan1, fundamentals);
164+
const { u } = c.correction(astroJul2, fundamentals);
162165
const neapsEqArg = (((v0 + u) % 360) + 360) % 360;
163166
const congenEqArg = ref.equilibriumArgs[yearIndex];
164167

@@ -168,8 +171,6 @@ for (const [schemeName, fundamentals] of Object.entries(schemes)) {
168171
if (uDelta < -180) uDelta += 360;
169172

170173
// Node factor: congen gives f at midyear (July 2)
171-
const jul2 = new Date(Date.UTC(year, 6, 2));
172-
const astroJul2 = astro(jul2);
173174
const { f: fMid } = c.correction(astroJul2, fundamentals);
174175
const congenF = ref.nodeFactors[yearIndex];
175176
const fDelta = fMid - congenF;
@@ -283,15 +284,14 @@ for (const schemeName of Object.keys(schemes)) {
283284
}
284285

285286
// Baseline assertions. Congen uses Schureman equations, so schureman scheme
286-
// matches better for node factors. Many compound constituents have different
287-
// definitions (sign conventions, Doodson numbers) causing ~180° phase flips.
288-
// These baselines should be tightened as discrepancies are resolved.
287+
// matches better for node factors. ~19 compound constituents have ~180°
288+
// phase differences due to sign conventions in compound decomposition.
289289
const n = byConstituent.size;
290290
expect(speedOk / n, `${schemeName} speeds`).toBeGreaterThanOrEqual(0.98);
291291
expect(fClose / n, `${schemeName} node factors close (<0.01)`).toBeGreaterThanOrEqual(
292292
schemeName === "schureman" ? 0.85 : 0.64,
293293
);
294-
expect(uClose / n, `${schemeName} u close (<1°)`).toBeGreaterThanOrEqual(0.25);
294+
expect(uClose / n, `${schemeName} u close (<1°)`).toBeGreaterThanOrEqual(0.75);
295295
}
296296

297297
function percentile(sorted: number[], p: number): number {

0 commit comments

Comments
 (0)