 
 "== Checking vector operations" print
 
-: random-vector ( class -- vec )
-    new [ drop 1000 random ] map ;
+: random-int-vector ( class -- vec )
+    new [ drop 1,000 random ] map ;
+: random-float-vector ( class -- vec )
+    new [
+        drop
+        -1,000.0 1,000.0 uniform-random-float 
+        10 swap <array> 0/0. suffix random
+    ] map ;
+
+: random-vector ( class elt-class -- vec )
+    float =
+    [ random-float-vector ]
+    [ random-int-vector ] if ;
 
 :: check-vector-op ( word inputs class elt-class -- inputs quot )
     inputs [
         {
-            { +vector+ [ class random-vector ] }
+            { +vector+ [ class elt-class random-vector ] }
             { +scalar+ [ 1000 random elt-class float = [ >float ] when ] }
         } case
     ] [ ] map-as


: approx= ( x y -- ? )
    {
        { [ 2dup [ float? ] both? ] [ -1.e8 ~ ] }
        { [ 2dup [ fp-infinity? ] either? ] [ fp-bitwise= ] }
        { [ 2dup [ sequence? ] both? ] [

    ] unit-test
] each

"== Checking vector tests" print

:: test-vector-tests-bool ( vector declaration -- none? any? all? )
    vector
