diff --git a/reasoning_gym/arithmetic/prime_factorization.py b/reasoning_gym/arithmetic/prime_factorization.py index 5b4c6ecd..0a307284 100644 --- a/reasoning_gym/arithmetic/prime_factorization.py +++ b/reasoning_gym/arithmetic/prime_factorization.py @@ -49,7 +49,10 @@ class PrimeFactorizationDataset(ProceduralDataset): def _normalize_answer(self, answer: str) -> list[int]: """Parse and sort factors from a string""" - return sorted([int(factor.strip()) for factor in answer.split("×")]) + if not answer or answer.strip() == "": + return [] + + return sorted([int(factor.strip()) for factor in answer.split("×") if factor.strip() != ""]) def score_answer(self, answer: Optional[str], entry: dict[str, Any]) -> float: oracle_answer = entry["answer"] diff --git a/tests/test_prime_factorization.py b/tests/test_prime_factorization.py index a17bfa7a..389b89a4 100644 --- a/tests/test_prime_factorization.py +++ b/tests/test_prime_factorization.py @@ -119,6 +119,10 @@ def test_prime_factorization_score_answer(): answer = None assert dataset.score_answer(answer, item) == 0.0 + # Answer is empty string + answer = "" + assert dataset.score_answer(answer, item) == 0.01 + def is_prime(n: int) -> bool: """Helper function to check if a number is prime"""