# Copyright 2026 Andreas Martin # SPDX-License-Identifier: Apache-2.0 """Check the saved complete CPU encoder against its FP32 reference fixtures.""" import argparse,json from pathlib import Path import numpy as np from decision import DecisionModel def verify(directory): root=Path(directory) inputs=json.loads((root/'parity_inputs.json').read_text()) reference=np.load(root/'parity_reference.npy',allow_pickle=False) actual=DecisionModel(root).encode(inputs) if actual.shape!=reference.shape or not np.isfinite(actual).all(): raise RuntimeError('Invalid CPU encoder output.') minimum=float((actual*reference).sum(1).min()) maximum=float(np.abs(actual@actual.T-reference@reference.T).max()) result=dict(backend='sentence-transformers',device='cpu',passed=minimum>=.9999 and maximum<=.0001, min_vector_cosine=minimum,max_pairwise_cosine_error=maximum, scope='Eight synthetic multilingual encoder fixtures; not a decision-quality benchmark.') (root/'cpu_parity.json').write_text(json.dumps(result,indent=2)+'\n') print(json.dumps(result,indent=2)) if not result['passed']:raise RuntimeError('CPU encoder parity failed.') return result if __name__=='__main__': parser=argparse.ArgumentParser();parser.add_argument('--model-dir',required=True) verify(parser.parse_args().model_dir)