1
1
from symengine .sympy_compat import (Integer , Rational , S , Basic , Add , Mul ,
2
- Pow , symbols , Symbol , log , sin , sech , csch , zeros , atan2 , Number )
2
+ Pow , symbols , Symbol , log , sin , sech , csch , zeros , atan2 , Number , Float ,
3
+ symengine )
4
+ from symengine .utilities import raises
3
5
4
6
5
7
def test_Integer ():
@@ -24,6 +26,39 @@ def test_Rational():
24
26
assert not isinstance (x , Number )
25
27
26
28
29
+ def test_Float ():
30
+ A = Float ("1.23" , precision = 53 )
31
+ B = Float ("1.23" )
32
+ C = Float (A )
33
+ assert A == B == C
34
+ assert isinstance (A , Float )
35
+ assert isinstance (B , Float )
36
+ assert isinstance (C , Float )
37
+ assert isinstance (A , symengine .RealDouble )
38
+ assert isinstance (B , symengine .RealDouble )
39
+ assert isinstance (C , symengine .RealDouble )
40
+ raises (ValueError , lambda : Float ("1.23" , dps = 3 , precision = 10 ))
41
+ raises (ValueError , lambda : Float (A , dps = 3 , precision = 16 ))
42
+ if symengine .have_mpfr :
43
+ A = Float ("1.23" , dps = 16 )
44
+ B = Float ("1.23" , precision = 56 )
45
+ assert A == B
46
+ assert isinstance (A , Float )
47
+ assert isinstance (B , Float )
48
+ assert isinstance (A , symengine .RealMPFR )
49
+ assert isinstance (B , symengine .RealMPFR )
50
+ A = Float (C , dps = 16 )
51
+ assert A == B
52
+ assert isinstance (A , Float )
53
+ assert isinstance (A , symengine .RealMPFR )
54
+ A = Float (A , precision = 53 )
55
+ assert A == C
56
+ assert isinstance (A , Float )
57
+ assert isinstance (A , symengine .RealDouble )
58
+ if not symengine .have_mpfr :
59
+ raises (ValueError , lambda : Float ("1.23" , precision = 58 ))
60
+
61
+
27
62
def test_Add ():
28
63
x , y = symbols ("x y" )
29
64
i = Add (x , x )
0 commit comments