
    sg                         d dl mZmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ  ed	      \  ZZd
 Zd Zd Zd Zd Zd Zd Zd Zd Zed        Zd Zy)    )bspline_basis_setinterpolating_spline)Rational)S)symbols)	Piecewise)And)Interval)slowzx,yc            
          d} t        d      }t        | |t              }t        t        |            D ]8  }||   t	        dt        ||dz         j                  t              fd      k(  r8J  y )Nr         r   T)ranger   xlenr   r
   contains)dknotssplinesis       ^/var/www/html/venv/lib/python3.12/site-packages/sympy/functions/special/tests/test_bsplines.pytest_basic_degree_0r      ss    	A!HE5!,G3w<  2qzY8Aq1u+=+F+Fq+I'J'02 2 	2 22    c            	         d} t        d      }t        | |t              }|d   t        t        t	        dd      j                  t              fdt        z
  t	        dd      j                  t              fd      k(  sJ |d   t        dt        z   t	        dd      j                  t              fdt        z
  t	        dd      j                  t              fd      k(  sJ |d   t        dt        z   t	        dd      j                  t              fd	t        z
  t	        dd	      j                  t              fd      k(  sJ y )
Nr   r   r      r         )r   r   r   r   r
   r   r   r   r   s      r   test_basic_degree_1r"      s)   	A!HE5!,G1:Ax1~'>'>q'A#B$%E8Aq>+B+B1+E#F#,. . . . 1:BFHQN,C,CA,F#G$%E8Aq>+B+B1+E#F#,. . . . 1:BFHQN,C,CA,F#G$%E8Aq>+B+B1+E#F#,. . . .r   c            	      T   d} t        d      }t        | |t              }t        t        dz  dz  t	        dd      j                  t              ft        dd      dt        z  z   t        dz  z
  t	        dd      j                  t              ft        dd      dt        z  z
  t        dz  dz  z   t	        dd      j                  t              fd      }t        t        j                  t        z
  t        dz  dz  z   t	        dd      j                  t              ft        d	d      dt        z  z   t        dz  z
  t	        dd      j                  t              fd
dt        z  z
  t        dz  dz  z   t	        dd      j                  t              fd      }|d   |k(  sJ |d   |k(  sJ y )Nr   r   r   r   r   	   r   i   r    )	r   r   r   r   r
   r   r   r   Half)r   r   r   b0b1s        r   test_basic_degree_2r*   %   ss   	A!HE5!,G	AqDFHQN33A67ROac)AqD0(1a.2I2I!2LMQNQqS(1a4618Aq>3J3J13MN
B 
AFFQJAa'!Q)@)@)CDS!$qs*QT18Aq>3J3J13MN!Gad1f$hq!n&=&=a&@A
B 1:1:r   c            
         d} t        d      }t        | |t              }t        t        dz  dz  t	        dd      j                  t              ft        dd      dt        z  z
  dt        dz  z  z   t        dz  dz  z
  t	        dd      j                  t              ft        dd      dt        z  z   d	t        dz  z  z
  t        dz  dz  z   t	        dd      j                  t              ft        d
