§
    †¿j‡0  ã                  óþ   — d Z ddlmZ ddlZddlmc mZ ddl	Z	ddl
mZmZmZmZmZmZmZ e	j        d„ ¦   «         Z G d„ d¦  «        Z G d„ d	¦  «        Z G d
„ d¦  «        Z G d„ d¦  «        Z G d„ d¦  «        ZdS )z 
Tier 1 E2E Tests: Friends & Social Engine, Presence, Guild Roster,
Safe Teleportation Channel (3.5s & Interrupts), and 5-Gate Destination Validation (R2, R3).
é    )ÚannotationsN)ÚGuildMemberPresenceDTOÚGuildRosterServiceÚInterruptReasonÚPartyServiceÚSocialServiceÚ
TargetTypeÚTeleportServicec                 ó„   — t          ¦   «         } t          ¦   «         }t          ¦   «         }t          | ||¦  «        }| |||fS )N)r   r   r   r
   )Ú	party_svcÚ
social_svcÚ	guild_svcÚteleport_svcs       úNC:\Projects\FreeExile\tests\e2e_social_party\test_tier1_social_and_teleport.pyÚ
social_envr      s?   € å‘”€IÝ‘”€JÝ"Ñ$Ô$€IÝ" 9¨j¸)ÑDÔD€LØ�j )¨\Ð9Ð9ó    c                  ó:   — e Zd ZdZd
d„Zd
d„Zd
d„Zd
d„Zd
d„Zd	S )ÚTestTier1FriendLifecyclezQFeature 7: Friend Management Lifecycle (Request, Accept, Decline, Remove, Block).ÚreturnÚNonec           	     ó’	  — |\  }}}}|j         }d}d} |||¦  «        }d}||u }	|	sãt          j        d|	fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }
dd	|
iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}x}x}x}	}d}|j	        d         }||v }|slt          j        d
|fd||f¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}}|j
        }d}d} |||¦  «        }d}||u }	|	sãt          j        d|	fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }
