
    cPjf                     T    d Z ddlZddlmc mZ ddlZd Zd Z	d Z
d Zd Zd Zd	 Zy)
zGEmotion-tag extraction: strip tag, map to mood stem + protocol emotion.    Nc                     t         j                  } d} | |      }d}||k(  }|st        j                  d|fd||f      dt	        j
                         v st        j                  t               rt        j                  t               ndt        j                  |       t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x} x}x}x}}y )	Nz[warm] Hello, sir.)zHello, sir.warm==zS%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.split_emotion
}(%(py4)s)
} == %(py9)sttspy0py2py4py6py9assert %(py11)spy11
r   split_emotion
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanation@py_assert1@py_assert3@py_assert5@py_assert8@py_assert7@py_format10@py_format12s          H/Users/ahmed/devFolder/Ultron/claude-voice/gateway/tests/test_emotion.pytest_split_known_tagr$      s    M1M12M6MM26MMMMM26MMMMMMM3MMM3MMMMMM1MMM2MMM6MMMMMMMMM    c                     t         j                  } d} | |      }d}||k(  }|st        j                  d|fd||f      dt	        j
                         v st        j                  t               rt        j                  t               ndt        j                  |       t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x} x}x}x}}y )	NJust plain text.)r'   Nr   r   r   r	   r   r   r   r   s          r#   test_split_no_tagr(   	   s    N/N/0N4NN04NNNNN04NNNNNNN3NNN3NNNNNN/NNN0NNN4NNNNNNNNNr%   c                     t        j                  d      \  } }d}| |k(  }|st        j                  d|fd| |f      dt	        j
                         v st        j                  |       rt        j                  |       ndt        j                  |      dz  }dd|iz  }t        t        j                  |            d x}}d	}||k(  }|st        j                  d|fd||f      d
t	        j
                         v st        j                  |      rt        j                  |      nd
t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}}y )Nz[Mildly excited] here we goz
here we gor   z%(py0)s == %(py3)scleanr
   py3assert %(py5)spy5excitedtagr   r+   r1   @py_assert2r   @py_format4@py_format6s         r#   +test_split_improvised_tag_maps_by_last_wordr6      s    ""#@AJE3  5L    5L      5   5   L       3)3)33)r%   c                     t        j                  d      \  } }d}| |k(  }|st        j                  d|fd| |f      dt	        j
                         v st        j                  |       rt        j                  |       ndt        j                  |      dz  }dd|iz  }t        t        j                  |            d x}}d }||u }|st        j                  d	|fd
||f      dt	        j
                         v st        j                  |      rt        j                  |      ndt        j                  |      dz  }dd|iz  }t        t        j                  |            d x}}y )Nz[whatever] texttextr   r*   r+   r,   r.   r/   is)z%(py0)s is %(py3)sr1   r   r2   s         r#   /test_split_unknown_tag_is_stripped_but_unmappedr;      s    ""#45JE35F?5F55F3$;3$33$r%   c                  h
   t         j                  } d} | |      }d}||k(  }|st        j                  d|fd||f      dt	        j
                         v st        j                  t               rt        j                  t               ndt        j                  |       t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x} x}x}x}}t         j                  } d	} | |      }d
}||k(  }|st        j                  d|fd||f      dt	        j
                         v st        j                  t               rt        j                  t               ndt        j                  |       t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x} x}x}x}}t         j                  } d} | |      }d}||k(  }|st        j                  d|fd||f      dt	        j
                         v st        j                  t               rt        j                  t               ndt        j                  |       t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x} x}x}x}}t         j                  } d} | |      }d}||k(  }|st        j                  d|fd||f      dt	        j
                         v st        j                  t               rt        j                  t               ndt        j                  |       t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x} x}x}x}}t         j                  } d} | |      }d}||k(  }|st        j                  d|fd||f      dt	        j
                         v st        j                  t               rt        j                  t               ndt        j                  |       t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x} x}x}x}}y )Nz[urgent] Behind you!)zBehind you!r0   r   )zS%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.emotion_label
}(%(py4)s)
} == %(py9)sr   r	   r   r   z[sarcastic] sure)suredryz[serious] listen)listencalmz[neutral] ok)okNplain)rB   N
r   emotion_labelr   r   r   r   r   r   r   r   r   s          r#   test_protocol_emotion_mappingrE      s   R3R34R8RR48RRRRR48RRRRRRR3RRR3RRRRRR3RRR4RRR8RRRRRRRRC/C/0COC0OCCCC0OCCCCCC3CCC3CCCCCC/CCC0CCCOCCCCCCCF/F/0F4FF04FFFFF04FFFFFFF3FFF3FFFFFF/FFF0FFF4FFFFFFFF<^<^,<<,<<<<,<<<<<<3<<<3<<<<<<^<<<,<<<<<<<<<<8W8W%88%8888%88888838883888888W888%88888888888r%   c                  R   t         j                  } d} | |      }d}||k(  }|st        j                  d|fd||f      dt	        j
                         v st        j                  t               rt        j                  t               ndt        j                  |       t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x} x}x}x}}t         j                  } d	} | |      }d
}||k(  }|st        j                  d|fd||f      dt	        j
                         v st        j                  t               rt        j                  t               ndt        j                  |       t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x} x}x}x}}t         j                  } d} | |      }d}||k(  }|st        j                  d|fd||f      dt	        j
                         v st        j                  t               rt        j                  t               ndt        j                  |       t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x} x}x}x}}t         j                  } d} | |      }d }||u }|st        j                  d|fd||f      dt	        j
                         v st        j                  t               rt        j                  t               ndt        j                  |       t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x} x}x}x}}y )Nz[urgent] nowr0   r   )zN%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.stem_for
}(%(py4)s)
} == %(py9)sr   r	   r   r   z[dry] indeedr>   z	[warm] hir   zno tagr9   )zN%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.stem_for
}(%(py4)s)
} is %(py9)s)
r   stem_forr   r   r   r   r   r   r   r   r   s          r#   test_stem_selectionrH   !   sY   <<44<'494'94444'944444434443444<444444'44494444444<<00<'050'50000'500000030003000<000000'00050000000<<..<$..$....$......3...3...<......$..........<<))<!)T)!T))))!T))))))3)))3)))<))))))!)))T))))))))r%   c                     h d} dD ]  }t        j                  d| d      \  }}|| v }|st        j                  d|fd|| f      dt	        j
                         v st        j                  |      rt        j                  |      nddt	        j
                         v st        j                  |       rt        j                  |       ndd	z  }d
d|iz  }t        t        j                  |            d } y )N>   Nr>   sadr@   r   r0   )r@   flatr   happyr0   urgentalarmedrJ   	sarcasticr>   seriousneutral[z] x)in)z%(py0)s in %(py2)semoallowed)r
   r   zassert %(py4)sr   rC   )rU   r1   _cleanrT   r   @py_format3@py_format5s          r#   (test_protocol_emotion_values_are_in_enumrY   (   s    =GL''!C55g~sgssggLr%   )__doc__builtinsr   _pytest.assertion.rewrite	assertionrewriter   r   r$   r(   r6   r;   rE   rH   rY    r%   r#   <module>r`      s4    M   
NO9*r%   