make task entries json serializable (#443)

* make sympy-based task entries json serializable

* remove datetime objs from time_intervals metadata

* make adv geometry json serializable

* make futoshiki metadata json serializable

* fixes

* futoshiki tweaks

* fix adv geometry

* deal with fractions in str representations

* fix

* restore start_time, end_time as str
This commit is contained in:
Oliver Stanley 2025-06-02 07:57:15 +01:00 committed by GitHub
parent 6614338ecc
commit c0e98f93b4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 36 additions and 37 deletions

View file

@ -51,8 +51,6 @@ def test_time_intervals_items():
assert "answer" in item
assert "metadata" in item
assert "task_type" in item["metadata"]
assert "start_time" in item["metadata"]
assert "end_time" in item["metadata"]
def test_time_intervals_scoring():
@ -93,23 +91,18 @@ def test_time_intervals_scoring():
assert 0 < score < 1
def test_time_format_patterns():
"""Test that generated times match expected formats"""
def test_oracle_answer():
"""Test that generated answer is marked correct"""
config = TimeIntervalsConfig(seed=42, size=500)
dataset = TimeIntervalsDataset(config)
for i in range(len(dataset)):
item = dataset[i]
start_dt = item["metadata"]["start_time"]
end_dt = item["metadata"]["end_time"]
metadata = item["metadata"]
assert "start_time" in metadata
assert "end_time" in metadata
# Verify both are datetime objects
assert isinstance(start_dt, datetime)
assert isinstance(end_dt, datetime)
# Verify end is after start
assert end_dt >= start_dt, item["question"]
assert dataset.score_answer(item["answer"], item) == 1.0