dd	|
iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}x}x}x}	}|j        }d}d} |||¦  «        }d}||u }	|	sãt          j        d|	fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }
dd	|
iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}x}x}x}	}|j        }d}d} |||¦  «        }d}||u }	|	sãt          j        d|	fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }
dd	|
iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}x}x}x}	}d S )NÚaliceÚbobT©Úis©zc%(py8)s
{%(py8)s = %(py2)s
{%(py2)s = %(py0)s.send_friend_request
}(%(py4)s, %(py6)s)
} is %(py11)sr   ©Úpy0Úpy2Úpy4Úpy6Úpy8Úpy11úassert %(py13)sÚpy13©Úin)z%(py1)s in %(py4)s©Úpy1r    úassert %(py6)sr!   )ze%(py8)s
{%(py8)s = %(py2)s
{%(py2)s = %(py0)s.accept_friend_request
}(%(py4)s, %(py6)s)
} is %(py11)s©zY%(py8)s
{%(py8)s = %(py2)s
{%(py2)s = %(py0)s.is_friend
}(%(py4)s, %(py6)s)
} is %(py11)s)Úsend_friend_requestÚ
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanationÚfriend_requestsÚaccept_friend_requestÚ	is_friend)Úselfr   Ú_r   Ú@py_assert1Ú@py_assert3Ú@py_assert5Ú@py_assert7Ú@py_assert10Ú@py_assert9Ú@py_format12Ú@py_format14Ú@py_assert0Ú@py_assert2Ú@py_format5Ú@py_format7s                   r   Ú#test_friend_request_and_accept_flowz<TestTier1FriendLifecycle.test_friend_request_and_accept_flow   s®  € Ø(Ñˆˆ:�q˜!ØÔ-ÐE¨gÐE°uÐEÐ-Ð-¨g°uÑ=Ô=ÐEÀÐEÐ=ÀÐEÐEÐEÐEÕEÔEÐEÐEÐEÐEÐ=ÀÐEÑEÔEÐEÕEÔEÑEÔEÐEÐEÕEÔEˆzÑEÔEÐEÕEÔEˆzÑEÔEÐEÐEÕEÔEÐ-ÑEÔEÕEÔE¨gÑEÔEÕEÔE°uÑEÔEÕEÔEÐ=ÑEÔEÕEÔEÀÑEÔEÐEÐEÑEÐEÐEÐEÐEÐEÑEÐEÕEÕEÔEÐEÑEÔEÑEÔEÐEÐEÐEÐEÐEÐEÐEÐEÐEÐEÐEÐEÐEØÐ;˜*Ô4°UÔ;Ð;ˆwÐ;Ð;Ð;Ð;Ð;Õ;Ô;Ð;Ð;Ð;Ð;ˆwÐ;Ð;Ñ;Ô;Õ;Ô;ˆwÑ;Ô;Õ;Ô;Ð;Ñ;Ô;Ð;Ð;Ñ;Ð;Ð;Ð;Ð;Ð;Ñ;Ð;Õ;Õ;Ô;Ð;Ñ;Ô;Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;ØÔ/ÐG°ÐG°wÐGÐ/Ð/°°wÑ?Ô?ÐGÀ4ÐGÐ?À4ÐGÐGÐGÐGÕGÔGÐGÐGÐGÐGÐ?À4ÐGÑGÔGÐGÕGÔGÑGÔGÐGÐGÕGÔGˆzÑGÔGÐGÕGÔGˆzÑGÔGÐGÐGÕGÔGÐ/ÑGÔGÕGÔG°ÑGÔGÕGÔG°wÑGÔGÕGÔGÐ?ÑGÔGÕGÔGÀ4ÑGÔGÐGÐGÑGÐGÐGÐGÐGÐGÑGÐGÕGÕGÔGÐGÑGÔGÑGÔGÐGÐGÐGÐGÐGÐGÐGÐGÐGÐGÐGÐGÐGØÔ#Ð; GÐ;¨UÐ;Ð#Ð# G¨UÑ3Ô3Ð;°tÐ;Ð3°tÐ;Ð;Ð;Ð;Õ;Ô;Ð;Ð;Ð;Ð;Ð3°tÐ;Ñ;Ô;Ð;Õ;Ô;Ñ;Ô;Ð;Ð;Õ;Ô;ˆzÑ;Ô;Ð;Õ;Ô;ˆzÑ;Ô;Ð;Ð;Õ;Ô;Ð#Ñ;Ô;Õ;Ô; GÑ;Ô;Õ;Ô;¨UÑ;Ô;Õ;Ô;Ð3Ñ;Ô;Õ;Ô;°tÑ;Ô;Ð;Ð;Ñ;Ð;Ð;Ð;Ð;Ð;Ñ;Ð;Õ;Õ;Ô;Ð;Ñ;Ô;Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;ØÔ#Ð; EÐ;¨7Ð;Ð#Ð# E¨7Ñ3Ô3Ð;°tÐ;Ð3°tÐ;Ð;Ð;Ð;Õ;Ô;Ð;Ð;Ð;Ð;Ð3°tÐ;Ñ;Ô;Ð;Õ;Ô;Ñ;Ô;Ð;Ð;Õ;Ô;ˆzÑ;Ô;Ð;Õ;Ô;ˆzÑ;Ô;Ð;Ð;Õ;Ô;Ð#Ñ;Ô;Õ;Ô; EÑ;Ô;Õ;Ô;¨7Ñ;Ô;Õ;Ô;Ð3Ñ;Ô;Õ;Ô;°tÑ;Ô;Ð;Ð;Ñ;Ð;Ð;Ð;Ð;Ð;Ñ;Ð;Õ;Õ;Ô;Ð;Ñ;Ô;Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;r   c           	     óx  — |\  }}}}|                      dd¦  «         |j        }d}d} |||¦  «        }d}||u }	|	sãt          j        d|	fd||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }
dd	|
iz  }t          t          j	        |¦  «        ¦  «        ‚d x}x}x}x}x}	}|j
        }d}d} |||¦  «        }d
}||u }	|	sãt          j        d|	fd||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }
dd	|
iz  }t          t          j	        |¦  «        ¦  «        ‚d x}x}x}x}x}	}d S )Nr   r   Tr   )zf%(py8)s
{%(py8)s = %(py2)s
{%(py2)s = %(py0)s.decline_friend_request
}(%(py4)s, %(py6)s)
} is %(py11)sr   r   r$   r%   Fr+   )r,   Údecline_friend_requestr-   r.   r/   r0   r1   r2   r3   r4   r7   ©r8   r   r9   r   r:   r;   r<   r=   r>   r?   r@   rA   s               r   Ú test_friend_request_decline_flowz9TestTier1FriendLifecycle.test_friend_request_decline_flow'   s¢  € Ø(Ñˆˆ:�q˜!Ø×&Ò& w°Ñ6Ô6Ð6ØÔ0ÐH°ÐH¸ÐHÐ0Ð0°¸Ñ@Ô@ÐHÀDÐHÐ@ÀDÐHÐHÐHÐHÕHÔHÐHÐHÐHÐHÐ@ÀDÐHÑHÔHÐHÕHÔHÑHÔHÐHÐHÕHÔHˆzÑHÔHÐHÕHÔHˆzÑHÔHÐHÐHÕHÔHÐ0ÑHÔHÕHÔH°ÑHÔHÕHÔH¸ÑHÔHÕHÔHÐ@ÑHÔHÕHÔHÀDÑHÔHÐHÐHÑHÐHÐHÐHÐHÐHÑHÐHÕHÕHÔHÐHÑHÔHÑHÔHÐHÐHÐHÐHÐHÐHÐHÐHÐHÐHÐHÐHÐHØÔ#Ð< GÐ<¨UÐ<Ð#Ð# G¨UÑ3Ô3Ð<°uÐ<Ð3°uÐ<Ð<Ð<Ð<Õ<Ô<Ð<Ð<Ð<Ð<Ð3°uÐ<Ñ<Ô<Ð<Õ<Ô<Ñ<Ô<Ð<Ð<Õ<Ô<ˆzÑ<Ô<Ð<Õ<Ô<ˆzÑ<Ô<Ð<Ð<Õ<Ô<Ð#Ñ<Ô<Õ<Ô< GÑ<Ô<Õ<Ô<¨UÑ<Ô<Õ<Ô<Ð3Ñ<Ô<Õ<Ô<°uÑ<Ô<Ð<Ð<Ñ<Ð<Ð<Ð<Ð<Ð<Ñ<Ð<Õ<Õ<Ô<Ð<Ñ<Ô<Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<r   c           	     óÀ  — |\  }}}}|                      dd¦  «         |                     dd¦  «         |j        }d}d} |||¦  «        }d}||u }	|	sãt          j        d|	fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }
dd	|
iz  }t          t          j
        |¦  «        ¦  «        ‚d x}x}x}x}x}	}|j        }d}d} |||¦  «        }d
}||u }	|	sãt          j        d|	fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }
dd	|
iz  }t          t          j
        |¦  «        ¦  «        ‚d x}x}x}x}x}	}|j        }d}d} |||¦  «        }d
}||u }	|	sãt          j        d|	fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }
dd	|
iz  }t          t          j
        |¦  «        ¦  «        ‚d x}x}x}x}x}	}d S )Nr   r   Tr   )z]%(py8)s
{%(py8)s = %(py2)s
{%(py2)s = %(py0)s.remove_friend
}(%(py4)s, %(py6)s)
} is %(py11)sr   r   r$   r%   Fr+   )r,   r6   Úremove_friendr-   r.   r/   r0   r1   r2   r3   r4   r7   rI   s               r   Útest_friend_removalz,TestTier1FriendLifecycle.test_friend_removal-   só  € Ø(Ñˆˆ:�q˜!Ø×&Ò& w°Ñ6Ô6Ð6Ø×(Ò(¨°Ñ8Ô8Ð8ØÔ'Ð?¨Ð?°Ð?Ð'Ð'¨°Ñ7Ô7Ð?¸4Ð?Ð7¸4Ð?Ð?Ð?Ð?Õ?Ô?Ð?Ð?Ð?Ð?Ð7¸4Ð?Ñ?Ô?Ð?Õ?Ô?Ñ?Ô?Ð?Ð?Õ?Ô?ˆzÑ?Ô?Ð?Õ?Ô?ˆzÑ?Ô?Ð?Ð?Õ?Ô?Ð'Ñ?Ô?Õ?Ô?¨Ñ?Ô?Õ?Ô?°Ñ?Ô?Õ?Ô?Ð7Ñ?Ô?Õ?Ô?¸4Ñ?Ô?Ð?Ð?Ñ?Ð?Ð?Ð?Ð?Ð?Ñ?Ð?Õ?Õ?Ô?Ð?Ñ?Ô?Ñ?Ô?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?ØÔ#Ð< GÐ<¨UÐ<Ð#Ð# G¨UÑ3Ô3Ð<°uÐ<Ð3°uÐ<Ð<Ð<Ð<Õ<Ô<Ð<Ð<Ð<Ð<Ð3°uÐ<Ñ<Ô<Ð<Õ<Ô<Ñ<Ô<Ð<Ð<Õ<Ô<ˆzÑ<Ô<Ð<Õ<Ô<ˆzÑ<Ô<Ð<Ð<Õ<Ô<Ð#Ñ<Ô<Õ<Ô< GÑ<Ô<Õ<Ô<¨UÑ<Ô<Õ<Ô<Ð3Ñ<Ô<Õ<Ô<°uÑ<Ô<Ð<Ð<Ñ<Ð<Ð<Ð<Ð<Ð<Ñ<Ð<Õ<Õ<Ô<Ð<Ñ<Ô<Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<ØÔ#Ð< EÐ<¨7Ð<Ð#Ð# E¨7Ñ3Ô3Ð<°uÐ<Ð3°uÐ<Ð<Ð<Ð<Õ<Ô<Ð<Ð<Ð<Ð<Ð3°uÐ<Ñ<Ô<Ð<Õ<Ô<Ñ<Ô<Ð<Ð<Õ<Ô<ˆzÑ<Ô<Ð<Õ<Ô<ˆzÑ<Ô<Ð<Ð<Õ<Ô<Ð#Ñ<Ô<Õ<Ô< EÑ<Ô<Õ<Ô<¨7Ñ<Ô<Õ<Ô<Ð3Ñ<Ô<Õ<Ô<°uÑ<Ô<Ð<Ð<Ñ<Ð<Ð<Ð<Ð<Ð<Ñ<Ð<Õ<Õ<Ô<Ð<Ñ<Ô<Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<r   c           	     ó	  — |\  }}}}|                      dd¦  «         |                     dd¦  «         |                     dd¦  «         |j        }d}d} |||¦  «        }d}||u }	|	sãt	          j        d|	fd||f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |¦  «        dœz  }
dd	|
iz  }t          t	          j        |¦  «        ¦  «        ‚d x}x}x}x}x}	}|j        }d}d} |||¦  «        }d}||u }	|	sãt	          j        d|	fd||f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |¦  «        dœz  }
dd	|
iz  }t          t	          j        |¦  «        ¦  «        ‚d x}x}x}x}x}	}|j        }d}d} |||¦  «        }d
}||u }	|	sãt	          j        d|	fd||f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |¦  «        dœz  }
dd	|
iz  }t          t	          j        |¦  «        ¦  «        ‚d x}x}x}x}x}	}|j         }d}d} |||¦  «        }d
}||u }	|	sãt	          j        d|	fd||f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |¦  «        dœz  }
dd	|
iz  }t          t	          j        |¦  «        ¦  «        ‚d x}x}x}x}x}	}d S )Nr   r   Tr   )zZ%(py8)s
{%(py8)s = %(py2)s
{%(py2)s = %(py0)s.is_blocked
}(%(py4)s, %(py6)s)
} is %(py11)sr   r   r$   r%   Fr+   r   )r,   r6   Úblock_playerÚ
is_blockedr-   r.   r/   r0   r1   r2   r3   r4   r7   rI   s               r   Útest_friend_bidirectional_blockz8TestTier1FriendLifecycle.test_friend_bidirectional_block5   sD  € Ø(Ñˆˆ:�q˜!Ø×&Ò& w°Ñ6Ô6Ð6Ø×(Ò(¨°Ñ8Ô8Ð8Ø×Ò ¨Ñ/Ô/Ð/àÔ$Ð< WÐ<¨eÐ<Ð$Ð$ W¨eÑ4Ô4Ð<¸Ð<Ð4¸Ð<Ð<Ð<Ð<Õ<Ô<Ð<Ð<Ð<Ð<Ð4¸Ð<Ñ<Ô<Ð<Õ<Ô<Ñ<Ô<Ð<Ð<Õ<Ô<ˆzÑ<Ô<Ð<Õ<Ô<ˆzÑ<Ô<Ð<Ð<Õ<Ô<Ð$Ñ<Ô<Õ<Ô< WÑ<Ô<Õ<Ô<¨eÑ<Ô<Õ<Ô<Ð4Ñ<Ô<Õ<Ô<¸Ñ<Ô<Ð<Ð<Ñ<Ð<Ð<Ð<Ð<Ð<Ñ<Ð<Õ<Õ<Ô<Ð<Ñ<Ô<Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<ØÔ$Ð< UÐ<¨GÐ<Ð$Ð$ U¨GÑ4Ô4Ð<¸Ð<Ð4¸Ð<Ð<Ð<Ð<Õ<Ô<Ð<Ð<Ð<Ð<Ð4¸Ð<Ñ<Ô<Ð<Õ<Ô<Ñ<Ô<Ð<Ð<Õ<Ô<ˆzÑ<Ô<Ð<Õ<Ô<ˆzÑ<Ô<Ð<Ð<Õ<Ô<Ð$Ñ<Ô<Õ<Ô< UÑ<Ô<Õ<Ô<¨GÑ<Ô<Õ<Ô<Ð4Ñ<Ô<Õ<Ô<¸Ñ<Ô<Ð<Ð<Ñ<Ð<Ð<Ð<Ð<Ð<Ñ<Ð<Õ<Õ<Ô<Ð<Ñ<Ô<Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<ØÔ#Ð< GÐ<¨UÐ<Ð#Ð# G¨UÑ3Ô3Ð<°uÐ<Ð3°uÐ<Ð<Ð<Ð<Õ<Ô<Ð<Ð<Ð<Ð<Ð3°uÐ<Ñ<Ô<Ð<Õ<Ô<Ñ<Ô<Ð<Ð<Õ<Ô<ˆzÑ<Ô<Ð<Õ<Ô<ˆzÑ<Ô<Ð<Ð<Õ<Ô<Ð#Ñ<Ô<Õ<Ô< GÑ<Ô<Õ<Ô<¨UÑ<Ô<Õ<Ô<Ð3Ñ<Ô<Õ<Ô<°uÑ<Ô<Ð<Ð<Ñ<Ð<Ð<Ð<Ð<Ð<Ñ<Ð<Õ<Õ<Ô<Ð<Ñ<Ô<Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<ØÔ-ÐF¨eÐF°WÐFÐ-Ð-¨e°WÑ=Ô=ÐFÀÐFÐ=ÀÐFÐFÐFÐFÕFÔFÐFÐFÐFÐFÐ=ÀÐFÑFÔFÐFÕFÔFÑFÔFÐFÐFÕFÔFˆzÑFÔFÐFÕFÔFˆzÑFÔFÐFÐFÕFÔFÐ-ÑFÔFÕFÔF¨eÑFÔFÕFÔF°WÑFÔFÕFÔFÐ=ÑFÔFÕFÔFÀÑFÔFÐFÐFÑFÐFÐFÐFÐFÐFÑFÐFÕFÕFÔFÐFÑFÔFÑFÔFÐFÐFÐFÐFÐFÐFÐFÐFÐFÐFÐFÐFÐFÐFÐFr   c           	     ó0  — |\  }}}}|j         }d}d} |||¦  «        }d}||u }	|	sãt          j        d|	fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }
dd|
iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}x}x}x}	}d S )	Nr   Fr   r   r   r   r$   r%   )	r,   r-   r.   r/   r0   r1   r2   r3   r4   rI   s               r   Ú!test_self_friend_request_rejectedz:TestTier1FriendLifecycle.test_self_friend_request_rejected@   sQ  € Ø(Ñˆˆ:�q˜!ØÔ-ÐH¨gÐH°wÐHÐ-Ð-¨g°wÑ?Ô?ÐHÀ5ÐHÐ?À5ÐHÐHÐHÐHÕHÔHÐHÐHÐHÐHÐ?À5ÐHÑHÔHÐHÕHÔHÑHÔHÐHÐHÕHÔHˆzÑHÔHÐHÕHÔHˆzÑHÔHÐHÐHÕHÔHÐ-ÑHÔHÕHÔH¨gÑHÔHÕHÔH°wÑHÔHÕHÔHÐ?ÑHÔHÕHÔHÀ5ÑHÔHÐHÐHÑHÐHÐHÐHÐHÐHÑHÐHÕHÕHÔHÐHÑHÔHÑHÔHÐHÐHÐHÐHÐHÐHÐHÐHÐHÐHÐHÐHÐHÐHÐHr   N©r   r   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__rF   rJ   rM   rQ   rS   © r   r   r   r      sˆ   € € € € € Ø[Ð[ð<ð <ð <ð <ð=ð =ð =ð =ð=ð =ð =ð =ð	Gð 	Gð 	Gð 	GðIð Ið Ið Ið Ið Ir   r   c                  ó:   — e Zd ZdZd
d„Zd
d„Zd
d„Zd
d„Zd
d„Zd	S )ÚTestTier1RealTimePresencezHFeature 8: Real-Time Social Presence (Status, Level, Zone, Friend Note).r   r   c                ó¨  — |\  }}}}|                      dd¦  «         |                     dd¦  «         |                     dddddd¦  «         |                     d¦  «        }t	          |¦  «        }d}||k    }|sòt          j        d	|fd
||f¦  «        dt          j        ¦   «         v st          j	        t          ¦  «        rt          j
        t          ¦  «        nddt          j        ¦   «         v st          j	        |¦  «        rt          j
        |¦  «        ndt          j
        |¦  «        t          j
        |¦  «        dœz  }dd|iz  }	t          t          j        |	¦  «        ¦  «        ‚d x}x}}|d         }
