vadugwi / engine /tests /test_neutralizer.py
deucebucket's picture
Data flywheel: 50q + word ratings + FastAPI backend (anonymous collection)
6da6c49 verified
Raw
History Blame Contribute Delete
3.33 kB
"""Tests for the 2026-06-11 neutralizer (docs/neutralizer_proposal.md).
Covers:
1. Audit-driven demotions: contested words are LIQUID with attenuated dV,
while protected words (love) keep their SOLID charge.
2. Demoted positive words resolve by context instead of dragging
sentences positive on their own.
3. Two-faced slang (cooked/snapped/sheesh) doom-vs-praise duality via
SOLVENT dissolution.
"""
from engine.forces_curated import EMOTIONAL_VOCABULARY as VOCAB
from engine.pendulum import compute_vadug
from engine.phase import get_phase
def _v(text: str) -> float:
result, _ = compute_vadug(text)
return result.v
class TestNeutralizerDemotions:
def test_demoted_words_are_liquid_and_attenuated(self):
"""Audit suspects are LIQUID with dV scaled by (1 - contradiction)."""
assert get_phase("thank") == "LIQUID"
assert VOCAB["thank"][0] == 12 # +50 x (1 - 0.77)
assert get_phase("hope") == "LIQUID"
assert VOCAB["hope"][0] == 22 # +45 x (1 - 0.50)
assert get_phase("fantastic") == "LIQUID"
assert VOCAB["fantastic"][0] == 0 # contradiction 1.00 -> fully drained
def test_protected_words_untouched(self):
"""'love' (human contra 0.18 < baseline) stays SOLID and charged;
'wonderful' was dropped as conflicted with the sarcasm detector."""
assert get_phase("love") == "SOLID"
assert VOCAB["love"][0] == 40
assert get_phase("wonderful") == "GAS"
assert VOCAB["wonderful"][0] == 35
def test_demoted_positive_resolves_by_context(self):
"""A demoted word no longer single-handedly drags a hostile
sentence positive, but genuine usage still reads positive."""
assert _v("thank you for ruining everything") < 110
assert _v("congratulations on completely ruining my entire life") < 110
assert _v("thank you so much") > 128 # genuine gratitude stays warm
assert _v("i love you") >= 140 # love untouched
def test_demoted_word_stops_inflating_sarcasm(self):
"""'i truly cherish...' sarcasm no longer reads positive
(truly +28->+5, cherish +37->0)."""
assert _v("i truly cherish the two hours i spend in traffic every day") < 140
class TestSlangDuality:
def test_cooked_doom_vs_praise(self):
"""'im cooked' = doomed (negative); casual register flips it
to praise via SOLVENT dissolution."""
assert _v("im cooked") < 110
assert _v("im cooked for this exam") < 110
assert _v("bruh he cooked") >= 140
def test_snapped_anger_vs_praise(self):
"""'snapped at me' = anger; 'lmao she snapped' = performed
brilliantly (SOLVENT flip)."""
assert _v("he snapped at me in front of everyone") < 110
assert _v("lmao she snapped on that verse") > 128
def test_sheesh_no_longer_nuclear(self):
"""'sheesh' was -47 (exasperation-only); as mild LIQUID it must not
sink an awe sentence deep negative."""
assert _v("sheesh he really did that") >= 110
def test_unambiguous_slang_positive(self):
"""goated / bussin / w carry direct positive charge."""
assert _v("that fit is goated") >= 140
assert _v("that meal was bussin fr") >= 140
assert _v("thats a big w") >= 140