o
    i                     @   sn   d dl mZmZ d dlZd dlZd dlmZ d dlmZmZm	Z	m
Z
 dd Zdd Zejd	d
dd ZdS )    )DictListN)raises)ConfigSimpleFrozenDictSimpleFrozenListregistryc                  C   s   t td} tdD ]
}| | |ksJ q
ttdd | d W d    n1 s+w   Y  ttdd |   W d    n1 sEw   Y  ttdd | d W d    d S 1 saw   Y  d S )N
   zfrozen listmatch   r   )r   ranger   NotImplementedErrorappendreversepopfrozenk r   [/home/ubuntu/.local/lib/python3.10/site-packages/confection/tests/test_frozen_structures.pytest_frozen_list
   s   
"r   c                  C   s   t dd tdD } tdD ]
}| | |ksJ qttdd d| d< W d    n1 s/w   Y  ttdd d| d< W d    d S 1 sJw   Y  d S )Nc                 S   s   i | ]}||qS r   r   ).0r   r   r   r   
<dictcomp>   s    z$test_frozen_dict.<locals>.<dictcomp>r	   zfrozen dictionaryr
      r   )r   r   r   r   r   r   r   r   test_frozen_dict   s   

"r   frozen_type)dictlistc                 C   s   t jddddt_tjdtddfdtttf fd	d
}tjdt	g dfdt
t fdd}t }t|d|  d}t|d | dkrMtnt
sRJ dS )zsTest whether setting default values for a FrozenDict/FrozenList works within a config, which utilizes
    deepcopy.
confectionbarF)entry_pointszfoo_dict.v1   )xvaluesc                 S      | S Nr   r$   r   r   r   	make_dict-      z.test_frozen_struct_deepcopy.<locals>.make_dictzfoo_list.v1)r      r"   c                 S   r%   r&   r   r'   r   r   r   	make_list1   r)   z.test_frozen_struct_deepcopy.<locals>.make_listz1
            [something]
            @bar = "foo_z.v1"        
            	somethingr   N)	cataloguecreater   r    registerr   r   strintr   r   r   resolvefrom_str
isinstance)r   r(   r+   cfgresolvedr   r   r   test_frozen_struct_deepcopy'   s   
"
 "	r7   )typingr   r   r-   pytestr   r   r   r   r   r   r   r   markparametrizer7   r   r   r   r   <module>   s    