|
j        }d}||u }|st          j        d|fd||f¦  «        t          j
        |
¦  «        t          j
        |¦  «        t          j
        |¦  «        dœz  }dd|iz  }	t          t          j        |	¦  «        ¦  «        ‚d x}
x}x}}|d         }
|
j        }d}||k    }|st          j        d	|fd||f¦  «        t          j
        |
¦  «        t          j
        |¦  «        t          j
        |¦  «        dœz  }dd|iz  }	t          t          j        |	¦  «        ¦  «        ‚d x}
x}x}}|d         }
|
j        }d}||k    }|st          j        d	|fd||f¦  «        t          j
        |
¦  «        t          j
        |¦  «        t          j
        |¦  «        dœz  }dd|iz  }	t          t          j        |	¦  «        ¦  «        ‚d x}
x}x}}d S )Nr   r   ÚBobé-   TÚzone_tang_kiem_nhaiu   TÃ ng Kiáº¿m Nhaié   ©ú==©z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sÚlenÚp_list©r   r)   Úpy3r!   úassert %(py8)sr"   r   r   ©z1%(py3)s
{%(py3)s = %(py1)s.is_online
} is %(py6)s©r)   rg   r!   )z-%(py3)s
{%(py3)s = %(py1)s.level
} == %(py6)s)z/%(py3)s
{%(py3)s = %(py1)s.zone_id
} == %(py6)s)r,   r6   Úupdate_presenceÚget_friend_presencerd   r-   r.   r/   r0   r1   r2   r3   r4   Ú	is_onlineÚlevelÚzone_id)r8   r   r9   r   re   rC   r<   Ú@py_assert4rE   Ú@py_format9rB   s              r   Ú%test_presence_online_offline_trackingz?TestTier1RealTimePresence.test_presence_online_offline_trackingH   sÜ  € Ø(Ñˆˆ:�q˜!Ø×&Ò& w°Ñ6Ô6Ð6Ø×(Ò(¨°Ñ8Ô8Ð8Ø×"Ò" 5¨%°°TÐ;PÐReÑfÔfÐfØ×/Ò/°Ñ8Ô8ˆÝ�6‰{Œ{Ð˜aÐˆ{˜aÒÐÐÐÕÔÐÐÐÐˆ{˜aÐÑÔÐÕÔÑÔÐÐÕÔ�sÑÔÐÕÔ�sÑÔÐÐÐÕÔÑÔÐÐÕÔ�6ÑÔÐÕÔ�6ÑÔÐÐÕÔˆ{ÑÔÕÔ˜aÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØ�aŒyÐ*ˆyÔ"Ð* dÐ*Ð" dÐ*Ð*Ð*Ð*Õ*Ô*Ð*Ð*Ð*Ð*Ð" dÐ*Ñ*Ô*Õ*Ô*ˆyÑ*Ô*Õ*Ô*Ð"Ñ*Ô*Õ*Ô* dÑ*Ô*Ð*Ð*Ñ*Ð*Ð*Ð*Ð*Ð*Ñ*Ð*Õ*Õ*Ô*Ð*Ñ*Ô*Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ø�aŒyÐ$ˆyŒÐ$ "Ð$ˆ "Ò$Ð$Ð$Ð$Õ$Ô$Ð$Ð$Ð$Ð$ˆ "Ð$Ñ$Ô$Õ$Ô$ˆyÑ$Ô$Õ$Ô$ˆÑ$Ô$Õ$Ô$ "Ñ$Ô$Ð$Ð$Ñ$Ð$Ð$Ð$Ð$Ð$Ñ$Ð$Õ$Õ$Ô$Ð$Ñ$Ô$Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ø�aŒyÐ9ˆyÔ Ð9Ð$9Ð9Ð Ð$9Ò9Ð9Ð9Ð9Õ9Ô9Ð9Ð9Ð9Ð9Ð Ð$9Ð9Ñ9Ô9Õ9Ô9ˆyÑ9Ô9Õ9Ô9Ð Ñ9Ô9Õ9Ô9Ð$9Ñ9Ô9Ð9Ð9Ñ9Ð9Ð9Ð9Ð9Ð9Ñ9Ð9Õ9Õ9Ô9Ð9Ñ9Ô9Ñ9Ô9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9r   c           
     óV  — |\  }}}}|                      dd¦  «         |                     dd¦  «         |                     dddddd¦  «         |j        }d}d}d} ||||¦  «        }d}	||	u }
