--- Module for generating float values. -- @lqc.generators.float -- @alias new local Gen = require 'lqc.generator' -- Generates a random float. -- @param numtests Number of times this generator is called in a test; used to -- guide the randomization process. -- @return random float (between - numtests / 2 and numtests / 2). local function float_pick(numtests) local lower_bound = -numtests / 2 local upper_bound = numtests / 2 return lower_bound + math.random() * (upper_bound - lower_bound) end --- Shrinks a float to a simpler value -- @param prev a previously generated float value -- @return shrunk down float value local function float_shrink(prev) return prev / 2 end --- Creates a generator for float values -- @return a generator that can generate float values. local function new() return Gen.new(float_pick, float_shrink) end return new