+
    *h"                        ^ RI t ^ RIt^ RIt^ RIHt ^ RIt^ RIt^ RIHtHt R t	R t
R tR t^. RO. RORR..utt^R.^..utt^R^.RR.^R..utt. t ! R R	]P(                  4      t]P-                  ]4        ! R
 R]P(                  4      t]P-                  ]4       RR lt]R8X  dE   ]! ] P6                  4      ^8X  d
   ]! 4        R# ] P6                  R,           F  t]! ]4       K  	  R# R# )    N)basename)solve	itersolvec           	         . p\        V 4       F  pVP                  4       pV'       d   V^ ,          R8X  d   K+  V^ ,          R8X  dI   \        V4      ^8X  g   Q hV^,          R8X  g   Q hVR,           Uu. uF  p\        V4      NK  	  upw  rVK  V^ ,          R8X  d    MAVR,          R8X  g   Q hTP	                  VRR  Uu. uF  p\        V4      NK  	  up4       K  	  \        V4      X8X  g   Q hVX3# u upi u upi )	z^
read a DIMACS cnf formatted file from `path`, and return the clauses
and number of variables
cpcnf:      N%0N)opensplitlenintappend)pathclauseslinepartsnn_vars	n_clauseslits   &       ,lib/python3.14/site-packages/test_pycosat.pyread_cnfr      s    
 GT


aC8s?u:?"?8u$$$16s <AQ <F8s?RyCE#2J7JSCJ78  w<9$$$F? !=
 8s   4C6C;
c                   a / oV F  p\        V^ 8  4      S\        V4      &   K  	  \        ;QJ d    V3R lV  4       F  '       d   K   R# 	  R# ! V3R lV  4       4      # )z(
evaluate the clauses with the solution
c              3      <"   T F?  p\         ;QJ d    V3R  lV 4       F  '       g   K   RM	  RM! V3R  lV 4       4      x  KA  	  R# 5i)c              3   n   <"   T F*  pS\        V4      ,          \        V^ 8  4      ,          x  K,  	  R# 5i)r   N)absbool).0isol_varss   & r   	<genexpr>%evaluate.<locals>.<genexpr>.<genexpr>)   s*     B6a8CF#d1q5k116s   25TFN)any)r#   clauser%   s   & r   r&   evaluate.<locals>.<genexpr>)   s6      &$6 sB6BsssB6BBB$s   A
A
 A
FT)r"   r!   all)r   solr$   r%   s   && @r   evaluater-   "   se     HA;Q 3 &$&33 &3 &3 &$& & &    c              #      "    \         P                  ! V 4      p\        V\        4      '       d(   Vx  T P	                  V Uu. uF  q") NK  	  up4       KT  R# u upi 5i)TN)pycosatr   
isinstancelistr   )r   r,   xs   &  r   py_itersolver4   ,   sK     
mmG$c4  INN,1B,- -s   AAAAc                    \         P                  P                  R \        V 4      ,          4       \         P                  P	                  4        \        V 4      w  r\         P                  P                  RV\        V4      3,          4       \         P                  P	                  4        ^ p\        W4       F\  p\         P                  P                  R4       \         P                  P	                  4        \        W4      '       g   Q hV^,          pK^  	  \         P                  P                  RV,          4       \         P                  P	                  4        V# )z%30s:  zvars: %6d   cls: %6d   .z%d
)	sysstdoutwriter   flushr   r   r   r-   )r   r   r   n_solr,   s   &    r   process_cnf_filer<   5   s    JJY$/0JJtnOGJJ.&#g,1GGHJJE)



%%%%
	 *
 JJVe^$JJLr.   c                   z   a  ] tR t^]t 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V tR# )	TestSolvec                   V P                  \        \        ^^.R..R4       V P                  \        \        ^4       V P                  \        \        R4       V P                  \        \        \        4       4       V P                  \        \        R.4       V P                  \        \        ^^.^R..^4       V P                  \        \        ^^.^^ ..4       R#    Ag      ?aN)assertRaises	TypeErrorr   object
