+
    :if                         ^ RI t ^ RIt^ RIt^ RIHtHt ^ RIHt ^ RI	H
t
 R tR tR tR tR	 tR
 t ! R R]
4      t]R8X  d   ]P&                  ! 4        R# R# )    N)jitnjit)types)TestCasec                 "    V '       d   R pV# RpV# Ng333333? )xrets   & W/var/www/html/photoedit/myenv/lib/python3.14/site-packages/numba/tests/test_optional.pyreturn_double_or_noner      s     J J    c                     V '       d   R # R# r   r	   r
   s   &r   return_different_statementr      s    r   c                 D    V'       d   R pMRpV ^8X  d   R# V ^8X  d   V# R# )FNTr	   )r
   yzs   && r   return_bool_optional_or_noner      s*    Av	
a r   c                 T    V '       d   R pMT pVf
   V ^,
          # Ve
   V ^,           # R # Nr	   )r
   val_or_nones   & r   is_this_a_noner   *   s2    1u1u r   c                    WJ # )z
Note in nopython mode, this operation does not make much sense.
Because we don't have objects anymore.
`a is b` is always False if not operating on None and Optional type
r	   abs   &&r   a_is_br   7   s     6Mr   c                    WJ# )z
This is `not (a is b)`
r	   r   s   &&r   
a_is_not_br    @   s     :r   c                   ~   a  ] tR t^Gt o RtR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tRtV tR# )TestOptionalFc                    \         p\        \        P                  34      ! V4      pR F!  pV P	                  V! V4      V! V4      4       K#  	  R# TNTF)r   r   r   booleanassertPreciseEqualselfpyfunccfuncvs   &   r   test_return_double_or_none'TestOptional.test_return_double_or_noneK   s?    &emm%&v.A##F1IuQx8 r   c                    \         p\        \        P                  34      ! V4      pR F!  pV P	                  V! V4      V! V4      4       K#  	  R# r$   )r   r   r   r&   r'   r(   s   &   r   test_return_different_statement,TestOptional.test_return_different_statementR   s?    +emm%&v.A##F1IuQx8 r   c                    \         p\        \        P                  \        P                  34      ! V4      p\        P
                  ! RR4       F#  w  r4V P                  V! W44      V! W44      4       K%  	  R# )r   N)r         )r   r3   )r   r   r   int32	itertoolsproductr'   )r)   r*   r+   r
   r   s   &    r   !test_return_bool_optional_or_none.TestOptional.test_return_bool_optional_or_noneY   sT    -ekk5;;01&9%%i8DA##F1L%+> 9r   c                    \         p\        \        P                  34      ! V4      pR F!  pV P	                  V! V4      V! V4      4       K#  	  R# )r3   Nr   r3   r4   )r   r   r   intpr'   r(   s   &   r   test_is_this_a_none TestOptional.test_is_this_a_none`   s>    ejj]#F+A##F1IuQx8 r   c                   \         p\        \        P                  3R R7      ! V4      pV P	                  VP
                  VP                  ^ ,          ,          P                  4       R F!  pV P                  V! V4      V! V4      4       K#  	  R# )T)forceobjNr;   )	r   r   r   r=   
assertTrue	overloads
signatures
objectmoder'   r(   s   &   r   test_is_this_a_none_objmode(TestOptional.test_is_this_a_none_objmodeg   sf    UZZMD1&9(8(8(;<GGHA##F1IuQx8 r   c                    \         p\        \        P                  \        P                  34      ! V4      pV P	                  V! ^^4      4       V P                  V! ^^4      4       R# r3   N)r   r   r   r=   rB   assertFalser)   r*   r+   s   &  r   test_a_is_b_intpTestOptional.test_a_is_b_intpn   sI    ejj%**-.v6a$q!%r   c                    \         p\        \        P                  \        P                  34      ! V4      pV P	                  V! ^^4      4       V P                  V! ^^4      4       R# rI   )r    r   r   r=   rJ   rB   rK   s   &  r   test_a_is_not_b_intp!TestOptional.test_a_is_not_b_intpu   sI    ejj%**-.v6q!%a$r   c                    R  p\        R4      ! V4      pV P                  V! RR4      V! RR4      4       V P                  V! RR4      V! RR4      4       R# )c                     Vf   V # W,           # r   r	   r
   r   s   &&r   r*   0TestOptional.test_optional_float.<locals>.pyfunc}   s    yur   z(float64, optional(float64))      ?皙(@N)r   assertAlmostEqualrK   s   &  r   test_optional_float TestOptional.test_optional_float|   sS    	 34V<vb$/r4Avb$/r4Ar   c                Z   R  p\        R4      ! V4      p\        P                  ! R.\        P                  R7      pVP	                  4       pV P                  V! RV4      V! RV4      4       \        P                  P                  WC4       V P                  V! RR4      V! RR4      4       R# )c                 J    Vf   V # V^ ;;,          V ,          uu&   V^ ,          # r   r	   rS   s   &&r   r*   0TestOptional.test_optional_array.<locals>.pyfunc   s"    y!	tr   z(float32, optional(float32[:]))rV   dtyperU   N)r   nparrayfloat32copyrW   testingassert_almost_equal)r)   r*   r+   cypys   &    r   test_optional_array TestOptional.test_optional_array   s    	 67?XXtfBJJ/WWYvb"~uR}=


