"""Original finite training-only PCA whitening contract; NumPy actual, no SciPy."""
import numpy as np,json,math
from fractions import Fraction as F

def fit(x,cutoff=1e-10,epsilon=0):
 if type(cutoff) not in [int,float] or type(epsilon) not in [int,float] or not math.isfinite(cutoff+epsilon) or not 0<cutoff<1 or not 0<=epsilon<=1:raise ValueError('finite cutoff/epsilon')
 if not isinstance(x,list) or not 2<=len(x)<=8 or any(not isinstance(r,list) or not 1<=len(r)<=4 for r in x) or len({len(r) for r in x})!=1 or any(type(v) not in [int,float] or not math.isfinite(v) or abs(v)>100 for r in x for v in r):raise ValueError('bounded rectangular finite samples, no bool')
 a=np.array(x,dtype=float);mu=a.mean(0);z=a-mu;c=z.T@z/(len(a)-1);l,v=np.linalg.eigh(c)
 if np.any(l < -cutoff):raise ValueError('negative spectrum')
 keep=l>cutoff
 if not keep.any():raise ValueError('rank zero')
 l=l[keep];v=v[:,keep];return {'mean':mu,'cov':c,'eigenvalues':l,'basis':v,'transform':v/np.sqrt(l+epsilon),'rank':int(keep.sum()),'epsilon':epsilon,'features':a.shape[1]}
def apply(x,state):
 if not isinstance(x,list) or not x or any(not isinstance(r,list) or len(r)!=state['features'] or any(type(v) not in [int,float] or not math.isfinite(v) or abs(v)>100 for v in r) for r in x):raise ValueError('query matches finite feature order/shape')
 return (np.array(x)-state['mean'])@state['transform']
def cov(y):return (y-y.mean(0)).T@(y-y.mean(0))/(len(y)-1)
def serial(s):return {k:v.tolist() if isinstance(v,np.ndarray) else v for k,v in s.items()}
def demo():
 x=[[-3,-1],[-1,-3],[1,3],[3,1]];s=fit(x);y=apply(x,s)
 exact=[[sum(F(r[i])*F(r[j]) for r in x)/3 for j in range(2)] for i in range(2)];assert exact==[[F(20,3),F(4)],[F(4),F(20,3)]]
 assert np.allclose(s['eigenvalues'],[8/3,32/3]) and np.allclose(cov(y),np.eye(2)) and np.allclose(s['basis'].T@s['basis'],np.eye(2))
 assert np.allclose(y@np.diag(np.sqrt(s['eigenvalues']))@s['basis'].T,np.array(x))
 standard=np.array(x)/np.std(x,axis=0,ddof=1);assert np.allclose(cov(standard),[[1,.6],[.6,1]])
 rankx=[[-2,-4],[-1,-2],[1,2],[2,4]];r=fit(rankx);ry=apply(rankx,r);assert r['rank']==1 and ry.shape==(4,1) and np.allclose(cov(ry),[[1]])
 eps=fit(x,epsilon=.5);ey=apply(x,eps);assert np.allclose(cov(ey),np.diag(eps['eigenvalues']/(eps['eigenvalues']+.5)))
 flip=dict(s);flip['transform']=s['transform']*[-1,1];fy=apply(x,flip);assert np.allclose(cov(fy),np.eye(2))
 query=[[4,0]];queryy=apply(query,s);assert np.allclose(queryy,(np.array(query)-s['mean'])@s['transform'])
 near=fit([[0,0],[1,1e-5],[2,-1e-5],[3,0]],cutoff=1e-12);assert near['rank']==2;amplification=float(np.linalg.norm(near['transform'],ord=2));assert amplification>10000
 rejects=[]
 for label,fn in [('ragged',lambda:fit([[1,2],[3]])),('few',lambda:fit([[1,2]])),('nonfinite',lambda:fit([[1,2],[3,float('nan')]])),('constant_rank_zero',lambda:fit([[1,1],[1,1]])),('bad_cutoff',lambda:fit(x,cutoff=math.inf)),('bad_epsilon',lambda:fit(x,epsilon=-1)),('query_shape',lambda:apply([[1,2,3]],s)),('budget',lambda:fit(x*3))]:
  try:fn()
  except ValueError:rejects.append(label)
  else:raise AssertionError(label)
 return {'X':x,'sample_ddof':1,'exact_covariance':[[str(v) for v in row] for row in exact],'fit_state':serial(s),'whitened':y.tolist(),'whitened_cov':cov(y).tolist(),'standardized_cov':cov(standard).tolist(),'rank1_reduced_state':serial(r),'rank1_reduced_cov':cov(ry).tolist(),'regularized_cov':cov(ey).tolist(),'query_training_state_output':queryy.tolist(),'sign_flip_cov':cov(fy).tolist(),'near_singular_amplification':amplification,'invalid_cases_rejected':rejects,'numpy_version':np.__version__,'scope':'Own reduced-space rank policy, not SciPy full-dimensional singular convention. Whitening uncorrelated sample features does not establish independence or improve a model.'}
if __name__=='__main__':print(json.dumps(demo(),indent=2))
