Spaces:
Sleeping
Sleeping
| # -*- coding: utf-8 -*- | |
| """ | |
| Emotion Test Suite V3 - Wheel-based evaluation with similarity scoring | |
| Features: | |
| - Proper test strings for EVERY emotion | |
| - Similarity-aware scoring (similar emotions = partial credit) | |
| - Shows detected emotion vs expected | |
| - Only contradictory emotions are failures | |
| - Comprehensive coverage of all 125 emotions | |
| Version: 3.0.0 | |
| """ | |
| from typing import Dict, List, Tuple | |
| from dataclasses import dataclass | |
| class EmotionTestCase: | |
| """Single test case""" | |
| emotion: str | |
| text: str | |
| category: str # Emotion wheel category | |
| class EmotionTestSuiteV3: | |
| """ | |
| Comprehensive emotion test suite with similarity-aware evaluation | |
| Each emotion has 3-5 natural language test strings | |
| Tests are designed to trigger specific emotions | |
| """ | |
| VERSION = "3.0.0" | |
| # Test data: emotion -> [(text, category), ...] | |
| EMOTION_TEST_DATA: Dict[str, List[Tuple[str, str]]] = { | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # JOY FAMILY - Positive high/medium arousal emotions | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| "ecstasy": [ | |
| ("This is the best day of my entire life!", "joy"), | |
| ("I've never felt so incredibly alive and happy!", "joy"), | |
| ("Pure bliss is flowing through me right now", "joy"), | |
| ("I'm on top of the world, nothing can bring me down!", "joy"), | |
| ], | |
| "joy": [ | |
| ("I feel so joyful today", "joy"), | |
| ("Joy fills my heart completely", "joy"), | |
| ("What a joyous occasion this is", "joy"), | |
| ("I'm feeling pure joy right now", "joy"), | |
| ], | |
| "happiness": [ | |
| ("I'm so happy right now", "joy"), | |
| ("This makes me really happy", "joy"), | |
| ("Happiness is all I feel", "joy"), | |
| ("I couldn't be happier about this", "joy"), | |
| ], | |
| "delight": [ | |
| ("What a delightful surprise!", "joy"), | |
| ("I'm absolutely delighted by this", "joy"), | |
| ("This is such a delight", "joy"), | |
| ("Delighted to hear the good news", "joy"), | |
| ], | |
| "elation": [ | |
| ("I'm elated about the results", "joy"), | |
| ("Such elation fills me", "joy"), | |
| ("I feel elated and wonderful", "joy"), | |
| ("Elation washes over me completely", "joy"), | |
| ], | |
| "euphoria": [ | |
| ("I'm in a state of pure euphoria", "joy"), | |
| ("This euphoric feeling is amazing", "joy"), | |
| ("Euphoria has taken over", "joy"), | |
| ("I've never felt such euphoria before", "joy"), | |
| ], | |
| "excitement": [ | |
| ("I'm so excited about this!", "joy"), | |
| ("The excitement is overwhelming", "joy"), | |
| ("I can barely contain my excitement", "joy"), | |
| ("This is so exciting!", "joy"), | |
| ("I'm thrilled and excited!", "joy"), | |
| ], | |
| "thrill": [ | |
| ("What a thrill this is!", "joy"), | |
| ("I'm thrilled beyond words", "joy"), | |
| ("The thrill is incredible", "joy"), | |
| ("I feel so thrilled right now", "joy"), | |
| ], | |
| "enthusiasm": [ | |
| ("I'm so enthusiastic about this project", "joy"), | |
| ("My enthusiasm knows no bounds", "joy"), | |
| ("I feel very enthusiastic today", "joy"), | |
| ("Such enthusiasm fills me", "joy"), | |
| ], | |
| "cheerfulness": [ | |
| ("I'm feeling cheerful today", "joy"), | |
| ("Such cheerfulness in the air", "joy"), | |
| ("I woke up feeling cheerful", "joy"), | |
| ("Cheerfulness radiates from me", "joy"), | |
| ], | |
| "contentment": [ | |
| ("I feel content with my life", "joy"), | |
| ("Such contentment fills my heart", "joy"), | |
| ("I'm perfectly content right now", "joy"), | |
| ("Contentment is all I need", "joy"), | |
| ], | |
| "satisfaction": [ | |
| ("I'm satisfied with the outcome", "joy"), | |
| ("Such satisfaction from a job well done", "joy"), | |
| ("I feel deeply satisfied", "joy"), | |
| ("Complete satisfaction achieved", "joy"), | |
| ], | |
| "pleasure": [ | |
| ("It's my pleasure to help", "joy"), | |
| ("What a pleasure this is", "joy"), | |
| ("I take great pleasure in this", "joy"), | |
| ("Such pleasure from this experience", "joy"), | |
| ], | |
| "relief": [ | |
| ("What a relief that's over", "joy"), | |
| ("I feel so relieved now", "joy"), | |
| ("Relief washes over me", "joy"), | |
| ("Finally, some relief!", "joy"), | |
| ], | |
| "serenity": [ | |
| ("I feel so serene and peaceful", "joy"), | |
| ("Serenity surrounds me", "joy"), | |
| ("Such serenity in this moment", "joy"), | |
| ("I'm in a state of serenity", "joy"), | |
| ], | |
| "calm": [ | |
| ("I feel calm and peaceful", "joy"), | |
| ("Everything is calm now", "joy"), | |
| ("I'm feeling very calm today", "joy"), | |
| ("Calm has returned to my mind", "joy"), | |
| ], | |
| "relaxed": [ | |
| ("I'm feeling relaxed and at ease", "joy"), | |
| ("So relaxed right now", "joy"), | |
| ("I feel completely relaxed", "joy"), | |
| ("Relaxation has set in nicely", "joy"), | |
| ], | |
| "amusement": [ | |
| ("That's so amusing!", "joy"), | |
| ("I find this very amusing", "joy"), | |
| ("How amusing this is", "joy"), | |
| ("I'm amused by this situation", "joy"), | |
| ("Lol that's hilarious", "joy"), | |
| ], | |
| "playful": [ | |
| ("I'm feeling playful today", "joy"), | |
| ("Let's be playful and have fun", "joy"), | |
| ("I'm in a playful mood", "joy"), | |
| ("Such a playful atmosphere", "joy"), | |
| ], | |
| "silly": [ | |
| ("I'm feeling silly today", "joy"), | |
| ("That's so silly and fun", "joy"), | |
| ("I'm being silly, I know", "joy"), | |
| ("Feeling goofy and silly", "joy"), | |
| ], | |
| "mischievous": [ | |
| ("I'm feeling a bit mischievous", "joy"), | |
| ("Such mischief in my heart", "joy"), | |
| ("I have a mischievous plan", "joy"), | |
| ("Feeling mischievous today", "joy"), | |
| ], | |
| "funny": [ | |
| ("That's so funny!", "joy"), | |
| ("I find this really funny", "joy"), | |
| ("How funny is that", "joy"), | |
| ("This is hilarious and funny", "joy"), | |
| ], | |
| "hope": [ | |
| ("I have hope for the future", "joy"), | |
| ("Hope fills my heart", "joy"), | |
| ("I'm feeling hopeful today", "joy"), | |
| ("There's still hope", "joy"), | |
| ], | |
| "optimism": [ | |
| ("I'm feeling optimistic about this", "joy"), | |
| ("Optimism guides my way", "joy"), | |
| ("I have an optimistic outlook", "joy"), | |
| ("Such optimism fills me", "joy"), | |
| ], | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # TRUST FAMILY | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| "trust": [ | |
| ("I trust you completely", "trust"), | |
| ("You have my full trust", "trust"), | |
| ("I feel I can trust this", "trust"), | |
| ("Trust is so important to me", "trust"), | |
| ], | |
| "acceptance": [ | |
| ("I accept this situation", "trust"), | |
| ("Acceptance brings peace", "trust"), | |
| ("I've come to accept it fully", "trust"), | |
| ("I feel acceptance now", "trust"), | |
| ], | |
| "confidence": [ | |
| ("I feel confident about this", "trust"), | |
| ("Confidence is high today", "trust"), | |
| ("I'm confident in my abilities", "trust"), | |
| ("Such confidence fills me", "trust"), | |
| ], | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # LOVE FAMILY (Joy + Trust combination) | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| "love": [ | |
| ("I love you so much", "love"), | |
| ("My heart is full of love", "love"), | |
| ("I feel so much love right now", "love"), | |
| ("Love is all around us", "love"), | |
| ], | |
| "adoration": [ | |
| ("I absolutely adore you", "love"), | |
| ("Such adoration I feel", "love"), | |
| ("I look at you with adoration", "love"), | |
| ("My adoration knows no bounds", "love"), | |
| ], | |
| "affection": [ | |
| ("I feel such affection for you", "love"), | |
| ("Deep affection fills my heart", "love"), | |
| ("I have great affection here", "love"), | |
| ("Such warm affection I feel", "love"), | |
| ], | |
| "tenderness": [ | |
| ("I feel such tenderness", "love"), | |
| ("Tenderness fills my heart", "love"), | |
| ("Such tender feelings I have", "love"), | |
| ("I'm overcome with tenderness", "love"), | |
| ], | |
| "caring": [ | |
| ("I care about you deeply", "love"), | |
| ("Such caring feelings I have", "love"), | |
| ("I really care about this", "love"), | |
| ("My caring nature shows through", "love"), | |
| ], | |
| "compassion": [ | |
| ("I feel compassion for them", "love"), | |
| ("Compassion guides my actions", "love"), | |
| ("Such compassion in my heart", "love"), | |
| ("I'm moved by compassion", "love"), | |
| ], | |
| "empathy": [ | |
| ("I empathize with your situation", "love"), | |
| ("I feel deep empathy for you", "love"), | |
| ("Empathy connects us all", "love"), | |
| ("I understand how you feel, I empathize", "love"), | |
| ], | |
| "gratitude": [ | |
| ("I'm so grateful for this", "love"), | |
| ("Gratitude fills my heart", "love"), | |
| ("I feel deep gratitude", "love"), | |
| ("Thank you, I'm so grateful", "love"), | |
| ], | |
| "thankful": [ | |
| ("I'm thankful for everything", "love"), | |
| ("So thankful for this moment", "love"), | |
| ("I feel very thankful today", "love"), | |
| ("Thankfulness fills my heart", "love"), | |
| ], | |
| "sympathy": [ | |
| ("I have sympathy for your loss", "love"), | |
| ("My sympathies are with you", "love"), | |
| ("I feel sympathy for them", "love"), | |
| ("Deep sympathy I extend to you", "love"), | |
| ], | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # FEAR FAMILY | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| "fear": [ | |
| ("I'm afraid of what might happen", "fear"), | |
| ("Fear grips my heart", "fear"), | |
| ("I feel so scared right now", "fear"), | |
| ("Fear is overwhelming me", "fear"), | |
| ], | |
| "terror": [ | |
| ("I'm terrified of this", "fear"), | |
| ("Pure terror runs through me", "fear"), | |
| ("I've never felt such terror", "fear"), | |
| ("Terror has taken hold", "fear"), | |
| ], | |
| "horror": [ | |
| ("I'm horrified by what I saw", "fear"), | |
| ("Such horror fills me", "fear"), | |
| ("I watched in horror", "fear"), | |
| ("The horror is unbearable", "fear"), | |
| ], | |
| "dread": [ | |
| ("I dread what's coming", "fear"), | |
| ("A sense of dread fills me", "fear"), | |
| ("I feel nothing but dread", "fear"), | |
| ("Dread has taken over", "fear"), | |
| ], | |
| "anxiety": [ | |
| ("I'm feeling very anxious", "fear"), | |
| ("Anxiety is overwhelming me", "fear"), | |
| ("Such anxiety I feel", "fear"), | |
| ("My anxiety is through the roof", "fear"), | |
| ], | |
| "worry": [ | |
| ("I'm worried about this", "fear"), | |
| ("Worry consumes my thoughts", "fear"), | |
| ("I can't stop worrying", "fear"), | |
| ("Such worry fills me", "fear"), | |
| ], | |
| "nervousness": [ | |
| ("I'm so nervous right now", "fear"), | |
| ("Nervousness takes over", "fear"), | |
| ("I feel very nervous", "fear"), | |
| ("Such nervousness I have", "fear"), | |
| ], | |
| "apprehension": [ | |
| ("I feel apprehensive about this", "fear"), | |
| ("Apprehension fills me", "fear"), | |
| ("I'm full of apprehension", "fear"), | |
| ("Such apprehension I feel", "fear"), | |
| ], | |
| "panic": [ | |
| ("I'm starting to panic", "fear"), | |
| ("Panic is setting in", "fear"), | |
| ("I feel pure panic", "fear"), | |
| ("Don't panic, but I'm panicking", "fear"), | |
| ], | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # SURPRISE FAMILY | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| "surprise": [ | |
| ("What a surprise!", "surprise"), | |
| ("I'm so surprised by this", "surprise"), | |
| ("This really surprised me", "surprise"), | |
| ("I didn't expect this surprise", "surprise"), | |
| ], | |
| "astonishment": [ | |
| ("I'm astonished by what happened", "surprise"), | |
| ("Such astonishment I feel", "surprise"), | |
| ("I'm completely astonished", "surprise"), | |
| ("Astonishment overwhelms me", "surprise"), | |
| ], | |
| "shock": [ | |
| ("I'm in shock right now", "surprise"), | |
| ("What a shock this is", "surprise"), | |
| ("I feel shocked by this news", "surprise"), | |
| ("The shock is overwhelming", "surprise"), | |
| ], | |
| "startled": [ | |
| ("I was startled by that", "surprise"), | |
| ("That really startled me", "surprise"), | |
| ("I'm so startled right now", "surprise"), | |
| ("Don't startle me like that", "surprise"), | |
| ], | |
| "amazement": [ | |
| ("I'm amazed by this", "surprise"), | |
| ("Such amazement I feel", "surprise"), | |
| ("I'm completely amazed", "surprise"), | |
| ("Amazement fills me", "surprise"), | |
| ], | |
| "wonder": [ | |
| ("I wonder what will happen", "surprise"), | |
| ("Such wonder in my heart", "surprise"), | |
| ("I'm filled with wonder", "surprise"), | |
| ("Wonder and awe surround me", "surprise"), | |
| ], | |
| "awe": [ | |
| ("I'm in awe of this beauty", "surprise"), | |
| ("Such awe I feel", "surprise"), | |
| ("I stand in complete awe", "surprise"), | |
| ("Awe-inspiring, truly", "surprise"), | |
| ], | |
| "curiosity": [ | |
| ("I'm curious about this", "surprise"), | |
| ("Curiosity drives me forward", "surprise"), | |
| ("Such curiosity I have", "surprise"), | |
| ("I'm very curious to know", "surprise"), | |
| ], | |
| "interest": [ | |
| ("I'm interested in learning more", "surprise"), | |
| ("This interests me greatly", "surprise"), | |
| ("I have great interest in this", "surprise"), | |
| ("My interest is piqued", "surprise"), | |
| ], | |
| "fascination": [ | |
| ("I'm fascinated by this", "surprise"), | |
| ("Such fascination I feel", "surprise"), | |
| ("This is truly fascinating", "surprise"), | |
| ("Fascination takes hold", "surprise"), | |
| ], | |
| "intrigue": [ | |
| ("I'm intrigued by this mystery", "surprise"), | |
| ("Such intrigue surrounds this", "surprise"), | |
| ("I find this very intriguing", "surprise"), | |
| ("Intrigue fills my mind", "surprise"), | |
| ], | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # SADNESS FAMILY | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| "sadness": [ | |
| ("I feel so sad right now", "sadness"), | |
| ("Sadness fills my heart", "sadness"), | |
| ("I'm overcome with sadness", "sadness"), | |
| ("Such sadness I feel today", "sadness"), | |
| ], | |
| "sorrow": [ | |
| ("Deep sorrow fills me", "sadness"), | |
| ("I'm drowning in sorrow", "sadness"), | |
| ("Such sorrow in my heart", "sadness"), | |
| ("Sorrow overwhelms me", "sadness"), | |
| ], | |
| "grief": [ | |
| ("I'm grieving this loss", "sadness"), | |
| ("Grief has taken over", "sadness"), | |
| ("I feel deep grief", "sadness"), | |
| ("The grief is unbearable", "sadness"), | |
| ], | |
| "melancholy": [ | |
| ("I'm feeling melancholy today", "sadness"), | |
| ("Such melancholy surrounds me", "sadness"), | |
| ("A melancholy mood has set in", "sadness"), | |
| ("Melancholy fills my heart", "sadness"), | |
| ], | |
| "disappointment": [ | |
| ("I'm so disappointed by this", "sadness"), | |
| ("Such disappointment I feel", "sadness"), | |
| ("This is very disappointing", "sadness"), | |
| ("Disappointment overwhelms me", "sadness"), | |
| ], | |
| "dejection": [ | |
| ("I feel dejected and down", "sadness"), | |
| ("Such dejection fills me", "sadness"), | |
| ("I'm completely dejected", "sadness"), | |
| ("Dejection has taken hold", "sadness"), | |
| ], | |
| "despair": [ | |
| ("I'm in complete despair", "sadness"), | |
| ("Despair has taken over", "sadness"), | |
| ("I feel nothing but despair", "sadness"), | |
| ("Such despair fills me", "sadness"), | |
| ], | |
| "hopelessness": [ | |
| ("I feel completely hopeless", "sadness"), | |
| ("Hopelessness surrounds me", "sadness"), | |
| ("There's no hope left, I feel hopeless", "sadness"), | |
| ("Such hopelessness I feel", "sadness"), | |
| ], | |
| "loneliness": [ | |
| ("I feel so lonely right now", "sadness"), | |
| ("Loneliness fills my heart", "sadness"), | |
| ("I'm overcome with loneliness", "sadness"), | |
| ("Such loneliness I feel", "sadness"), | |
| ], | |
| "hurt": [ | |
| ("I'm so hurt by this", "sadness"), | |
| ("Your words really hurt me", "sadness"), | |
| ("I feel deeply hurt", "sadness"), | |
| ("The hurt is overwhelming", "sadness"), | |
| ], | |
| "misery": [ | |
| ("I'm in complete misery", "sadness"), | |
| ("Misery surrounds me", "sadness"), | |
| ("Such misery I feel", "sadness"), | |
| ("I'm drowning in misery", "sadness"), | |
| ], | |
| "nostalgia": [ | |
| ("I feel nostalgic about the past", "sadness"), | |
| ("Such nostalgia fills me", "sadness"), | |
| ("I'm feeling very nostalgic", "sadness"), | |
| ("Nostalgia for better times", "sadness"), | |
| ], | |
| "longing": [ | |
| ("I'm longing for you", "sadness"), | |
| ("Such longing in my heart", "sadness"), | |
| ("I feel deep longing", "sadness"), | |
| ("Longing for what was", "sadness"), | |
| ], | |
| "yearning": [ | |
| ("I'm yearning for change", "sadness"), | |
| ("Such yearning fills me", "sadness"), | |
| ("I feel deep yearning", "sadness"), | |
| ("Yearning for connection", "sadness"), | |
| ], | |
| "pessimism": [ | |
| ("I'm feeling pessimistic", "sadness"), | |
| ("Pessimism has taken over", "sadness"), | |
| ("I have a pessimistic outlook", "sadness"), | |
| ("Such pessimism fills me", "sadness"), | |
| ], | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # DISGUST FAMILY | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| "disgust": [ | |
| ("I'm disgusted by this", "disgust"), | |
| ("Such disgust I feel", "disgust"), | |
| ("This is truly disgusting", "disgust"), | |
| ("Disgust fills me", "disgust"), | |
| ], | |
| "revulsion": [ | |
| ("I feel complete revulsion", "disgust"), | |
| ("Such revulsion at this", "disgust"), | |
| ("Revulsion overwhelms me", "disgust"), | |
| ("I'm filled with revulsion", "disgust"), | |
| ], | |
| "contempt": [ | |
| ("I feel contempt for this", "disgust"), | |
| ("Such contempt I have", "disgust"), | |
| ("I hold them in contempt", "disgust"), | |
| ("Contempt fills my heart", "disgust"), | |
| ], | |
| "disdain": [ | |
| ("I look at this with disdain", "disgust"), | |
| ("Such disdain I feel", "disgust"), | |
| ("I have nothing but disdain", "disgust"), | |
| ("Disdain is all I have for this", "disgust"), | |
| ], | |
| "loathing": [ | |
| ("I feel complete loathing", "disgust"), | |
| ("Such loathing fills me", "disgust"), | |
| ("I loathe this situation", "disgust"), | |
| ("Loathing overwhelms me", "disgust"), | |
| ], | |
| "scorn": [ | |
| ("I look at this with scorn", "disgust"), | |
| ("Such scorn I feel", "disgust"), | |
| ("I have nothing but scorn", "disgust"), | |
| ("Scorn fills my heart", "disgust"), | |
| ], | |
| "sarcasm": [ | |
| ("Oh great, just what I needed", "disgust"), | |
| ("Yeah right, that's exactly what I wanted", "disgust"), | |
| ("Oh wonderful, how perfect", "disgust"), | |
| ("Sure, that's just fantastic", "disgust"), | |
| ], | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # ANGER FAMILY | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| "anger": [ | |
| ("I'm so angry right now", "anger"), | |
| ("Anger fills my heart", "anger"), | |
| ("I feel very angry", "anger"), | |
| ("Such anger I feel today", "anger"), | |
| ], | |
| "rage": [ | |
| ("I'm in a complete rage", "anger"), | |
| ("Rage consumes me", "anger"), | |
| ("I feel pure rage", "anger"), | |
| ("Such rage fills me", "anger"), | |
| ], | |
| "fury": [ | |
| ("I'm furious about this", "anger"), | |
| ("Fury has taken over", "anger"), | |
| ("I feel complete fury", "anger"), | |
| ("Such fury I feel", "anger"), | |
| ], | |
| "irritation": [ | |
| ("I'm so irritated by this", "anger"), | |
| ("Such irritation I feel", "anger"), | |
| ("This is very irritating", "anger"), | |
| ("Irritation fills me", "anger"), | |
| ], | |
| "annoyance": [ | |
| ("I'm annoyed by this", "anger"), | |
| ("Such annoyance I feel", "anger"), | |
| ("This is really annoying", "anger"), | |
| ("Annoyance fills me", "anger"), | |
| ], | |
| "frustration": [ | |
| ("I'm so frustrated right now", "anger"), | |
| ("Frustration is overwhelming", "anger"), | |
| ("I feel deep frustration", "anger"), | |
| ("Such frustration I feel", "anger"), | |
| ], | |
| "exasperation": [ | |
| ("I'm completely exasperated", "anger"), | |
| ("Such exasperation I feel", "anger"), | |
| ("Exasperation has taken over", "anger"), | |
| ("I feel utter exasperation", "anger"), | |
| ], | |
| "resentment": [ | |
| ("I feel resentment toward them", "anger"), | |
| ("Such resentment I have", "anger"), | |
| ("Resentment builds inside me", "anger"), | |
| ("I'm filled with resentment", "anger"), | |
| ], | |
| "hostility": [ | |
| ("I feel hostility toward this", "anger"), | |
| ("Such hostility I sense", "anger"), | |
| ("Hostility fills the room", "anger"), | |
| ("I'm feeling quite hostile", "anger"), | |
| ], | |
| "bitterness": [ | |
| ("I feel bitterness about this", "anger"), | |
| ("Such bitterness I have", "anger"), | |
| ("Bitterness consumes me", "anger"), | |
| ("I'm filled with bitterness", "anger"), | |
| ], | |
| "envy": [ | |
| ("I feel envious of them", "anger"), | |
| ("Such envy I feel", "anger"), | |
| ("Envy fills my heart", "anger"), | |
| ("I'm consumed by envy", "anger"), | |
| ], | |
| "jealousy": [ | |
| ("I'm so jealous right now", "anger"), | |
| ("Jealousy has taken over", "anger"), | |
| ("I feel deep jealousy", "anger"), | |
| ("Such jealousy I feel", "anger"), | |
| ], | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # ANTICIPATION FAMILY | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| "anticipation": [ | |
| ("I'm anticipating great things", "anticipation"), | |
| ("Such anticipation I feel", "anticipation"), | |
| ("I can't wait, the anticipation!", "anticipation"), | |
| ("Anticipation builds inside me", "anticipation"), | |
| ], | |
| "determination": [ | |
| ("I'm determined to succeed", "anticipation"), | |
| ("Such determination I have", "anticipation"), | |
| ("My determination is strong", "anticipation"), | |
| ("I feel deep determination", "anticipation"), | |
| ], | |
| "inspiration": [ | |
| ("I feel so inspired right now", "anticipation"), | |
| ("Inspiration has struck", "anticipation"), | |
| ("Such inspiration fills me", "anticipation"), | |
| ("I'm feeling very inspired", "anticipation"), | |
| ], | |
| "pride": [ | |
| ("I'm so proud of myself", "anticipation"), | |
| ("Pride fills my heart", "anticipation"), | |
| ("I feel deep pride", "anticipation"), | |
| ("Such pride I have", "anticipation"), | |
| ], | |
| "triumph": [ | |
| ("I feel triumphant today", "anticipation"), | |
| ("Such triumph I achieved", "anticipation"), | |
| ("Triumph fills my heart", "anticipation"), | |
| ("I'm feeling triumphant", "anticipation"), | |
| ], | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # GUILT FAMILY (Sadness + Fear area) | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| "shame": [ | |
| ("I feel so ashamed of myself", "guilt"), | |
| ("Shame fills my heart", "guilt"), | |
| ("I'm overcome with shame", "guilt"), | |
| ("Such shame I feel", "guilt"), | |
| ], | |
| "embarrassment": [ | |
| ("I'm so embarrassed right now", "guilt"), | |
| ("Such embarrassment I feel", "guilt"), | |
| ("This is really embarrassing", "guilt"), | |
| ("Embarrassment overwhelms me", "guilt"), | |
| ], | |
| "guilt": [ | |
| ("I feel so guilty about this", "guilt"), | |
| ("Guilt consumes me", "guilt"), | |
| ("I'm overcome with guilt", "guilt"), | |
| ("Such guilt I feel", "guilt"), | |
| ], | |
| "regret": [ | |
| ("I regret doing that", "guilt"), | |
| ("Such regret I feel", "guilt"), | |
| ("I'm filled with regret", "guilt"), | |
| ("Regret overwhelms me", "guilt"), | |
| ], | |
| "remorse": [ | |
| ("I feel deep remorse", "guilt"), | |
| ("Remorse fills my heart", "guilt"), | |
| ("I'm overcome with remorse", "guilt"), | |
| ("Such remorse I feel", "guilt"), | |
| ], | |
| "humiliation": [ | |
| ("I feel completely humiliated", "guilt"), | |
| ("Such humiliation I feel", "guilt"), | |
| ("This is so humiliating", "guilt"), | |
| ("Humiliation overwhelms me", "guilt"), | |
| ], | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # CONFUSION FAMILY (Fear + Surprise) | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| "confused": [ | |
| ("I'm so confused right now", "confusion"), | |
| ("Confusion fills my mind", "confusion"), | |
| ("I feel very confused", "confusion"), | |
| ("Such confusion I feel", "confusion"), | |
| ], | |
| "confusion": [ | |
| ("This is causing so much confusion", "confusion"), | |
| ("Confusion is everywhere", "confusion"), | |
| ("I'm lost in confusion", "confusion"), | |
| ("Such confusion surrounds me", "confusion"), | |
| ], | |
| "puzzled": [ | |
| ("I'm puzzled by this", "confusion"), | |
| ("Such a puzzle this is", "confusion"), | |
| ("I feel very puzzled", "confusion"), | |
| ("This has me puzzled", "confusion"), | |
| ], | |
| "perplexed": [ | |
| ("I'm completely perplexed", "confusion"), | |
| ("Such perplexity I feel", "confusion"), | |
| ("This is very perplexing", "confusion"), | |
| ("Perplexed by this situation", "confusion"), | |
| ], | |
| "bewildered": [ | |
| ("I'm totally bewildered", "confusion"), | |
| ("Such bewilderment I feel", "confusion"), | |
| ("I feel completely bewildered", "confusion"), | |
| ("Bewildered by what happened", "confusion"), | |
| ], | |
| "baffled": [ | |
| ("I'm completely baffled", "confusion"), | |
| ("Such bafflement I feel", "confusion"), | |
| ("This has me baffled", "confusion"), | |
| ("I'm utterly baffled", "confusion"), | |
| ], | |
| "uncertain": [ | |
| ("I'm uncertain about this", "confusion"), | |
| ("Such uncertainty I feel", "confusion"), | |
| ("I feel very uncertain", "confusion"), | |
| ("Uncertainty fills me", "confusion"), | |
| ], | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # NEUTRAL FAMILY (Center of wheel) | |
| # ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| "neutral": [ | |
| ("I don't have any particular feelings", "neutral"), | |
| ("I'm feeling neutral about this", "neutral"), | |
| ("Neither good nor bad, just neutral", "neutral"), | |
| ("I'm indifferent to this situation", "neutral"), | |
| ], | |
| "thinking": [ | |
| ("I'm thinking about this carefully", "neutral"), | |
| ("Let me think about it", "neutral"), | |
| ("I need to think this through", "neutral"), | |
| ("I'm deep in thought", "neutral"), | |
| ], | |
| "contemplative": [ | |
| ("I'm in a contemplative mood", "neutral"), | |
| ("Just contemplating life", "neutral"), | |
| ("I feel contemplative today", "neutral"), | |
| ("Contemplation fills my mind", "neutral"), | |
| ], | |
| "pensive": [ | |
| ("I'm feeling pensive today", "neutral"), | |
| ("Such a pensive mood", "neutral"), | |
| ("I feel pensive and thoughtful", "neutral"), | |
| ("Pensiveness surrounds me", "neutral"), | |
| ], | |
| "reflective": [ | |
| ("I'm in a reflective mood", "neutral"), | |
| ("Just reflecting on things", "neutral"), | |
| ("I feel reflective today", "neutral"), | |
| ("Time for some reflection", "neutral"), | |
| ], | |
| "ambivalent": [ | |
| ("I feel ambivalent about this", "neutral"), | |
| ("Such ambivalence I have", "neutral"), | |
| ("I'm quite ambivalent", "neutral"), | |
| ("Ambivalence fills me", "neutral"), | |
| ], | |
| "indifferent": [ | |
| ("I'm indifferent to this", "neutral"), | |
| ("Such indifference I feel", "neutral"), | |
| ("I feel completely indifferent", "neutral"), | |
| ("Indifference is all I have", "neutral"), | |
| ], | |
| "boredom": [ | |
| ("I'm so bored right now", "neutral"), | |
| ("Boredom has set in", "neutral"), | |
| ("I feel very bored", "neutral"), | |
| ("Such boredom I feel", "neutral"), | |
| ], | |
| "tiredness": [ | |
| ("I'm feeling so tired", "neutral"), | |
| ("Tiredness overwhelms me", "neutral"), | |
| ("I feel very tired today", "neutral"), | |
| ("Such tiredness I feel", "neutral"), | |
| ], | |
| "exhaustion": [ | |
| ("I'm completely exhausted", "neutral"), | |
| ("Exhaustion has taken over", "neutral"), | |
| ("I feel utter exhaustion", "neutral"), | |
| ("Such exhaustion I feel", "neutral"), | |
| ], | |
| "fatigue": [ | |
| ("I'm feeling fatigued", "neutral"), | |
| ("Fatigue has set in", "neutral"), | |
| ("I feel deep fatigue", "neutral"), | |
| ("Such fatigue I have", "neutral"), | |
| ], | |
| "weariness": [ | |
| ("I'm feeling weary", "neutral"), | |
| ("Weariness fills me", "neutral"), | |
| ("I feel so weary today", "neutral"), | |
| ("Such weariness I have", "neutral"), | |
| ], | |
| "sleepy": [ | |
| ("I'm feeling sleepy", "neutral"), | |
| ("So sleepy right now", "neutral"), | |
| ("I feel very sleepy", "neutral"), | |
| ("Sleepiness is taking over", "neutral"), | |
| ], | |
| } | |
| def get_all_emotions(self) -> List[str]: | |
| """Get list of all emotions in the test suite""" | |
| return list(self.EMOTION_TEST_DATA.keys()) | |
| def get_test_cases(self, emotion: str) -> List[Tuple[str, str]]: | |
| """Get test cases for a specific emotion""" | |
| return self.EMOTION_TEST_DATA.get(emotion, []) | |
| def get_emotion_count(self) -> int: | |
| """Get total number of emotions""" | |
| return len(self.EMOTION_TEST_DATA) | |
| def get_test_count(self) -> int: | |
| """Get total number of test cases""" | |
| return sum(len(cases) for cases in self.EMOTION_TEST_DATA.values()) | |
| def get_emotions_by_category(self, category: str) -> List[str]: | |
| """Get all emotions in a category""" | |
| return [ | |
| emotion for emotion, cases in self.EMOTION_TEST_DATA.items() | |
| if cases and cases[0][1] == category | |
| ] | |
| if __name__ == "__main__": | |
| suite = EmotionTestSuiteV3() | |
| print(f"Emotion Test Suite V{suite.VERSION}") | |
| print(f"Total Emotions: {suite.get_emotion_count()}") | |
| print(f"Total Test Cases: {suite.get_test_count()}") | |
| print() | |
| # Show by category | |
| categories = ["joy", "trust", "love", "fear", "surprise", "sadness", | |
| "disgust", "anger", "anticipation", "guilt", "confusion", "neutral"] | |
| for cat in categories: | |
| emotions = suite.get_emotions_by_category(cat) | |
| print(f"\n{cat.upper()} ({len(emotions)} emotions):") | |
| for em in emotions[:5]: # Show first 5 | |
| print(f" - {em}") | |
| if len(emotions) > 5: | |
| print(f" ... and {len(emotions) - 5} more") | |