|
söt	          j        d	|
fd
||	f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |	¦  «        dœz  }dd|iz  }t          t	          j        |¦  «        ¦  «        ‚d x}x}x}x}x}x}
}	|                     d¦  «        }|d         }|j        }d}||k    }|st	          j        d|fd||f¦  «        t	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |¦  «        dœz  }dd|iz  }t          t	          j        |¦  «        ¦  «        ‚d x}x}x}}d S )Nr   r   r]   r^   TÚ	zone_wildÚ
Wildernessu   Tanker / Huyáº¿t Thá»ƒr   ©zj%(py10)s
{%(py10)s = %(py2)s
{%(py2)s = %(py0)s.set_friend_note
}(%(py4)s, %(py6)s, %(py8)s)
} is %(py13)sr   ©r   r   r    r!   r"   Úpy10r%   úassert %(py15)sÚpy15r   ra   )z,%(py3)s
{%(py3)s = %(py1)s.note
} == %(py6)srj   rh   r"   )r,   r6   rk   Úset_friend_noter-   r.   r/   r0   r1   r2   r3   r4   rl   Únote)r8   r   r9   r   r:   r;   r<   r=   r?   Ú@py_assert12Ú@py_assert11rA   Ú@py_format16ÚpresrB   rC   rp   rE   rq   s                      r   Ú&test_friend_note_setting_and_retrievalz@TestTier1RealTimePresence.test_friend_note_setting_and_retrievalS   s”  € Ø(Ñˆˆ:�q˜!Ø×&Ò& w°Ñ6Ô6Ð6Ø×(Ò(¨°Ñ8Ô8Ð8Ø×"Ò" 5¨%°°T¸;ÈÑUÔUÐUØÔ)Ð[¨'Ð[°5Ð[Ð:RÐ[Ð)Ð)¨'°5Ð:RÑSÔSÐ[ÐW[Ð[ÐSÐW[Ð[Ð[Ð[Ð[Õ[Ô[Ð[Ð[Ð[Ð[ÐSÐW[Ð[Ñ[Ô[Ð[Õ[Ô[Ñ[Ô[Ð[Ð[Õ[Ô[ˆzÑ[Ô[Ð[Õ[Ô[ˆzÑ[Ô[Ð[Ð[Õ[Ô[Ð)Ñ[Ô[Õ[Ô[¨'Ñ[Ô[Õ[Ô[°5Ñ[Ô[Õ[Ô[Ð:RÑ[Ô[Õ[Ô[ÐSÑ[Ô[Õ[Ô[ÐW[Ñ[Ô[Ð[Ð[Ñ[Ð[Ð[Ð[Ð[Ð[Ñ[Ð[Õ[Õ[Ô[Ð[Ñ[Ô[Ñ[Ô[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ø×-Ò-¨gÑ6Ô6ˆØ�AŒwÐ7ˆwŒ|Ð7Ð7Ð7ˆ|Ð7Ò7Ð7Ð7Ð7Õ7Ô7Ð7Ð7Ð7Ð7ˆ|Ð7Ð7Ñ7Ô7Õ7Ô7ˆwÑ7Ô7Õ7Ô7ˆ|Ñ7Ô7Õ7Ô7Ð7Ñ7Ô7Ð7Ð7Ñ7Ð7Ð7Ð7Ð7Ð7Ñ7Ð7Õ7Õ7Ô7Ð7Ñ7Ô7Ñ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7r   c           
     ó`  — |\  }}}}|j         }d}d}d} ||||¦  «        }d}	||	u }
|
söt          j        d|
fd||	f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |	¦  «        dœz  }d	d
|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}x}x}x}x}
}	d S )Nr   ÚstrangerÚNoteFr   rv   r   rw   ry   rz   )	r{   r-   r.   r/   r0   r1   r2   r3   r4   )r8   r   r9   r   r:   r;   r<   r=   r?   r}   r~   rA   r   s                r   Útest_non_friend_note_rejectedz7TestTier1RealTimePresence.test_non_friend_note_rejected\   sl  € Ø(Ñˆˆ:�q˜!ØÔ)ÐO¨'ÐO°:ÐO¸vÐOÐ)Ð)¨'°:¸vÑFÔFÐOÈ%ÐOÐFÈ%ÐOÐOÐOÐOÕOÔOÐOÐOÐOÐOÐFÈ%ÐOÑOÔOÐOÕOÔOÑOÔOÐOÐOÕOÔOˆzÑOÔOÐOÕOÔOˆzÑOÔOÐOÐOÕOÔOÐ)ÑOÔOÕOÔO¨'ÑOÔOÕOÔO°:ÑOÔOÕOÔO¸vÑOÔOÕOÔOÐFÑOÔOÕOÔOÈ%ÑOÔOÐOÐOÑOÐOÐOÐOÐOÐOÑOÐOÕOÕOÔOÐOÑOÔOÑOÔOÐOÐOÐOÐOÐOÐOÐOÐOÐOÐOÐOÐOÐOÐOÐOÐOÐOr   c           
     ó–  — |\  }}}}|                      dd¦  «         |                     dd¦  «         |                     dddddd¦  «         |                     dd¦  «         |j        }d} ||¦  «        }t          |¦  «        }d}||k    }	|	�s+t          j        d	|	fd
||f¦  «        dt          j	        ¦   «         v st          j
        t
          ¦  «        rt          j        t
          ¦  «        nddt          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }
dd|
iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}x}x}x}	}d S )Nr   r   r]   r^   Trt   ÚWildr   ra   )zx%(py9)s
{%(py9)s = %(py0)s(%(py7)s
{%(py7)s = %(py3)s
{%(py3)s = %(py1)s.get_friend_presence
}(%(py5)s)
})
} == %(py12)srd   r   )r   r)   rg   Úpy5Úpy7Úpy9Úpy12zassert %(py14)sÚpy14)r,   r6   rk   rO   rl   rd   r-   r.   r/   r0   r1   r2   r3   r4   )r8   r   r9   r   rC   rp   Ú@py_assert6Ú@py_assert8r~   r>   Ú@py_format13Ú@py_format15s               r   Ú#test_blocked_player_presence_hiddenz=TestTier1RealTimePresence.test_blocked_player_presence_hidden`   só  € Ø(Ñˆˆ:�q˜!Ø×&Ò& w°Ñ6Ô6Ð6Ø×(Ò(¨°Ñ8Ô8Ð8Ø×"Ò" 5¨%°°T¸;ÈÑOÔOÐOØ×Ò ¨Ñ/Ô/Ð/àÔ1Ð@°'Ð@Ð1Ð1°'Ñ:Ô:Ð@�sÐ:Ñ;Ô;Ð@¸qÐ@Ð;¸qÒ@Ð@Ð@Ñ@Õ@Ô@Ð@Ð@Ð@Ð@Ð;¸qÐ@Ñ@Ô@Ð@Õ@Ô@Ñ@Ô@Ð@Ð@Õ@Ô@�sÑ@Ô@Ð@Õ@Ô@�sÑ@Ô@Ð@Ð@Ð@Õ@Ô@Ñ@Ô@Ð@Ð@Õ@Ô@�:Ñ@Ô@Ð@Õ@Ô@�:Ñ@Ô@Ð@Ð@Õ@Ô@Ð1Ñ@Ô@Õ@Ô@°'Ñ@Ô@Õ@Ô@Ð:Ñ@Ô@Õ@Ô@Ð;Ñ@Ô@Õ@Ô@¸qÑ@Ô@Ð@Ð@Ñ@Ð@Ð@Ð@Ð@Ð@Ñ@Ð@Õ@Õ@Ô@Ð@Ñ@Ô@Ñ@Ô@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@r   c                ó  — |\  }}}}|                      dd¦  «         |                     dd¦  «         |                     dddddd¦  «         |                     d¦  «        }|d         }|j        }d}||u }|st          j        d	|fd
||f¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }	dd|	iz  }
t          t          j	        |
¦  «        ¦  «        ‚d x}x}x}}d S )Nr   r   r]   r^   FÚofflineÚOffliner   r   ri   rj   rh   r"   )
r,   r6   rk   rl   rm   r-   r.   r2   r3   r4   )r8   r   r9   r   r€   rB   rC   r<   rp   rE   rq   s              r   Ú'test_offline_friend_presence_reflectionzATestTier1RealTimePresence.test_offline_friend_presence_reflectioni   s7  € Ø(Ñˆˆ:�q˜!Ø×&Ò& w°Ñ6Ô6Ð6Ø×(Ò(¨°Ñ8Ô8Ð8Ø×"Ò" 5¨%°°U¸IÀyÑQÔQÐQØ×-Ò-¨gÑ6Ô6ˆØ�AŒwÐ)ˆwÔ Ð) EÐ)Ð  EÐ)Ð)Ð)Ð)Õ)Ô)Ð)Ð)Ð)Ð)Ð  EÐ)Ñ)Ô)Õ)Ô)ˆwÑ)Ô)Õ)Ô)Ð Ñ)Ô)Õ)Ô) EÑ)Ô)Ð)Ð)Ñ)Ð)Ð)Ð)Ð)Ð)Ñ)Ð)Õ)Õ)Ô)Ð)Ñ)Ô)Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)r   NrT   )	rU   rV   rW   rX   rr   r�   r…   r‘   r•   rY   r   r   r[   r[   E   s†   € € € € € ØRÐRð	:ð 	:ð 	:ð 	:ð8ð 8ð 8ð 8ðPð Pð Pð PðAð Að Að Að*ð *ð *ð *ð *ð *r   r[   c                  ó:   — e Zd ZdZd
d„Zd
d„Zd
d„Zd
d„Zd
d„Zd	S )ÚTestTier1GuildRosterIntegrationzQFeature 9: Lightweight Guild Roster Query with Presence & Teleport Targetability.r   r   c                ó  — |\  }}}}t          dddddd¦  «        }t          ddd	d
dd¦  «        }|                     d|¦  «         |                     d|¦  «         |                     d¦  «        }t          |¦  «        }d}||k    }	|	sòt	          j        d|	fd||f¦  «        dt          j        ¦   «         v st	          j        t          ¦  «        rt	          j	        t          ¦  «        nddt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        dœz  }
dd|
iz  }t          t	          j        |¦  «        ¦  «        ‚d x}x}	}d„ |D ¦   «         }ddh}||k    }|slt	          j        d|fd||f¦  «        t	          j	        |¦  «        t	          j	        |¦  «        dœz  }dd|iz  }
t          t	          j        |
¦  «        ¦  «        ‚d x}x}}d S )NÚg1ÚLeaderéP   u   Ä�áº§u LÄ©nhTÚzone_sanctuaryÚg2ÚElderéF   õ   TrÆ°á»Ÿng LÃ£ort   Úguild_outcastsé   ra   rc   rd   Úrosterrf   rh   r"   c                ó   — h | ]	}|j         ’Œ
S rY   ©Ú	player_id)Ú.0Úms     r   ú	<setcomp>zRTestTier1GuildRosterIntegration.test_guild_roster_query_members.<locals>.<setcomp>}   s   € Ð,Ð,Ð, �”Ð,Ð,Ð,r   )z%(py1)s == %(py4)sr(   r*   r!   )r   Úregister_memberÚget_guild_roster_with_presencerd   r-   r.   r/   r0   r1   r2   r3   r4   )r8   r   r9   r   Úm1Úm2r£   rC   r<   rp   rE   rq   rB   r;   rD   s                  r   Útest_guild_roster_query_membersz?TestTier1GuildRosterIntegration.test_guild_roster_query_membersu   sY  € Ø'Ñˆˆ1ˆi˜Ý# D¨(°B¸ÈÐN^Ñ_Ô_ˆÝ# D¨'°2Ð7GÈÈ{Ñ[Ô[ˆØ×!Ò!Ð"2°BÑ7Ô7Ð7Ø×!Ò!Ð"2°BÑ7Ô7Ð7Ø×9Ò9Ð:JÑKÔKˆÝ�6‰{Œ{Ð˜aÐˆ{˜aÒÐÐÐÕÔÐÐÐÐˆ{˜aÐÑÔÐÕÔÑÔÐÐÕÔ�sÑÔÐÕÔ�sÑÔÐÐÐÕÔÑÔÐÐÕÔ�6ÑÔÐÕÔ�6ÑÔÐÐÕÔˆ{ÑÔÕÔ˜aÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØ,Ð, VÐ,Ñ,Ô,Ð<°°t°Ð<Ð,°Ò<Ð<Ð<Ð<Õ<Ô<Ð<Ð<Ð<Ð<Ð,°Ð<Ñ<Ô<Õ<Ô<Ð,Ñ<Ô<Õ<Ô<°Ñ<Ô<Ð<Ð<Ñ<Ð<Ð<Ð<Ð<Ð<Ñ<Ð<Õ<Õ<Ô<Ð<Ñ<Ô<Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<r   c                óþ  — |\  }}}}t          dddddd¦  «        }|                     d|¦  «         |                     d¦  «        }d„ |D ¦   «         }t          |¦  «        }|s•d	d
t	          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        nd
t          j        |¦  «        t          j        |¦  «        dœz  }t          t          j
        |¦  «        ¦  «        ‚d x}}d S )NÚg3ÚBroé2   õ   Huynh Ä�á»‡TÚzone_hideoutr¡   c              3  ó,   K  — | ]}|j         d k    V — ŒdS )r³   N)Úrank©r§   Úxs     r   ú	<genexpr>zJTestTier1GuildRosterIntegration.test_guild_member_ranks.<locals>.<genexpr>„   s)   è è € Ð;Ð;¨q�1”6˜]Ò*Ð;Ð;Ð;Ð;Ð;Ð;r   ú,assert %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}Úany©r   r   r    ©r   rª   r«   r»   r/   r0   r-   r1   r2   r3   r4   )	r8   r   r9   r   r¨   r£   r:   r;   rD   s	            r   Útest_guild_member_ranksz7TestTier1GuildRosterIntegration.test_guild_member_ranks   s  € Ø'Ñˆˆ1ˆi˜Ý" 4¨°°MÀ4ÈÑXÔXˆØ×!Ò!Ð"2°AÑ6Ô6Ð6Ø×9Ò9Ð:JÑKÔKˆØ;Ð;°FÐ;Ñ;Ô;Ð;�sÐ;Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Õ;Ô;Ñ;Ô;Ð;Ð;Õ;Ô;�sÑ;Ô;Ð;Õ;Ô;�sÑ;Ô;Ð;Ð;Õ;Ô;Ð;Ñ;Ô;Õ;Ô;Ð;Ñ;Ô;Ð;Ð;Ñ;Ð;Õ;Õ;Ô;Ð;Ñ;Ô;Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;r   c                ó  — |\  }}}}|j         }d} ||¦  «        }g }||k    }|sÐt          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }	dd|	iz  }
