from pathlib import Path
import re, math, random, cmath

HERE=Path(__file__).resolve().parent
PAPER=HERE/"CSM_RH_Paper_67_Low_Conductor_Character_Harmonic_Survival_and_Local_Factor_Renormalization_v0.1_2026-09-09.md"

def legendre_char(p,n):
    r=n%p
    if r==0:
        return 0
    return 1 if pow(r,(p-1)//2,p)==1 else -1

def check_signed_absolute():
    for q in [3,5,7,11]:
        H=10000
        r=2
        vals=[legendre_char(q,h+r) for h in range(1,H+1)]
        signed=abs(sum(vals))
        absolute=sum(abs(v) for v in vals)
        assert signed <= q+2
        expected=H*(q-1)/q
        assert abs(absolute-expected)<=q+2
    return True

def check_dual_alignment():
    q=7
    H=1000
    r=3
    A=2.3-1.7j
    C=[]
    eps=[]
    for h in range(1,H+1):
        ch=legendre_char(q,h+r)
        C.append(A*ch)
        if ch==0:
            eps.append(0j)
        else:
            eps.append((A.conjugate()/abs(A))*ch)
    lhs=sum(abs(z) for z in C)
    rhs=abs(sum(e*z for e,z in zip(eps,C)))
    assert abs(lhs-rhs)<1e-10
    return lhs,rhs

def check_finite_field_profile():
    for ell in [3,5,7,11,13]:
        for h in range(1,ell):
            s=sum(legendre_char(ell,a+h) for a in range(1,ell))
            target=-legendre_char(ell,h)
            assert s==target,(ell,h,s,target)
    return True

def check_Lp_density():
    q=11
    H=100000
    r=4
    vals=[abs(legendre_char(q,h+r))**3.7 for h in range(1,H+1)]
    s=sum(vals)
    expected=H*(q-1)/q
    assert abs(s-expected)<=q+2
    return s/expected

def check_source():
    s=PAPER.read_text(encoding="utf-8")
    forbidden=[
        r"(?<!\\)\\\(",
        r"(?<!\\)\\\)",
        r"(?<!\\)\\\[",
        r"(?<!\\)\\\]",
    ]
    for pat in forbidden:
        assert re.search(pat,s) is None,pat
    assert s.count("$$")%2==0
    tmp=re.sub(r"\$\$.*?\$\$","",s,flags=re.S)
    assert len(re.findall(r"(?<!\\)\$",tmp))%2==0
    return True

if __name__=="__main__":
    print("signed_absolute",check_signed_absolute())
    print("dual_alignment",check_dual_alignment())
    print("finite_field_profile",check_finite_field_profile())
    print("Lp_density_ratio",check_Lp_density())
    print("source_delimiters",check_source())
    print("PASS")
