o
    ¦ÜÓh—  ã                   @   s0   d Z ddlmZ ddlmZ G dd„ deƒZdS )z2
Tests for dict duplicate keys Pyflakes behavior.
é    )Úmessages)ÚTestCasec                   @   sÔ   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3S )4ÚTestc                 C   ó   |   dtjtj¡ d S )Nz{'yes': 1, 'yes': 2}©ÚflakesÚmÚMultiValueRepeatedKeyLiteral©Úself© r   úM/var/www/html/ai/venv/lib/python3.10/site-packages/pyflakes/test/test_dict.pyÚtest_duplicate_keys   ó
   ýzTest.test_duplicate_keysc                 C   ó   |   d¡ d S )Nz{b'a': 1, u'a': 2}©r   r
   r   r   r   Ú(test_duplicate_keys_bytes_vs_unicode_py3   ó   z-Test.test_duplicate_keys_bytes_vs_unicode_py3c                 C   r   )Nz{1: b'a', 1: u'a'}r   r
   r   r   r   Ú*test_duplicate_values_bytes_vs_unicode_py3   r   z/Test.test_duplicate_values_bytes_vs_unicode_py3c                 C   s   |   dtjtjtjtj¡ d S )Nz&{'yes': 1, 'yes': 2, 'no': 2, 'no': 3}r   r
   r   r   r   Útest_multiple_duplicate_keys   s   ûz!Test.test_multiple_duplicate_keysc                 C   r   )Nz`
            def f(thing):
                pass
            f({'yes': 1, 'yes': 2})
            r   r
   r   r   r   Útest_duplicate_keys_in_function%   ó
   ùz$Test.test_duplicate_keys_in_functionc                 C   r   )Nzlambda x: {(0,1): 1, (0,1): 2}r   r
   r   r   r   Útest_duplicate_keys_in_lambda0   r   z"Test.test_duplicate_keys_in_lambdac                 C   r   )Nz{(0,1): 1, (0,1): 2}r   r
   r   r   r   Útest_duplicate_keys_tuples7   r   zTest.test_duplicate_keys_tuplesc                 C   r   )Nz{(0,1): 1, (0,1.0): 2}r   r
   r   r   r   Ú(test_duplicate_keys_tuples_int_and_float>   r   z-Test.test_duplicate_keys_tuples_int_and_floatc                 C   r   )Nz{1: 1, 1: 2}r   r
   r   r   r   Útest_duplicate_keys_intsE   r   zTest.test_duplicate_keys_intsc                 C   r   )Nz{True: 1, True: 2}r   r
   r   r   r   Útest_duplicate_keys_boolsL   r   zTest.test_duplicate_keys_boolsc                 C   r   )Nz{False: 1, False: 2}r   r
   r   r   r   Útest_duplicate_keys_bools_falseS   s
   ýz$Test.test_duplicate_keys_bools_falsec                 C   r   )Nz{None: 1, None: 2}r   r
   r   r   r   Útest_duplicate_keys_none[   r   zTest.test_duplicate_keys_nonec                 C   r   )Nz8
            a = 1
            {a: 1, a: 2}
            )r   r   ÚMultiValueRepeatedKeyVariabler
   r   r   r   Útest_duplicate_variable_keysb   s
   úz!Test.test_duplicate_variable_keysc                 C   r   )NzJ
            a = 1
            b = 2
            {1: a, 1: b}
            r   r
   r   r   r   Útest_duplicate_variable_valuesl   r   z#Test.test_duplicate_variable_valuesc                 C   r   )NzJ
            a = 1
            b = 1
            {1: a, 1: b}
            r   r
   r   r   r   Ú)test_duplicate_variable_values_same_valuew   s
   ùz.Test.test_duplicate_variable_values_same_valuec                 C   s   |   dtjtj¡ dS )zß
        These do look like different values, but when it comes to their use as
        keys, they compare as equal and so are actually duplicates.
        The literal dict {1: 1, 1.0: 1} actually becomes {1.0: 1}.
        z(
            {1: 1, 1.0: 2}
            Nr   r
   r   r   r   Ú test_duplicate_key_float_and_int„   s
   ûz%Test.test_duplicate_key_float_and_intc                 C   r   )Nz&
        {'yes': 1, 'yes': 1}
        r   r
   r   r   r   Ú&test_no_duplicate_key_error_same_value’   r   z+Test.test_no_duplicate_key_error_same_valuec                 C   r   )Nz%
        {'yes': 1, 'no': 2}
        r   r
   r   r   r   Útest_no_duplicate_key_errors—   r   z!Test.test_no_duplicate_key_errorsc                 C   r   )Nz{(0,1): 1, (0,2): 1}r   r
   r   r   r   Ú0test_no_duplicate_keys_tuples_same_first_elementœ   r   z5Test.test_no_duplicate_keys_tuples_same_first_elementc                 C   r   )Nz^
        def test(thing):
            pass
        test({True: 1, None: 2, False: 1})
        r   r
   r   r   r   Ú&test_no_duplicate_key_errors_func_callŸ   r   z+Test.test_no_duplicate_key_errors_func_callc                 C   r   )Nz{True: 1, None: 2, False: 1}r   r
   r   r   r   Ú)test_no_duplicate_key_errors_bool_or_none¦   r   z.Test.test_no_duplicate_key_errors_bool_or_nonec                 C   r   )Nz
        {1: 1, 2: 1}
        r   r
   r   r   r   Ú!test_no_duplicate_key_errors_ints©   r   z&Test.test_no_duplicate_key_errors_intsc                 C   r   )NzN
        test = 'yes'
        rest = 'yes'
        {test: 1, rest: 2}
        r   r
   r   r   r   Ú!test_no_duplicate_key_errors_vars®   r   z&Test.test_no_duplicate_key_errors_varsc                 C   r   )Nz&
        {(0,1): 1, (0,2): 1}
        r   r
   r   r   r   Ú#test_no_duplicate_key_errors_tuplesµ   r   z(Test.test_no_duplicate_key_errors_tuplesc                 C   r   )Nzl
        class Test():
            pass
        f = Test()
        f.a = 1
        {f.a: 1, f.a: 1}
        r   r
   r   r   r   Ú0test_no_duplicate_key_errors_instance_attributesº   r   z5Test.test_no_duplicate_key_errors_instance_attributesN)Ú__name__Ú
__module__Ú__qualname__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   	   s4    	
r   N)Ú__doc__Úpyflakesr   r   Úpyflakes.test.harnessr   r   r   r   r   r   Ú<module>   s    