t          t          j        |
¦  «        ¦  «        ‚d x}x}x}x}}d S )NÚnonexistent_guildra   )zd%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.get_guild_roster_with_presence
}(%(py4)s)
} == %(py9)sr   )r   r   r    r!   rŠ   zassert %(py11)sr#   )	r«   r-   r.   r/   r0   r1   r2   r3   r4   )r8   r   r9   r   r:   r;   r<   rŽ   r=   Ú@py_format10r@   s              r   Útest_empty_guild_rosterz7TestTier1GuildRosterIntegration.test_empty_guild_roster†   s=  € Ø'Ñˆˆ1ˆi˜ØÔ7ÐRÐ8KÐRÐ7Ð7Ð8KÑLÔLÐRÐPRÐRÐLÐPRÒRÐRÐRÐRÕRÔRÐRÐRÐRÐRÐLÐPRÐRÑRÔRÐRÕRÔRÑRÔRÐRÐRÕRÔRˆyÑRÔRÐRÕRÔRˆyÑRÔRÐRÐRÕRÔRÐ7ÑRÔRÕRÔRÐ8KÑRÔRÕRÔRÐLÑRÔRÕRÔRÐPRÑRÔRÐRÐRÑRÐRÐRÐRÐRÐRÑRÐRÕRÕRÔRÐRÑRÔRÑRÔRÐRÐRÐRÐRÐRÐRÐRÐRÐRÐRÐRÐRÐRr   c                óÎ  — |\  }}}}t          dddddd¦  «        }|                     d|¦  «         |                     d¦  «        }|d         }|j        }d}||u }	|	st	          j        d	|	fd
||f¦  «        t	          j        |¦  «        t	          j        |¦  «        t	          j        |¦  «        dœz  }
dd|
iz  }t          t	          j        |¦  «        ¦  «        ‚d x}x}x}	}d S )NÚg4ÚSleeperé<   r³   FÚ	zone_noneÚg_sleepr   r   ri   rj   rh   r"   )	r   rª   r«   rm   r-   r.   r2   r3   r4   )r8   r   r9   r   r¨   r£   rB   rC   r<   rp   rE   rq   s               r   Ú test_guild_member_offline_statusz@TestTier1GuildRosterIntegration.test_guild_member_offline_statusŠ   s  € Ø'Ñˆˆ1ˆi˜Ý" 4¨°B¸ÀuÈkÑZÔZˆØ×!Ò! )¨QÑ/Ô/Ð/Ø×9Ò9¸)ÑDÔDˆØ�aŒyÐ+ˆyÔ"Ð+ eÐ+Ð" eÐ+Ð+Ð+Ð+Õ+Ô+Ð+Ð+Ð+Ð+Ð" eÐ+Ñ+Ô+Õ+Ô+ˆyÑ+Ô+Õ+Ô+Ð"Ñ+Ô+Õ+Ô+ eÑ+Ô+Ð+Ð+Ñ+Ð+Ð+Ð+Ð+Ð+Ñ+Ð+Õ+Õ+Ô+Ð+Ñ+Ô+Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+r   c                óú  — |\  }}}}t          dddddd¦  «        }|                     d|¦  «         d„ |                     d¦  «        D ¦   «         }t          |¦  «        }|s•d	d
t	          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        nd
t          j        |¦  «        t          j        |¦  «        dœz  }t          t          j
        |¦  «        ¦  «        ‚d x}}d S )NÚg5Ú
TargetMateéK   r    Tr_   Úg_activec              3  ó,   K  — | ]}|j         d k    V — ŒdS )rË   Nr¥   r·   s     r   r¹   zXTestTier1GuildRosterIntegration.test_guild_roster_teleport_targetable.<locals>.<genexpr>•   s)   è è € ÐeÐe¨1�1”; $Ò&ÐeÐeÐeÐeÐeÐer   rº   r»   r¼   r½   )r8   r   r9   r   r¨   r:   r;   rD   s           r   Ú%test_guild_roster_teleport_targetablezETestTier1GuildRosterIntegration.test_guild_roster_teleport_targetable‘   s
  € Ø'Ñˆˆ1ˆi˜Ý" 4¨°rÐ;KÈTÐShÑiÔiˆØ×!Ò! *¨aÑ0Ô0Ð0ØeÐe°	×0XÒ0XÐYcÑ0dÔ0dÐeÑeÔeÐe�sÐeÑeÔeÐeÐeÐeÐeÐeÕeÔeÑeÔeÐeÐeÕeÔe�sÑeÔeÐeÕeÔe�sÑeÔeÐeÐeÕeÔeÐeÑeÔeÕeÔeÐeÑeÔeÐeÐeÑeÐeÕeÕeÔeÐeÑeÔeÑeÔeÐeÐeÐeÐeÐeÐeÐer   NrT   )	rU   rV   rW   rX   r®   r¾   rÂ   rÉ   rÐ   rY   r   r   r—   r—   r   sˆ   € € € € € Ø[Ð[ð=ð =ð =ð =ð<ð <ð <ð <ðSð Sð Sð Sð,ð ,ð ,ð ,ðfð fð fð fð fð fr   r—   c                  ó:   — e Zd ZdZd
d„Zd
d„Zd
d„Zd
d„Zd
d„Zd	S )Ú%TestTier1TeleportChannelAndInterruptszMFeature 10: Safe Teleportation Channel (3.5s Cast, Move & Damage Interrupts).r   r   c                ó"  — |\  }}}}|                      ddd¦  «        }|                     |j        dd¦  «         |                     |j        ddd¦  «         |                     dt
          j        dd¦  «        \  }}g }d}	||	u }
|
}|
r|j        }d} ||¦  «        }|}|�s_t          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  }|                     |¦  «         |
r’ddt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }|                     |¦  «         t          j        |d¦  «        i z  }dd|iz  }t!          t          j        |¦  «        ¦  «        ‚d x}x}x}
x}	x}x}}d S )NÚp1ÚCasteré   Úp2ÚTargetrt   TÚchan_p1_r   ©z%(py2)s is %(py5)sÚok©r   rˆ   ú%(py7)sr‰   zJ%(py15)s
{%(py15)s = %(py11)s
{%(py11)s = %(py9)s.startswith
}(%(py13)s)
}Úchan_id)rŠ   r#   r%   rz   r   zassert %(py18)sÚpy18)Úcreate_partyÚinvite_playerÚparty_idÚaccept_inviteÚstart_teleport_channelr	   ÚPARTY_MEMBERÚ
startswithr-   r.   r/   r0   r1   r2   ÚappendÚ_format_boolopr3   r4   )r8   r   r   r9   r   ÚprÛ   rÞ   r:   rp   r;   rB   r>   r}   Ú@py_assert14Ú@py_format6Ú@py_format8r   Ú@py_format17Ú@py_format19s                       r   Ú)test_teleport_channel_starts_successfullyzOTestTier1TeleportChannelAndInterrupts.test_teleport_channel_starts_successfully›   sk  € Ø(2Ñ%ˆ	�1�a˜Ø×"Ò" 4¨°2Ñ6Ô6ˆØ×Ò ¤
¨D°$Ñ7Ô7Ð7Ø×Ò ¤
¨D°(¸BÑ?Ô?Ð?Ø"×9Ò9¸$Å
Ô@WÐY]Ð_jÑkÔk‰ˆˆGØ<Ð<�TÐ<ˆr�TˆzÐ<Ð<Ð<Ð<Ð<˜gÔ0Ð<°Ð<Ð0Ð0°Ñ<Ô<Ð<Ð<Ð<Ð<Ñ<Õ<Ô<Ð<Ð<Ð<Ð<ˆr�TÐ<Ñ<Ô<Ð<Õ<Ô<Ñ<Ô<Ð<Ð<Õ<Ô<ˆrÑ<Ô<Ð<Õ<Ô<ˆrÑ<Ô<Ð<Ð<Õ<Ô<�TÑ<Ô<Ð<Ð<Ñ<Ð<Ð<Ð<Ð<Ð<Ñ<Ð<Ð<×<Ò<Ð<Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Õ<Ô<Ñ<Ô<Ð<Ð<Õ<Ô<˜gÑ<Ô<Ð<Õ<Ô<˜gÑ<Ô<Ð<Ð<Õ<Ô<Ð0Ñ<Ô<Õ<Ô<°Ñ<Ô<Õ<Ô<Ð<Ñ<Ô<Ð<Ð<Ñ<Ð<Ð<×<Ò<Ð<Ñ<Ô<Ð<Õ<Ô<Ð<Ð<Ñ<Ô<Ð<Ñ<Ð<Ð<Ð<Ð<Ð<Ñ<Ð<Õ<Õ<Ô<Ð<Ñ<Ô<Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<r   c                ó’  — |\  }}}}|                      ddd¦  «        }|                     |j        dd¦  «         |                     |j        ddd¦  «         |                     dt
          j        dd¦  «         |                     dd¬¦  «        }t          j	        }||k    }|sßt          j        d	|fd
