feat: add horror prompt library with severity tiers and voice texts
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
from server.prompts import (
|
||||
get_image_prompt,
|
||||
get_voice_text,
|
||||
get_direct_address_text,
|
||||
SEVERITY_TIERS,
|
||||
)
|
||||
|
||||
|
||||
class TestImagePrompts:
|
||||
def test_low_severity_prompt(self):
|
||||
"""Low severity returns abstract/atmospheric prompt."""
|
||||
prompt = get_image_prompt(severity=0.5)
|
||||
assert isinstance(prompt, str)
|
||||
assert len(prompt) > 10
|
||||
|
||||
def test_high_severity_prompt(self):
|
||||
"""High severity returns more extreme prompt."""
|
||||
prompt = get_image_prompt(severity=4.0)
|
||||
assert isinstance(prompt, str)
|
||||
assert len(prompt) > 10
|
||||
|
||||
def test_prompts_vary(self):
|
||||
"""Consecutive calls produce different prompts."""
|
||||
prompts = [get_image_prompt(severity=2.0) for _ in range(10)]
|
||||
assert len(set(prompts)) > 1
|
||||
|
||||
def test_severity_tiers_ordered(self):
|
||||
"""Tier thresholds are in ascending order."""
|
||||
thresholds = [t[0] for t in SEVERITY_TIERS]
|
||||
assert thresholds == sorted(thresholds)
|
||||
|
||||
def test_negative_prompt_included(self):
|
||||
"""Prompt includes SDXL negative prompt suffix."""
|
||||
prompt = get_image_prompt(severity=1.0)
|
||||
assert isinstance(prompt, str)
|
||||
|
||||
|
||||
class TestVoiceTexts:
|
||||
def test_whisper_text(self):
|
||||
"""Get a whisper text fragment."""
|
||||
text = get_voice_text()
|
||||
assert isinstance(text, str)
|
||||
assert len(text) > 0
|
||||
|
||||
def test_whisper_texts_vary(self):
|
||||
"""Consecutive calls produce different texts."""
|
||||
texts = [get_voice_text() for _ in range(20)]
|
||||
assert len(set(texts)) > 1
|
||||
|
||||
|
||||
class TestDirectAddress:
|
||||
def test_direct_address_text(self):
|
||||
"""Get a direct address phrase."""
|
||||
text = get_direct_address_text()
|
||||
assert isinstance(text, str)
|
||||
assert len(text) > 0
|
||||
|
||||
def test_direct_address_texts_vary(self):
|
||||
"""Consecutive calls produce different phrases."""
|
||||
texts = [get_direct_address_text() for _ in range(20)]
|
||||
assert len(set(texts)) > 1
|
||||
Reference in New Issue
Block a user