o
    h^                     @   sd   d Z ddlZddlZddlmZ ddlmZmZ ddlT ej	j
ej	jgZdd Zdd	 Zd
d ZdS )z
Test the semgrex interface
    N)tree_reader)process_treesTsurgeon)*c                  C   sL   d} t | }d}d}t|||f}t|dksJ t|d dks$J d S )N[( (SBARQ (WHNP (WP Who)) (SQ (VP (VBZ sits) (PP (IN in) (NP (DT this) (NN seat))))) (. ?)))WP=wprelabel wp WWWPPP   r   c(ROOT (SBARQ (WHNP (WWWPPP Who)) (SQ (VP (VBZ sits) (PP (IN in) (NP (DT this) (NN seat))))) (. ?))))r   
read_treesr   lenstr)texttreestregextsurgeonresult r   \/var/www/html/env_mimamsha/lib/python3.10/site-packages/stanza/tests/server/test_tsurgeon.pytest_simple   s   
r   c                  C   s   t  H} d}t|}d}d}| |||f}t|dksJ t|d dks)J | |||f}t|dks9J t|d dksCJ W d   dS 1 sNw   Y  dS )z>
    Processing the same thing twice should work twice...
    r   r   r   r	   r   r
   Nr   r   r   processr   r   )	processorr   r   r   r   r   r   r   r   test_context   s   
"r   c                  C   s   t  W} d}d}t|}d}d}| |||f}t|dks!J t|d |ks+J d}d}t|}d}d}| |||f}t|dksHJ t|d |ksRJ W d   dS 1 s]w   Y  dS )	z
    Test a couple expressions used when processing the Arboretum treebank

    That particular treebank was the original inspiration for adding the Tsurgeon interface
    at  (s (par (fcl (n s1_1) (vp (v-fin s1_2) (v-pcp2 s1_4)) (adv s1_3) (np (pron-poss s1_5) (n s1_6) (pp (prp s1_7) (n s1_8)))) (pu s1_9) (conj-c s1_10) (fcl (adv s1_11) (v-fin s1_12) (np (prop s1_13) (pp (prp s1_14) (prop s1_15))) (np (art s1_16) (adjp (adv s1_17) (adj s1_18)) (n s1_19) (pp (prp s1_20) (np (pron-poss s1_21) (adj s1_22) (n s1_23) (prop s1_24))))) (pu s1_25)))at  (s (par (fcl (n s1_1) (vp (v-fin s1_2) (adv s1_3) (v-pcp2 s1_4)) (np (pron-poss s1_5) (n s1_6) (pp (prp s1_7) (n s1_8)))) (pu s1_9) (conj-c s1_10) (fcl (adv s1_11) (v-fin s1_12) (np (prop s1_13) (pp (prp s1_14) (prop s1_15))) (np (art s1_16) (adjp (adv s1_17) (adj s1_18)) (n s1_19) (pp (prp s1_20) (np (pron-poss s1_21) (adj s1_22) (n s1_23) (prop s1_24))))) (pu s1_25)))zSs1_4 > (__=home > (__=parent > __=grandparent)) . (s1_3 > (__=move > =grandparent))zmove move $+ homer	   r   z=s1_4 > (__=home > (__=parent $+ (__=move <<, s1_3 <<- s1_3)))Nr   )r   r   expectedr   r   r   r   r   r   r   test_arboretum-   s$   

"r   )__doc__pyteststanzastanza.models.constituencyr   stanza.server.tsurgeonr   r   stanza.testsmarktravisclient
pytestmarkr   r   r   r   r   r   r   <module>   s    