ValueErrorselfs   &r   test_wrong_argsTestSolve.test_wrong_args_   s    )UaVbTNC@)UA.)UC0)UFH5)USE2)UaVaY,?C*eq!fq!f-=>r.   c           	         \        ^4       F@  pT P                  \        . V4      \        ^V^,           4       Uu. uF  q") NK  	  up4       KB  	  R# u upi )   N)rangeassertEqualr   )rJ   r   r$   s   &  r   test_no_clausesTestSolve.test_no_clausesh   sB    qAU2q\aQ+H1B+HI +Hs   Ac           
     2   V P                  \        \        4      . RO4       \        P                  ^ ,          ^8X  dO   \         UUu. uF  q Uu. uF  p\        V4      NK  	  upNK  	  pppV P                  \        V4      . RO4       R# R# u upi u uppi rA   NrA   rD      )rP   r   clauses1r7   version_infolong)rJ   r)   r   clss   &   r   	test_cnf1TestSolve.test_cnf1l   sq    x*<=A!#?GHxV0#DI0xCHU3Z);< $0Hs   BB#BBc                Z    V P                  \        \        \        4      4      . RO4       R# rT   )rP   r   iterrY   rI   s   &r   test_iter_clausesTestSolve.test_iter_clausesr   s    tH~.0BCr.   c           
         T P                  \        \         Uu. uF  p\        V4      NK  	  up4      . RO4       R# u upi rT   )rP   r   rY   r`   rJ   r)   s   & r   test_each_clause_iterTestSolve.test_each_clause_iteru   s0    8D8V8DE+	-D   =c                Z    V P                  \        \        \        4      4      . RO4       R# rT   )rP   r   tuplerY   rI   s   &r   test_tuple_calusesTestSolve.test_tuple_calusesy   s    uX/1CDr.   c           
         T P                  \        \         Uu. uF  p\        V4      NK  	  up4      . RO4       R# u upi rT   )rP   r   rY   ri   rd   s   & r   test_each_clause_tuples!TestSolve.test_each_clause_tuples|   s0    HEH&fHEF+	-Erg   c                P    R  pV P                  \        V! 4       4      . RO4       R# )c               3   0   "   \          F  p V x  K	  	  R # 5iNrY   r)   s    r   gen_clauses/TestSolve.test_gen_clauses.<locals>.gen_clauses        " #   NrU   )rP   r   rJ   rt   s   & r   test_gen_clausesTestSolve.test_gen_clauses   s!    	 	{}-/ABr.   c           	         T P                  \        \         Uu. uF  pR  V 4       NK  	  up4      . RO4       R# u upi )c              3   $   "   T F  qx  K  	  R # 5irq    r#   r3   s   & r   r&   1TestSolve.test_each_clause_gen.<locals>.<genexpr>   s      3FqF   NrU   rP   r   rY   rd   s   & r   test_each_clause_genTestSolve.test_each_clause_gen   s2    (K( 3F 3(KL+	-Ks   ;c                Z     ! R  R4      pV P                  \        \        V! 4       4       R# )c                   &   a  ] tR t^t o R tRtV tR# )%TestSolve.test_bad_iter.<locals>.Liarc                    R # rq   r}   rI   s   &r   __iter__.TestSolve.test_bad_iter.<locals>.Liar.__iter__       tr.   r}   N__name__
__module____qualname____firstlineno__r   __static_attributes____classdictcell____classdict__s   @r   Liarr           ++r.   r   N)rE   rF   r   rJ   r   s   & r   test_bad_iterTestSolve.test_bad_iter   s     	, 	,)UDF3r.   c                D    V P                  \        \        4      R 4       R# )UNSATN)rP   r   clauses2rI   s   &r   	test_cnf2TestSolve.test_cnf2   s    x'2r.   c                H    V P                  \        \        4      RR.4       R# )rA   Nr   rV   rP   r   clauses3rI   s   &r   	test_cnf3TestSolve.test_cnf3   s    x2r(3r.   c                L    V P                  \        \        ^R7      . RO4       R# )   varsNr   rV   rD   r   rI   s   &r   test_cnf3_3varsTestSolve.test_cnf3_3vars   s    xa0,?r.   c                    \        ^^4       F/  pT P                  \        \        VR7      V^8  d   RM. RO4       K1  	  R# )rA   
prop_limitUNKNOWNNrU   )rO   rP   r   rY   )rJ   lims   & r   test_cnf1_prop_limitTestSolve.test_cnf1_prop_limit   s6    B<CU8<*-'Y7IK  r.   c                L    V P                  \        \        ^R7      . RO4       R# )rN   r   N)rA   rV   rD   rW   rX   iir   rI   s   &r   test_cnf1_varsTestSolve.test_cnf1_vars   s    xa03	5r.   r}   N)r   r   r   r   rK   rQ   r]   ra   re   rj   rm   ry   r   r   r   r   r   r   r   r   r   r   s   @r   r>   r>   ]   s[     ?J=D-E-C-4
34@K
5 5r.   r>   c                   z   a  ] tR t^t 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V tR# )TestIterSolvec                   V P                  \        \        ^^.R..R4       V P                  \        \        ^4       V P                  \        \        R4       V P                  \        \        \        4       4       V P                  \        \        R.4       V P                  \        \        ^^.^R..^4       V P                  \        \        ^^.^^ ..4       R# r@   )rE   rF   r   rG   rH   rI   s   &r   rK   TestIterSolve.test_wrong_args   s    )Y!Q"D)Y2)Y4)Y9)Y6)Y!Q!T0CQG*i1a&1a&1ABr.   c                    \        ^4       F9  pV P                  \        \        \	        . VR7      4      4      ^V,          4       K;  	  R# )rN   r   N)rO   rP   r   r2   r   )rJ   r   s   & r   rQ   TestIterSolve.test_no_clauses   s5    qASi&;!<=qAvF r.   c           
         T P                  \        ;QJ d>    R  \        \        \        4      4       4       F  '       d   K   R4       R# 	  R4       R# ! R  \        \        \        4      4       4       4      4       R# )c              3   B   "   T F  p\        \        V4      x  K  	  R # 5irq   r-   rY   r#   r,   s   & r   r&   2TestIterSolve.test_iter_clauses.<locals>.<genexpr>   s!      75 9<HXs335   FTN)
