<s> """<STR_LIT>""" <EOL> from sympy . polys . domains import PythonRational as QQ <EOL> from sympy . utilities . pytest import raises <EOL> def test_PythonRational__init__ ( ) : <EOL> assert QQ ( <NUM_LIT:0> ) . p == <NUM_LIT:0> <EOL> assert QQ ( <NUM_LIT:0> ) . q == <NUM_LIT:1> <EOL> assert QQ ( <NUM_LIT:0> , <NUM_LIT:1> ) . p == <NUM_LIT:0> <EOL> assert QQ ( <NUM_LIT:0> , <NUM_LIT:1> ) . q == <NUM_LIT:1> <EOL> assert QQ ( <NUM_LIT:0> , - <NUM_LIT:1> ) . p == <NUM_LIT:0> <EOL> assert QQ ( <NUM_LIT:0> , - <NUM_LIT:1> ) . q == <NUM_LIT:1> <EOL> assert QQ ( <NUM_LIT:1> ) . p == <NUM_LIT:1> <EOL> assert QQ ( <NUM_LIT:1> ) . q == <NUM_LIT:1> <EOL> assert QQ ( <NUM_LIT:1> , <NUM_LIT:1> ) . p == <NUM_LIT:1> <EOL> assert QQ ( <NUM_LIT:1> , <NUM_LIT:1> ) . q == <NUM_LIT:1> <EOL> assert QQ ( - <NUM_LIT:1> , - <NUM_LIT:1> ) . p == <NUM_LIT:1> <EOL> assert QQ ( - <NUM_LIT:1> , - <NUM_LIT:1> ) . q == <NUM_LIT:1> <EOL> assert QQ ( - <NUM_LIT:1> ) . p == - <NUM_LIT:1> <EOL> assert QQ ( - <NUM_LIT:1> ) . q == <NUM_LIT:1> <EOL> assert QQ ( - <NUM_LIT:1> , <NUM_LIT:1> ) . p == - <NUM_LIT:1> <EOL> assert QQ ( - <NUM_LIT:1> , <NUM_LIT:1> ) . q == <NUM_LIT:1> <EOL> assert QQ ( <NUM_LIT:1> , - <NUM_LIT:1> ) . p == - <NUM_LIT:1> <EOL> assert QQ ( <NUM_LIT:1> , - <NUM_LIT:1> ) . q == <NUM_LIT:1> <EOL> assert QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) . p == <NUM_LIT:1> <EOL> assert QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) . q == <NUM_LIT:2> <EOL> assert QQ ( <NUM_LIT:3> , <NUM_LIT:4> ) . p == <NUM_LIT:3> <EOL> assert QQ ( <NUM_LIT:3> , <NUM_LIT:4> ) . q == <NUM_LIT:4> <EOL> assert QQ ( <NUM_LIT:2> , <NUM_LIT:2> ) . p == <NUM_LIT:1> <EOL> assert QQ ( <NUM_LIT:2> , <NUM_LIT:2> ) . q == <NUM_LIT:1> <EOL> assert QQ ( <NUM_LIT:2> , <NUM_LIT:4> ) . p == <NUM_LIT:1> <EOL> assert QQ ( <NUM_LIT:2> , <NUM_LIT:4> ) . q == <NUM_LIT:2> <EOL> def test_PythonRational__hash__ ( ) : <EOL> assert hash ( QQ ( <NUM_LIT:0> ) ) == hash ( <NUM_LIT:0> ) <EOL> assert hash ( QQ ( <NUM_LIT:1> ) ) == hash ( <NUM_LIT:1> ) <EOL> assert hash ( QQ ( <NUM_LIT> ) ) == hash ( <NUM_LIT> ) <EOL> def test_PythonRational__int__ ( ) : <EOL> assert int ( QQ ( - <NUM_LIT:1> , <NUM_LIT:4> ) ) == <NUM_LIT:0> <EOL> assert int ( QQ ( <NUM_LIT:1> , <NUM_LIT:4> ) ) == <NUM_LIT:0> <EOL> assert int ( QQ ( - <NUM_LIT:5> , <NUM_LIT:4> ) ) == - <NUM_LIT:1> <EOL> assert int ( QQ ( <NUM_LIT:5> , <NUM_LIT:4> ) ) == <NUM_LIT:1> <EOL> def test_PythonRational__float__ ( ) : <EOL> assert float ( QQ ( - <NUM_LIT:1> , <NUM_LIT:2> ) ) == - <NUM_LIT:0.5> <EOL> assert float ( QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) ) == <NUM_LIT:0.5> <EOL> def test_PythonRational__abs__ ( ) : <EOL> assert abs ( QQ ( - <NUM_LIT:1> , <NUM_LIT:2> ) ) == QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) <EOL> assert abs ( QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) ) == QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) <EOL> def test_PythonRational__pos__ ( ) : <EOL> assert + QQ ( - <NUM_LIT:1> , <NUM_LIT:2> ) == QQ ( - <NUM_LIT:1> , <NUM_LIT:2> ) <EOL> assert + QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) == QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) <EOL> def test_PythonRational__neg__ ( ) : <EOL> assert - QQ ( - <NUM_LIT:1> , <NUM_LIT:2> ) == QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) <EOL> assert - QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) == QQ ( - <NUM_LIT:1> , <NUM_LIT:2> ) <EOL> def test_PythonRational__add__ ( ) : <EOL> assert QQ ( - <NUM_LIT:1> , <NUM_LIT:2> ) + QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) == QQ ( <NUM_LIT:0> ) <EOL> assert QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) + QQ ( - <NUM_LIT:1> , <NUM_LIT:2> ) == QQ ( <NUM_LIT:0> ) <EOL> assert QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) + QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) == QQ ( <NUM_LIT:1> ) <EOL> assert QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) + QQ ( <NUM_LIT:3> , <NUM_LIT:2> ) == QQ ( <NUM_LIT:2> ) <EOL> assert QQ ( <NUM_LIT:3> , <NUM_LIT:2> ) + QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) == QQ ( <NUM_LIT:2> ) <EOL> assert QQ ( <NUM_LIT:3> , <NUM_LIT:2> ) + QQ ( <NUM_LIT:3> , <NUM_LIT:2> ) == QQ ( <NUM_LIT:3> ) <EOL> assert <NUM_LIT:1> + QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) == QQ ( <NUM_LIT:3> , <NUM_LIT:2> ) <EOL> assert QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) + <NUM_LIT:1> == QQ ( <NUM_LIT:3> , <NUM_LIT:2> ) <EOL> def test_PythonRational__sub__ ( ) : <EOL> assert QQ ( - <NUM_LIT:1> , <NUM_LIT:2> ) - QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) == QQ ( - <NUM_LIT:1> ) <EOL> assert QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) - QQ ( - <NUM_LIT:1> , <NUM_LIT:2> ) == QQ ( <NUM_LIT:1> ) <EOL> assert QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) - QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) == QQ ( <NUM_LIT:0> ) <EOL> assert QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) - QQ ( <NUM_LIT:3> , <NUM_LIT:2> ) == QQ ( - <NUM_LIT:1> ) <EOL> assert QQ ( <NUM_LIT:3> , <NUM_LIT:2> ) - QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) == QQ ( <NUM_LIT:1> ) <EOL> assert QQ ( <NUM_LIT:3> , <NUM_LIT:2> ) - QQ ( <NUM_LIT:3> , <NUM_LIT:2> ) == QQ ( <NUM_LIT:0> ) <EOL> assert <NUM_LIT:1> - QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) == QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) <EOL> assert QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) - <NUM_LIT:1> == QQ ( - <NUM_LIT:1> , <NUM_LIT:2> ) <EOL> def test_PythonRational__mul__ ( ) : <EOL> assert QQ ( - <NUM_LIT:1> , <NUM_LIT:2> ) * QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) == QQ ( - <NUM_LIT:1> , <NUM_LIT:4> ) <EOL> assert QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) * QQ ( - <NUM_LIT:1> , <NUM_LIT:2> ) == QQ ( - <NUM_LIT:1> , <NUM_LIT:4> ) <EOL> assert QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) * QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) == QQ ( <NUM_LIT:1> , <NUM_LIT:4> ) <EOL> assert QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) * QQ ( <NUM_LIT:3> , <NUM_LIT:2> ) == QQ ( <NUM_LIT:3> , <NUM_LIT:4> ) <EOL> assert QQ ( <NUM_LIT:3> , <NUM_LIT:2> ) * QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) == QQ ( <NUM_LIT:3> , <NUM_LIT:4> ) <EOL> assert QQ ( <NUM_LIT:3> , <NUM_LIT:2> ) * QQ ( <NUM_LIT:3> , <NUM_LIT:2> ) == QQ ( <NUM_LIT:9> , <NUM_LIT:4> ) <EOL> assert <NUM_LIT:2> * QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) == QQ ( <NUM_LIT:1> ) <EOL> assert QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) * <NUM_LIT:2> == QQ ( <NUM_LIT:1> ) <EOL> def test_PythonRational__div__ ( ) : <EOL> assert QQ ( - <NUM_LIT:1> , <NUM_LIT:2> ) / QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) == QQ ( - <NUM_LIT:1> ) <EOL> assert QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) / QQ ( - <NUM_LIT:1> , <NUM_LIT:2> ) == QQ ( - <NUM_LIT:1> ) <EOL> assert QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) / QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) == QQ ( <NUM_LIT:1> ) <EOL> assert QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) / QQ ( <NUM_LIT:3> , <NUM_LIT:2> ) == QQ ( <NUM_LIT:1> , <NUM_LIT:3> ) <EOL> assert QQ ( <NUM_LIT:3> , <NUM_LIT:2> ) / QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) == QQ ( <NUM_LIT:3> ) <EOL> assert QQ ( <NUM_LIT:3> , <NUM_LIT:2> ) / QQ ( <NUM_LIT:3> , <NUM_LIT:2> ) == QQ ( <NUM_LIT:1> ) <EOL> assert <NUM_LIT:2> / QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) == QQ ( <NUM_LIT:4> ) <EOL> assert QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) / <NUM_LIT:2> == QQ ( <NUM_LIT:1> , <NUM_LIT:4> ) <EOL> raises ( ZeroDivisionError , lambda : QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) / QQ ( <NUM_LIT:0> ) ) <EOL> raises ( ZeroDivisionError , lambda : QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) / <NUM_LIT:0> ) <EOL> def test_PythonRational__pow__ ( ) : <EOL> assert QQ ( <NUM_LIT:1> ) ** <NUM_LIT:10> == QQ ( <NUM_LIT:1> ) <EOL> assert QQ ( <NUM_LIT:2> ) ** <NUM_LIT:10> == QQ ( <NUM_LIT> ) <EOL> assert QQ ( <NUM_LIT:1> ) ** ( - <NUM_LIT:10> ) == QQ ( <NUM_LIT:1> ) <EOL> assert QQ ( <NUM_LIT:2> ) ** ( - <NUM_LIT:10> ) == QQ ( <NUM_LIT:1> , <NUM_LIT> ) <EOL> def test_PythonRational__eq__ ( ) : <EOL> assert ( QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) == QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) ) is True <EOL> assert ( QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) != QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) ) is False <EOL> assert ( QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) == QQ ( <NUM_LIT:1> , <NUM_LIT:3> ) ) is False <EOL> assert ( QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) != QQ ( <NUM_LIT:1> , <NUM_LIT:3> ) ) is True <EOL> def test_PythonRational__lt_le_gt_ge__ ( ) : <EOL> assert ( QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) < QQ ( <NUM_LIT:1> , <NUM_LIT:4> ) ) is False <EOL> assert ( QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) <= QQ ( <NUM_LIT:1> , <NUM_LIT:4> ) ) is False <EOL> assert ( QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) > QQ ( <NUM_LIT:1> , <NUM_LIT:4> ) ) is True <EOL> assert ( QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) >= QQ ( <NUM_LIT:1> , <NUM_LIT:4> ) ) is True <EOL> assert ( QQ ( <NUM_LIT:1> , <NUM_LIT:4> ) < QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) ) is True <EOL> assert ( QQ ( <NUM_LIT:1> , <NUM_LIT:4> ) <= QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) ) is True <EOL> assert ( QQ ( <NUM_LIT:1> , <NUM_LIT:4> ) > QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) ) is False <EOL> assert ( QQ ( <NUM_LIT:1> , <NUM_LIT:4> ) >= QQ ( <NUM_LIT:1> , <NUM_LIT:2> ) ) is False </s>
