Class: Hegel::Generators::BooleanGenerator

Inherits:
Hegel::Generator show all
Defined in:
lib/hegel/generators.rb,
sig/hegel.rbs

Overview

Hegel::Syntax::Methods#booleans. A boolean, true with probability p.

Instance Method Summary collapse

Methods inherited from Hegel::Generator

#filter, #map

Constructor Details

#initialize(p:) ⇒ BooleanGenerator

Returns a new instance of BooleanGenerator.

Parameters:

  • p: (Float)


24
25
26
27
# File 'lib/hegel/generators.rb', line 24

def initialize(p:)
  super()
  @p = p
end

Instance Method Details

#do_draw(tc) ⇒ Boolean

Parameters:

  • tc (Object)

Returns:

  • (Boolean)

Raises:



29
30
31
32
33
# File 'lib/hegel/generators.rb', line 29

def do_draw(tc)
  raise Hegel::Error, "booleans: p must be between 0.0 and 1.0, got #{@p}" unless (0.0..1.0).cover?(@p)

  tc.generate_boolean(@p)
end