@@ -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
297297function percentile ( sorted : number [ ] , p : number ) : number {
0 commit comments