||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        dœz  }	dd|	iz  }
t!          t          j        |
¦  «        ¦  «        ‚d x}}d}|j        }||v}|sªt          j        d|fd||f¦  «        t          j        |¦  «        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}x}}d S )NrÔ   rÕ   rÖ   r×   rØ   rt   g¸…ëQ¸®?©Úmagra   )z:%(py0)s == %(py4)s
{%(py4)s = %(py2)s.INTERRUPT_MOVEMENT
}Ú	interruptr   r¼   r*   r!   ©únot in©z;%(py1)s not in %(py5)s
{%(py5)s = %(py3)s.active_channels
}r   ©r)   rg   rˆ   úassert %(py7)sr‰   )rà   rá   râ   rã   rä   r	   rå   Úon_player_movedr   ÚINTERRUPT_MOVEMENTr-   r.   r/   r0   r1   r2   r3   r4   Úactive_channels©r8   r   r   r9   r   ré   ró   r;   r:   rD   rE   rB   rp   rC   rë   rì   s                   r   Ú+test_teleport_channel_interrupt_on_movementzQTestTier1TeleportChannelAndInterrupts.test_teleport_channel_interrupt_on_movement£   s|  € Ø(2Ñ%ˆ	�1�a˜Ø×"Ò" 4¨°2Ñ6Ô6ˆØ×Ò ¤
¨D°$Ñ7Ô7Ð7Ø×Ò ¤
¨D°(¸BÑ?Ô?Ð?Ø×+Ò+¨Dµ*Ô2IÈ4ÐQ\Ñ]Ô]Ð]Ø ×0Ò0°¸4Ð0Ñ@Ô@ˆ	Ý+Ô>Ð>ˆyÐ>Ò>Ð>Ð>Ð>Õ>Ô>Ð>Ð>Ð>Ð>ˆyÐ>Ð>Ñ>Ô>Ð>Õ>Ô>Ñ>Ô>Ð>Ð>Õ>Ô>ˆyÑ>Ô>Ð>Õ>Ô>ˆyÑ>Ô>Ð>Ð>Ð>Õ>Ô>Ñ>Ô>Ð>Ð>Õ>Ô>�OÑ>Ô>Ð>Õ>Ô>�OÑ>Ô>Ð>Ð>Õ>Ô>Ð>Ñ>Ô>Ð>Ð>Ñ>Ð>Ð>Ð>Ð>Ð>Ñ>Ð>Õ>Õ>Ô>Ð>Ñ>Ô>Ñ>Ô>Ð>Ð>Ð>Ð>Ð>ØÐ7˜<Ô7Ð7ˆtÐ7Ð7Ð7Ð7Ð7Õ7Ô7Ð7Ð7Ð7Ð7ˆtÐ7Ð7Ñ7Ô7Õ7Ô7ˆtÑ7Ô7Ð7Õ7Ô7Ñ7Ô7Ð7Ð7Õ7Ô7˜<Ñ7Ô7Ð7Õ7Ô7˜<Ñ7Ô7Ð7Ð7Õ7Ô7Ð7Ñ7Ô7Ð7Ð7Ñ7Ð7Ð7Ð7Ð7Ð7Ñ7Ð7Õ7Õ7Ô7Ð7Ñ7Ô7Ñ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7r   c                óê  — |\  }}}}|                      ddd¦  «        }|                     |j        dd¦  «         |                     |j        ddd¦  «         |                     dt
          j        dd¦  «         |                     dd¬¦  «        }d }||u }|s—t          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}|j        }||v }|sªt          j	        d|fd||f¦  «        t          j        |¦  «        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}x}}d S )NrÔ   rÕ   rÖ   r×   rØ   rt   g¸…ëQ¸ž?rñ   r   )z%(py0)s is %(py3)sró   )r   rg   zassert %(py5)srˆ   r&   )z7%(py1)s in %(py5)s
{%(py5)s = %(py3)s.active_channels
}r   r÷   rø   r‰   )rà   rá   râ   rã   rä   r	   rå   rù   r-   r.   r/   r0   r1   r2   r3   r4   rû   )r8   r   r   r9   r   ré   ró   rC   r:   Ú@py_format4rë   rB   rp   rì   s                 r   Ú6test_teleport_channel_movement_under_threshold_ignoredz\TestTier1TeleportChannelAndInterrupts.test_teleport_channel_movement_under_threshold_ignored­   s<  € Ø(2Ñ%ˆ	�1�a˜Ø×"Ò" 4¨°2Ñ6Ô6ˆØ×Ò ¤
¨D°$Ñ7Ô7Ð7Ø×Ò ¤
¨D°(¸BÑ?Ô?Ð?Ø×+Ò+¨Dµ*Ô2IÈ4ÐQ\Ñ]Ô]Ð]Ø ×0Ò0°¸4Ð0Ñ@Ô@ˆ	Ø Ð ˆy˜DÐ Ð Ð Ð Õ Ô Ð Ð Ð Ð ˆy˜DÐ Ñ Ô Ð Õ Ô Ñ Ô Ð Ð Õ Ô ˆyÑ Ô Ð Õ Ô ˆyÑ Ô Ð Ð Õ Ô ˜DÑ Ô Ð Ð Ñ Ð Ð Ð Ð Ð Ñ Ð Õ Õ Ô Ð Ñ Ô Ñ Ô Ð Ð Ð Ð Ð ØÐ3�|Ô3Ð3ˆtÐ3Ð3Ð3Ð3Ð3Õ3Ô3Ð3Ð3Ð3Ð3ˆtÐ3Ð3Ñ3Ô3Õ3Ô3ˆtÑ3Ô3Ð3Õ3Ô3Ñ3Ô3Ð3Ð3Õ3Ô3�|Ñ3Ô3Ð3Õ3Ô3�|Ñ3Ô3Ð3Ð3Õ3Ô3Ð3Ñ3Ô3Ð3Ð3Ñ3Ð3Ð3Ð3Ð3Ð3Ñ3Ð3Õ3Õ3Ô3Ð3Ñ3Ô3Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3r   c                ó’  — |\  }}}}|                      ddd¦  «        }|                     |j        dd¦  «         |                     |j        ddd¦  «         |                     dt
          j        dd¦  «         |                     dd¬¦  «        }t          j	        }||k    }|sßt          j        d	|fd
||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        dœz  }	dd|	iz  }
t!          t          j        |
¦  «        ¦  «        ‚d x}}d}|j        }||v}|sªt          j        d|fd||f¦  «        t          j        |¦  «        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}x}}d S )NrÔ   rÕ   rÖ   r×   rØ   rt   g      $@)Údamagera   )z8%(py0)s == %(py4)s
{%(py4)s = %(py2)s.INTERRUPT_DAMAGE
}ró   r   r¼   r*   r!   rô   rö   r   r÷   rø   r‰   )rà   rá   râ   rã   rä   r	   rå   Úon_player_damagedr   ÚINTERRUPT_DAMAGEr-   r.   r/   r0   r1   r2   r3   r4   rû   rü   s                   r   Ú)test_teleport_channel_interrupt_on_damagezOTestTier1TeleportChannelAndInterrupts.test_teleport_channel_interrupt_on_damage·   s|  € Ø(2Ñ%ˆ	�1�a˜Ø×"Ò" 4¨°2Ñ6Ô6ˆØ×Ò ¤
¨D°$Ñ7Ô7Ð7Ø×Ò ¤
¨D°(¸BÑ?Ô?Ð?Ø×+Ò+¨Dµ*Ô2IÈ4ÐQ\Ñ]Ô]Ð]Ø ×2Ò2°4ÀÐ2ÑEÔEˆ	Ý+Ô<Ð<ˆyÐ<Ò<Ð<Ð<Ð<Õ<Ô<Ð<Ð<Ð<Ð<ˆyÐ<Ð<Ñ<Ô<Ð<Õ<Ô<Ñ<Ô<Ð<Ð<Õ<Ô<ˆyÑ<Ô<Ð<Õ<Ô<ˆyÑ<Ô<Ð<Ð<Ð<Õ<Ô<Ñ<Ô<Ð<Ð<Õ<Ô<�OÑ<Ô<Ð<Õ<Ô<�OÑ<Ô<Ð<Ð<Õ<Ô<Ð<Ñ<Ô<Ð<Ð<Ñ<Ð<Ð<Ð<Ð<Ð<Ñ<Ð<Õ<Õ<Ô<Ð<Ñ<Ô<Ñ<Ô<Ð<Ð<Ð<Ð<Ð<ØÐ7˜<Ô7Ð7ˆtÐ7Ð7Ð7Ð7Ð7Õ7Ô7Ð7Ð7Ð7Ð7ˆtÐ7Ð7Ñ7Ô7Õ7Ô7ˆtÑ7Ô7Ð7Õ7Ô7Ñ7Ô7Ð7Ð7Õ7Ô7˜<Ñ7Ô7Ð7Õ7Ô7˜<Ñ7Ô7Ð7Ð7Õ7Ô7Ð7Ñ7Ô7Ð7Ð7Ñ7Ð7Ð7Ð7Ð7Ð7Ñ7Ð7Õ7Õ7Ô7Ð7Ñ7Ô7Ñ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7r   c                ó&  — |\  }}}}|                      ddd¦  «        }|                     |j        dd¦  «         |                     |j        ddd¦  «         |                     dt
          j        dd¦  «         |                     dd¬¦  «        \  }}g }d	}	||	u }
