
    NgN                     @    d dl mZ d dlZd dlmZ  G d d          ZdS )    )TupleN)edit_distancec                   |    e Zd Zej                            dg d          dedededeeef         fd            Z	dS )	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 ]8\  }}t          |ddg          D ] \  }}t          ||||          }	|	|k    sJ !9dS )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
             X/var/www/html/ai-engine/env/lib/python3.11/site-packages/nltk/test/unit/test_distance.pytest_with_transpositionsz)TestEditDistance.test_with_transpositions	   s    ^ e}udm4 		- 		-FB,/	D%=,I,I - -(.)&7#1	  	 !H,,,,,-		- 		-    N)
__name__
__module____qualname__pytestmarkparametrizestrintr   r3    r4   r2   r   r      s        [0\	
 \	
 \	
_ _@-- #-8;-HMcSVh- - -A_ _@- - -r4   r   )typingr   r8   nltk.metrics.distancer   r   r=   r4   r2   <module>r@      sn           / / / / / /y- y- y- y- y- y- y- y- y- y-r4   