+
    ii!                        ^ RI HtHt ^ RIHtHtHtHtHtH	t	H
t
HtHtHt ^ RIHt ^ RIHt ^ RI Ht ^ RIHt ^ RIHt ^ RIHt ^ R	IHt ^ R
IHt ^ RIHt ^ RIH 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# )    )compRational)
refraction_anglefresnel_coefficients	deviationbrewster_anglecritical_anglelens_makers_formulamirror_formulalens_formulahyperfocal_distancetransverse_magnification)Medium)e0)oo)symbols)sqrt)Matrix)Point3D)Ray3D)Plane)raisesc                 *    \        W^
V) ,          4      # )
   )r   )abns   &&&c/var/www/html/photoedit/myenv/lib/python3.14/site-packages/sympy/physics/optics/tests/test_utils.py<lambda>r      s    T!QB'    c                    aaaaaa \        R 4      w  r\        R4      o\        R4      o\        \        RR^4      \        ^ ^ ^ 4      4      o\	        . RO4      o\	        . RO4      p\        \        ^ ^ ^ 4      \        ^ ^ ^4      4      o\        \        ^ ^ ^ 4      . ROR7      o\        S^^V4      \	        ^.^.R..4      8X  g   Q h\        . RO^^V4      \	        ^.^.R..4      8X  g   Q h\        R^^V4      \	        ^.^.R..4      8X  g   Q h\        S^^. RO4      \	        ^.^.R..4      8X  g   Q h\        S^^R4      \	        ^.^.R..4      8X  g   Q h\        S^^S4      \	        ^.^.R..4      8X  g   Q h\        S^^SR7      \	        ^.^.R..4      8X  g   Q h\        S^^SR7      \        \        ^ ^ ^ 4      \        ^^R4      4      8X  g   Q h\        SSRSR7      \        \        ^ ^ ^ 4      \        \        ^d^4      \        ^d^4      R\        ^4      ,          R,          4      4      8X  g   Q h\        S^SSR7      \        \        ^ ^ ^ 4      \        ^^R4      4      8X  g   Q h\        SWSR7      \        \        ^ ^ ^ 4      \        W,          W,          \        ^4      ) \        RV ^,          ,          ^V^,          ,          ,          ^,           4      ,          4      4      8X  g   Q h\        SR^SR7      ^ 8X  g   Q h\        S^^S4      \        \        ^ ^ ^ 4      . ROR7      8X  g   Q h\        \        R^^4      R	^4      '       g   Q h\        \        R^^4      R
^4      '       g   Q h\        \        VVVVV3R l4       \        \        VV3R l4       \        \        VVVV3R l4       \        \        VVV3R l4       R# )n1, n2m1m2normal_vectorplaneHzG?l     I5 )direction_ratio      ?g@ޫV&?gꐛ?c                  "   < \        SSSSS 4      # Nr   )Pr#   r$   
normal_rayr1s   r   r   'test_refraction_angle.<locals>.<lambda>I   s    /BJJr    c                     < \        S S S4      # r-   r.   r#   r$   s   r   r   r2   J   s    .r2r:r    c                  "   < \        SSSR S 4      # r-   r.   )ir#   r$   r1   s   r   r   r2   K   s    .r2r4Cr    c                      < \        SS SS4      # r-   r.   )r#   r$   r1   s   r   r   r2   L   s    .r2r2>r    N)   r9   r9   r   r   r9   lw ^7 )r9   r9   r8   )r   r   r   r   r   r   r   r   r   aer   
ValueError	TypeError)	n1n2r   r/   r6   r#   r$   r0   r1   s	      @@@@@@r   test_refraction_anglerA      s   XFB	B	B	wr2q!71a#3	4ByAyAwq!Q'Aq)9:JgaAi8AB1a(F./D./D-/D42 -3 3 3 3 Iq!Q/6./D./D-/D;2 43 3 3 3 Iq!Q/6./D./D-/D;2 43 3 3 3 Aq!Y/6./D./D-/D;2 43 3 3 3 Aq!Y/6./D./D-/D;2 43 3 3 3 Aq!Z0F./D./D-/D<2 53 3 3 3 Aq!1-./D./D-/D92 23 3 3 3 B1A.gaA1b 123 3 3BD2gaAc(:HS#<NP`aefgahPhiyPy z{| | |B2Q/gaA1b 123 3 3Ba0gaArutAwhtBr1uHaPRTUPUgDVYZDZ?[6[ \]^ ^ ^Baq1Q666B1j1gaA
;< < <sAq)7A6666sAq)7A6666
:JJK
9:;
9CD
9>?r    c            
      l   \         ;QJ d3    R  \        \        R^R4      . RO4       4       F  '       d   K   RM(	  RM$! R  \        \        R^R4      . RO4       4       4      '       g   Q h\         ;QJ d3    R \        \        RR^4      . RO4       4       F  '       d   K   RM(	  RM$! R \        \        RR^4      . RO4       4       4      '       g   Q h\        R4      p \        R^R7      p\         ;QJ d2    R	 \        \        R
