queencheck 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --default_path spec
2
+ --color
3
+ --format Fuubar
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm use 1.9.3@queencheck --create
data/.travis.yml ADDED
@@ -0,0 +1,5 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.8.7
4
+ - 1.9.2
5
+ - 1.9.3
data/Gemfile ADDED
@@ -0,0 +1,13 @@
1
+ source "http://rubygems.org"
2
+
3
+ group :development do
4
+ gem "jeweler"
5
+ gem "rake"
6
+ gem "rspec", "2.8.0"
7
+ gem "guard-rspec", "0.6.0"
8
+ gem "growl", "1.0.3"
9
+ gem "spork", "0.9.0.rc9"
10
+ gem "guard-spork", "0.5.1"
11
+ gem "rb-fsevent", "0.4.3.1"
12
+ gem "fuubar", "~> 0.0.6"
13
+ end
data/Guardfile ADDED
@@ -0,0 +1,9 @@
1
+ guard 'spork', :cucumber => false, :bundler => false do
2
+ end
3
+
4
+ guard 'rspec', version: 2, cli: '--drb --color --format Fuubar' do
5
+ watch(%r{^spec/.+_spec\.rb$})
6
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
7
+ watch('spec/spec_helper.rb') { "spec" }
8
+ end
9
+
data/README.markdown ADDED
@@ -0,0 +1,21 @@
1
+ # QueenCheck
2
+
3
+ QueenCheck is random test library.
4
+
5
+ Inspired by QuickCheck library in Haskell.
6
+
7
+ ## Usage
8
+
9
+ ```ruby
10
+ require 'queencheck'
11
+
12
+ number = 100
13
+
14
+ check = QueenCheck.new(number, :+, Integer)
15
+
16
+ res = check.run(verbose: true) do | result, arguments, error |
17
+ result == number + arguments[0]
18
+ end
19
+
20
+ puts "#{res[:passed]} / #{res[:examples]}"
21
+ ```
data/Rakefile ADDED
@@ -0,0 +1,20 @@
1
+ require 'bundler'
2
+
3
+ require 'rspec/core/rake_task'
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
7
+
8
+ begin
9
+ require 'jeweler'
10
+ Jeweler::Tasks.new do |gemspec|
11
+ gemspec.name = "queencheck"
12
+ gemspec.summary = "like haskell's QuickCheck"
13
+ gemspec.email = "rosylilly@aduca.org"
14
+ gemspec.homepage = "https://github.com/rosylilly/QueenCheck"
15
+ gemspec.description = "QueenCheck is random test library. Inspired by QuickCheck library in Haskell."
16
+ gemspec.authors = ["Sho Kusano"]
17
+ end
18
+ rescue LoadError
19
+ puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
20
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.0.0
@@ -0,0 +1,56 @@
1
+
2
+ module QueenCheck
3
+ class << self
4
+ def Arbitrary(name = nil, &block)
5
+ if block.nil? && !name.nil?
6
+ return QueenCheck::Arbitrary::Instance.get_by_id(name)
7
+ else
8
+ return QueenCheck::Arbitrary::Instance.new(name, &block)
9
+ end
10
+ nil
11
+ end
12
+ end
13
+ module Arbitrary
14
+ class NotQueenCheckArbitrary < StandardError; end
15
+
16
+ def arbitrary?; true; end
17
+
18
+ def arbitrary(seed)
19
+ raise NotImplementedError
20
+ end
21
+
22
+ def set_arbitrary(&block)
23
+ self.module_eval do
24
+ sig = class << self; self; end
25
+ sig.send(:define_method, :arbitrary, &block)
26
+ end
27
+ end
28
+
29
+ class Instance
30
+ @@collection = {}
31
+ def self.get_by_id(name); return @@collection[name.to_s.to_sym]; end
32
+ def self.collection=(c); @@collection = c; end
33
+ def self.collection; @@collection; end
34
+
35
+ def initialize(name = nil, &block)
36
+ raise ArgumentError, "require block" if block.nil?
37
+ @arbitrary_proc = block
38
+ @name = name.to_s.to_sym unless name.nil?
39
+ unless @name.nil?
40
+ @@collection[@name] = self
41
+ end
42
+ end
43
+ attr_reader :name
44
+
45
+ def arbitrary?; true; end
46
+
47
+ def arbitrary(seed)
48
+ @arbitrary_proc.call(seed)
49
+ end
50
+ end
51
+ end
52
+ end
53
+
54
+ class BasicObject
55
+ def arbitrary?; false; end
56
+ end
@@ -0,0 +1,33 @@
1
+ require 'queencheck/arbitrary'
2
+
3
+ class Array
4
+ extend QueenCheck::Arbitrary
5
+
6
+ @@bound = 10
7
+
8
+ set_arbitrary do |seed|
9
+ if seed == 0
10
+ return []
11
+ else
12
+ base = ((@@bound * seed).ceil)
13
+
14
+ ary = Array.new(rand(base) + 1)
15
+
16
+ if seed > 0.3
17
+ ary.map!{|ar| Array.new(rand(base) + 1) }
18
+ end
19
+
20
+ if seed > 0.5
21
+ ary.map!{|ar| ar.map!{|a| Array.new(rand(base) + 1) } }
22
+ end
23
+
24
+ if seed > 0.8
25
+ ary.map!{|ar| ar.map!{|a| a.map!{|item| Array.new(rand(base) + 1) } } }
26
+ end
27
+
28
+ return ary
29
+ end
30
+ end
31
+ end
32
+
33
+
@@ -0,0 +1,9 @@
1
+ require 'queencheck/arbitrary'
2
+
3
+ class Boolean
4
+ extend QueenCheck::Arbitrary
5
+
6
+ set_arbitrary do | seed |
7
+ rand(2).zero? ? true : false
8
+ end
9
+ end
@@ -0,0 +1,16 @@
1
+
2
+ module QueenCheck
3
+ class Config
4
+ attr_reader :count, :log
5
+
6
+ def initialize(options = nil)
7
+ options ||= {}
8
+
9
+ @count = options[:count] || 100 # デフォルトの試行回数は 100 回
10
+ @verbose = options[:verbose] || false
11
+ @log = options[:log] || STDOUT
12
+ end
13
+
14
+ def verbose?; @verbose; end
15
+ end
16
+ end
@@ -0,0 +1,107 @@
1
+ require 'queencheck/config'
2
+
3
+ module QueenCheck
4
+ def self.new(*args)
5
+ QueenCheck::Core.new(*args)
6
+ end
7
+
8
+ class Core
9
+ def initialize(instance, method, *types)
10
+ @instance = instance
11
+ @method = method.respond_to?(:call) ? method : instance.method(method.to_s.to_sym)
12
+ @types = types.map do | type |
13
+ if type.respond_to?(:arbitrary?) && type.arbitrary?
14
+ next type
15
+ elsif types.kind_of?(Symbol)
16
+ type = QueenCheck::Arbitrary::Instance.get_by_id(type)
17
+ next type if type
18
+ end
19
+ raise QueenCheck::Arbitrary::NotQueenCheckArbitrary, "`#{type}` is not implemented arbitrary"
20
+ end
21
+ end
22
+
23
+ def run(config = QueenCheck::Config.new, &block)
24
+ config = config.kind_of?(Hash) ? QueenCheck::Config.new(config) : config
25
+
26
+ stats = QueenCheck::Core::Result.new(config.count)
27
+
28
+ config.count.times do | n |
29
+ range = n.to_f / config.count
30
+ arguments = []
31
+ @types.each do | type |
32
+ arguments.push(type.arbitrary(range))
33
+ end
34
+
35
+ if config.verbose?
36
+ arguments.each_with_index do | n, i |
37
+ puts "#{@types[i]}: #{n}"
38
+ end
39
+ end
40
+
41
+ result, error = nil, nil
42
+ begin
43
+ result = @method.call(*arguments)
44
+ rescue Exception => e
45
+ error = e
46
+ end
47
+
48
+ is_exception = false
49
+ begin
50
+ test_result = block.call(result, arguments, error)
51
+ rescue Exception => e
52
+ error = e
53
+ is_exception = true
54
+ end
55
+
56
+ if config.verbose?
57
+ print "#{@instance.kind_of?(Class) ? @instance.name : @instance.class.name} \##{@method.respond_to?(:name) ? @method.name : @method.class} ("
58
+ print @types.map{|type| "#{type.name}" }.join(', ') + ')'
59
+ puts " => #{is_exception ? error.class : test_result}"
60
+ end
61
+
62
+ unless is_exception
63
+ case test_result
64
+ when true
65
+ stats.passed += 1
66
+ when false
67
+ stats.failures += 1
68
+ end
69
+ else
70
+ stats.add_exception(error)
71
+ end
72
+ end
73
+
74
+ return stats
75
+ end
76
+
77
+ class Result
78
+ def initialize(examples)
79
+ @examples = examples
80
+ @passed = 0
81
+ @failures = 0
82
+ @exceptions = []
83
+ end
84
+ attr_reader :examples, :passed, :failures
85
+
86
+ def passed=(n)
87
+ raise RangeError if n > @examples
88
+ @passed = n
89
+ end
90
+
91
+ def failures=(n)
92
+ raise RangeError if n > @examples
93
+ @failures = n
94
+ end
95
+
96
+ def exceptions; @exceptions.length; end
97
+
98
+ def add_exception(e)
99
+ @exceptions.push(e)
100
+ end
101
+ end
102
+ end
103
+ end
104
+
105
+ def QueenCheck(*args)
106
+ QueenCheck.new(*args)
107
+ end
@@ -0,0 +1,44 @@
1
+
2
+ module QueenCheck
3
+ class << self
4
+ def ElementsOf(name, elements = nil)
5
+ if elements.nil? && !name.kind_of?(Array)
6
+ return QueenCheck::ElementsOf.get_by_id(name)
7
+ else
8
+ return QueenCheck::ElementsOf.new(name, elements)
9
+ end
10
+ end
11
+ end
12
+
13
+ class ElementsOf
14
+ @@instances = {}
15
+
16
+ def self.get_by_id(id)
17
+ return @@instances[id.to_s.to_sym]
18
+ end
19
+
20
+ attr_reader :elements, :name
21
+
22
+ def arbitrary?; true; end
23
+
24
+ def arbitrary(seed)
25
+ @elements[rand(@elements.length)]
26
+ end
27
+
28
+ def initialize(name, elements = nil)
29
+ if elements.nil? && name.kind_of?(Array)
30
+ elements = name
31
+ name = nil
32
+ end
33
+
34
+ raise ArgumentError, 'elements length require over 1' if !elements.respond_to?(:length) || elements.length < 0
35
+ @elements = elements
36
+
37
+ if name
38
+ @name = name.to_s.to_sym
39
+ @@instances[@name] = self
40
+ QueenCheck::Arbitrary::Instance.collection["elements_of_#{@name}".to_sym] = self
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,23 @@
1
+ require 'queencheck/arbitrary'
2
+
3
+ class Float
4
+ extend QueenCheck::Arbitrary
5
+
6
+ @@bound = 25
7
+
8
+ set_arbitrary do |seed|
9
+ if seed == 0
10
+ 0.0
11
+ else
12
+ if seed > 0.9 && rand(3) > 0
13
+ return rand(2).zero? ? 0.0/0.0 : rand(2).zero? ? 1.0/0 : -1.0/0
14
+ end
15
+ base = ((@@bound * seed).ceil).to_f
16
+ max = 10.0 ** base
17
+ num = rand(max)
18
+ nod = num.to_s.length
19
+ num.to_f / (10 ** ((rand(nod / 2) + nod / 2) / 2)) * (rand(2).zero? ? 1.0 : -1.0)
20
+ end
21
+ end
22
+ end
23
+
@@ -0,0 +1,16 @@
1
+ require 'queencheck/arbitrary'
2
+
3
+ class Integer
4
+ extend QueenCheck::Arbitrary
5
+
6
+ @@bound = 25
7
+
8
+ set_arbitrary do |seed|
9
+ if seed == 0
10
+ 0
11
+ else
12
+ max = 10 ** ((@@bound * seed).ceil)
13
+ rand(max) * (rand(2).zero? ? 1 : -1)
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,41 @@
1
+ require 'queencheck/arbitrary'
2
+
3
+ class String
4
+ extend QueenCheck::Arbitrary
5
+
6
+ @@max_length = 3000
7
+
8
+ set_arbitrary do | seed |
9
+ max = (@@max_length * (seed * seed)).ceil
10
+
11
+ charset = []
12
+ if seed == 0
13
+ return ''
14
+ elsif seed < 0.1
15
+ charset = (0x61 ... 0x7b).to_a + (0x41 ... 0x5b).to_a
16
+ elsif seed < 0.3 # ASCII
17
+ charset = (0x32 ... 0x7f).to_a
18
+ elsif seed < 0.5
19
+ charset = (0x00 ... 0x80).to_a
20
+ elsif seed < 0.7
21
+ charset = (0x00 ... 0x80).to_a
22
+ charset += (0x80 ... 0x800).to_a
23
+ elsif seed < 0.9
24
+ charset = (0x00 ... 0x80).to_a
25
+ charset += (0x80 ... 0x800).to_a
26
+ charset += (0x800 ... 0x8000).to_a
27
+ elsif seed <= 1
28
+ charset = (0x00 ... 0x80).to_a
29
+ charset += (0x80 ... 0x800).to_a
30
+ charset += (0x800 ... 0x8000).to_a
31
+ charset += (0x1000 ... 0x20000).to_a
32
+ end
33
+
34
+ ret = []
35
+ (rand(max/2) + (max/2)).times do
36
+ ret << charset[rand(charset.length)]
37
+ end
38
+
39
+ return ret.pack('U*')
40
+ end
41
+ end
data/lib/queencheck.rb ADDED
@@ -0,0 +1,10 @@
1
+ $:.unshift File.dirname(__FILE__)
2
+
3
+ require 'queencheck/core'
4
+ require 'queencheck/arbitrary'
5
+
6
+ require 'queencheck/integer'
7
+ require 'queencheck/float'
8
+ require 'queencheck/boolean'
9
+ require 'queencheck/array'
10
+ require 'queencheck/string'
@@ -0,0 +1,85 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "queencheck"
8
+ s.version = "0.0.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Sho Kusano"]
12
+ s.date = "2012-01-22"
13
+ s.description = "QueenCheck is random test library. Inspired by QuickCheck library in Haskell."
14
+ s.email = "rosylilly@aduca.org"
15
+ s.extra_rdoc_files = [
16
+ "README.markdown"
17
+ ]
18
+ s.files = [
19
+ ".rspec",
20
+ ".rvmrc",
21
+ ".travis.yml",
22
+ "Gemfile",
23
+ "Guardfile",
24
+ "README.markdown",
25
+ "Rakefile",
26
+ "VERSION",
27
+ "lib/queencheck.rb",
28
+ "lib/queencheck/arbitrary.rb",
29
+ "lib/queencheck/array.rb",
30
+ "lib/queencheck/boolean.rb",
31
+ "lib/queencheck/config.rb",
32
+ "lib/queencheck/core.rb",
33
+ "lib/queencheck/elements_of.rb",
34
+ "lib/queencheck/float.rb",
35
+ "lib/queencheck/integer.rb",
36
+ "lib/queencheck/string.rb",
37
+ "queencheck.gemspec",
38
+ "spec/queencheck/arbitrary_spec.rb",
39
+ "spec/queencheck/core_spec.rb",
40
+ "spec/queencheck/elements_of_spec.rb",
41
+ "spec/queencheck/integer_spec.rb",
42
+ "spec/spec_helper.rb"
43
+ ]
44
+ s.homepage = "https://github.com/rosylilly/QueenCheck"
45
+ s.require_paths = ["lib"]
46
+ s.rubygems_version = "1.8.10"
47
+ s.summary = "like haskell's QuickCheck"
48
+
49
+ if s.respond_to? :specification_version then
50
+ s.specification_version = 3
51
+
52
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
53
+ s.add_development_dependency(%q<jeweler>, [">= 0"])
54
+ s.add_development_dependency(%q<rake>, [">= 0"])
55
+ s.add_development_dependency(%q<rspec>, ["= 2.8.0"])
56
+ s.add_development_dependency(%q<guard-rspec>, ["= 0.6.0"])
57
+ s.add_development_dependency(%q<growl>, ["= 1.0.3"])
58
+ s.add_development_dependency(%q<spork>, ["= 0.9.0.rc9"])
59
+ s.add_development_dependency(%q<guard-spork>, ["= 0.5.1"])
60
+ s.add_development_dependency(%q<rb-fsevent>, ["= 0.4.3.1"])
61
+ s.add_development_dependency(%q<fuubar>, ["~> 0.0.6"])
62
+ else
63
+ s.add_dependency(%q<jeweler>, [">= 0"])
64
+ s.add_dependency(%q<rake>, [">= 0"])
65
+ s.add_dependency(%q<rspec>, ["= 2.8.0"])
66
+ s.add_dependency(%q<guard-rspec>, ["= 0.6.0"])
67
+ s.add_dependency(%q<growl>, ["= 1.0.3"])
68
+ s.add_dependency(%q<spork>, ["= 0.9.0.rc9"])
69
+ s.add_dependency(%q<guard-spork>, ["= 0.5.1"])
70
+ s.add_dependency(%q<rb-fsevent>, ["= 0.4.3.1"])
71
+ s.add_dependency(%q<fuubar>, ["~> 0.0.6"])
72
+ end
73
+ else
74
+ s.add_dependency(%q<jeweler>, [">= 0"])
75
+ s.add_dependency(%q<rake>, [">= 0"])
76
+ s.add_dependency(%q<rspec>, ["= 2.8.0"])
77
+ s.add_dependency(%q<guard-rspec>, ["= 0.6.0"])
78
+ s.add_dependency(%q<growl>, ["= 1.0.3"])
79
+ s.add_dependency(%q<spork>, ["= 0.9.0.rc9"])
80
+ s.add_dependency(%q<guard-spork>, ["= 0.5.1"])
81
+ s.add_dependency(%q<rb-fsevent>, ["= 0.4.3.1"])
82
+ s.add_dependency(%q<fuubar>, ["~> 0.0.6"])
83
+ end
84
+ end
85
+
@@ -0,0 +1,41 @@
1
+ require 'queencheck/arbitrary'
2
+
3
+ describe QueenCheck::Arbitrary do
4
+ class Example
5
+ extend QueenCheck::Arbitrary
6
+ end
7
+
8
+ it 'arbitrary' do
9
+ expect {
10
+ Example.arbitrary(1)
11
+ }.to raise_error NotImplementedError
12
+
13
+ Example.class_eval do
14
+ def arbitrary(seed)
15
+ end
16
+ end
17
+ end
18
+
19
+ describe 'Original Arbitrary' do
20
+ it 'new' do
21
+ arb = QueenCheck::Arbitrary() do | seed |
22
+ if seed < 0.5
23
+ 10**20
24
+ else
25
+ ""
26
+ end
27
+ end
28
+
29
+ arb.arbitrary?.should be_true
30
+ arb.arbitrary(0).should eq(10**20)
31
+ arb.arbitrary(1).should eq("")
32
+ end
33
+
34
+ it 'named search' do
35
+ arb = QueenCheck::Arbitrary(:sample) {}
36
+
37
+ QueenCheck::Arbitrary(:sample).should eq(arb)
38
+ end
39
+ end
40
+ end
41
+
@@ -0,0 +1,33 @@
1
+ require 'queencheck'
2
+
3
+ describe QueenCheck do
4
+ before(:each) do
5
+ @checker = QueenCheck.new(3, :+, Integer)
6
+ end
7
+
8
+ it 'quick test' do
9
+ ret = @checker.run do | result, arguments |
10
+ result.should == 3 + arguments[0]
11
+ end
12
+
13
+ ret.examples.should eq(100)
14
+ ret.passed.should eq(100)
15
+ ret.failures.should eq(0)
16
+ end
17
+
18
+ it 'exception' do
19
+ div = QueenCheck(5, :/, Integer)
20
+
21
+ ret = div.run do | result, arguments, error |
22
+ if error
23
+ error.should be_kind_of(ZeroDivisionError)
24
+ else
25
+ result.should eq(5 / arguments[0])
26
+ end
27
+ end
28
+
29
+ ret.examples.should eq(100)
30
+ ret.passed.should eq(100)
31
+ end
32
+ end
33
+
@@ -0,0 +1,22 @@
1
+ require 'queencheck/elements_of'
2
+
3
+ describe QueenCheck::ElementsOf do
4
+ before(:each) do
5
+ @samples = ['a', 'b', 'c']
6
+ @elements_of = QueenCheck::ElementsOf.new(@samples)
7
+ end
8
+
9
+ it 'choose one' do
10
+ 100.times do
11
+ @samples.should be_include(@elements_of.arbitrary(rand(10).to_f / 10))
12
+ end
13
+ end
14
+
15
+ it 'named type' do
16
+ named = QueenCheck::ElementsOf(:names, ['test', 'sample'])
17
+
18
+ named.should be_kind_of(QueenCheck::ElementsOf)
19
+ QueenCheck::ElementsOf(:names).should eq(named)
20
+ QueenCheck::Arbitrary(:elements_of_names).should eq(named)
21
+ end
22
+ end
@@ -0,0 +1,11 @@
1
+ describe Integer do
2
+ it ".arbitrary" do
3
+ 100.times do
4
+ Integer.arbitrary(0).should be_zero
5
+ end
6
+
7
+ 100.times do |n|
8
+ n = n / 100.0
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ require 'rubygems'
2
+ require 'spork'
3
+ require 'rspec'
4
+
5
+ Spork.prefork do
6
+ config(:before) do
7
+ @lib_path = Pathname.new(File.expand_path('../../lib/', __FILE__))
8
+ end
9
+ end
10
+
11
+ Spork.each_run do
12
+ end
metadata ADDED
@@ -0,0 +1,169 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: queencheck
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Sho Kusano
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-01-22 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: jeweler
16
+ requirement: &70273802055380 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *70273802055380
25
+ - !ruby/object:Gem::Dependency
26
+ name: rake
27
+ requirement: &70273802054200 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70273802054200
36
+ - !ruby/object:Gem::Dependency
37
+ name: rspec
38
+ requirement: &70273802069140 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - =
42
+ - !ruby/object:Gem::Version
43
+ version: 2.8.0
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *70273802069140
47
+ - !ruby/object:Gem::Dependency
48
+ name: guard-rspec
49
+ requirement: &70273802068260 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - =
53
+ - !ruby/object:Gem::Version
54
+ version: 0.6.0
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *70273802068260
58
+ - !ruby/object:Gem::Dependency
59
+ name: growl
60
+ requirement: &70273802067680 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - =
64
+ - !ruby/object:Gem::Version
65
+ version: 1.0.3
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *70273802067680
69
+ - !ruby/object:Gem::Dependency
70
+ name: spork
71
+ requirement: &70273802067040 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - =
75
+ - !ruby/object:Gem::Version
76
+ version: 0.9.0.rc9
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *70273802067040
80
+ - !ruby/object:Gem::Dependency
81
+ name: guard-spork
82
+ requirement: &70273802066300 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - =
86
+ - !ruby/object:Gem::Version
87
+ version: 0.5.1
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: *70273802066300
91
+ - !ruby/object:Gem::Dependency
92
+ name: rb-fsevent
93
+ requirement: &70273802065700 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - =
97
+ - !ruby/object:Gem::Version
98
+ version: 0.4.3.1
99
+ type: :development
100
+ prerelease: false
101
+ version_requirements: *70273802065700
102
+ - !ruby/object:Gem::Dependency
103
+ name: fuubar
104
+ requirement: &70273802065100 !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 0.0.6
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: *70273802065100
113
+ description: QueenCheck is random test library. Inspired by QuickCheck library in
114
+ Haskell.
115
+ email: rosylilly@aduca.org
116
+ executables: []
117
+ extensions: []
118
+ extra_rdoc_files:
119
+ - README.markdown
120
+ files:
121
+ - .rspec
122
+ - .rvmrc
123
+ - .travis.yml
124
+ - Gemfile
125
+ - Guardfile
126
+ - README.markdown
127
+ - Rakefile
128
+ - VERSION
129
+ - lib/queencheck.rb
130
+ - lib/queencheck/arbitrary.rb
131
+ - lib/queencheck/array.rb
132
+ - lib/queencheck/boolean.rb
133
+ - lib/queencheck/config.rb
134
+ - lib/queencheck/core.rb
135
+ - lib/queencheck/elements_of.rb
136
+ - lib/queencheck/float.rb
137
+ - lib/queencheck/integer.rb
138
+ - lib/queencheck/string.rb
139
+ - queencheck.gemspec
140
+ - spec/queencheck/arbitrary_spec.rb
141
+ - spec/queencheck/core_spec.rb
142
+ - spec/queencheck/elements_of_spec.rb
143
+ - spec/queencheck/integer_spec.rb
144
+ - spec/spec_helper.rb
145
+ homepage: https://github.com/rosylilly/QueenCheck
146
+ licenses: []
147
+ post_install_message:
148
+ rdoc_options: []
149
+ require_paths:
150
+ - lib
151
+ required_ruby_version: !ruby/object:Gem::Requirement
152
+ none: false
153
+ requirements:
154
+ - - ! '>='
155
+ - !ruby/object:Gem::Version
156
+ version: '0'
157
+ required_rubygems_version: !ruby/object:Gem::Requirement
158
+ none: false
159
+ requirements:
160
+ - - ! '>='
161
+ - !ruby/object:Gem::Version
162
+ version: '0'
163
+ requirements: []
164
+ rubyforge_project:
165
+ rubygems_version: 1.8.10
166
+ signing_key:
167
+ specification_version: 3
168
+ summary: like haskell's QuickCheck
169
+ test_files: []