reorganize: move all test scripts to tests/ directory
- Moved 8 root-level test scripts + 2 from bot/ to tests/ - Moved run_rocinante_test.sh runner script to tests/ - Added tests/README.md documenting each test's purpose, type, and requirements - Added test_pfp_context.py and test_rocinante_comparison.py (previously untracked)
This commit is contained in:
78
tests/test_pfp_context.py
Normal file
78
tests/test_pfp_context.py
Normal file
@@ -0,0 +1,78 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Test profile picture context plugin
|
||||
"""
|
||||
import re
|
||||
|
||||
# Test patterns
|
||||
PFP_PATTERNS = [
|
||||
# Direct PFP references
|
||||
r'\b(what|describe|tell me about|explain|show|how)\b.*\b(pfp|profile pic|avatar|picture|pic)\b',
|
||||
r'\b(your|miku\'?s?)\b.*\b(pfp|profile pic|avatar|picture|pic)\b',
|
||||
r'\b(pfp|profile pic|avatar|picture|pic)\b.*\b(is|look|show|about|like)',
|
||||
|
||||
# Questions about appearance
|
||||
r'\b(what|how).*\b(you|miku)\b.*(look|looking|appear)',
|
||||
r'\byour (new )?look\b',
|
||||
r'\b(what|how).*looking like\b',
|
||||
|
||||
# Questions about the image itself
|
||||
r'\b(think|feel|opinion|thoughts)\b.*\b(about|of)\b.*\b(your|that|the|this)?\b.*\b(pfp|profile|avatar|pic|picture|image)\b',
|
||||
r'\b(why|how|when).*\b(pick|choose|chose|picked|select|change|changed)\b.*\b(pfp|profile|avatar|pic|picture|that)\b',
|
||||
r'\b(new|current|latest)\b.*\b(pfp|profile pic|avatar|pic|picture)\b',
|
||||
|
||||
# "What do you think about your pfp"
|
||||
r'\bthink.*\b(your|that|the|this)\b.*\b(pfp|profile|avatar|pic|picture)\b',
|
||||
r'\b(your|that|the|this)\b.*\b(pfp|profile|avatar|pic|picture)\b.*\bthink\b',
|
||||
|
||||
# "How did you decide/pick"
|
||||
r'\b(decide|decided|pick|picked|choose|chose|select)\b.*\b(pfp|profile|avatar|pic|picture|that|this)\b',
|
||||
|
||||
# "Tell me about that pfp" / "What's with the pfp"
|
||||
r'\bwhat\'?s?\b.*\bwith\b.*\b(pfp|profile|avatar|pic|picture)\b',
|
||||
r'\btell me\b.*\b(pfp|profile|avatar|pic|picture|that|this)\b',
|
||||
]
|
||||
|
||||
test_queries = [
|
||||
# Original tests
|
||||
"What does your pfp look like?",
|
||||
"Describe your profile picture",
|
||||
"Tell me about your avatar",
|
||||
"What's your profile pic?",
|
||||
"How do you look today?",
|
||||
"Your new look is cool",
|
||||
"What are you looking like?",
|
||||
"Show me your picture",
|
||||
|
||||
# User's examples
|
||||
"How did you decide to pick that pfp?",
|
||||
"What do you think about your new profile pic?",
|
||||
"What do you think about your pfp, Miku?",
|
||||
"How did you choose that avatar?",
|
||||
"Why did you pick that pfp?",
|
||||
"When did you change your profile pic?",
|
||||
"Tell me about that pfp",
|
||||
"What's with the pfp?",
|
||||
"Your current pfp is nice",
|
||||
"How did you decide on that picture?",
|
||||
|
||||
# Should NOT match
|
||||
"What's the weather like?",
|
||||
"Hello Miku!",
|
||||
"How are you feeling?",
|
||||
"What do you think about music?",
|
||||
]
|
||||
|
||||
def matches_pfp_query(text: str) -> bool:
|
||||
"""Check if the message is asking about the profile picture"""
|
||||
text_lower = text.lower()
|
||||
for pattern in PFP_PATTERNS:
|
||||
if re.search(pattern, text_lower, re.IGNORECASE):
|
||||
return True
|
||||
return False
|
||||
|
||||
print("Testing PFP pattern matching:\n")
|
||||
for query in test_queries:
|
||||
result = matches_pfp_query(query)
|
||||
status = "✓ MATCH" if result else "✗ NO MATCH"
|
||||
print(f"{status}: {query}")
|
||||
Reference in New Issue
Block a user