|
}|
r
d}||k    }|}|�sXt          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  }|                     |¦  «         |
r‹t          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          j        |d¦  «        i z  }dd|iz  }t!          t          j        |¦  «        ¦  «        ‚d x}x}x}
x}	x}}d S )NrÔ   rÕ   rÖ   r×   rØ   rt   g      @)Úelapsed_timeTr   rÚ   rÛ   rÜ   rÝ   r‰   ra   )z%(py9)s == %(py12)sÚ	dest_zone)rŠ   r‹   ú%(py14)srŒ   r   úassert %(py17)sÚpy17)rà   rá   râ   rã   rä   r	   rå   Úcomplete_channelr-   r.   r/   r0   r1   r2   rç   rè   r3   r4   )r8   r   r   r9   r   ré   rÛ   r  r:   rp   r;   rB   r~   r>   rë   rì   r�   r�   r   Ú@py_format18s                       r   Ú4test_teleport_channel_completion_after_full_durationzZTestTier1TeleportChannelAndInterrupts.test_teleport_channel_completion_after_full_durationÁ   s~  € Ø(2Ñ%ˆ	�1�a˜Ø×"Ò" 4¨°2Ñ6Ô6ˆØ×Ò ¤
¨D°$Ñ7Ô7Ð7Ø×Ò ¤
¨D°(¸BÑ?Ô?Ð?Ø×+Ò+¨Dµ*Ô2IÈ4ÐQ\Ñ]Ô]Ð]à$×5Ò5°dÈÐ5ÑMÔM‰ˆˆIØ6Ð6�TÐ6ˆr�TˆzÐ6Ð6Ð6Ð6Ð6¨;Ð6˜i¨;Ò6Ð6Ð6Ð6Ð6Ñ6Õ6Ô6Ð6Ð6Ð6Ð6ˆr�TÐ6Ñ6Ô6Ð6Õ6Ô6Ñ6Ô6Ð6Ð6Õ6Ô6ˆrÑ6Ô6Ð6Õ6Ô6ˆrÑ6Ô6Ð6Ð6Õ6Ô6�TÑ6Ô6Ð6Ð6Ñ6Ð6Ð6Ð6Ð6Ð6Ñ6Ð6Ð6×6Ò6Ð6Ñ6Ô6Ð6Ð6Ð6Õ6Ô6Ð6Ð6Ð6Ð6˜i¨;Ð6Ñ6Ô6Ð6Õ6Ô6Ñ6Ô6Ð6Ð6Õ6Ô6˜iÑ6Ô6Ð6Õ6Ô6˜iÑ6Ô6Ð6Ð6Õ6Ô6¨;Ñ6Ô6Ð6Ð6Ñ6Ð6Ð6Ð6Ð6Ð6Ñ6Ð6Ð6×6Ò6Ð6Ñ6Ô6Ð6Õ6Ô6Ð6Ð6Ñ6Ô6Ð6Ñ6Ð6Ð6Ð6Ð6Ð6Ñ6Ð6Õ6Õ6Ô6Ð6Ñ6Ô6Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6r   NrT   )	rU   rV   rW   rX   rï   rý   r   r  r  rY   r   r   rÒ   rÒ   ˜   s~   € € € € € ØWÐWð=ð =ð =ð =ð8ð 8ð 8ð 8ð4ð 4ð 4ð 4ð8ð 8ð 8ð 8ð7ð 7ð 7ð 7ð 7ð 7r   rÒ   c                  ó:   — e Zd ZdZd
d„Zd
d„Zd
d„Zd
d„Zd
d„Zd	S )Ú&TestTier1FiveGateDestinationValidationzdFeature 11: 5-Gate Destination Validation (Liveness, Relationship, Capacity, Lifecycle, Quarantine).r   r   c                óX  — |\  }}}}|                      ddt          j        dd¬¦  «        \  }}g }d}||u }|}	|rd}
|
|v }|}	|	�sXt          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  }| 	                    |¦  «         |r‹t          j        d|fd|
|f¦  «        t          j        |
¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }dd|iz  }| 	                    |¦  «         t          j
        |d¦  «        i z  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}	x}x}x}x}
}d S )NrÔ   r×   rt   F)Útarget_aliveÚGATE_1_TARGET_DEADr   rÚ   rÛ   rÜ   rÝ   r‰   r&   ©z%(py10)s in %(py12)sÚreason©rx   r‹   r	  rŒ   r   r
  r  ©Úvalidate_destination_5_gatesr	   rå   r-   r.   r/   r0   r1   r2   rç   rè   r3   r4   ©r8   r   r9   r   rÛ   r  r:   rp   r;   rB   r?   r~   rë   rì   r�   r�   r   r  s                     r   Ú test_gate_1_target_dead_rejectedzGTestTier1FiveGateDestinationValidation.test_gate_1_target_dead_rejectedÏ   s,  € Ø *Ñˆˆ1ˆa�Ø!×>Ò>¸tÀTÍ:ÔKbÐdoð  DÐ>ñ  Eô  E‰
ˆˆFØ=Ð=�UÐ=ˆr�Uˆ{Ð=Ð=Ð=Ð=Ð=Ð3Ð=Ð3°vÐ=Ð=Ð=Ð=Ð=Ñ=Õ=Ô=Ð=Ð=Ð=Ð=ˆr�UÐ=Ñ=Ô=Ð=Õ=Ô=Ñ=Ô=Ð=Ð=Õ=Ô=ˆrÑ=Ô=Ð=Õ=Ô=ˆrÑ=Ô=Ð=Ð=Õ=Ô=�UÑ=Ô=Ð=Ð=Ñ=Ð=Ð=Ð=Ð=Ð=Ñ=Ð=Ð=×=Ò=Ð=Ñ=Ô=Ð=Ð=Ð=Õ=Ô=Ð=Ð=Ð=Ð=Ð3°vÐ=Ñ=Ô=Õ=Ô=Ð3Ñ=Ô=Ð=Õ=Ô=Ñ=Ô=Ð=Ð=Õ=Ô=°vÑ=Ô=Ð=Õ=Ô=°vÑ=Ô=Ð=Ð=Ð=Ð=Ñ=Ð=Ð=Ð=Ð=Ð=Ñ=Ð=Ð=×=Ò=Ð=Ñ=Ô=Ð=Õ=Ô=Ð=Ð=Ñ=Ô=Ð=Ñ=Ð=Ð=Ð=Ð=Ð=Ñ=Ð=Õ=Õ=Ô=Ð=Ñ=Ô=Ñ=Ô=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=r   c                óT  — |\  }}}}|                      ddt          j        d¦  «        \  }}g }d}||u }|}	|rd}
|
|v }|}	|	�sXt          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  }| 	                    |¦  «         |r‹t          j        d|fd|
|f¦  «        t          j        |
¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }dd|iz  }| 	                    |¦  «         t          j
        |d¦  «        i z  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}	x}x}x}x}
}d S )NrÔ   Ústranger_99rt   FÚGATE_2_RELATIONSHIPr   rÚ   rÛ   rÜ   rÝ   r‰   r&   r  r  r  r	  rŒ   r   r
  r  r  r  s                     r   Ú.test_gate_2_relationship_unauthorized_rejectedzUTestTier1FiveGateDestinationValidation.test_gate_2_relationship_unauthorized_rejectedÔ   s  € Ø *Ñˆˆ1ˆa�à!×>Ò>¸tÀ]ÕT^ÔTkÐmxÑyÔy‰
