class MimiCheck::Checker
Attributes
examples[R]
generators[R]
property[R]
trials[R]
Public Class Methods
for(proc, &blk)
click to toggle source
# File lib/mimicheck/checker.rb, line 7 def self.for(proc, &blk) new(proc || blk).with end
new(property)
click to toggle source
# File lib/mimicheck/checker.rb, line 29 def initialize(property) @property = property @trials = MimiCheck.trials @examples = [] @generators = [] end
Public Instance Methods
check(gens = nil)
click to toggle source
# File lib/mimicheck/checker.rb, line 19 def check(gens = nil) check! Array(gens || generators) end
check_examples(exs = nil)
click to toggle source
# File lib/mimicheck/checker.rb, line 23 def check_examples(exs = nil) check_examples! Array(exs || examples) end
with(trials: nil, generators: nil, examples: nil)
click to toggle source
# File lib/mimicheck/checker.rb, line 11 def with(trials: nil, generators: nil, examples: nil) tap do @trials = trials if trials @generators = generators if generators @examples = examples if examples end end
Private Instance Methods
check!(gens)
click to toggle source
# File lib/mimicheck/checker.rb, line 36 def check!(gens) exs = (1..trials).map { gens.map(&:call) } check_examples!(exs) end
check_examples!(exs)
click to toggle source
# File lib/mimicheck/checker.rb, line 41 def check_examples!(exs) example, *es = exs return MimiCheck::Result::Success.new(property) unless example result, error = safe_check(*Array(example)) return MimiCheck::Result::Falsified.new(property, error) unless result check_examples!(es) end
safe_check(*example)
click to toggle source
# File lib/mimicheck/checker.rb, line 52 def safe_check(*example) [property.call(*example), { example: example }] rescue => error raise if MimiCheck.fail_fast [false, { example: example, error: error }] end