17 lines
484 B
Python
17 lines
484 B
Python
import re
|
|
|
|
def get_assert(output, context):
|
|
topic = context["vars"]["topic"]
|
|
goal_count = int(context["vars"]["count"])
|
|
pattern = fr'(^|\s)\b{re.escape(topic)}\b'
|
|
|
|
actual_count = len(re.findall(pattern, output.lower()))
|
|
|
|
pass_result = goal_count == actual_count
|
|
|
|
result = {
|
|
"pass": pass_result,
|
|
"score": 1 if pass_result else 0,
|
|
"reason": f"Expected {topic} to appear {goal_count} times. Actual: {actual_count}",
|
|
}
|
|
return result |