Module: RubyCheck

Defined in:
lib/rubycheck.rb

Overview

RubyCheck

Defined Under Namespace

Classes: PropertyFailure

Constant Summary collapse

VERSION =
'0.0.1'
TRIALS =
10000

Class Method Summary collapse

Class Method Details

.for_all(property, gen_syms) ⇒ Object



62
63
64
65
66
67
68
69
70
71
# File 'lib/rubycheck.rb', line 62

def self.for_all(property, gen_syms)
  0.upto(TRIALS - 1).each do |i|
    test_case = gen_syms.map { |gen_sym| send(gen_sym) }
    fail PropertyFailure.new(test_case), 'test case error' unless property.call(*test_case)
  end
rescue PropertyFailure => e
  e.test_case
else
  true
end

.gen_array(gen_sym) ⇒ Object



33
34
35
36
37
# File 'lib/rubycheck.rb', line 33

def self.gen_array(gen_sym)
  len = gen_int % 100

  0.upto(len).map { |i| send(gen_sym) }
end

.gen_byteObject



19
20
21
# File 'lib/rubycheck.rb', line 19

def self.gen_byte
  gen_int % 256
end

.gen_charObject



26
27
28
# File 'lib/rubycheck.rb', line 26

def self.gen_char
  (gen_int % 128).chr
end

.gen_intObject



12
13
14
# File 'lib/rubycheck.rb', line 12

def self.gen_int
  Random.rand(10e10).to_i
end

.gen_strObject

Returns a random string.



40
41
42
# File 'lib/rubycheck.rb', line 40

def self.gen_str
  gen_array(:gen_char).join('')
end