d      dt        z  z
  dt        dz  z  z   t        dz  dz  z
  t	        dd	      j                  t              fd      }|d   |k(  sJ y )Nr   r      r   r   r   i
   r        r&   r   )r   r   r   r   r
   r   r   )r   r   r   r(   s       r   test_basic_degree_3r/   5   s'   	A!HE5!,G		
Aa!Q((+,	!Q!A#	!Q$	&Aa	/!Q1H1H1KL	#q	BqD	 1QT6	)AqDF	2HQN4K4KA4NO	"a1Q3	1a4	'!Q$q&	0(1a.2I2I!2LM
B 1:r   c            	         d} g d}t        | |t              }|d   t        dt        z
  t        dd      j	                  t              fd      k(  sJ |d   t        t        t        dd      j	                  t              fdt        z
  t        dd      j	                  t              fd      k(  sJ |d   t        dt        z   t        dd      j	                  t              fd      k(  sJ |d   t        dt        z
  t        dd      j	                  t              fd      k(  sJ |d   t        d	t        z   t        dd      j	                  t              fdt        z
  t        dd      j	                  t              fd      k(  sJ |d
   t        dt        z   t        dd      j	                  t              fd      k(  sJ y )Nr   r   r   r   r   r   r   r    r    r   r   r   r   r   r    r   r   r$   )r   r   r   r
   r   r!   s      r   test_repeated_degree_1r2   C   s   	A$E5!,G1:AE8Aq>+B+B1+E#F#,. . . .1:Ax1~'>'>q'A#B$%E8Aq>+B+B1+E#F#,. . . . 1:BFHQN,C,CA,F#G#,. . . .1:AE8Aq>+B+B1+E#F#,. . . .1:BFHQN,C,CA,F#G$%E8Aq>+B+B1+E#F#,. . . . 1:BFHQN,C,CA,F#G#,. . . .r   c            
         d} g d}t        | |t              }|d   t        dt        dz  z  dz  dt        z  z   t        t        dk  t        dk\        ft        dz  dz  dt        z  z
  dz   t        t        dk  t        dk\        fd      k(  sJ |d   t        t        dz  dz  t        t        dk  t        dk\        fdt        dz  z  dz  dt        z  z   dz
  t        t        dk  t        dk\        fd      k(  sJ |d   t        t        dz  dt        z  z
  dz   t        t        dk  t        dk\        ft        dz  dt        z  z
  d	z   t        t        d
k  t        dk\        fd      k(  sJ |d
   t        dt        dz  z  dz  dt        z  z   dz
  t        t        d
k  t        dk\        ft        dz  dz  dt        z  z
  dz   t        t        dk  t        d
k\        fd      k(  sJ |d   t        t        dz  dz  dt        z  z
  dz   t        t        d
k  t        dk\        fdt        dz  z  dz  dt        z  z   dz
  t        t        dk  t        d
k\        fd      k(  sJ y )Nr   r1   r   r$   r   r   r    r,   r%   r   r&   r-      )r   r   r   r	   r!   s      r   test_repeated_degree_2r5   W   sj   	A$E5!,G1:R1WQY1_s16167J#K$%qDFQqSL1$4c!q&!q&6I#J#,. . . . 1:AqDFCQQ,?#@$&q!tGAI!Oa$7Q!VQ!V9L#M#,. . . . 1:AqD1Q3JNCQQ4G#H$%qD1Q3JNCQQ4G#H#,. . . . 1:Bq!tGAI!Ob$8#a1fa1f:M#N$%qDFQqSL1$4c!q&!q&6I#J#,. . . . 1:AqDFQqSL1$4c!q&!q&6I#J$&q!tGAI1$4r$93qAvqAv;N#O#,. . . .r   c                     d} g d}g d}t        | t        ||      }|t        t        t        dd      z  t        dd      z
  t        dk\  t        dk  z  fd	t        z  d
z
  t        dk\  t        dk  z  fdt        z  d	z
  t        dk\  t        d	k  z  ft        t        d	k\  t        dk  z  ft         dz  t        dd      z   t        dk\  t        dk  z  fdt        z  dz
  t        dk\  t        d
k  z  ft        t        dd	      z  t        dd      z   t        d
k\  t        dk  z  fdt        z  dz   t        dk\  t        dk  z  fdt        z  dz
  t        dk\  t        dk  z  f	      k(  sJ y )Nr   )
r   r   r       r%   r-         "   )
ir   r   r    r8   r,      -         r&   r8   r9   r7   r   r    r-   r      r%      x   r      ii9  r:   +   r;   r   r   r   r   r   XYsplines       r   test_10_points_degree_1rJ   o   s   	A+A-A!!Q1-FY(1a. 08B? BQ"WQRVWQWDXY\]^_\_bd\dghlmgmrswxrxfy[z !!a!q&Q!V)<=AFqTUvCV?W!"1xA 6aAF8KLrRStVYz\]ab\bghlngn[oNp !(1a. 08B? BQ"WQRVXQXDYZ]`ab]beh]hklprkrwx|~w~j  ]A !!b17qBw*?@	B B B Br   c            	          d} g d}g d}t        | t        ||      }|t        dt        dz  z  dz  t        t        dd      z  z
  t        dd      z
  t        d	k\  t        d
k  z  f      k(  sJ y )Nr   )r$   r-   r>   )r   r9   i  i
  i9  i  i  r$   r>   rE   rF   s       r   test_3_points_degree_2rM   |   sw    	AAA!!Q1-FYAqD(42F0F FRVX[I\ \_`df_fklprkr^stuuuur   c                     d} g d}g d}t        | t        ||      }|t        dt        dz  z  dz  t        t        dd      z  z   t        dd      z   t        d	k\  t        d
k  z  fdt        dz  z  dz  t        t        dd      z  z
  t        dd      z   t        d
k\  t        t        dd      k  z  fdt        dz  z  dz  t        t        dd      z  z   t        dd      z
  t        t        dd      k\  t        dk  z  f      k(  sJ y )Nr   )r$   r   r    r   r-   )r   r   r   r-   rA   r    iI  i  im  i  r$   r   i
  i:  i  r%   iimR  i+  r-   rE   rF   s       r   test_5_points_degree_2rO      s6   	AAA!!Q1-FY!Q$s
Qxd/C-C ChtUYFZ Z]^bd]dijnoio\pq $QT	$8E43H1H H8TXZ]K^ ^abfgaglmqyz{}~ql  aA   B %ad
4!HUD4I2I IHUZ\_L` `cdhpqrtuhvcv{|  AC  |C  cD   EF F F Fr   c                  2   d} g d}g d}t        | t        ||      }|t        dt        dz  z  dz  dt        dz  z  dz  z
  t        t        dd      z  z   dz   t        d	k\  t        dk  z  fd
t        dz  z  dz  dt        dz  z  dz  z   t        t        dd      z  z
  t        dd      z   t        dk\  t        dk  z  fdt        dz  z  dz  dt        dz  z  dz  z
  t        t        dd      z  z   t        dd      z
  t        dk\  t        dk  z  f      k(  sJ y )Nr   )r   r   r   r   r%      )rL   r   r   r8   r%   r<   i  i  iG  r   iN1  r   iyi+	 ip i  i  i&  i]  ij  iM  i  i  i/  rQ   rE   rF   s       r   test_6_points_degree_3rR      sa   	AAA!!Q1-FYQT	$q!tD @1XeUYEZCZ Z]^ ^abfhahmnrsms`tu %ad
4%1*T/ AAhvW[F\D\ \_ghmos_t twx|}w}  CD  HI  CI  wJ   K $QT	%$q!t)C- ?!HTSVDWBW WZbchjmZn nqrvwqw|}  BD  }D  qE   FG G G Gr   c            
      \   t        dd      } t        d      D cg c]  }|| z  	 }}t        d|t              }t        dd      }t        d||      }|d   j	                  t        |      |d   k(  sJ t        dt        d	D cg c]  }| |z  	 c}g d
      t        dt        z  | z  | t        k  t        d| z  k  z  fdt        d| z  z  z
  t        d| z  k\  t        d| z  k  z  ft        dd      dt        z  d| z  z  z   t        d| z  k\  t        d| z  k  z  f      k(  sJ y c c}w c c}w )NDeltaT)positiver    r   y)nonnegativer   )r   r   r    r8   )r   r,   r   r8   r   r   r8   )r   r   r   r   subsr   r   r   )rT   r   r   basisrV   basis2s         r   test_issue_19262r[      s4   Gd+E#Ah'QuW'E'a*E&Aq%+F8==A&)+++1&'Qq'
1UUaZA5L$AB	
Q%[1%<A5L9:	!Q!A#qw-	'!qw,1%<)HIKK K K ( 	(s   D$D)N)sympy.functionsr   r   sympy.core.numbersr   sympy.core.singletonr   sympy.core.symbolr   $sympy.functions.elementary.piecewiser   sympy.logic.boolalgr	   sympy.sets.setsr
   sympy.testing.pytestr   r   rV   r   r"   r*   r/   r2   r5   rJ   rM   rO   rR   r[    r   r   <module>re      sv    C ' " % : # $ %u~12. .(.0
BvF G GKr   