from __future__ import annotations import unittest from tools.collection.collect_arxiv import ArxivSearchParser, classify SEARCH_RESULT = """
  1. arXiv:2607.12345

    A Trace-Grounded Benchmark for Tool-Using Agents

    Authors: Alice Example, Bob Example

    cs.AI cs.LG
    We evaluate an LLM agent with tools and deterministic verification. Less

    Submitted 24 July, 2026; originally announced July 2026.

""" class ArxivSearchParserTest(unittest.TestCase): def test_parses_search_result_into_api_compatible_record(self) -> None: parser = ArxivSearchParser() parser.feed(SEARCH_RESULT) self.assertEqual(len(parser.records), 1) record = parser.records[0] self.assertEqual(record["id"], "2607.12345") self.assertEqual(record["url"], "https://arxiv.org/abs/2607.12345") self.assertEqual(record["published"], "2026-07-24") self.assertEqual(record["updated"], "2026-07-24") self.assertEqual(record["authors"], ["Alice Example", "Bob Example"]) self.assertEqual(record["categories"], ["cs.AI", "cs.LG"]) self.assertNotIn("Less", record["summary"]) def test_parsed_record_uses_existing_classifier(self) -> None: parser = ArxivSearchParser() parser.feed(SEARCH_RESULT) topics, score, relevance = classify(parser.records[0], {"agent-evaluation", "tool-use"}) self.assertIn("agent-evaluation", topics) self.assertIn("tool-use", topics) self.assertGreaterEqual(score, 7) self.assertIn(relevance, {"medium", "high"}) if __name__ == "__main__": unittest.main()