Objective. Confirm that the clock wraps cleanly at midnight UTC and that rasi_idx updates only when a 30° cusp is crossed — deterministic, plain ASCII.
Rules (must)
- UTC only; parse
iso_utc = "YYYY-MM-DDThh:mm:ssZ"(no subseconds; reject23:59:60). - Angle from UTC:
wrap360(x) = x - 360*floor(x/360)theta_deg = wrap360( (unix_seconds / 86400) * 360 )rasi_idx = floor(theta_deg / 30) - One-second increment in angle:
theta_deg(t+1s) = wrap360( theta_deg(t) + 360/86400 )
Steps (deterministic)
- Pick
T = YYYY-MM-DDT23:59:59Z. - Compute at
TandT+1s = (YYYY-MM-DD + 1 day)T00:00:00Z:theta_T = wrap360( (unix(T) / 86400) * 360 )theta_T1 = wrap360( (unix(T+1s) / 86400) * 360 )- Check increment:
theta_T1 == wrap360( theta_T + 360/86400 ) rasi_T = floor(theta_T / 30);rasi_T1 = floor(theta_T1 / 30)
- Stamp two tiny files at
TandT+1s; verify both stamps.
Expected
CLOCK_OK=true for both
theta_T1 == wrap360(theta_T + 360/86400)
rasi_T1 == rasi_T # unless a cusp at 30*k was crossed
# if cusp crossed:
rasi_T1 == (rasi_T + 1) mod 12
VERDICT=PASS for both
Notes & edge cases
- Leap second banned: do not test
23:59:60Z; stamps claiming:60are invalid. - The increment
360/86400is exactly0.004166...degrees per second; do not round before applyingwrap360. rasi_idxchanges ifftheta_degcrosses a multiple of30degrees betweenTandT+1s.
Why this matters
Clean wrap and sector transitions guarantee that the Shunyaya Symbolic Mathematical Clock Stamp behaves predictably across day boundaries, keeping verification deterministic and ASCII-simple.
Navigation
Back: SSM-Clock Stamp – Canonical Formatting (theta precision) (5.8)
Next: SSM-Clock Stamp – Batch Verify-All (harness) (5.10)