&&r.vb$/r4Ar   c                   R  p\        R4      ! V4      pV P                  \        4      ;_uu_ 4       pV! R4       RRR4       V P                  R\	        XP
                  4      4       \        P                  ! R.\        P                  R7      pV P                  V! V4      V! V4      4       R#   + '       g   i     L|; i)c                     V ^ ,          # )r   r	   )r   s   &r   r*   6TestOptional.test_optional_array_error.<locals>.pyfunc   s    Q4Kr   z(optional(int32[:]),)Nz&expected array(int32, 1d, A), got Noneiͫ  r]   )
r   assertRaises	TypeErrorassertInstr	exceptionr_   r`   r5   assertEqual)r)   r*   r+   raisedr   s   &    r   test_optional_array_error&TestOptional.test_optional_array_error   s    	 ,-f5y))V$K *>&**+	- HHfXRXX.q6!9- *)s   	B//B?	c                    R p\        V4      p\        P                  ! ^4      pV P                  V! VR4      V! VR4      4       R# )z3
Check that we can access attribute of an optional
c                 @    R pV'       d   T pVP                   ^ ,          # r   )shape)arrdo_itopts   && r   r*   :TestOptional.test_optional_array_attribute.<locals>.pyfunc   s    C99Q<r   TN)r   r_   arangerq   )r)   r*   r+   rx   s   &   r   test_optional_array_attribute*TestOptional.test_optional_array_attribute   s=    	  ViilT*E#t,<=r   c                   a \         R 4       o\         V3R l4       pV P                  V! ^{R4      4       V P                  V! ^R4      ^4       R# )z9
Check that we can assign to a variable of optional type
c                 "    V'       d   R pV# T pV# r   r	   )valget_noner   s   && r   make_optional;TestOptional.test_assign_to_optional.<locals>.make_optional   s     J Jr   c                 <   < S! V R 4      pV'       d
   S! V R4      pV# r%   r	   )r   
run_secondr   r   s   && r   foo1TestOptional.test_assign_to_optional.<locals>.foo   s#    c4(A!#u-Hr   FTN)r   assertIsNonerq   )r)   r   r   s   & @r   test_assign_to_optional$TestOptional.test_assign_to_optional   sW     
	 
	 
	 
	 	#c5/*S$-r   c                    RR lp\        V4      pV P                  V! 4       V! 4       4       V P                  V! ^4      V! ^4      4       R# )z
Issue 1868
Nc                     V f   ^p V # r   r	   r   s   &r   r*   ;TestOptional.test_optional_thru_omitted_arg.<locals>.pyfunc   s    yHr   r   )r   rq   rK   s   &  r   test_optional_thru_omitted_arg+TestOptional.test_optional_thru_omitted_arg   s>    
	
 V57+E!H-r   c                0   R p\         P                  ! \         P                  .^,          4      p\         P                  ! V4      pV3p\	        V4      ! V4      pV P                  V! R4      V! R4      4       V P                  V! R4      V! R4      4       R# )z
Issue 2171
c                     V f   R # V w  rW3# r   r	   )r
   r   r   s   &  r   r*   1TestOptional.test_optional_unpack.<locals>.pyfunc   s    ytr   N)r3   r4   )r   Tupler=   Optionalr   rq   )r)   r*   tupopt_tupsigr+   s   &     r   test_optional_unpack!TestOptional.test_optional_unpack   su    	 kk5::,*+..%jS	&!uT{3v7r   c                :   a \         R 4       oV3R lpV! 4        R# )z
Issue #4058
c                 "    R pV '       d   ^
p^V3# r   r	   )maybelxs   & r   r   9TestOptional.test_many_optional_none_returns.<locals>.foo   s    Bb5Lr   c                  D   < . p \        R 4       F  pRpS! V4      pK  	  R# )i N  FN)range)tmp_r   r   s      r   work:TestOptional.test_many_optional_none_returns.<locals>.work   s$    C5\J "r   N)r   )r)   r   r   s   & @r   test_many_optional_none_returns,TestOptional.test_many_optional_none_returns   s#     
	 
		 	r   r	   N)__name__
__module____qualname____firstlineno___numba_parallel_test_r-   r0   r8   r>   rF   rL   rO   rX   rg   rs   r}   r   r   r   r   __static_attributes____classdictcell__)__classdict__s   @r   r"   r"   G   s]     !99?99&%	BB.>.,.8$ r   r"   __main__)r6   numpyr_   unittestnumbar   r   
numba.corer   numba.tests.supportr   r   r   r   r   r   r    r"   r   mainr	   r   r   <module>r      s\         ( 
s8 sl zMMO r   