13.6. Faker

Random test-data generator.

The Faker struct produces random values for every built-in type (integers, floats, vectors, strings, dates, booleans) using configurable ranges. Used by fuzzer for fuzz testing.

All functions and symbols are in “faker” module, use require to get access to it.

require daslib/faker

13.6.1. Structures

faker::Faker

Instance of the faker with all the settings inside.

Fields
  • min_year : uint = 0x7bc - minimal faker’s year

  • total_years : uint = 0x2a - faker year’s range

  • rnd : iterator<uint> = each_random_uint(13) - fakers random number generator

  • max_long_string : uint = 0x1000 - maximal length of generated string

13.6.2. Constructor

faker::Faker(rng: iterator<uint>) : Faker()

Constructs a Faker instance with the given random number generator.

Arguments
  • rng : iterator<uint>

13.6.3. Random values

faker::random_double(faker: Faker) : double()

Generates random double.

Arguments
faker::random_float(faker: Faker) : float()

Generates random float.

Arguments
faker::random_float2(faker: Faker) : float2()

Generates random float2.

Arguments
faker::random_float3(faker: Faker) : float3()

Generates random float3.

Arguments
faker::random_float3x3(faker: Faker) : float3x3()

Generates random float3x3.

Arguments
faker::random_float3x4(faker: Faker) : float3x4()

Generates random float3x4.

Arguments
faker::random_float4(faker: Faker) : float4()

Generates random float4.

Arguments
faker::random_float4x4(faker: Faker) : float4x4()

Generates random float4x4.

Arguments
faker::random_int(faker: Faker) : int()

Generates random integer.

Arguments
faker::random_int16(faker: Faker) : int16()

Generates random int16.

Arguments
faker::random_int2(faker: Faker) : int2()

Generates random int2.

Arguments
faker::random_int3(faker: Faker) : int3()

Generates random int3.

Arguments
faker::random_int4(faker: Faker) : int4()

Generates random int4.

Arguments
faker::random_int64(faker: Faker) : int64()

Generates random int64

Arguments
faker::random_int8(faker: Faker) : int8()

Generates random int8.

Arguments
faker::random_range(faker: Faker) : range()

Generates random range.

Arguments
faker::random_range64(faker: Faker) : range64()

Generates random range64.

Arguments
faker::random_uint(faker: Faker) : uint()

Generates random unsigned integer.

Arguments
faker::random_uint16(faker: Faker) : uint16()

Generates random uint16.

Arguments
faker::random_uint2(faker: Faker) : uint2()

Generates random uint2.

Arguments
faker::random_uint3(faker: Faker) : uint3()

Generates random uint3.

Arguments
faker::random_uint4(faker: Faker) : uint4()

Generates random uint4.

Arguments
faker::random_uint64(faker: Faker) : uint64()

Generates random uint64

Arguments
faker::random_uint8(faker: Faker) : uint8()

Generates random uint8.

Arguments
faker::random_urange(faker: Faker) : urange()

Generates random urange.

Arguments
faker::random_urange64(faker: Faker) : urange64()

Generates random urange64.

Arguments

13.6.4. Random strings

faker::any_char(faker: Faker) : int()

Generates random char. (1 to 255 range)

Arguments
faker::any_enum(faker: Faker; enum_value: auto(TT)) : TT()

Generates random enumeration value.

Arguments
  • faker : Faker

  • enum_value : auto(TT)

faker::any_file_name(faker: Faker) : string()

Generates random file name.

Arguments
faker::any_float(faker: Faker) : string()

Generates random float string.

Arguments
faker::any_hex(faker: Faker) : string()

Generates random integer hex string.

Arguments
faker::any_int(faker: Faker) : string()

Generates random integer string.

Arguments
faker::any_set(faker: Faker) : uint[8]()

Generates random set (uint[8])

Arguments
faker::any_string(faker: Faker) : string()

Generates a string of random characters. The string is anywhere between 0 and regex::re_gen_get_rep_limit() characters long.

Arguments
faker::any_uint(faker: Faker) : string()

Generates random unsigned integer string.

Arguments
faker::long_string(faker: Faker) : string()

Generates a long string of random characters. The string is anywhere between 0 and faker.max_long_string characters long.

Arguments
faker::number(faker: Faker) : string()

Generates random number string.

Arguments
faker::positive_int(faker: Faker) : string()

Generates random positive integer string.

Arguments

13.6.5. Date and time

faker::date(faker: Faker) : string()

Generates random date string.

Arguments
faker::day(faker: Faker) : string()

Generates random day string.

Arguments
faker::is_leap_year(year: uint) : bool()

Returns true if year is leap year.

Arguments
  • year : uint

faker::month(faker: Faker) : string()

Generates random month string.

Arguments

13.6.5.1. week_day

faker::week_day(year: uint; month: uint; day: uint) : int()

Returns week day for given date.

Arguments
  • year : uint

  • month : uint

  • day : uint

faker::week_day(year: int; month: int; day: int) : int()