
    ̆h25                         S r SSKrSSKrSSKJr  SSKJr  SSKJrJ	r	   " S S\R                  5      r\S:X  a  \R                  " 5         gg)	zmergedeep test module    N)Counter)deepcopy)mergeStrategyc                   l    \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rSrg)test_mergedeep
   zmergedeep function tests.c                 p   SSS.SS0S.SSS	S0S
./ SQS[        SSSS.5      S[        SS05      [        SS05      S.	nSSS00SSS0/ SQS[        SSS.5      SS.n[        U5      nSSS00SS/ SQS[        SSS.5      [        SS05      [        SS05      S.n[        U5      nSSS00SSS	S0S
.S[        SS05      [        SS05      S.n[        U5      n[        0 X$U[        R                  S9nU R                  X5        U R                  X#5        U R                  XE5        U R                  Xg5        g )N      c_cCr	   bB      f   a   r      d      r   r   r   r   zr   )	r   der   ghijr!   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#   r&   r'   r!   strategy)r   r   r   r   REPLACEassertEqual	selfexpectedr   a_copyr   b_copyr   c_copyactuals	            P/opt/services/DDDS/venv/lib/python3.13/site-packages/mergedeep/test_mergedeep.pyUtest_should_merge_3_dicts_into_new_dict_using_replace_strategy_and_only_mutate_targetdtest_mergedeep.test_should_merge_3_dicts_into_new_dict_using_replace_strategy_and_only_mutate_target   s   b)b	:c1X&qqq12#q"#q"

 QxQqq)*
 ! Ry!qq)*#q"#q"	
 ! bz"c1X&#q"#q"
 !r1X-=-=>*###    c                 H   SSS.SS0S.SSS	S0S
./ SQS[        SSSS.5      S[        SS05      S.nSSS00SSS0/ SQS[        SSS.5      SS.n[        U5      nSSS00SS/ SQS[        SSS.5      [        SS05      S.n[        U5      nSSS00SSS	S0S
.S[        SS05      S.n[        U5      n[        X$U[        R                  S9nU R                  X5        U R                  X5        U R                  X#5        U R                  XE5        U R                  Xg5        g )Nr   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   r"   r#   r   r$   r%   r&   r   )r   r"   r#   r&   r'   r.   )r   r   r   r   r0   r1   assertNotEqualr2   s	            r9   Ztest_should_merge_2_dicts_into_existing_dict_using_replace_strategy_and_only_mutate_targetitest_mergedeep.test_should_merge_2_dicts_into_existing_dict_using_replace_strategy_and_only_mutate_targetF   sc   b)b	:c1X&qqq12#q"	
 QxQqq)*
 ! Ry!qq)*#q"
 !r
#!asAh2GaV]_bde^fVgh!qQ)9)9:*#A&##r<   c                     [         R                  " [        5      n[        R                  nU R                  UR                  R                  S5      U5        g )Nr/   )inspectgetfullargspecr   r   r0   r1   kwonlydefaultsget)r3   	func_specdefault_strategys      r9   ,test_should_have_default_strategy_of_replace;test_mergedeep.test_should_have_default_strategy_of_replaces   s@    **51	#++1155jACSTr<   c                    SSS.SS0S.SSS	S0S
./ SQS.nSSS00SSS0/ SQS.n[        U5      nSSS00SS/ SQS.n[        U5      nSSS00SSS	S0S
.S.n[        U5      n[        0 X$U[        R                  S9nU R	                  X5        U R	                  X#5        U R	                  XE5        U R	                  Xg5        g Nr   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   r   ADDITIVEr1   r2   s	            r9   _test_should_merge_3_dicts_into_new_dict_using_additive_strategy_on_lists_and_only_mutate_targetntest_mergedeep.test_should_merge_3_dicts_into_new_dict_using_additive_strategy_on_lists_and_only_mutate_target       b)b	:c1X&#	
 a/AYG!b	"C!r
#!asAh2GH!r1X->->?*###r<   c                    SSS.SS0S.SSS	S0S
.1 SkS.nSSS00SSS01 SkS.n[        U5      nSSS00SS1 SkS.n[        U5      nSSS00SSS	S0S
.S.n[        U5      n[        0 X$U[        R                  S9nU R	                  X5        U R	                  X#5        U R	                  XE5        U R	                  Xg5        g )Nr   r   r   r   r	   r   r   r   r   r   >   r   r   r   r   r   r   rM   r   r   r      r   r   r   r   >   r   r   r   r   rN   r.   rO   r2   s	            r9   ^test_should_merge_3_dicts_into_new_dict_using_additive_strategy_on_sets_and_only_mutate_targetmtest_mergedeep.test_should_merge_3_dicts_into_new_dict_using_additive_strategy_on_sets_and_only_mutate_target   rS   r<   c                 x   SSS.SS0S.SSS	S0S
.SS.nSSS00SSS0SS.n[        U5      nSSS00SSSS.n[        U5      nSSS00SSS	S0S
.S.n[        U5      n[        0 X$U[        R                  S9nU R	                  X5        U R	                  X#5        U R	                  XE5        U R	                  Xg5        g rK   rO   r2   s	            r9   `test_should_merge_3_dicts_into_new_dict_using_additive_strategy_on_tuples_and_only_mutate_targetotest_mergedeep.test_should_merge_3_dicts_into_new_dict_using_additive_strategy_on_tuples_and_only_mutate_target   s    b)b	:c1X&#	
 a/AYG!b	"C!r
#!asAh2GH!r1X->->?*###r<   c           
      v   SSS.SS0S.SSS	S0S
.[        SSSS.5      S[        SS05      [        SS05      S.nSSS00SSS0[        SSS.5      [        S	S05      [        SSS.5      S.n[        U5      nSSS00SS[        SSS.5      / SQ[        SS05      S.n[        U5      nSSS00SSS	S0S
.S[        SS05      [        SS05      S.n[        U5      n[        0 X$U[        R                  S9nU R                  X5        U R                  X#5        U R                  XE5        U R                  Xg5        g )Nr   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   r&   r'   r   r*   r(   )r   r"   r#   r   r'   r!   r   r-   r.   )r   r   r   r   rP   r1   r2   s	            r9   btest_should_merge_3_dicts_into_new_dict_using_additive_strategy_on_counters_and_only_mutate_targetqtest_mergedeep.test_should_merge_3_dicts_into_new_dict_using_additive_strategy_on_counters_and_only_mutate_target   s|   b)b	:c1X&qqq12#q"#q"
 QxQqq)*#q"qq)*
 ! Ry!qq)*#q"
 ! bz"c1X&#q"#q"
 !r1X->->?*###r<   c                 ~   SnSnSU0nSU0n[        X4/5      [        X445      S.nU/U4S.nU/U4S.n[        0 Xg[        R                  S9nX#S'   X$S'   U R	                  X5        U R	                  US   S   S   U5        U R	                  US   S   S   U5        U R	                  US	   S   S   U5        U R	                  US	   S   S   U5        U R	                  US   S   S   U5        U R	                  US   S   S   U5        U R	                  US	   S   S   U5        U R	                  US	   S   S   U5        g )
Nr   c   key1key2)listtupler.   rc   r   rd   rO   )	r3   beforeaftero1o2r4   r   r   r8   s	            r9   test_should_not_copy_references.test_mergedeep.test_should_not_copy_references   st   ff$bX.2(9KLTRE*TRE*r1(*;*;<6
6
* 	*62F;*62F;+F3V<+F3V< 	61f-u561f-u57Av.67Av.6r<   c           	          SSS00SSS0/ SQS.nS	S
S00SS/ SQS.nSSS00SSSS0S.S.nU R                  [        5         [        0 XU[        R                  S9  S S S 5        g ! , (       d  f       g = fNr   r   r   r   r   r   r(   rM   r   r   r	   r   r   r   r   r   rN   r.   )assertRaises	TypeErrorr   r   TYPESAFEr3   r   r   r   s       r9   Ctest_should_raise_TypeError_using_typesafe_strategy_if_types_differRtest_mergedeep.test_should_raise_TypeError_using_typesafe_strategy_if_types_differ  s    a/AYGb	"Cr
#!asAh2GHy)"aA(9(9: *))   A%%
A3c           	          SSS00SSS0/ SQS.nS	S
S00SS/ SQS.nSSS00SSSS0S.S.nU R                  [        5         [        0 XU[        R                  S9  S S S 5        g ! , (       d  f       g = frl   )rm   rn   r   r   TYPESAFE_REPLACErp   s       r9   Ktest_should_raise_TypeError_using_typesafe_replace_strategy_if_types_differZtest_mergedeep.test_should_raise_TypeError_using_typesafe_replace_strategy_if_types_differ#  s    a/AYGb	"Cr
#!asAh2GHy)"aA(A(AB *))rs   c                    SSS.SS0S.S/ SQ1 S	kS
[        SSSS.5      S.nSSS00S/ SQ1 Sk[        SSS.5      S.n[        U5      nSSS00S/ SQ1 S	kSS.n[        U5      nSSS00SS
[        SSS.5      S.n[        U5      n[        0 X$U[        R                  S9nU R                  X5        U R                  X#5        U R                  XE5        U R                  Xg5        g Nr   r   r   r   r	   r   r   r      r   r   r   r   r   r   r    r   r"   r   r$   r%   r!   r   r   r(   rU   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   ro   r1   r2   s	            r9   ntest_should_merge_3_dicts_into_new_dict_using_typesafe_strategy_and_only_mutate_target_if_types_are_compatible}test_mergedeep.test_should_merge_3_dicts_into_new_dict_using_typesafe_strategy_and_only_mutate_target_if_types_are_compatible+  s    b)b	:qqq12
 a/		PW^_fgXhPij!b	"QUV!r
#!&wQUVGW?XY!r1X->->?*###r<   c                    SSS.SS0S.S/ SQ1 S	kS
[        SSSS.5      S.nSSS00S/ SQ1 Sk[        SSS.5      S.n[        U5      nSSS00S/ SQ1 S	kSS.n[        U5      nSSS00SS
[        SSS.5      S.n[        U5      n[        0 X$U[        R                  S9nU R                  X5        U R                  X#5        U R                  XE5        U R                  Xg5        g ry   )r   r   r   r   ru   r1   r2   s	            r9   vtest_should_merge_3_dicts_into_new_dict_using_typesafe_replace_strategy_and_only_mutate_target_if_types_are_compatibleڅtest_mergedeep.test_should_merge_3_dicts_into_new_dict_using_typesafe_replace_strategy_and_only_mutate_target_if_types_are_compatibleG  s    b)b	:qqq12
 a/		PW^_fgXhPij!b	"QUV!r
#!&wQUVGW?XY!r1X-F-FG*###r<   c           	          SSS00SSS0/ SQS.nS	S
S00SS/ SQS.nSSS00SSSS0S.S.nU R                  [        5         [        0 XU[        R                  S9  S S S 5        g ! , (       d  f       g = frl   )rm   rn   r   r   TYPESAFE_ADDITIVErp   s       r9   Ltest_should_raise_TypeError_using_typesafe_additive_strategy_if_types_differ[test_mergedeep.test_should_raise_TypeError_using_typesafe_additive_strategy_if_types_differg  s    a/AYGb	"Cr
#!asAh2GHy)"aA(B(BC *))rs   c                    SSS.SS0S.S/ SQ1 S	kS
[        SSSS.5      S.nSSS00S/ SQ1 Sk[        SSS.5      S.n[        U5      nSSS00S/ SQ1 SkSS.n[        U5      nSSS00SS[        SSS.5      S.n[        U5      n[        0 X$U[        R                  S9nU R                  X5        U R                  X#5        U R                  XE5        U R                  Xg5        g )Nr   r   r   r   r	   r   r   rL   >   r   r   r   r   )r   r   r   r   r   r    r|   r   r   r(   rU   r*   r}   r   r   rz   r~   r   r   r{   r,   r   r.   )r   r   r   r   r   r1   r2   s	            r9   wtest_should_merge_3_dicts_into_new_dict_using_typesafe_additive_strategy_and_only_mutate_target_if_types_are_compatibleچtest_mergedeep.test_should_merge_3_dicts_into_new_dict_using_typesafe_additive_strategy_and_only_mutate_target_if_types_are_compatibleo  s    b)b	:#qqq12
 a/		PW^_fgXhPij!b	"QUV!r
#!&wQUVGW?XY!r1X-G-GH*###r<    N)__name__
__module____qualname____firstlineno____doc__r:   r?   rH   rQ   rV   rY   r]   ri   rq   rv   r   r   r   r   __static_attributes__r   r<   r9   r   r   
   sS    #3$j+$ZU$0$0$0.$`7H;C$8$@D$r<   r   __main__)r   rB   unittestcollectionsr   copyr   	mergedeepr   r   TestCaser   r   mainr   r<   r9   <module>r      sD         %$X&& $D zMMO r<   