ˆˆFØ>Ð>�UÐ>ˆr�Uˆ{Ð>Ð>Ð>Ð>Ð>Ð4Ð>Ð4¸Ð>Ð>Ð>Ð>Ð>Ñ>Õ>Ô>Ð>Ð>Ð>Ð>ˆr�UÐ>Ñ>Ô>Ð>Õ>Ô>Ñ>Ô>Ð>Ð>Õ>Ô>ˆrÑ>Ô>Ð>Õ>Ô>ˆrÑ>Ô>Ð>Ð>Õ>Ô>�UÑ>Ô>Ð>Ð>Ñ>Ð>Ð>Ð>Ð>Ð>Ñ>Ð>Ð>×>Ò>Ð>Ñ>Ô>Ð>Ð>Ð>Õ>Ô>Ð>Ð>Ð>Ð>Ð4¸Ð>Ñ>Ô>Õ>Ô>Ð4Ñ>Ô>Ð>Õ>Ô>Ñ>Ô>Ð>Ð>Õ>Ô>¸Ñ>Ô>Ð>Õ>Ô>¸Ñ>Ô>Ð>Ð>Ð>Ð>Ñ>Ð>Ð>Ð>Ð>Ð>Ñ>Ð>Ð>×>Ò>Ð>Ñ>Ô>Ð>Õ>Ô>Ð>Ð>Ñ>Ô>Ð>Ñ>Ð>Ð>Ð>Ð>Ð>Ñ>Ð>Õ>Õ>Ô>Ð>Ñ>Ô>Ñ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>r   c                ó$  — |\  }}}}|                      ddd¦  «        }|                     |j        dd¦  «         |                     |j        ddd¦  «         |                     ddd¬¦  «         |                     ddt          j        d¦  «        \  }}g }d	}	||	u }
|
}|
rd
}||v }|}|�sXt          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  }|                     |¦  «         |
r‹t          j	        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }dd|iz  }|                     |¦  «         t          j        |d¦  «        i z  }dd|iz  }t!          t          j        |¦  «        ¦  «        ‚d x}x}x}
x}	x}}d S )NrÔ   rÕ   rÖ   r×   rØ   Úzone_full_mapé   )Úplayer_countÚmax_capacityFÚGATE_3_CAPACITYr   rÚ   rÛ   rÜ   rÝ   r‰   r&   r  r  r  r	  rŒ   r   r
  r  ©rà   rá   râ   rã   Úset_zone_stater  r	   rå   r-   r.   r/   r0   r1   r2   rç   rè   r3   r4   ©r8   r   r   r9   r   ré   rÛ   r  r:   rp   r;   rB   r?   r~   rë   rì   r�   r�   r   r  s                       r   Ú+test_gate_3_zone_capacity_exceeded_rejectedzRTestTier1FiveGateDestinationValidation.test_gate_3_zone_capacity_exceeded_rejectedÚ   s…  € Ø(2Ñ%ˆ	�1�a˜Ø×"Ò" 4¨°2Ñ6Ô6ˆØ×Ò ¤
¨D°$Ñ7Ô7Ð7Ø×Ò ¤
¨D°(¸BÑ?Ô?Ð?Ø×#Ò# OÀ!ÐRSÐ#ÑTÔTÐTØ!×>Ò>¸tÀTÍ:ÔKbÐdsÑtÔt‰
ˆˆFØ:Ð:�UÐ:ˆr�Uˆ{Ð:Ð:Ð:Ð:Ð:Ð0Ð:Ð0°FÐ:Ð:Ð:Ð:Ð:Ñ:Õ:Ô:Ð:Ð:Ð:Ð:ˆr�UÐ:Ñ:Ô:Ð:Õ:Ô:Ñ:Ô:Ð:Ð:Õ:Ô:ˆrÑ:Ô:Ð:Õ:Ô:ˆrÑ:Ô:Ð:Ð:Õ:Ô:�UÑ:Ô:Ð:Ð:Ñ:Ð:Ð:Ð:Ð:Ð:Ñ:Ð:Ð:×:Ò:Ð:Ñ:Ô:Ð:Ð:Ð:Õ:Ô:Ð:Ð:Ð:Ð:Ð0°FÐ:Ñ:Ô:Õ:Ô:Ð0Ñ:Ô:Ð:Õ:Ô:Ñ:Ô:Ð:Ð:Õ:Ô:°FÑ:Ô:Ð:Õ:Ô:°FÑ:Ô:Ð:Ð:Ð:Ð:Ñ:Ð:Ð:Ð:Ð:Ð:Ñ:Ð:Ð:×:Ò:Ð:Ñ:Ô:Ð:Õ:Ô:Ð:Ð:Ñ:Ô:Ð:Ñ:Ð:Ð:Ð:Ð:Ð:Ñ:Ð:Õ:Õ:Ô:Ð:Ñ:Ô:Ñ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:r   c                ó"  — |\  }}}}|                      ddd¦  «        }|                     |j        dd¦  «         |                     |j        ddd¦  «         |                     dd¬¦  «         |                     ddt          j        d¦  «        \  }}g }d}	||	u }
|
}|
rd	}||v }|}|�sXt          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  }|                     |¦  «         |
r‹t          j	        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }dd|iz  }|                     |¦  «         t          j        |d¦  «        i z  }dd|iz  }t!          t          j        |¦  «        ¦  «        ‚d x}x}x}
x}	x}}d S )NrÔ   rÕ   rÖ   r×   rØ   Úzone_expiredF)Ú	is_activeÚGATE_4_LIFECYCLEr   rÚ   rÛ   rÜ   rÝ   r‰   r&   r  r  r  r	  rŒ   r   r
  r  r%  r'  s                       r   Ú%test_gate_4_lifecycle_closed_rejectedzLTestTier1FiveGateDestinationValidation.test_gate_4_lifecycle_closed_rejectedã   s‚  € Ø(2Ñ%ˆ	�1�a˜Ø×"Ò" 4¨°2Ñ6Ô6ˆØ×Ò ¤
¨D°$Ñ7Ô7Ð7Ø×Ò ¤
¨D°(¸BÑ?Ô?Ð?Ø×#Ò# N¸eÐ#ÑDÔDÐDØ!×>Ò>¸tÀTÍ:ÔKbÐdrÑsÔs‰
ˆˆFØ;Ð;�UÐ;ˆr�Uˆ{Ð;Ð;Ð;Ð;Ð;Ð1Ð;Ð1°VÐ;Ð;Ð;Ð;Ð;Ñ;Õ;Ô;Ð;Ð;Ð;Ð;ˆr�UÐ;Ñ;Ô;Ð;Õ;Ô;Ñ;Ô;Ð;Ð;Õ;Ô;ˆrÑ;Ô;Ð;Õ;Ô;ˆrÑ;Ô;Ð;Ð;Õ;Ô;�UÑ;Ô;Ð;Ð;Ñ;Ð;Ð;Ð;Ð;Ð;Ñ;Ð;Ð;×;Ò;Ð;Ñ;Ô;Ð;Ð;Ð;Õ;Ô;Ð;Ð;Ð;Ð;Ð1°VÐ;Ñ;Ô;Õ;Ô;Ð1Ñ;Ô;Ð;Õ;Ô;Ñ;Ô;Ð;Ð;Õ;Ô;°VÑ;Ô;Ð;Õ;Ô;°VÑ;Ô;Ð;Ð;Ð;Ð;Ñ;Ð;Ð;Ð;Ð;Ð;Ñ;Ð;Ð;×;Ò;Ð;Ñ;Ô;Ð;Õ;Ô;Ð;Ð;Ñ;Ô;Ð;Ñ;Ð;Ð;Ð;Ð;Ð;Ñ;Ð;Õ;Õ;Ô;Ð;Ñ;Ô;Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;r   c                ó"  — |\  }}}}|                      ddd¦  «        }|                     |j        dd¦  «         |                     |j        ddd¦  «         |                     dd¬¦  «         |                     ddt          j        d¦  «        \  }}g }d	}	||	u }
|
}|
rd
}||v }|}|�sXt          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  }|                     |¦  «         |
r‹t          j	        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }dd|iz  }|                     |¦  «         t          j        |d¦  «        i z  }dd|iz  }t!          t          j        |¦  «        ¦  «        ‚d x}x}x}
x}	x}}d S )NrÔ   rÕ   rÖ   r×   rØ   Úzone_boss_arenaT)Úis_boss_activeFÚGATE_5_QUARANTINEr   rÚ   rÛ   rÜ   rÝ   r‰   r&   r  r  r  r	  rŒ   r   r
  r  r%  r'  s                       r   Ú.test_gate_5_quarantine_boss_or_secret_rejectedzUTestTier1FiveGateDestinationValidation.test_gate_5_quarantine_boss_or_secret_rejectedì   sƒ  € Ø(2Ñ%ˆ	�1�a˜Ø×"Ò" 4¨°2Ñ6Ô6ˆØ×Ò ¤
¨D°$Ñ7Ô7Ð7Ø×Ò ¤
¨D°(¸BÑ?Ô?Ð?Ø×#Ò#Ð$5ÀdÐ#ÑKÔKÐKØ!×>Ò>¸tÀTÍ:ÔKbÐduÑvÔv‰
ˆˆFØ<Ð<�UÐ<ˆr�Uˆ{Ð<Ð<Ð<Ð<Ð<Ð2Ð<Ð2°fÐ<Ð<Ð<Ð<Ð<Ñ<Õ<Ô<Ð<Ð<Ð<Ð<ˆr�UÐ<Ñ<Ô<Ð<Õ<Ô<Ñ<Ô<Ð<Ð<Õ<Ô<ˆrÑ<Ô<Ð<Õ<Ô<ˆrÑ<Ô<Ð<Ð<Õ<Ô<�UÑ<Ô<Ð<Ð<Ñ<Ð<Ð<Ð<Ð<Ð<Ñ<Ð<Ð<×<Ò<Ð<Ñ<Ô<Ð<Ð<Ð<Õ<Ô<Ð<Ð<Ð<Ð<Ð2°fÐ<Ñ<Ô<Õ<Ô<Ð2Ñ<Ô<Ð<Õ<Ô<Ñ<Ô<Ð<Ð<Õ<Ô<°fÑ<Ô<Ð<Õ<Ô<°fÑ<Ô<Ð<Ð<Ð<Ð<Ñ<Ð<Ð<Ð<Ð<Ð<Ñ<Ð<Ð<×<Ò<Ð<Ñ<Ô<Ð<Õ<Ô<Ð<Ð<Ñ<Ô<Ð<Ñ<Ð<Ð<Ð<Ð<Ð<Ñ<Ð<Õ<Õ<Ô<Ð<Ñ<Ô<Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<r   NrT   )	rU   rV   rW   rX   r  r  r(  r-  r2  rY   r   r   r  r  Ì   s~   € € € € € ØnÐnð>ð >ð >ð >ð
?ð ?ð ?ð ?ð;ð ;ð ;ð ;ð<ð <ð <ð <ð=ð =ð =ð =ð =ð =r   r  )rX   Ú
__future__r   Úbuiltinsr/   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter-   ÚpytestÚ#tests.e2e_social_party.test_harnessr   r   r   r   r   r	   r
   Úfixturer   r   r[   r—   rÒ   r  rY   r   r   ú<module>r;     s£  ððð ð
 #Ð "Ð "Ð "Ð "Ð "Ø  € € € € € € € € € € € € €€€€ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð „ð:ð :ñ „ð:ð&Ið &Ið &Ið &Ið &Iñ &Iô &Ið &IðR**ð **ð **ð **ð **ñ **ô **ð **ðZ#fð #fð #fð #fð #fñ #fô #fð #fðL17ð 17ð 17ð 17ð 17ñ 17ô 17ð 17ðh'=ð '=ð '=ð '=ð '=ñ '=ô '=ð '=ð '=ð '=r   