
    bi                         d dl Z d dlZd dlmZ d dlZd dlZd dlmZ	 d dl
Zd dlZej                  j                   e j                  d       d       G d dej                                Zy)    N)sparsebuiltinzBuiltin Algebra not available)reasonc                   P    e Zd Zed        Zed        Zd Zd Zd Zd Z	d Z
d Zy	)
codegen_vectors_testsc           	         t        j                  ddgd      }t        j                  ddg      }t        j                  ddgddgdd	gd
dgddgg      }t        j                  g d      }t        j
                   t        j                  t        |            z  }|j                  d   }|j                  d   }dddddddd}t        j                  d      }	|	j                  d      st        j                  d        |	j                  d|||||d| |	j                  dddddd      }
t         j"                  j%                  |
       || _        || _        || _        || _        || _        || _        || _        || _        y )Ng      &@        csc)format      r         )r   r   id   P   Fg:0yE>g{Gz?g?i'  T)verboseeps_abseps_relrhoalphamax_iterwarm_startingr   algebraOSQP_CAPABILITY_DERIVATIVESzNo derivatives capabilityPqAlucodegen_vec_out
vec_emosqpfoo)extension_nameinclude_codegen_srcforce_rewriteprefixcompile )r   diagsnparray
csc_matrixinfoneslenshapeosqpOSQPhas_capabilitypytestskipsetupcodegensyspathappendmnr   r    r!   r"   r#   opts)clsr   r    r!   r#   r"   r@   r?   rA   model	model_dirs              Z/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/osqp/tests/codegen_vectors_test.py
setUpClassz codegen_vectors_tests.setUpClass   sq   LL$U3HHaVAwB"bAq6Aq6JKHH)*VVGbggc!fo%GGAJGGAJ!
 		),##$ABKK344a1Q!4t4MM' $ " 
	 		"    c                 2    t        j                  dd       y )Nr$   T)ignore_errors)shrmtree)rB   s    rE   tearDownClassz#codegen_vectors_tests.tearDownClass8   s    
		#48rG   c           	          t        j                  d      | _         | j                  j                  d| j                  | j
                  | j                  | j                  | j                  d| j                   y )Nr   r   r   r,   )
r5   r6   rC   r:   r   r    r!   r"   r#   rA   )selfs    rE   setUpzcodegen_vectors_tests.setUp<   sN    YYy1


W466TVVtvv466WTYYWrG   c                     dd l }|j                         \  }}}}}t        j                  |t	        j
                  ddg      d       t        j                  |t	        j
                  g d      d       y )Nr   r	         @r   decimalgI?r	   DpTUU?r	   r	   )r%   solvenptestassert_array_almost_equalr.   r/   )rN   r%   xy_s        rE   
test_solvez codegen_vectors_tests.test_solve@   s]     #((*1aA 	((BHHc3Z,@!L((BHH5\,]ghirG   c                 v   dd l }t        j                  ddg      }|j                  |       |j	                         \  }}}}}t        j                  |t        j                  ddg      d       t        j                  |t        j                  g d	      d       |j                  | j                         y )
Nr   g      $@g      4@)r    r	   rQ   r   rR   )gI
@r	   g㪪@r	   r	   )r%   r.   r/   update_data_vecrV   rW   rX   r    )rN   r%   q_newrY   rZ   r[   s         rE   test_update_qz#codegen_vectors_tests.test_update_qJ   s     $&""U"+"((*1aA 	((BHHc3Z,@!L((BHH5\,]ghi 	""TVV",rG   c                    dd l }dt        j                  | j                        z  }|j	                  |       |j                         \  }}}}}t        j                  |t        j                  ddg      d       t        j                  |t        j                  g d      d       |j	                  | j                         y )	Nr         Y)r"   r	   rQ   r   rR   rT   )
r%   r.   r2   r?   r^   rV   rW   rX   r/   r"   )rN   r%   l_newrY   rZ   r[   s         rE   test_update_lz#codegen_vectors_tests.test_update_lY   s     (""U"+"((*1aA 	((BHHc3Z,@!L((BHH5\,]ghi 	""TVV",rG   c                    dd l }dt        j                  | j                        z  }|j	                  |       |j                         \  }}}}}t        j                  |t        j                  ddg      d       t        j                  |t        j                  g d      d       |j	                  | j                         y )	Nr        @@)r#   gX7dÿgJ&vtr   rR   )r	   r	   rU   r	   r	   )
r%   r.   r2   r?   r^   rV   rW   rX   r/   r#   )rN   r%   u_newrY   rZ   r[   s         rE   test_update_uz#codegen_vectors_tests.test_update_uh   s     (""U"+"((*1aA 	((BHHo~5V,Wabc((BHH5U,V`ab 	""TVV",rG   c                    dd l }dt        j                  | j                        z  }dt        j                  | j                        z  }|j	                  ||       |j                         \  }}}}}t        j                  |t        j                  ddg      d       t        j                  |t        j                  g d	      d       |j	                  | j                  | j                         y )
Nr   rb   rf   )r"   r#   g
yJga33r   rR   )r	   r	   r	   gr	   )r%   r.   r2   r?   r^   rV   rW   rX   r/   r"   r#   )rN   r%   rc   rg   rY   rZ   r[   s          rE   test_update_boundsz(codegen_vectors_tests.test_update_boundsw   s     ((""Ue"4"((*1aA 	((BHHk<5P,Q[\]((BHH5O,PZ[\ 	""TVVtvv"6rG   N)__name__
__module____qualname__classmethodrF   rL   rO   r\   r`   rd   rh   rj   r,   rG   rE   r   r      sI    ( (T 9 9Xj---7rG   r   )r5   numpyr.   scipyr   unittestr8   numpy.testingtestingrW   shutilrJ   r<   markskipifalgebra_availableTestCaser   r,   rG   rE   <module>ry      sh           
 ...y99Baby7H-- y7 cy7rG   