
    \h                         S SK JrJr  S SKJr  S SKJr  S SKJr  S SK	J
r
  S SKJr  S SKJr  S SKJr  \" S	5      u  rrS
 rS rS rS rS rS rS rS rS r\S 5       rS rg)    )bspline_basis_setinterpolating_spline)Rational)S)symbols)	Piecewise)And)Interval)slowzx,yc            
          Sn [        S5      n[        X[        5      n[        [        U5      5       H8  nX#   [	        S[        X3S-   5      R                  [        5      4S5      :X  a  M8   e   g )Nr         r   T)ranger   xlenr   r
   contains)dknotssplinesis       c/var/www/auris/envauris/lib/python3.13/site-packages/sympy/functions/special/tests/test_bsplines.pytest_basic_degree_0r      sh    	A!HE!,G3w< zY8A1u+=+F+Fq+I'J'02 2 	2 2 !    c            	         Sn [        S5      n[        X[        5      nUS   [        [        [	        SS5      R                  [        5      4S[        -
  [	        SS5      R                  [        5      4S5      :X  d   eUS   [        S[        -   [	        SS5      R                  [        5      4S[        -
  [	        SS5      R                  [        5      4S5      :X  d   eUS   [        S[        -   [	        SS5      R                  [        5      4S	[        -
  [	        SS	5      R                  [        5      4S5      :X  d   eg )
Nr   r   r      r         )r   r   r   r   r
   r   r   r   r   s      r   test_basic_degree_1r"      s'   	A!HE!,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            	      V   Sn [        S5      n[        X[        5      n[        [        S-  S-  [	        SS5      R                  [        5      4[        SS5      S[        -  -   [        S-  -
  [	        SS5      R                  [        5      4[        SS5      S[        -  -
  [        S-  S-  -   [	        SS5      R                  [        5      4S5      n[        [        R                  [        -
  [        S-  S-  -   [	        SS5      R                  [        5      4[        S	S5      S[        -  -   [        S-  -
  [	        SS5      R                  [        5      4S
S[        -  -
  [        S-  S-  -   [	        SS5      R                  [        5      4S5      nUS   U:X  d   eUS   U:X  d   eg )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*   %   sq   	A!HE!,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            
         Sn [        S5      n[        X[        5      n[        [        S-  S-  [	        SS5      R                  [        5      4[        SS5      S[        -  -
  S[        S-  -  -   [        S-  S-  -
  [	        SS5      R                  [        5      4[        SS5      S[        -  -   S	[        S-  -  -
  [        S-  S-  -   [	        SS5      R                  [        5      4[        S
S5      S[        -  -
  S[        S-  -  -   [        S-  S-  -
  [	        SS	5      R                  [        5      4S5      nUS   U:X  d   eg )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!,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            	         Sn / SQn[        X[        5      nUS   [        S[        -
  [        SS5      R	                  [        5      4S5      :X  d   eUS   [        [        [        SS5      R	                  [        5      4S[        -
  [        SS5      R	                  [        5      4S5      :X  d   eUS   [        S[        -   [        SS5      R	                  [        5      4S5      :X  d   eUS   [        S[        -
  [        SS5      R	                  [        5      4S5      :X  d   eUS   [        S	[        -   [        SS5      R	                  [        5      4S[        -
  [        SS5      R	                  [        5      4S5      :X  d   eUS
   [        S[        -   [        SS5      R	                  [        5      4S5      :X  d   e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!   s      r   test_repeated_degree_1r2   C   s   	A$E!,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            
         Sn / SQn[        X[        5      nUS   [        S[        S-  -  S-  S[        -  -   [        [        S:*  [        S:  5      4[        S-  S-  S[        -  -
  S-   [        [        S:*  [        S:  5      4S5      :X  d   eUS   [        [        S-  S-  [        [        S:*  [        S:  5      4S[        S-  -  S-  S[        -  -   S-
  [        [        S:*  [        S:  5      4S5      :X  d   eUS   [        [        S-  S[        -  -
  S-   [        [        S:*  [        S:  5      4[        S-  S[        -  -
  S	-   [        [        S
:*  [        S:  5      4S5      :X  d   eUS
   [        S[        S-  -  S-  S[        -  -   S-
  [        [        S
:*  [        S:  5      4[        S-  S-  S[        -  -
  S-   [        [        S:*  [        S
:  5      4S5      :X  d   eUS   [        [        S-  S-  S[        -  -
  S-   [        [        S
:*  [        S:  5      4S[        S-  -  S-  S[        -  -   S-
  [        [        S:*  [        S
:  5      4S5      :X  d   eg )Nr   r1   r   r$   r   r   r    r,   r%   r   r&   r-      )r   r   r   r	   r!   s      r   test_repeated_degree_2r5   W   sh   	A$E!,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                     Sn / SQn/ SQn[        U [        X5      nU[        [        [        SS5      -  [        SS5      -
  [        S:  [        S:*  -  4S	[        -  S
-
  [        S:  [        S:*  -  4S[        -  S	-
  [        S:  [        S	:*  -  4[        [        S	:  [        S:*  -  4[        * S-  [        SS5      -   [        S:  [        S:*  -  4S[        -  S-
  [        S:  [        S
:*  -  4[        [        SS	5      -  [        SS5      -   [        S
:  [        S:*  -  4S[        -  S-   [        S:  [        S:*  -  4S[        -  S-
  [        S:  [        S:*  -  45	      :X  d   eg )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-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            	          Sn / SQn/ SQn[        U [        X5      nU[        S[        S-  -  S-  [        [        SS5      -  -
  [        SS5      -
  [        S	:  [        S
:*  -  45      :X  d   eg )Nr   )r$   r-   r>   )r   r9   i  i
  i9  i  i  r$   r>   rE   rF   s       r   test_3_points_degree_2rM   |   su    	AAA!!Q-FYAqD(42F0F FRVX[I\ \_`df_fklprkr^stuuuur   c                     Sn / SQn/ SQn[        U [        X5      nU[        S[        S-  -  S-  [        [        SS5      -  -   [        SS5      -   [        S	:  [        S
:*  -  4S[        S-  -  S-  [        [        SS5      -  -
  [        SS5      -   [        S
:  [        [        SS5      :*  -  4S[        S-  -  S-  [        [        SS5      -  -   [        SS5      -
  [        [        SS5      :  [        S:*  -  45      :X  d   eg )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      s4   	AAA!!Q-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   Sn / SQn/ SQn[        U [        X5      nU[        S[        S-  -  S-  S[        S-  -  S-  -
  [        [        SS5      -  -   S-   [        S	:  [        S:*  -  4S
[        S-  -  S-  S[        S-  -  S-  -   [        [        SS5      -  -
  [        SS5      -   [        S:  [        S:*  -  4S[        S-  -  S-  S[        S-  -  S-  -
  [        [        SS5      -  -   [        SS5      -
  [        S:  [        S:*  -  45      :X  d   eg )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      s_   	AAA!!Q-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            
      Z   [        SSS9n [        S5       Vs/ s H  oU -  PM	     nn[        SU[        5      n[        SSS9n[        SX$5      nUS   R	                  [        U5      US   :X  d   e[        S[        S	 Vs/ s H  oU-  PM	     sn/ S
Q5      [        S[        -  U -  U [        :*  [        SU -  :*  -  4S[        SU -  -  -
  [        SU -  :  [        SU -  :*  -  4[        SS5      S[        -  SU -  -  -   [        SU -  :  [        SU -  :*  -  45      :X  d   eg s  snf s  snf )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[      s3   Gd+E#Ah'huWhE'a*E&Aq%+F8==A&)+++1&',Qq,'
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   