assertTruer+   r   r`   rY   rI   s   &r   ra   TestIterSolve.test_iter_clauses   sU     7%d8n57 	8 	8 7%d8n57 7 	8r.   c                P   T P                  \        ;QJ dN    R  \        \         Uu. uF  p\	        V4      NK  	  up4       4       F  '       d   K   R4       R# 	  R4       R# ! R  \        \         Uu. uF  p\	        V4      NK  	  up4       4       4      4       R# u upi u upi )c              3   B   "   T F  p\        \        V4      x  K  	  R # 5irq   r   r   s   & r   r&   6TestIterSolve.test_each_clause_iter.<locals>.<genexpr>   s"      NL 9<HXs33Lr   FTN)r   r+   r   rY   r`   rd   s   & r   re   #TestIterSolve.test_each_clause_iter   s     N%(&K(tF|(&KLN 	O 	O N%(&K(tF|(&KLN N 	O&K&K   B4B#c           
         T P                  \        ;QJ d>    R  \        \        \        4      4       4       F  '       d   K   R4       R# 	  R4       R# ! R  \        \        \        4      4       4       4      4       R# )c              3   B   "   T F  p\        \        V4      x  K  	  R # 5irq   r   r   s   & r   r&   3TestIterSolve.test_tuple_caluses.<locals>.<genexpr>   s!      86 9<HXs336r   FTN)r   r+   r   ri   rY   rI   s   &r   rj    TestIterSolve.test_tuple_caluses   sU     8%eHo68 	9 	9 8%eHo68 8 	9r.   c                P   T P                  \        ;QJ dN    R  \        \         Uu. uF  p\	        V4      NK  	  up4       4       F  '       d   K   R4       R# 	  R4       R# ! R  \        \         Uu. uF  p\	        V4      NK  	  up4       4       4      4       R# u upi u upi )c              3   B   "   T F  p\        \        V4      x  K  	  R # 5irq   r   r   s   & r   r&   8TestIterSolve.test_each_clause_tuples.<locals>.<genexpr>   s"      OM 9<HXs33Mr   FTN)r   r+   r   rY   ri   rd   s   & r   rm   %TestIterSolve.test_each_clause_tuples   s     O%8&L8uV}8&LMO 	P 	P O%8&L8uV}8&LMO O 	P&L&Lr   c           	         R  pT P                  \        ;QJ d6    R \        V! 4       4       4       F  '       d   K   R4       R# 	  R4       R# ! R \        V! 4       4       4       4      4       R# )c               3   0   "   \          F  p V x  K	  	  R # 5irq   rr   rs   s    r   rt   3TestIterSolve.test_gen_clauses.<locals>.gen_clauses   rv   rw   c              3   B   "   T F  p\        \        V4      x  K  	  R # 5irq   r   r   s   & r   r&   1TestIterSolve.test_gen_clauses.<locals>.<genexpr>   s!      64 9<HXs334r   FTN)r   r+   r   rx   s   & r   ry   TestIterSolve.test_gen_clauses   sX    	 	 6%km46 	7 	7 6%km46 6 	7r.   c                H   T P                  \        ;QJ dL    R  \        \         Uu. uF  pR V 4       NK  	  up4       4       F  '       d   K   R4       R# 	  R4       R# ! R  \        \         Uu. uF  pR V 4       NK  	  up4       4       4      4       R# u upi u upi )c              3   B   "   T F  p\        \        V4      x  K  	  R # 5irq   r   r   s   & r   r&   5TestIterSolve.test_each_clause_gen.<locals>.<genexpr>   s%      32 9<HXs332r   c              3   $   "   T F  qx  K  	  R # 5irq   r}   r~   s   & r   r&   r      s     ':6a6r   FTN)r   r+   r   rY   rd   s   & r   r   "TestIterSolve.test_each_clause_gen   s     3%'/'1'/ @F':6':'/'1 23 	4 	4 3%'/'1'/ @F':6':'/'1 23 3 	4'1 '1s   B2Bc                Z     ! R  R4      pV P                  \        \        V! 4       4       R# )c                   &   a  ] tR t^t o R tRtV tR# ))TestIterSolve.test_bad_iter.<locals>.Liarc                    R # rq   r}   rI   s   &r   r   2TestIterSolve.test_bad_iter.<locals>.Liar.__iter__   r   r.   r}   Nr   r   s   @r   r   r      r   r.   r   N)rE   rF   r   r   s   & r   r   TestIterSolve.test_bad_iter   s     	, 	,)Y7r.   c                B   \        \        \        4       F"  pV P                  \	        \        V4      4       K$  	  \        \        \        \        R 7      4      pV P                  \        V4      ^4       V P                  \        \        R V 4       4      4      ^4       R# )r   c              3   8   "   T F  p\        V4      x  K  	  R # 5irq   ri   r   s   & r   r&   *TestIterSolve.test_cnf1.<locals>.<genexpr>   s      <tst   N)	r   rY   nvars1r   r-   r2   rP   r   set)rJ   r,   solss   &  r   r]   TestIterSolve.test_cnf1   sm    Xv.COOHXs34 / IhV45TB'S <t <<=rBr.   c           	        \        R  \        \        4       4       4      p\        ^
