ML iU'dZddlmZddlmZmZmZddlmZm Z m Z m Z ddl m Z mZddlmZddlmZmZmZmZGdd e Zy ) z)>@U@U(V   WWYY " YYtwwyy$'')) , - WW " "DGGII . rc|j|jjg|j|jj|jjg|jjg|j|jjg|j|jj|jj|j|jj|jjg|jjg|j|jjg|j|jj|jj|j|jj|jj g|jjg|j|jjg|j |jj|jjg|jjg|j|jjg|j |jj|jj|j |jj|jjg|jjgyr)rrr r!anytr"r'rs r)test_simple_constraints_with_dynamic_typez4SolveSuite.test_simple_constraints_with_dynamic_typeMs 47799+ $''))TWW\\(J'Kdggll^\  WWYYK YYtwwyy$'',, /47799dggll1S T WW\\N  WWYYK YYtwwyy$'',, /47799dggii1P Q WW\\N 47799+ $''))TWW\\(J'Kdggll^\  WWYYK YYtwwyy$'',, /47799dggll1S T WW\\N rc|j|jjg|j|jj|jj|j |jj|jj g|jj g|j|jjg|j|jj|jj |j |jj|jjg|jj gyr)rrr r!r"r'r8rs r)test_both_normal_and_any_types_in_resultsz4SolveSuite.test_both_normal_and_any_types_in_resultsfs  WWYYK YYtwwyy$'')) ,dii 477<<.P Q WW\\N  WWYYK YYtwwyy$'',, /47799dggii1P Q WW\\N rc|j|jj|jjgg|jj|jjgdyNTallow_polymorphic)rrr ur5rs rtest_poly_no_constraintsz#SolveSuite.test_poly_no_constraintsusO  WWYY "  WW " "DGG$9$9 :"  rct|j|jj|jjg|j |jj|jj g|jj |jjg|jjgdyr=)rrr r@r'r"rs rtest_poly_trivial_freez!SolveSuite.test_poly_trivial_free}v  WWYY " YYtwwyy$'')) , - WWYY " WWYYK"  rct|j|jj|jjg|j |jj|jjg|jj|jjg|jjgdyr=)rrr r@r'rs rtest_poly_free_pairzSolveSuite.test_poly_free_pairrDrcp|jjj|jj}|j |jj|jj g|j |jj|jj g||g|gdy)N) upper_boundTr>)rr copy_modifiedr#rubr')rt_primes rtest_poly_free_pair_with_boundsz*SolveSuite.test_poly_free_pair_with_boundss''))))dggii)@  WWYY # YYtwwyy$''** - . g  I"  rcJ|j|jj|jjg|j |jj|jjg|jj |jj ggdyr=)rrrJucr'r5rs r+test_poly_free_pair_with_bounds_uninhabitedz6SolveSuite.test_poly_free_pair_with_bounds_uninhabitedsp  WWZZ $ YYtwwzz477:: . / WW " "DGG$9$9 : "  rc |j|jj|jj|jjg|j |jj|jj |j|jj|jj|j|jj|jj|j|jj|jjg|jj |jj |jj gdyr=) rrr r@r1r!r#r'r"rs rtest_poly_bounded_chainz"SolveSuite.test_poly_bounded_chains  WWYY 47799 - $''))TWWYY/ $''))TWWYY/ $''))TWWYY/ $''))TWWYY/   WWYY 47799 -"  rc ,|j|jj|jjg|j |jj|jj|j |jj|jj |j |jj|jjg|jj |jj gdyr=)rrr r1r'r"r!r#rs r#test_poly_reverse_overlapping_chainz.SolveSuite.test_poly_reverse_overlapping_chain  WWYY " $''))TWWYY/ $''))TWWYY/ $''))TWWYY/  WWYY ""  rc ,|j|jj|jjg|j |jj|jj|j |jj|jj |j |jj|jjg|jj |jjgdyr=)rrr r1r'r#r!r"rs rtest_poly_reverse_split_chainz(SolveSuite.test_poly_reverse_split_chainrTrc x|j|jj|jj|jjg|j |jj|jj |j|jj|jj|j|jj|jj|j|jj|jjggddy)N)NNNTr>) rrr r@r1r!r"r'r#rs rtest_poly_unsolvable_chainz%SolveSuite.test_poly_unsolvable_chains  WWYY 47799 - $''))TWWYY/ $''))TWWYY/ $''))TWWYY/ $''))TWWYY/   "  rc &|j|jjj|jjjg|j |jj|jj |j|jj|jj|j|jj|jjg|jjj|jjjfh|jjj|jj h|jjj|jj hi|jjj|jjh|jjj|jjhiyr) assert_transitive_closurerr idr1r!r#r'r"rs rtest_simple_chain_closurez$SolveSuite.test_simple_chain_closures$ && WWYY\\47799<< ( $''))TWWYY/ $''))TWWYY/ $''))TWWYY/  ggiillDGGIILL ) * WWYY\\DGGII; twwyyk B WWYY\\DGGII; twwyyk B rc |j|jjj|jjjg|j |jj|jj|j |jj|jj |j|jj|jjg|jjj|jjjfh|jjjt|jjj|jjhi|jjj|jj h|jjjtiyr) rZrr r[r1r'r"r!r#setrs rtest_reverse_chain_closurez%SolveSuite.test_reverse_chain_closures && WWYY\\47799<< ( $''))TWWYY/ $''))TWWYY/ $''))TWWYY/  ggiillDGGIILL ) * WWYY\\35$'')),, < WWYY\\DGGII; ce < rc ,|j|jjj|jjjg|j |jj|jj |j|jj|jjgt|jjjt|jjj|jj hi|jjj|jjh|jjj|jjhiyr) rZrr r[r1r!gtr'gar^r"rs r!test_secondary_constraint_closurez,SolveSuite.test_secondary_constraint_closures && WWYY\\47799<< ( YYtwwyy$''** -tyyDGGJJ/O P E WWYY\\35$'')),, = WWYY\\DGGII; twwzzl C  rNc^|g}t|||\}}t||t||y)Nr>)r r )rvars constraintsresults free_varsr?actual actual_frees rrzSolveSuite.assert_solves<  I/ +1B   VW%[),rct||\}}}|D]} |j| | ft||tt||tt||yr)r addr dict) rrerfgraphlowersuppers actual_graph actual_lowers actual_uppersvs rrZz$SolveSuite.assert_transitive_closure s_6Hk5Z2 m] A IIq!f  \5)T-(&1T-(&1rc$t|t|Sr)rrrtype_varbounds rr!zSolveSuite.supcs(L%88rc$t|t|Sr)rrrvs rr'zSolveSuite.subcs(J66r)returnNone)NF) rezlist[TypeVarLikeType]rflist[Constraint]rgzlist[None | Type]rhzlist[TypeVarLikeType] | Noner?boolrzr{) rezlist[TypeVarId]rfr|rnrrorrprrzr{)rwrrxrrzr)__name__ __module__ __qualname__rrr$r(r*r-r/r3r6r9r;rArCrFrLrOrQrSrVrXr\r_rcrrZr!r'rrrr s &          2                    37"' -#-&-# - 0 -  - - 22&2 2  2  2 2 97rrN)__doc__ __future__rmypy.constraintsrrr mypy.solverrr r mypy.test.helpersr r mypy.test.typefixturer mypy.typesrrrrrrrrrs1B"AAKK1-DDS7S7r