<s> """<STR_LIT>""" <EOL> from sympy import flatten , I , Integer , Poly , QQ , Rational , S , sqrt , symbols <EOL> from sympy . abc import x , y , z <EOL> from sympy . polys import PolynomialError <EOL> from sympy . solvers . polysys import solve_poly_system , solve_triangulated <EOL> from sympy . utilities . pytest import raises <EOL> def test_solve_poly_system ( ) : <EOL> assert solve_poly_system ( [ x - <NUM_LIT:1> ] , x ) == [ ( S . One , ) ] <EOL> assert solve_poly_system ( [ y - x , y - x - <NUM_LIT:1> ] , x , y ) is None <EOL> assert solve_poly_system ( [ y - x ** <NUM_LIT:2> , y + x ** <NUM_LIT:2> ] , x , y ) == [ ( S . Zero , S . Zero ) ] <EOL> assert solve_poly_system ( [ <NUM_LIT:2> * x - <NUM_LIT:3> , <NUM_LIT:3> * y / <NUM_LIT:2> - <NUM_LIT:2> * x , z - <NUM_LIT:5> * y ] , x , y , z ) == [ ( Rational ( <NUM_LIT:3> , <NUM_LIT:2> ) , Integer ( <NUM_LIT:2> ) , Integer ( <NUM_LIT:10> ) ) ] <EOL> assert solve_poly_system ( [ x * y - <NUM_LIT:2> * y , <NUM_LIT:2> * y ** <NUM_LIT:2> - x ** <NUM_LIT:2> ] , x , y ) == [ ( <NUM_LIT:0> , <NUM_LIT:0> ) , ( <NUM_LIT:2> , - sqrt ( <NUM_LIT:2> ) ) , ( <NUM_LIT:2> , sqrt ( <NUM_LIT:2> ) ) ] <EOL> assert solve_poly_system ( [ y - x ** <NUM_LIT:2> , y + x ** <NUM_LIT:2> + <NUM_LIT:1> ] , x , y ) == [ ( - I * sqrt ( S . Half ) , - S . Half ) , ( I * sqrt ( S . Half ) , - S . Half ) ] <EOL> f_1 = x ** <NUM_LIT:2> + y + z - <NUM_LIT:1> <EOL> f_2 = x + y ** <NUM_LIT:2> + z - <NUM_LIT:1> <EOL> f_3 = x + y + z ** <NUM_LIT:2> - <NUM_LIT:1> <EOL> a , b = sqrt ( <NUM_LIT:2> ) - <NUM_LIT:1> , - sqrt ( <NUM_LIT:2> ) - <NUM_LIT:1> <EOL> assert solve_poly_system ( [ f_1 , f_2 , f_3 ] , x , y , z ) == [ ( <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> ) , ( <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:0> ) , ( <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:0> ) , ( a , a , a ) , ( b , b , b ) ] <EOL> solution = [ ( <NUM_LIT:1> , - <NUM_LIT:1> ) , ( <NUM_LIT:1> , <NUM_LIT:1> ) ] <EOL> assert solve_poly_system ( [ Poly ( x ** <NUM_LIT:2> - y ** <NUM_LIT:2> ) , Poly ( x - <NUM_LIT:1> ) ] ) == solution <EOL> assert solve_poly_system ( [ x ** <NUM_LIT:2> - y ** <NUM_LIT:2> , x - <NUM_LIT:1> ] , x , y ) == solution <EOL> assert solve_poly_system ( [ x ** <NUM_LIT:2> - y ** <NUM_LIT:2> , x - <NUM_LIT:1> ] ) == solution <EOL> assert solve_poly_system ( <EOL> [ x + x * y - <NUM_LIT:3> , y + x * y - <NUM_LIT:4> ] , x , y ) == [ ( - <NUM_LIT:3> , - <NUM_LIT:2> ) , ( <NUM_LIT:1> , <NUM_LIT:2> ) ] <EOL> raises ( NotImplementedError , lambda : solve_poly_system ( [ x ** <NUM_LIT:3> - y ** <NUM_LIT:3> ] , x , y ) ) <EOL> raises ( PolynomialError , lambda : solve_poly_system ( [ <NUM_LIT:1> / x ] , x ) ) <EOL> def test_solve_biquadratic ( ) : <EOL> x0 , y0 , x1 , y1 , r = symbols ( '<STR_LIT>' ) <EOL> f_1 = ( x - <NUM_LIT:1> ) ** <NUM_LIT:2> + ( y - <NUM_LIT:1> ) ** <NUM_LIT:2> - r ** <NUM_LIT:2> <EOL> f_2 = ( x - <NUM_LIT:2> ) ** <NUM_LIT:2> + ( y - <NUM_LIT:2> ) ** <NUM_LIT:2> - r ** <NUM_LIT:2> <EOL> assert solve_poly_system ( [ f_1 , f_2 ] , x , y ) == [ ( S ( <NUM_LIT:3> ) / <NUM_LIT:2> - sqrt ( - <NUM_LIT:1> + <NUM_LIT:2> * r ** <NUM_LIT:2> ) / <NUM_LIT:2> , S ( <NUM_LIT:3> ) / <NUM_LIT:2> + sqrt ( - <NUM_LIT:1> + <NUM_LIT:2> * r ** <NUM_LIT:2> ) / <NUM_LIT:2> ) , <EOL> ( S ( <NUM_LIT:3> ) / <NUM_LIT:2> + sqrt ( - <NUM_LIT:1> + <NUM_LIT:2> * r ** <NUM_LIT:2> ) / <NUM_LIT:2> , S ( <NUM_LIT:3> ) / <NUM_LIT:2> - sqrt ( - <NUM_LIT:1> + <NUM_LIT:2> * r ** <NUM_LIT:2> ) / <NUM_LIT:2> ) ] <EOL> f_1 = ( x - <NUM_LIT:1> ) ** <NUM_LIT:2> + ( y - <NUM_LIT:2> ) ** <NUM_LIT:2> - r ** <NUM_LIT:2> <EOL> f_2 = ( x - <NUM_LIT:1> ) ** <NUM_LIT:2> + ( y - <NUM_LIT:1> ) ** <NUM_LIT:2> - r ** <NUM_LIT:2> <EOL> assert solve_poly_system ( [ f_1 , f_2 ] , x , y ) == [ ( <NUM_LIT:1> - sqrt ( ( ( <NUM_LIT:2> * r - <NUM_LIT:1> ) * ( <NUM_LIT:2> * r + <NUM_LIT:1> ) ) ) / <NUM_LIT:2> , S ( <NUM_LIT:3> ) / <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:1> + sqrt ( ( ( <NUM_LIT:2> * r - <NUM_LIT:1> ) * ( <NUM_LIT:2> * r + <NUM_LIT:1> ) ) ) / <NUM_LIT:2> , S ( <NUM_LIT:3> ) / <NUM_LIT:2> ) ] <EOL> query = lambda expr : expr . is_Pow and expr . exp is S . Half <EOL> f_1 = ( x - <NUM_LIT:1> ) ** <NUM_LIT:2> + ( y - <NUM_LIT:2> ) ** <NUM_LIT:2> - r ** <NUM_LIT:2> <EOL> f_2 = ( x - x1 ) ** <NUM_LIT:2> + ( y - <NUM_LIT:1> ) ** <NUM_LIT:2> - r ** <NUM_LIT:2> <EOL> result = solve_poly_system ( [ f_1 , f_2 ] , x , y ) <EOL> assert len ( result ) == <NUM_LIT:2> and all ( len ( r ) == <NUM_LIT:2> for r in result ) <EOL> assert all ( r . count ( query ) == <NUM_LIT:1> for r in flatten ( result ) ) <EOL> f_1 = ( x - x0 ) ** <NUM_LIT:2> + ( y - y0 ) ** <NUM_LIT:2> - r ** <NUM_LIT:2> <EOL> f_2 = ( x - x1 ) ** <NUM_LIT:2> + ( y - y1 ) ** <NUM_LIT:2> - r ** <NUM_LIT:2> <EOL> result = solve_poly_system ( [ f_1 , f_2 ] , x , y ) <EOL> assert len ( result ) == <NUM_LIT:2> and all ( len ( r ) == <NUM_LIT:2> for r in result ) <EOL> assert all ( len ( r . find ( query ) ) == <NUM_LIT:1> for r in flatten ( result ) ) <EOL> def test_solve_triangualted ( ) : <EOL> f_1 = x ** <NUM_LIT:2> + y + z - <NUM_LIT:1> <EOL> f_2 = x + y ** <NUM_LIT:2> + z - <NUM_LIT:1> <EOL> f_3 = x + y + z ** <NUM_LIT:2> - <NUM_LIT:1> <EOL> a , b = sqrt ( <NUM_LIT:2> ) - <NUM_LIT:1> , - sqrt ( <NUM_LIT:2> ) - <NUM_LIT:1> <EOL> assert solve_triangulated ( [ f_1 , f_2 , f_3 ] , x , y , z ) == [ ( <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> ) , ( <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:0> ) , ( <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:0> ) ] <EOL> dom = QQ . algebraic_field ( sqrt ( <NUM_LIT:2> ) ) <EOL> assert solve_triangulated ( [ f_1 , f_2 , f_3 ] , x , y , z , domain = dom ) == [ ( <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> ) , ( <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:0> ) , ( <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:0> ) , ( a , a , a ) , ( b , b , b ) ] <EOL> def test_solve_issue_3686 ( ) : <EOL> roots = solve_poly_system ( [ ( ( x - <NUM_LIT:5> ) ** <NUM_LIT:2> / <NUM_LIT> + ( y - S ( <NUM_LIT:5> ) / <NUM_LIT:10> ) ** <NUM_LIT:2> / <NUM_LIT> ) - <NUM_LIT:1> , x ] , x , y ) <EOL> assert roots == [ ( <NUM_LIT:0> , S ( <NUM_LIT:1> ) / <NUM_LIT:2> + <NUM_LIT:15> * sqrt ( <NUM_LIT> ) ) , ( <NUM_LIT:0> , S ( <NUM_LIT:1> ) / <NUM_LIT:2> - <NUM_LIT:15> * sqrt ( <NUM_LIT> ) ) ] <EOL> roots = solve_poly_system ( [ ( ( x - <NUM_LIT:5> ) ** <NUM_LIT:2> / <NUM_LIT> + ( y - <NUM_LIT> / <NUM_LIT:10> ) ** <NUM_LIT:2> / <NUM_LIT> ) - <NUM_LIT:1> , x ] , x , y ) <EOL> assert len ( roots ) == <NUM_LIT:2> <EOL> assert roots [ <NUM_LIT:0> ] [ <NUM_LIT:0> ] == <NUM_LIT:0> <EOL> assert roots [ <NUM_LIT:0> ] [ <NUM_LIT:1> ] . epsilon_eq ( - <NUM_LIT> , <NUM_LIT> ) <EOL> assert roots [ <NUM_LIT:1> ] [ <NUM_LIT:0> ] == <NUM_LIT:0> <EOL> assert roots [ <NUM_LIT:1> ] [ <NUM_LIT:1> ] . epsilon_eq ( <NUM_LIT> , <NUM_LIT> ) </s>
