Skip to content

Commit

Permalink
tests: add basic-float
Browse files Browse the repository at this point in the history
  • Loading branch information
hhugo committed Jan 27, 2025
1 parent 77f4876 commit 1d41a35
Show file tree
Hide file tree
Showing 11 changed files with 643 additions and 1 deletion.
4 changes: 4 additions & 0 deletions compiler/tests-ocaml/basic-float/dune
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
(tests
(names float_compare float_literals tfloat_hex tfloat_record zero_sized_float_arrays)
(flags :standard -w -69)
(modes js wasm))
50 changes: 50 additions & 0 deletions compiler/tests-ocaml/basic-float/float_compare.expected
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
1. = 2.: false
1. = 1.: true
2. = 1.: false
1. = nan: false
------------------
1. != 2.: true
1. != 1.: false
2. != 1.: true
1. != nan: true
------------------
1. < 2.: true
1. < 1.: false
2. < 1.: false
1. < nan: false
------------------
1. !< 2.: false
1. !< 1.: true
2. !< 1.: true
1. !< nan: true
------------------
1. <= 2.: true
1. <= 1.: true
2. <= 1.: false
1. <= nan: false
------------------
1. !<= 2.: false
1. !<= 1.: false
2. !<= 1.: true
1. !<= nan: true
------------------
1. > 2.: false
1. > 1.: false
2. > 1.: true
1. > nan: false
------------------
1. !> 2.: true
1. !> 1.: true
2. !> 1.: false
1. !> nan: true
------------------
1. >= 2.: false
1. >= 1.: true
2. >= 1.: true
1. >= nan: false
------------------
1. !>= 2.: true
1. !>= 1.: false
2. !>= 1.: false
1. !>= nan: true
------------------
113 changes: 113 additions & 0 deletions compiler/tests-ocaml/basic-float/float_compare.ml
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
(* TEST *)

let equal (x : float) (y : float) =
x, "=", y, (x = y)
[@@inline never]

let not_equal (x : float) (y : float) =
x, "!=", y, (x <> y)
[@@inline never]

let less_than (x : float) (y : float) =
x, "<", y, (x < y)
[@@inline never]

let not_less_than (x : float) (y : float) =
x, "!<", y, not (x < y)
[@@inline never]

let less_equal (x : float) (y : float) =
x, "<=", y, (x <= y)
[@@inline never]

let not_less_equal (x : float) (y : float) =
x, "!<=", y, not (x <= y)
[@@inline never]

let greater_than (x : float) (y : float) =
x, ">", y, (x > y)
[@@inline never]

let not_greater_than (x : float) (y : float) =
x, "!>", y, not (x > y)
[@@inline never]

let greater_equal (x : float) (y : float) =
x, ">=", y, (x >= y)
[@@inline never]

let not_greater_equal (x : float) (y : float) =
x, "!>=", y, not (x >= y)
[@@inline never]

let show (x, op, y, b) =
print_float x;
print_string " ";
print_string op;
print_string " ";
print_float y;
print_string ": ";
print_endline (string_of_bool b)

let print_line () =
print_endline "------------------"

let () = show (equal 1.0 2.0)
let () = show (equal 1.0 1.0)
let () = show (equal 2.0 1.0)
let () = show (equal 1.0 nan)
let () = print_line ()

let () = show (not_equal 1.0 2.0)
let () = show (not_equal 1.0 1.0)
let () = show (not_equal 2.0 1.0)
let () = show (not_equal 1.0 nan)
let () = print_line ()

let () = show (less_than 1.0 2.0)
let () = show (less_than 1.0 1.0)
let () = show (less_than 2.0 1.0)
let () = show (less_than 1.0 nan)
let () = print_line ()

let () = show (not_less_than 1.0 2.0)
let () = show (not_less_than 1.0 1.0)
let () = show (not_less_than 2.0 1.0)
let () = show (not_less_than 1.0 nan)
let () = print_line ()

let () = show (less_equal 1.0 2.0)
let () = show (less_equal 1.0 1.0)
let () = show (less_equal 2.0 1.0)
let () = show (less_equal 1.0 nan)
let () = print_line ()

let () = show (not_less_equal 1.0 2.0)
let () = show (not_less_equal 1.0 1.0)
let () = show (not_less_equal 2.0 1.0)
let () = show (not_less_equal 1.0 nan)
let () = print_line ()

let () = show (greater_than 1.0 2.0)
let () = show (greater_than 1.0 1.0)
let () = show (greater_than 2.0 1.0)
let () = show (greater_than 1.0 nan)
let () = print_line ()

let () = show (not_greater_than 1.0 2.0)
let () = show (not_greater_than 1.0 1.0)
let () = show (not_greater_than 2.0 1.0)
let () = show (not_greater_than 1.0 nan)
let () = print_line ()

let () = show (greater_equal 1.0 2.0)
let () = show (greater_equal 1.0 1.0)
let () = show (greater_equal 2.0 1.0)
let () = show (greater_equal 1.0 nan)
let () = print_line ()

let () = show (not_greater_equal 1.0 2.0)
let () = show (not_greater_equal 1.0 1.0)
let () = show (not_greater_equal 2.0 1.0)
let () = show (not_greater_equal 1.0 nan)
let () = print_line ()
Loading

0 comments on commit 1d41a35

Please sign in to comment.