"""Check the pinned NanoJev renderer and tokenizer before a large export.""" from transformers import AutoTokenizer from assets import snapshot from fixtures import fixture from preprocessing import prepare_request def test_candidate_set_and_eos_positions(): root = snapshot(with_weights=False) tokenizer = AutoTokenizer.from_pretrained(root / "tokenizer", local_files_only=True, trust_remote_code=False) if tokenizer.pad_token_id is None: tokenizer.pad_token = tokenizer.eos_token inputs, mask, example = prepare_request(root, tokenizer, fixture(), 128, 4) assert example["candidate_ids"] == ["left", "right", "shoot", "noop"] assert mask.tolist() == [[1, 1, 1, 1]] assert inputs["attention_mask"].sum(axis=1).min() > 0 for row in range(4): eos = inputs["eos_map"][row, 0].nonzero()[0] assert len(eos) == 1 assert inputs["input_ids"][row, eos[0]] == tokenizer.eos_token_id