
    gN                     8    d dl mZ d dlZd dlmZ  G d d      Zy)    )TupleN)edit_distancec                   p    e Zd Zej                  j                  dg d      dedededeeef   fd       Z	y)	TestEditDistancez&left,right,substitution_cost,expecteds))abcca         )r   r      r
   )wantswaspr	   r   r   )r   r   r   r   )rainshiner	   r   )r   r   r   r   r   )acbdefabcdefr	   r	   r   )r   r   r   r   )lnaguaeglanguager	   r      )r   r   r   r   )lnaugager   r	   r
   )r   r   r   r   )lngauager   r	   r   r   )r   r   r   r   )r   swimr	   r   )r   r   r   )      )kittensittingr	   r   )r!   r"   r   r   )
duplicatedduuplicatedr	   r	   r	   )r#   r$   r   r%   )zvery duplicatedzvery duuplicateedr   r   leftrightsubstitution_cost	expectedsc                 |    ||f||ffD ]1  \  }}t        |ddg      D ]  \  }}t        ||||      }	|	|k(  rJ  3 y)a\  
        Test `edit_distance` between two strings, given some `substitution_cost`,
        and whether transpositions are allowed.

        :param str left: First input string to `edit_distance`.
        :param str right: Second input string to `edit_distance`.
        :param int substitution_cost: The cost of a substitution action in `edit_distance`.
        :param Tuple[int, int] expecteds: A tuple of expected outputs, such that `expecteds[0]` is
            the expected output with `transpositions=True`, and `expecteds[1]` is
            the expected output with `transpositions=False`.
        TF)r(   transpositionsN)zipr   )
selfr&   r'   r(   r)   s1s2expectedr+   	predicteds
             Q/var/www/openai/venv/lib/python3.12/site-packages/nltk/test/unit/test_distance.pytest_with_transpositionsz)TestEditDistance.test_with_transpositions	   sa    ^ e}udm4FB,/	D%=,I(.)&7#1		 !H,,, -J 5    N)
__name__
__module____qualname__pytestmarkparametrizestrintr   r3    r4   r2   r   r      sZ    [[0\	
_@-- #-8;-HMcSVh-A_@-r4   r   )typingr   r8   nltk.metrics.distancer   r   r=   r4   r2   <module>r@      s      /y- y-r4   