4       F^  p\        P
                  ! \        4      p\        P                  ! V4       V P                  \        R \        V4       4       4      V4       K`  	  R# )c              3   8   "   T F  p\        V4      x  K  	  R # 5irq   r   r   s   & r   r&   5TestIterSolve.test_shuffle_clauses.<locals>.<genexpr>        A-@cuSzz-@r   c              3   8   "   T F  p\        V4      x  K  	  R # 5irq   r   r   s   & r   r&   r      s      F~s~r   N)	r   r   rY   rO   copydeepcopyrandomshufflerP   )rJ   ref_sols_r	   s   &   r   test_shuffle_clauses"TestIterSolve.test_shuffle_clauses   sa    AYx-@AArA--)CNN3S Fy~ FF%'	 r.   c                    \        R  \        \        4       4       4      p^d\        P                  ! \        4      ,          pV P                  \        R \        V4       4       4      V4       R# )c              3   8   "   T F  p\        V4      x  K  	  R # 5irq   r   r   s   & r   r&   2TestIterSolve.test_many_clauses.<locals>.<genexpr>   r   r   c              3   8   "   T F  p\        V4      x  K  	  R # 5irq   r   r   s   & r   r&   r      s     B>CU3ZZ>r   N)r   r   rY   r   r   rP   )rJ   r   r	   s   &  r   test_many_clausesTestIterSolve.test_many_clauses   sL    AYx-@AADMM(++B9S>BB!	#r.   c                `    V P                  \        \        \        \        4      4      . 4       R # rq   )rP   r2   r   r   nvars2rI   s   &r   r   TestIterSolve.test_cnf2   s    i&9:B?r.   c                d    V P                  \        \        \        ^4      4      . RO. RO.4       R# )r   Nr   )r   rV   r   )rP   r2   r   r   rI   s   &r   r   TestIterSolve.test_cnf3_3vars   s&    i!45&4	6r.   c           	     Z    V P                  \        \        \        ^R7      4      . 4       R# )r
   r   N)rP   r2   r   rY   rI   s   &r   r   "TestIterSolve.test_cnf1_prop_limit   s    iQ?@"Er.   r}   N)r   r   r   r   rK   rQ   ra   re   rj   rm   ry   r   r   r]   r   r   r   r   r   r   r   r   s   @r   r   r      s]     CG8O9P74
8
C'#@6F Fr.   r   c                    \        R \        P                  ,          4       \        R\        P                  ,          4       \        R\        P
                  ,          4       \        P                  ! 4       p\         FC  p\        V4       F1  pVP                  \        P                  P                  V4      4       K3  	  KE  	  \        P                  ! V R7      pVP                  V4      # )zsys.prefix: %szsys.version: %szpycosat version: %r)	verbosity)printr7   prefixversionr0   __version__unittest	TestSuitetestsrO   addTestdefaultTestLoaderloadTestsFromTestCaseTextTestRunnerrun)r  repeatsuiter\   r   runners   &&    r   r  r     s    	
SZZ
'(	
ckk
)*	
'"5"5
56 EvAMM(44JJ3OP   $$y9F::er.   __main__:rA   NN)rA   r   r   )r   rX   r   r   rD   rW   rV   )rA   rA   )r7   r   r   os.pathr   r	  r0   r   r   r   r-   r4   r<   r   rY   r   r   nvars3r   r  TestCaser>   r   r   r  r   r   argvr   r}   r.   r   <module>r     s   
      $,&. z=2r(; 
 taSk  AwR1b'2  	B5!! B5H Y RFH%% RFh ]  z
388}HHRLLDT" !	 r.   