forked from zhouruizhe/gmTouringMiniApp
32 lines
982 B
Python
32 lines
982 B
Python
from app.knowledge import KnowledgeBase
|
|
from app.schemas import TravelPreferences
|
|
|
|
|
|
def make_preferences(extra_requirements: str = "") -> TravelPreferences:
|
|
return TravelPreferences(
|
|
themes=["亲子"],
|
|
duration="half_day",
|
|
pace="relaxed",
|
|
interests=["自然风光"],
|
|
adults=2,
|
|
children=1,
|
|
child_ages=[3],
|
|
transport="public_transport",
|
|
budget_level="standard",
|
|
extra_requirements=extra_requirements,
|
|
)
|
|
|
|
|
|
def test_retrieval_is_deterministic():
|
|
knowledge = KnowledgeBase()
|
|
first = [place["id"] for place in knowledge.retrieve(make_preferences())]
|
|
second = [place["id"] for place in knowledge.retrieve(make_preferences())]
|
|
assert first == second
|
|
|
|
|
|
def test_avoid_climbing_excludes_high_intensity_places():
|
|
knowledge = KnowledgeBase()
|
|
result = knowledge.retrieve(make_preferences("带婴儿车,不爬山"))
|
|
assert all(place["intensity"] != "high" for place in result)
|
|
|