W4      . RO4       4       F  '       d   K   RM'	  RM#! R	 \        \        R
W4      . RO4       4       4      '       g   Q hRR.RR..p\        RW4      p\        W24       F<  w  rE\        VP	                  4       V4       F  w  rg\        Wg^4      '       d   K  Q h	  K>  	  R# )c              3   >   "   T F  w  r\        W^4      x  K  	  R# 5i   Nr<   .0r6   js   &  r   	<genexpr>,test_fresnel_coefficients.<locals>.<genexpr>P   "      0 (/tqr!{{ (/   r+   r)   FTc              3   >   "   T F  w  r\        W^4      x  K  	  R# 5irD   rF   rG   s   &  r   rJ   rK   S   rL   rM   r#   r$   r   c              3   >   "   T F  w  r\        W^4      x  K  	  R# 5irD   rF   rG   s   &  r   rJ   rK   X   rL   rM   g333333?g: ?g333333?N)g@ȓ?g ſgn?g?)gHIOǳgHȰ7?g}iƢ?gIVF?)gW}W?gHPֿg.Ue?g?gm)οg~:3Pgҩ+y)allzipr   r   as_real_imagr<   )r#   r$   ansgotr6   rI   r   r   s           r   test_fresnel_coefficientsrV   O   s   3 0sS!T*-(/ 0333 0sS!T*-(/ 0 0 0 0 0 3 0sS$*-(/ 0333 0sS$*-(/ 0 0 0 0 0 
B		B3 0sS")-(/ 0333 0sS")-(/ 0 0 0 0 0 h'8!4
5C
sB
+CC(!,DAaA;;; - r    c                  "   \        R 4      w  r\        \        RR^4      \        ^ ^ ^ 4      4      p\        . RO4      p\        . RO4      p\        \        ^ ^ ^ 4      \        ^ ^ ^4      4      p\	        \        ^ ^ ^ 4      . ROR7      p\        V^^VR7      ^ 8X  g   Q h\        V^^VR7      ^ 8X  g   Q h\        V^RVR7      P                  ^4      R,           R8  g   Q h\        V^RVR7      P                  ^4      R,           R8  g   Q h\        VR^VR7      e   Q h\        V^^. ROR7      ^ 8X  g   Q h\        . RO^^. ROR7      ^ 8X  g   Q h\        \        R	^^4      R^4      '       g   Q h\        \        R	^^4      R
^4      '       g   Q hR# )r"   r%   )normalr'   g?gX9v?gMbP?r)   Nr+   g=!7?r8   r:   )r8   r8   r8   gп)r   r   r   r   r   r   evalfr<   )r?   r@   r1   r   r6   r0   r/   s          r   test_deviationrZ   b   s|   XFB	wr2q!71a#3	4ByA|Awq!Q'Aq)9:JgaAi8ARAa(A---RAQ'1,,,RCq)//2U:TAAAQ3z288;eCdJJJRq*222RAi0A555\1a	:a???iQ"Ha0000iQ"GQ////r    c                  8   \        R ^R7      p \        RRR7      p\        \        W4      R^4      '       g   Q h\        R \        ^R7      p \        R\        RR7      p\        \        W4      R^4      '       g   Q h\        \        ^R4      R^4      '       g   Q hR# )r#   rO   r$   r)   g(\?permittivityr   N)r   r<   r   r   r4   s     r   test_brewster_angler^   t   s    		B		BnR$dA....	2	+B	2	.BnR$dA....nQ%tQ////r    c                  v    \        R ^R7      p \        RRR7      p\        \        W4      R^4      '       g   Q hR# )r#   rO   r$   r)   g333333?N)r   r<   r	   r4   s     r   test_critical_angler`   ~   s4    		B		BnR$dA....r    c                  :   \        R 4      w  r\        R\        ^R7      p\        R\        RR7      p\        W^
R4      RV,          W,
          ,          8X  g   Q h\	        \        W#^
