@@ -399,7 +399,7 @@ func TestUnify(t *testing.T) {
399
399
y : NewAtom ("def" ),
400
400
}},
401
401
{title : `'='(1, 2).` , x : Integer (1 ), y : Integer (2 ), ok : false },
402
- {title : `'='(1, 1.0).` , x : Integer (1 ), y : Float (1 ), ok : false },
402
+ {title : `'='(1, 1.0).` , x : Integer (1 ), y : NewFloatFromInt64 (1 ), ok : false },
403
403
{title : `'='(g(X), f(f(X))).` , x : NewAtom ("g" ).Apply (x ), y : NewAtom ("f" ).Apply (NewAtom ("f" ).Apply (x )), ok : false },
404
404
{title : `'='(f(X, 1), f(a(X))).` , x : NewAtom ("f" ).Apply (x , Integer (1 )), y : NewAtom ("f" ).Apply (NewAtom ("a" ).Apply (x )), ok : false },
405
405
{title : `'='(f(X, Y, X), f(a(X), a(Y), Y, 2)).` , x : NewAtom ("f" ).Apply (x , y , x ), y : NewAtom ("f" ).Apply (NewAtom ("a" ).Apply (x ), NewAtom ("a" ).Apply (y ), y , Integer (2 )), ok : false },
@@ -453,7 +453,7 @@ func TestUnifyWithOccursCheck(t *testing.T) {
453
453
y : NewAtom ("def" ),
454
454
}},
455
455
{title : `unify_with_occurs_check(1, 2).` , x : Integer (1 ), y : Integer (2 ), ok : false },
456
- {title : `unify_with_occurs_check(1, 1.0).` , x : Integer (1 ), y : Float (1 ), ok : false },
456
+ {title : `unify_with_occurs_check(1, 1.0).` , x : Integer (1 ), y : NewFloatFromInt64 (1 ), ok : false },
457
457
{title : `unify_with_occurs_check(g(X), f(f(X))).` , x : NewAtom ("g" ).Apply (x ), y : NewAtom ("f" ).Apply (NewAtom ("f" ).Apply (x )), ok : false },
458
458
{title : `unify_with_occurs_check(f(X, 1), f(a(X))).` , x : NewAtom ("f" ).Apply (x , Integer (1 )), y : NewAtom ("f" ).Apply (NewAtom ("a" ).Apply (x )), ok : false },
459
459
{title : `unify_with_occurs_check(f(X, Y, X), f(a(X), a(Y), Y, 2)).` , x : NewAtom ("f" ).Apply (x , y , x ), y : NewAtom ("f" ).Apply (NewAtom ("a" ).Apply (x ), NewAtom ("a" ).Apply (y ), y , Integer (2 )), ok : false },
@@ -515,7 +515,7 @@ func TestTypeVar(t *testing.T) {
515
515
516
516
func TestTypeFloat (t * testing.T ) {
517
517
t .Run ("float" , func (t * testing.T ) {
518
- ok , err := TypeFloat (nil , Float (1.0 ), Success , nil ).Force (context .Background ())
518
+ ok , err := TypeFloat (nil , newFloatFromFloat64Must (1.0 ), Success , nil ).Force (context .Background ())
519
519
assert .NoError (t , err )
520
520
assert .True (t , ok )
521
521
})
@@ -632,15 +632,15 @@ func TestFunctor(t *testing.T) {
632
632
x : Integer (1 ),
633
633
y : Integer (0 ),
634
634
}},
635
- {title : `functor(X, 1.1, 0).` , term : x , name : Float (1.1 ), arity : Integer (0 ), ok : true , env : map [Variable ]Term {
636
- x : Float (1.1 ),
635
+ {title : `functor(X, 1.1, 0).` , term : x , name : newFloatFromFloat64Must (1.1 ), arity : Integer (0 ), ok : true , env : map [Variable ]Term {
636
+ x : newFloatFromFloat64Must (1.1 ),
637
637
}},
638
638
{title : `functor([_|_], '.', 2).` , term : Cons (NewVariable (), NewVariable ()), name : atomDot , arity : Integer (2 ), ok : true },
639
639
{title : `functor([], [], 0).` , term : atomEmptyList , name : atomEmptyList , arity : Integer (0 ), ok : true },
640
640
{title : `functor(X, Y, 3).` , term : x , name : y , arity : Integer (3 ), err : InstantiationError (nil )},
641
641
{title : `functor(X, foo, N).` , term : x , name : NewAtom ("foo" ), arity : n , err : InstantiationError (nil )},
642
642
{title : `functor(X, foo, a).` , term : x , name : NewAtom ("foo" ), arity : NewAtom ("a" ), err : typeError (validTypeInteger , NewAtom ("a" ), nil )},
643
- {title : `functor(F, 1.5, 1).` , term : f , name : Float (1.5 ), arity : Integer (1 ), err : typeError (validTypeAtom , Float (1.5 ), nil )},
643
+ {title : `functor(F, 1.5, 1).` , term : f , name : newFloatFromFloat64Must (1.5 ), arity : Integer (1 ), err : typeError (validTypeAtom , newFloatFromFloat64Must (1.5 ), nil )},
644
644
{title : `functor(F, foo(a), 1).` , term : f , name : NewAtom ("foo" ).Apply (NewAtom ("a" )), arity : Integer (1 ), err : typeError (validTypeAtomic , NewAtom ("foo" ).Apply (NewAtom ("a" )), nil )},
645
645
// {title: `current_prolog_flag(max_arity, A), X is A + 1, functor(T, foo, X).`}
646
646
{title : `Minus_1 is 0 - 1, functor(F, foo, Minus_1).` , term : f , name : NewAtom ("foo" ), arity : Integer (- 1 ), err : domainError (validDomainNotLessThanZero , Integer (- 1 ), nil )},
@@ -782,7 +782,7 @@ func TestUniv(t *testing.T) {
782
782
{title : "9" , term : x , list : PartialList (NewAtom ("bar" ), NewAtom ("foo" )), err : typeError (validTypeList , PartialList (NewAtom ("bar" ), NewAtom ("foo" )), nil )},
783
783
{title : "10" , term : x , list : List (foo , NewAtom ("bar" )), err : InstantiationError (nil )},
784
784
{title : "11" , term : x , list : List (Integer (3 ), Integer (1 )), err : typeError (validTypeAtom , Integer (3 ), nil )},
785
- {title : "12" , term : x , list : List (Float (1.1 ), NewAtom ("foo" )), err : typeError (validTypeAtom , Float (1.1 ), nil )},
785
+ {title : "12" , term : x , list : List (newFloatFromFloat64Must (1.1 ), NewAtom ("foo" )), err : typeError (validTypeAtom , newFloatFromFloat64Must (1.1 ), nil )},
786
786
{title : "13" , term : x , list : List (NewAtom ("a" ).Apply (NewAtom ("b" )), Integer (1 )), err : typeError (validTypeAtom , NewAtom ("a" ).Apply (NewAtom ("b" )), nil )},
787
787
{title : "14" , term : x , list : Integer (4 ), err : typeError (validTypeList , Integer (4 ), nil )},
788
788
{title : "15" , term : NewAtom ("f" ).Apply (x ), list : List (NewAtom ("f" ), NewAtom ("u" ).Apply (x )), ok : true , env : map [Variable ]Term {
@@ -2104,8 +2104,8 @@ func TestCompare(t *testing.T) {
2104
2104
order : atomLessThan ,
2105
2105
}},
2106
2106
{title : `compare(<, <, <).` , order : atomLessThan , x : atomLessThan , y : atomLessThan , ok : false },
2107
- {title : `compare(1+2, 3, 3.0).` , order : atomPlus .Apply (Integer (1 ), Integer (2 )), x : Integer (3 ), y : Float (3.0 ), ok : false , err : typeError (validTypeAtom , atomPlus .Apply (Integer (1 ), Integer (2 )), nil )},
2108
- {title : `compare(>=, 3, 3.0).` , order : NewAtom (">=" ), x : Integer (3 ), y : Float (3.0 ), ok : false , err : domainError (validDomainOrder , NewAtom (">=" ), nil )},
2107
+ {title : `compare(1+2, 3, 3.0).` , order : atomPlus .Apply (Integer (1 ), Integer (2 )), x : Integer (3 ), y : newFloatFromFloat64Must (3.0 ), ok : false , err : typeError (validTypeAtom , atomPlus .Apply (Integer (1 ), Integer (2 )), nil )},
2108
+ {title : `compare(>=, 3, 3.0).` , order : NewAtom (">=" ), x : Integer (3 ), y : newFloatFromFloat64Must (3.0 ), ok : false , err : domainError (validDomainOrder , NewAtom (">=" ), nil )},
2109
2109
2110
2110
{title : `missing case for >` , order : atomGreaterThan , x : Integer (2 ), y : Integer (1 ), ok : true },
2111
2111
}
@@ -5523,7 +5523,7 @@ func TestAtomLength(t *testing.T) {
5523
5523
}},
5524
5524
{title : "atom_length('scarlet', 5)." , atom : NewAtom ("scarlet" ), length : Integer (5 ), ok : false },
5525
5525
{title : "atom_length(Atom, 4)." , atom : NewVariable (), length : Integer (4 ), err : InstantiationError (nil )},
5526
- {title : "atom_length(1.23, 4)." , atom : Float (1.23 ), length : Integer (4 ), err : typeError (validTypeAtom , Float (1.23 ), nil )},
5526
+ {title : "atom_length(1.23, 4)." , atom : newFloatFromFloat64Must (1.23 ), length : Integer (4 ), err : typeError (validTypeAtom , newFloatFromFloat64Must (1.23 ), nil )},
5527
5527
{title : "atom_length(atom, '4')." , atom : NewAtom ("atom" ), length : NewAtom ("4" ), err : typeError (validTypeInteger , NewAtom ("4" ), nil )},
5528
5528
5529
5529
// 8.16.1.3 Errors
@@ -5868,7 +5868,7 @@ func TestNumberChars(t *testing.T) {
5868
5868
t .Run ("chars is a partial list" , func (t * testing.T ) {
5869
5869
chars := NewVariable ()
5870
5870
5871
- ok , err := NumberChars (nil , Float (23.4 ), chars , func (env * Env ) * Promise {
5871
+ ok , err := NumberChars (nil , newFloatFromFloat64Must (23.4 ), chars , func (env * Env ) * Promise {
5872
5872
assert .Equal (t , List (NewAtom ("2" ), NewAtom ("3" ), atomDot , NewAtom ("4" )), env .Resolve (chars ))
5873
5873
return Bool (true )
5874
5874
}, nil ).Force (context .Background ())
@@ -5879,7 +5879,7 @@ func TestNumberChars(t *testing.T) {
5879
5879
t .Run ("chars is a list with variables" , func (t * testing.T ) {
5880
5880
char := NewVariable ()
5881
5881
5882
- ok , err := NumberChars (nil , Float (23.4 ), List (char , NewAtom ("3" ), atomDot , NewAtom ("4" )), func (env * Env ) * Promise {
5882
+ ok , err := NumberChars (nil , newFloatFromFloat64Must (23.4 ), List (char , NewAtom ("3" ), atomDot , NewAtom ("4" )), func (env * Env ) * Promise {
5883
5883
assert .Equal (t , NewAtom ("2" ), env .Resolve (char ))
5884
5884
return Bool (true )
5885
5885
}, nil ).Force (context .Background ())
@@ -5892,7 +5892,7 @@ func TestNumberChars(t *testing.T) {
5892
5892
num := NewVariable ()
5893
5893
5894
5894
ok , err := NumberChars (nil , num , List (NewAtom ("2" ), NewAtom ("3" ), atomDot , NewAtom ("4" )), func (env * Env ) * Promise {
5895
- assert .Equal (t , Float (23.4 ), env .Resolve (num ))
5895
+ assert .Equal (t , newFloatFromFloat64Must (23.4 ), env .Resolve (num ))
5896
5896
return Bool (true )
5897
5897
}, nil ).Force (context .Background ())
5898
5898
assert .NoError (t , err )
@@ -5901,13 +5901,13 @@ func TestNumberChars(t *testing.T) {
5901
5901
5902
5902
t .Run ("both provided" , func (t * testing.T ) {
5903
5903
t .Run ("3.3" , func (t * testing.T ) {
5904
- ok , err := NumberChars (nil , Float (3.3 ), List (NewAtom ("3" ), atomDot , NewAtom ("3" )), Success , nil ).Force (context .Background ())
5904
+ ok , err := NumberChars (nil , newFloatFromFloat64Must (3.3 ), List (NewAtom ("3" ), atomDot , NewAtom ("3" )), Success , nil ).Force (context .Background ())
5905
5905
assert .NoError (t , err )
5906
5906
assert .True (t , ok )
5907
5907
})
5908
5908
5909
5909
t .Run ("3.3E+0" , func (t * testing.T ) {
5910
- ok , err := NumberChars (nil , Float (3.3 ), List (NewAtom ("3" ), atomDot , NewAtom ("3" ), NewAtom ("E" ), atomPlus , NewAtom ("0" )), Success , nil ).Force (context .Background ())
5910
+ ok , err := NumberChars (nil , newFloatFromFloat64Must (3.3 ), List (NewAtom ("3" ), atomDot , NewAtom ("3" ), NewAtom ("E" ), atomPlus , NewAtom ("0" )), Success , nil ).Force (context .Background ())
5911
5911
assert .NoError (t , err )
5912
5912
assert .True (t , ok )
5913
5913
})
@@ -6017,10 +6017,10 @@ func TestNumberCodes(t *testing.T) {
6017
6017
l : List (Integer ('3' ), Integer ('3' )),
6018
6018
}},
6019
6019
{title : "number_codes(33, [0'3, 0'3])." , number : Integer (33 ), list : List (Integer ('3' ), Integer ('3' )), ok : true },
6020
- {title : "number_codes(33.0, L)." , number : Float (33.0 ), list : l , ok : true , env : map [Variable ]Term {
6020
+ {title : "number_codes(33.0, L)." , number : newFloatFromFloat64Must (33.0 ), list : l , ok : true , env : map [Variable ]Term {
6021
6021
l : List (Integer ('3' ), Integer ('3' ), Integer ('.' ), Integer ('0' )),
6022
6022
}},
6023
- {title : "number_codes(33.0, [0'3, 0'., 0'3, 0'E, 0'+, 0'0, 0'1])." , number : Float (33.0 ), list : List (Integer ('3' ), Integer ('.' ), Integer ('3' ), Integer ('E' ), Integer ('+' ), Integer ('0' ), Integer ('1' )), ok : true },
6023
+ {title : "number_codes(33.0, [0'3, 0'., 0'3, 0'E, 0'+, 0'0, 0'1])." , number : newFloatFromFloat64Must (33.0 ), list : List (Integer ('3' ), Integer ('.' ), Integer ('3' ), Integer ('E' ), Integer ('+' ), Integer ('0' ), Integer ('1' )), ok : true },
6024
6024
{title : "number_codes(A, [0'-, 0'2, 0'5])." , number : a , list : List (Integer ('-' ), Integer ('2' ), Integer ('5' )), ok : true , env : map [Variable ]Term {
6025
6025
a : Integer (- 25 ),
6026
6026
}},
@@ -6034,10 +6034,10 @@ func TestNumberCodes(t *testing.T) {
6034
6034
a : Integer ('a' ),
6035
6035
}},
6036
6036
{title : "number_codes(A, [0'4, 0'., 0'2])." , number : a , list : List (Integer ('4' ), Integer ('.' ), Integer ('2' )), ok : true , env : map [Variable ]Term {
6037
- a : Float (4.2 ),
6037
+ a : newFloatFromFloat64Must (4.2 ),
6038
6038
}},
6039
6039
{title : "number_codes(A, [0'4, 0'2, 0'., 0'0, 0'e, 0'-, 0'1])." , number : a , list : List (Integer ('4' ), Integer ('2' ), Integer ('.' ), Integer ('0' ), Integer ('e' ), Integer ('-' ), Integer ('1' )), ok : true , env : map [Variable ]Term {
6040
- a : Float (4.2 ),
6040
+ a : newFloatFromFloat64Must (4.2 ),
6041
6041
}},
6042
6042
6043
6043
// 8.16.8.3 Errors
@@ -7162,8 +7162,8 @@ func TestSucc(t *testing.T) {
7162
7162
})
7163
7163
7164
7164
t .Run ("s is neither a variable nor an integer" , func (t * testing.T ) {
7165
- _ , err := Succ (nil , NewVariable (), Float (1 ), Success , nil ).Force (context .Background ())
7166
- assert .Equal (t , typeError (validTypeInteger , Float (1 ), nil ), err )
7165
+ _ , err := Succ (nil , NewVariable (), NewFloatFromInt64 (1 ), Success , nil ).Force (context .Background ())
7166
+ assert .Equal (t , typeError (validTypeInteger , NewFloatFromInt64 (1 ), nil ), err )
7167
7167
})
7168
7168
})
7169
7169
@@ -7185,8 +7185,8 @@ func TestSucc(t *testing.T) {
7185
7185
})
7186
7186
7187
7187
t .Run ("s is neither a variable nor an integer" , func (t * testing.T ) {
7188
- _ , err := Succ (nil , Integer (0 ), Float (1 ), Success , nil ).Force (context .Background ())
7189
- assert .Equal (t , typeError (validTypeInteger , Float (1 ), nil ), err )
7188
+ _ , err := Succ (nil , Integer (0 ), NewFloatFromInt64 (1 ), Success , nil ).Force (context .Background ())
7189
+ assert .Equal (t , typeError (validTypeInteger , NewFloatFromInt64 (1 ), nil ), err )
7190
7190
})
7191
7191
7192
7192
t .Run ("x is negative" , func (t * testing.T ) {
@@ -7206,8 +7206,8 @@ func TestSucc(t *testing.T) {
7206
7206
})
7207
7207
7208
7208
t .Run ("x is neither a variable nor an integer" , func (t * testing.T ) {
7209
- _ , err := Succ (nil , Float (0 ), NewVariable (), Success , nil ).Force (context .Background ())
7210
- assert .Equal (t , typeError (validTypeInteger , Float (0 ), nil ), err )
7209
+ _ , err := Succ (nil , newFloatFromFloat64Must (0 ), NewVariable (), Success , nil ).Force (context .Background ())
7210
+ assert .Equal (t , typeError (validTypeInteger , newFloatFromFloat64Must (0 ), nil ), err )
7211
7211
})
7212
7212
}
7213
7213
0 commit comments