R4      R	^4      '       g   Q h\	        \        R^^
R4      R^4      '       g   Q hR# )
r"   r#   r\   r$   r)   g      @gL.@Ngfffff&4)r   r   r   r
   r<   r?   r@   r#   r$   s       r   test_lens_makers_formulard      s    XFB	2	+B	2	.Brr3/3r6273CCCC!""c2FA>>>>!$2s3eQ????r    c                  `  a aa \        R 4      w  ooo \        S SR7      S S,          S ) S,           ,          8X  g   Q h\        S SR7      S S,          S ) S,           ,          8X  g   Q h\        SSR7      SS,          SS,           ,          8X  g   Q h\        \        SR7      S8X  g   Q h\        \        \        R7      \        J g   Q h\        \        SR7      S) 8X  g   Q h\        S\        R7      S8X  g   Q h\        \        \        R7      \        J g   Q h\        S \        R7      S 8X  g   Q h\        \        SR7      S) 8X  g   Q h\        \        \        R7      \        J g   Q h\        S \        R7      S 8X  g   Q h\        \        SR7      S) 8X  g   Q h\        \        V VV3R l4       R# )u, v, ffocal_lengthurh   vri   rk   c                      < \        S SSR 7      # )rh   ri   rk   )r   fri   rk   s   r   r   %test_mirror_formula.<locals>.<lambda>   s    ~1QGr    N)r   r   r   r   r=   ro   s   @@@r   test_mirror_formularr      s]   i GAq!qA.!A#rAv,>>>qA.!A#rAv,>>>A#qsAE{222B!$)))B"%+++rQ/A2555A$)))rR0B666qB/1444rQ/A2555rR0B666qB/1444rQ/A2555
:GHr    c                  \  a aa \        R 4      w  ooo \        S SR7      S S,          S S,           ,          8X  g   Q h\        S SR7      S S,          S S,
          ,          8X  g   Q h\        SSR7      SS,          SS,
          ,          8X  g   Q h\        \        SR7      S8X  g   Q h\        \        \        R7      \        J g   Q h\        \        SR7      S8X  g   Q h\        S\        R7      S) 8X  g   Q h\        \        \        R7      \        ) J g   Q h\        \        SR7      S8X  g   Q h\        S \        R7      S ) 8X  g   Q h\        \        \        R7      \        J g   Q h\        \        SR7      S8X  g   Q h\        S \        R7      S 8X  g   Q h\        \        V VV3R l4       R# )rf   rg   rj   rl   c                      < \        S SSR 7      # rn   )r   ro   s   r   r   #test_lens_formula.<locals>.<lambda>   s    |a1Er    N)r   r   r   r   r=   ro   s   @@@r   test_lens_formularv      sY   i GAq!Q!,!QU;;;Q!,!QU;;;!q!QqS!a%[000""a'''"#r)))R1-222!r"qb(((R2.2#555R1-222Q"-!333R2."444R1-222Q"-222
:EFr    c                      \        R 4      w  rp\        WVR7      V ^,          W,          ,          8X  g   Q h\        \        R^RR7      R^4      '       g   Q hR# )zf, N, crp   Ncr+   gF%uk?gq=
ף"@N)r   r   r<   rx   s      r   test_hyperfocal_distancer{      sN    i GA!1-Aqs;;;!C17qAAAAr    c                  z    \        R 4      w  r\        W4      V ) V,          8X  g   Q h\        ^^4      R8X  g   Q hR# )zsi, soNr;   )r   r   )sisos     r   test_transverse_magnificationr      s<    XFB#B+s2v555#B+r111r    c            
      F   \        R 4      w  r\        R\        ^R7      p\        R\        RR7      p\        \	        W#^
R	^R7      R
^4      '       g   Q h\	        W^RRR7      VRRV ,          RV,          ,
          V ,          ,
          W,
          ,          ,          8X  g   Q hR# )r"   r#   r\   r$   r)   )dg?g       @Nrb   gR3r8   )r   r   r   r<   r
   rc   s       r   #test_lens_makers_formula_thick_lensr      s    XFB	2	+B	2	.B!""cQ7CCCCrq"4SCFSQSVOUWCW=WZ\Za<b8ccccr    c                     \        R 4      w  r\        R\        ^R7      p\        R\        RR7      p\        \	        W#^
\
        4      R^4      '       g   Q h\	        W^
\
        4      RV,          W,
          ,          8X  g   Q hR# )r"   r#   r\   r$   r)   g      $@Ngfffff&D)r   r   r   r<   r
   r   rc   s       r   #test_lens_makers_formula_plano_lensr      sk    XFB	2	+B	2	.B!""b161====rr2.$r'272CCCCr    N).sympy.core.numbersr   r   sympy.physics.optics.utilsr   r   r   r   r	   r
   r   r   r   r   sympy.physics.optics.mediumr   sympy.physics.unitsr   r   sympy.core.symbolr   (sympy.functions.elementary.miscellaneousr   sympy.matrices.denser   sympy.geometry.pointr   sympy.geometry.liner   sympy.geometry.planer   sympy.testing.pytestr   r<   rA   rV   rZ   r^   r`   rd   rr   rv   r{   r   r   r    r    r   <module>r      s    -" " " / " ! % 9 ' ( % & ' (5@p&0$0/@I$G$B2dDr    