rushcheck 0.2
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/COPYING +515 -0
- data/INSTALL +14 -0
- data/LICENSE +5 -0
- data/README +49 -0
- data/Rakefile +39 -0
- data/copying.txt +23 -0
- data/data/rushcheck/doc/policy.txt +520 -0
- data/data/rushcheck/doc/rushcheck.txt +612 -0
- data/data/rushcheck/examples/printf.rb +22 -0
- data/data/rushcheck/examples/proc.rb +33 -0
- data/data/rushcheck/examples/roguetile.rb +153 -0
- data/data/rushcheck/examples/sample.rb +52 -0
- data/data/rushcheck/rdoc/classes/Arbitrary.html +148 -0
- data/data/rushcheck/rdoc/classes/Arbitrary.src/M000075.html +18 -0
- data/data/rushcheck/rdoc/classes/Assertion.html +183 -0
- data/data/rushcheck/rdoc/classes/Assertion.src/M000015.html +20 -0
- data/data/rushcheck/rdoc/classes/Assertion.src/M000016.html +45 -0
- data/data/rushcheck/rdoc/classes/Coarbitrary.html +135 -0
- data/data/rushcheck/rdoc/classes/Coarbitrary.src/M000095.html +18 -0
- data/data/rushcheck/rdoc/classes/FalseClass.html +177 -0
- data/data/rushcheck/rdoc/classes/FalseClass.src/M000018.html +18 -0
- data/data/rushcheck/rdoc/classes/FalseClass.src/M000019.html +18 -0
- data/data/rushcheck/rdoc/classes/FalseClass.src/M000020.html +18 -0
- data/data/rushcheck/rdoc/classes/Float.html +191 -0
- data/data/rushcheck/rdoc/classes/Float.src/M000047.html +21 -0
- data/data/rushcheck/rdoc/classes/Float.src/M000048.html +18 -0
- data/data/rushcheck/rdoc/classes/Float.src/M000049.html +22 -0
- data/data/rushcheck/rdoc/classes/Float.src/M000050.html +20 -0
- data/data/rushcheck/rdoc/classes/Gen.html +515 -0
- data/data/rushcheck/rdoc/classes/Gen.src/M000026.html +18 -0
- data/data/rushcheck/rdoc/classes/Gen.src/M000027.html +20 -0
- data/data/rushcheck/rdoc/classes/Gen.src/M000028.html +28 -0
- data/data/rushcheck/rdoc/classes/Gen.src/M000029.html +24 -0
- data/data/rushcheck/rdoc/classes/Gen.src/M000030.html +18 -0
- data/data/rushcheck/rdoc/classes/Gen.src/M000031.html +18 -0
- data/data/rushcheck/rdoc/classes/Gen.src/M000032.html +18 -0
- data/data/rushcheck/rdoc/classes/Gen.src/M000033.html +18 -0
- data/data/rushcheck/rdoc/classes/Gen.src/M000034.html +18 -0
- data/data/rushcheck/rdoc/classes/Gen.src/M000035.html +24 -0
- data/data/rushcheck/rdoc/classes/Gen.src/M000036.html +18 -0
- data/data/rushcheck/rdoc/classes/Gen.src/M000037.html +21 -0
- data/data/rushcheck/rdoc/classes/Gen.src/M000038.html +18 -0
- data/data/rushcheck/rdoc/classes/Gen.src/M000039.html +18 -0
- data/data/rushcheck/rdoc/classes/Gen.src/M000040.html +23 -0
- data/data/rushcheck/rdoc/classes/Gen.src/M000041.html +19 -0
- data/data/rushcheck/rdoc/classes/Gen.src/M000042.html +18 -0
- data/data/rushcheck/rdoc/classes/Gen.src/M000043.html +24 -0
- data/data/rushcheck/rdoc/classes/Guard.html +159 -0
- data/data/rushcheck/rdoc/classes/Guard.src/M000024.html +27 -0
- data/data/rushcheck/rdoc/classes/Guard.src/M000025.html +18 -0
- data/data/rushcheck/rdoc/classes/HsRandom.html +201 -0
- data/data/rushcheck/rdoc/classes/HsRandom.src/M000081.html +22 -0
- data/data/rushcheck/rdoc/classes/HsRandom.src/M000082.html +32 -0
- data/data/rushcheck/rdoc/classes/HsRandom.src/M000083.html +18 -0
- data/data/rushcheck/rdoc/classes/Integer.html +212 -0
- data/data/rushcheck/rdoc/classes/Integer.src/M000006.html +18 -0
- data/data/rushcheck/rdoc/classes/Integer.src/M000007.html +18 -0
- data/data/rushcheck/rdoc/classes/Integer.src/M000008.html +21 -0
- data/data/rushcheck/rdoc/classes/Integer.src/M000009.html +19 -0
- data/data/rushcheck/rdoc/classes/NilClass.html +177 -0
- data/data/rushcheck/rdoc/classes/NilClass.src/M000059.html +18 -0
- data/data/rushcheck/rdoc/classes/NilClass.src/M000060.html +18 -0
- data/data/rushcheck/rdoc/classes/NilClass.src/M000061.html +18 -0
- data/data/rushcheck/rdoc/classes/Property.html +174 -0
- data/data/rushcheck/rdoc/classes/Property.src/M000070.html +26 -0
- data/data/rushcheck/rdoc/classes/Property.src/M000071.html +18 -0
- data/data/rushcheck/rdoc/classes/RandomArray.html +184 -0
- data/data/rushcheck/rdoc/classes/RandomArray.src/M000021.html +18 -0
- data/data/rushcheck/rdoc/classes/RandomArray.src/M000022.html +35 -0
- data/data/rushcheck/rdoc/classes/RandomArray.src/M000023.html +22 -0
- data/data/rushcheck/rdoc/classes/RandomBool.html +146 -0
- data/data/rushcheck/rdoc/classes/RandomBool.src/M000079.html +18 -0
- data/data/rushcheck/rdoc/classes/RandomBool.src/M000080.html +19 -0
- data/data/rushcheck/rdoc/classes/RandomGen.html +196 -0
- data/data/rushcheck/rdoc/classes/RandomGen.src/M000076.html +18 -0
- data/data/rushcheck/rdoc/classes/RandomGen.src/M000077.html +18 -0
- data/data/rushcheck/rdoc/classes/RandomGen.src/M000078.html +18 -0
- data/data/rushcheck/rdoc/classes/RandomHash.html +197 -0
- data/data/rushcheck/rdoc/classes/RandomHash.src/M000044.html +18 -0
- data/data/rushcheck/rdoc/classes/RandomHash.src/M000045.html +26 -0
- data/data/rushcheck/rdoc/classes/RandomHash.src/M000046.html +22 -0
- data/data/rushcheck/rdoc/classes/RandomProc.html +192 -0
- data/data/rushcheck/rdoc/classes/RandomProc.src/M000055.html +18 -0
- data/data/rushcheck/rdoc/classes/RandomProc.src/M000056.html +30 -0
- data/data/rushcheck/rdoc/classes/RandomProc.src/M000057.html +26 -0
- data/data/rushcheck/rdoc/classes/RandomProc.src/M000058.html +20 -0
- data/data/rushcheck/rdoc/classes/Result.html +214 -0
- data/data/rushcheck/rdoc/classes/Result.src/M000051.html +18 -0
- data/data/rushcheck/rdoc/classes/Result.src/M000052.html +18 -0
- data/data/rushcheck/rdoc/classes/Result.src/M000053.html +18 -0
- data/data/rushcheck/rdoc/classes/RushCheckConfig.html +240 -0
- data/data/rushcheck/rdoc/classes/RushCheckConfig.src/M000001.html +23 -0
- data/data/rushcheck/rdoc/classes/RushCheckConfig.src/M000002.html +22 -0
- data/data/rushcheck/rdoc/classes/RushCheckConfig.src/M000003.html +18 -0
- data/data/rushcheck/rdoc/classes/RushCheckConfig.src/M000004.html +38 -0
- data/data/rushcheck/rdoc/classes/RushCheckConfig.src/M000005.html +55 -0
- data/data/rushcheck/rdoc/classes/RushCheckGuard.html +118 -0
- data/data/rushcheck/rdoc/classes/SpecialString.html +151 -0
- data/data/rushcheck/rdoc/classes/SpecialString.src/M000017.html +37 -0
- data/data/rushcheck/rdoc/classes/StdGen.html +252 -0
- data/data/rushcheck/rdoc/classes/StdGen.src/M000010.html +23 -0
- data/data/rushcheck/rdoc/classes/StdGen.src/M000011.html +21 -0
- data/data/rushcheck/rdoc/classes/StdGen.src/M000012.html +21 -0
- data/data/rushcheck/rdoc/classes/StdGen.src/M000013.html +18 -0
- data/data/rushcheck/rdoc/classes/StdGen.src/M000014.html +18 -0
- data/data/rushcheck/rdoc/classes/String.html +191 -0
- data/data/rushcheck/rdoc/classes/String.src/M000066.html +24 -0
- data/data/rushcheck/rdoc/classes/String.src/M000067.html +18 -0
- data/data/rushcheck/rdoc/classes/String.src/M000068.html +25 -0
- data/data/rushcheck/rdoc/classes/String.src/M000069.html +22 -0
- data/data/rushcheck/rdoc/classes/Testable.html +281 -0
- data/data/rushcheck/rdoc/classes/Testable.src/M000084.html +18 -0
- data/data/rushcheck/rdoc/classes/Testable.src/M000085.html +18 -0
- data/data/rushcheck/rdoc/classes/Testable.src/M000088.html +18 -0
- data/data/rushcheck/rdoc/classes/Testable.src/M000089.html +18 -0
- data/data/rushcheck/rdoc/classes/Testable.src/M000090.html +18 -0
- data/data/rushcheck/rdoc/classes/Testable.src/M000092.html +18 -0
- data/data/rushcheck/rdoc/classes/Testable.src/M000094.html +18 -0
- data/data/rushcheck/rdoc/classes/TheStdGen.html +200 -0
- data/data/rushcheck/rdoc/classes/TheStdGen.src/M000062.html +18 -0
- data/data/rushcheck/rdoc/classes/TheStdGen.src/M000063.html +20 -0
- data/data/rushcheck/rdoc/classes/TheStdGen.src/M000064.html +21 -0
- data/data/rushcheck/rdoc/classes/TheStdGen.src/M000065.html +18 -0
- data/data/rushcheck/rdoc/classes/TrueClass.html +177 -0
- data/data/rushcheck/rdoc/classes/TrueClass.src/M000072.html +18 -0
- data/data/rushcheck/rdoc/classes/TrueClass.src/M000073.html +18 -0
- data/data/rushcheck/rdoc/classes/TrueClass.src/M000074.html +18 -0
- data/data/rushcheck/rdoc/created.rid +1 -0
- data/data/rushcheck/rdoc/files/rushcheck/arbitrary_rb.html +114 -0
- data/data/rushcheck/rdoc/files/rushcheck/array_rb.html +117 -0
- data/data/rushcheck/rdoc/files/rushcheck/assertion_rb.html +120 -0
- data/data/rushcheck/rdoc/files/rushcheck/bool_rb.html +120 -0
- data/data/rushcheck/rdoc/files/rushcheck/config_rb.html +109 -0
- data/data/rushcheck/rdoc/files/rushcheck/float_rb.html +118 -0
- data/data/rushcheck/rdoc/files/rushcheck/gen_rb.html +111 -0
- data/data/rushcheck/rdoc/files/rushcheck/guard_rb.html +108 -0
- data/data/rushcheck/rdoc/files/rushcheck/hash_rb.html +117 -0
- data/data/rushcheck/rdoc/files/rushcheck/integer_rb.html +118 -0
- data/data/rushcheck/rdoc/files/rushcheck/proc_rb.html +118 -0
- data/data/rushcheck/rdoc/files/rushcheck/property_rb.html +119 -0
- data/data/rushcheck/rdoc/files/rushcheck/random_rb.html +126 -0
- data/data/rushcheck/rdoc/files/rushcheck/result_rb.html +118 -0
- data/data/rushcheck/rdoc/files/rushcheck/rushcheck_rb.html +123 -0
- data/data/rushcheck/rdoc/files/rushcheck/string_rb.html +121 -0
- data/data/rushcheck/rdoc/files/rushcheck/testable_rb.html +117 -0
- data/data/rushcheck/rdoc/fr_class_index.html +51 -0
- data/data/rushcheck/rdoc/fr_file_index.html +43 -0
- data/data/rushcheck/rdoc/fr_method_index.html +121 -0
- data/data/rushcheck/rdoc/index.html +24 -0
- data/data/rushcheck/rdoc/rdoc-style.css +208 -0
- data/lib/rushcheck/arbitrary.rb +28 -0
- data/lib/rushcheck/array.rb +49 -0
- data/lib/rushcheck/assertion.rb +67 -0
- data/lib/rushcheck/bool.rb +90 -0
- data/lib/rushcheck/config.rb +98 -0
- data/lib/rushcheck/float.rb +43 -0
- data/lib/rushcheck/gen.rb +189 -0
- data/lib/rushcheck/guard.rb +27 -0
- data/lib/rushcheck/hash.rb +45 -0
- data/lib/rushcheck/integer.rb +43 -0
- data/lib/rushcheck/proc.rb +53 -0
- data/lib/rushcheck/property.rb +29 -0
- data/lib/rushcheck/random.rb +215 -0
- data/lib/rushcheck/result.rb +26 -0
- data/lib/rushcheck/rushcheck.rb +17 -0
- data/lib/rushcheck/string.rb +100 -0
- data/lib/rushcheck/testable.rb +41 -0
- metadata +238 -0
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
# = random.rb - A library for psuedo-random number from Haskell
|
|
2
|
+
#
|
|
3
|
+
# This library deals with the common task of
|
|
4
|
+
# psuedo-random number generation from Haskell98. The library
|
|
5
|
+
# makes it possible to generate repeatable results, by starting
|
|
6
|
+
# with a specified initial random number generator; or to get
|
|
7
|
+
# different results on each run by using the system-initialised
|
|
8
|
+
# generator, or by supplying a seed from some other source.
|
|
9
|
+
#
|
|
10
|
+
# This file provides two module RandomGen, HsRandom, two classes
|
|
11
|
+
# StdGen and TheStdGen.
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# The module RandomGen is an abstract module. This is included
|
|
15
|
+
# to add instance methods. The author considers that few developers
|
|
16
|
+
# need to read this implementation. See StdGen as an example.
|
|
17
|
+
# Check also Haskell's System.Random library.
|
|
18
|
+
module RandomGen
|
|
19
|
+
|
|
20
|
+
# gen_next should be overrided as an instance method.
|
|
21
|
+
# It is assumed that gen_next returns an array with length 2.
|
|
22
|
+
# Here, call 'Foo' the class which includes RandomGen.
|
|
23
|
+
# The first components of the result should be an integer, and the
|
|
24
|
+
# last components should be an object which belongs to the class
|
|
25
|
+
# Foo.
|
|
26
|
+
def gen_next
|
|
27
|
+
raise_not_implemented_error
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# split should be overrided as an instance method.
|
|
31
|
+
# It is assumed that split returns an array with length 2.
|
|
32
|
+
# Here, call 'Foo' the class which includes RandomGen.
|
|
33
|
+
# Then the components of the result are objects which belongs to the
|
|
34
|
+
# class Foo.
|
|
35
|
+
def split
|
|
36
|
+
raise_not_implemented_error
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# gen_range should be overrided as an instance method.
|
|
40
|
+
# It is assumed that split returns an array with length 2.
|
|
41
|
+
# Here, call 'Foo' the class which includes RandomGen.
|
|
42
|
+
# Then the components of the result are integers where
|
|
43
|
+
# the first components should be the lowest bound of
|
|
44
|
+
# the first components of gen_next. Another should be
|
|
45
|
+
# the highest bound of the first components of gen_next.
|
|
46
|
+
def gen_range
|
|
47
|
+
raise_not_implemented_error
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
private
|
|
51
|
+
def raise_not_implemented_error
|
|
52
|
+
raise(NotImplementedError, "This method should be overrided.")
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# StdGen is a class (and the unique class) which includes RandomGen.
|
|
58
|
+
# This class provides a functional random number generator.
|
|
59
|
+
class StdGen
|
|
60
|
+
|
|
61
|
+
include RandomGen
|
|
62
|
+
|
|
63
|
+
@@min_bound = -(2**30)
|
|
64
|
+
@@max_bound = 2**30 - 1
|
|
65
|
+
|
|
66
|
+
# left and right are two seeds of random number generator.
|
|
67
|
+
attr_reader :left, :right
|
|
68
|
+
def initialize(left=nil, right=nil)
|
|
69
|
+
@left, @right = [left, right].map do |x|
|
|
70
|
+
if x.nil?
|
|
71
|
+
then random
|
|
72
|
+
else in_range(x)
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# gen_next returns an array with length 2. The first component of
|
|
78
|
+
# result is a random integer. The last component is a new StdGen
|
|
79
|
+
# object as a new random number generator. See also RandomGen.
|
|
80
|
+
def gen_next
|
|
81
|
+
s, t = [@left, @right].map {|x| random(x) }
|
|
82
|
+
z = ((s - t) % (@@max_bound - @@min_bound)) + @@min_bound
|
|
83
|
+
|
|
84
|
+
[z, StdGen.new(s, t)]
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
# split returns an array with length 2. The components are
|
|
88
|
+
# two new StdGen objects as two new random number generators.
|
|
89
|
+
def split
|
|
90
|
+
g = gen_next[1]
|
|
91
|
+
s, t = g.left, g.right
|
|
92
|
+
|
|
93
|
+
[StdGen.new(s + 1, t), StdGen.new(s, t + 1)]
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
# gen_range returns an array with length 2 which represents
|
|
97
|
+
# a bound of generated random numbers.
|
|
98
|
+
def gen_range
|
|
99
|
+
[@@min_bound, @@max_bound]
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def to_s
|
|
103
|
+
@left.to_s + ' ' + @right.to_s
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
private
|
|
107
|
+
def random(s=nil)
|
|
108
|
+
if s.nil? then srand else srand s end
|
|
109
|
+
rand(@@max_bound - @@min_bound) + @@min_bound
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
def in_range(n)
|
|
113
|
+
(n % (@@max_bound - @@min_bound)) + @@min_bound
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
require 'singleton'
|
|
120
|
+
|
|
121
|
+
# TheStdGen is a singleton class to get the unique random number
|
|
122
|
+
# generator using StdGen. TheStdGen includes ruby's Singleton module.
|
|
123
|
+
class TheStdGen
|
|
124
|
+
|
|
125
|
+
include RandomGen
|
|
126
|
+
include Singleton
|
|
127
|
+
|
|
128
|
+
def initialize
|
|
129
|
+
@gen = StdGen.new
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
def gen_next
|
|
133
|
+
@gen, result = @gen.split
|
|
134
|
+
|
|
135
|
+
result.gen_next
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
def split
|
|
139
|
+
result = @gen.split
|
|
140
|
+
@gen = @gen.gen_next[1]
|
|
141
|
+
|
|
142
|
+
result
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
def gen_range
|
|
146
|
+
@gen.gen_range
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
# HsRandom module provides several random number function with the
|
|
153
|
+
# functional random generator. This module is implemented Haskell\'s
|
|
154
|
+
# System.Random library. This module assumes that the class which
|
|
155
|
+
# includes HsRandom should have an instance method random_range to
|
|
156
|
+
# generate a random number and a new random number generator.
|
|
157
|
+
# It assumes also that the class which includes HsRandom should have
|
|
158
|
+
# a class method bound to give a bound of random numbers.
|
|
159
|
+
module HsRandom
|
|
160
|
+
|
|
161
|
+
# random requires the functional random number generater (StdGen
|
|
162
|
+
# object) and optionally requires the bound of random numbers.
|
|
163
|
+
# It returns an array with length 2, where the first component
|
|
164
|
+
# should be a new random number, and the last should be a new random
|
|
165
|
+
# number generator.
|
|
166
|
+
def random(gen, lo=nil, hi=nil)
|
|
167
|
+
lo = bound[0] if lo.nil?
|
|
168
|
+
hi = bound[1] if hi.nil?
|
|
169
|
+
random_range(gen, hi, lo) if lo > hi
|
|
170
|
+
|
|
171
|
+
random_range(gen, lo, hi)
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
# random_array requires the functional random number generater
|
|
175
|
+
# (StdGen object). Optionally, it requires the length of results and
|
|
176
|
+
# the bound of random numbers. This method returns different result
|
|
177
|
+
# whether the second argument length is nil or not. When the second
|
|
178
|
+
# argument is nil, then random_array returns a Proc which takes one
|
|
179
|
+
# variable as an integer and return a new random value, such as an
|
|
180
|
+
# infinite sequence of random numbers. Otherwise, the second
|
|
181
|
+
# argument of random_array is not nil but some integer, then
|
|
182
|
+
# random_array returns an array of random numbers with the length.
|
|
183
|
+
def random_array(gen, len=nil, lo=nil, hi=nil)
|
|
184
|
+
g = gen
|
|
185
|
+
if len.nil?
|
|
186
|
+
then
|
|
187
|
+
Proc.new do |i|
|
|
188
|
+
(i+1).times do
|
|
189
|
+
v, g = random(g, lo, hi)
|
|
190
|
+
end
|
|
191
|
+
v
|
|
192
|
+
end
|
|
193
|
+
else
|
|
194
|
+
(1..len).map do
|
|
195
|
+
v, g = random(g, lo, hi)
|
|
196
|
+
v
|
|
197
|
+
end
|
|
198
|
+
end
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
# random_std requires optionally the bound of random numbers.
|
|
202
|
+
# It returns an array with length 2, where the first component
|
|
203
|
+
# should be a new random number, and the last should be a new random
|
|
204
|
+
# number generator. This method uses the unique standard random
|
|
205
|
+
# generator TheStdGen.
|
|
206
|
+
def random_std(lo=nil, hi=nil)
|
|
207
|
+
random(TheStdGen.instance, lo, hi)
|
|
208
|
+
end
|
|
209
|
+
|
|
210
|
+
def random_range(gen, lo=nil, hi=nil)
|
|
211
|
+
raise(NotImplementedError, "This method should be overrided.")
|
|
212
|
+
end
|
|
213
|
+
private :random_range
|
|
214
|
+
|
|
215
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# = result.rb
|
|
2
|
+
# This file defines results of testcase
|
|
3
|
+
# class Result is used for RushCheck internally
|
|
4
|
+
|
|
5
|
+
require 'rushcheck/property'
|
|
6
|
+
require 'rushcheck/testable'
|
|
7
|
+
|
|
8
|
+
class Result
|
|
9
|
+
|
|
10
|
+
include Testable
|
|
11
|
+
|
|
12
|
+
def self.nothing
|
|
13
|
+
Result.new(false)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
attr_reader :ok, :stamp, :arguments
|
|
17
|
+
def initialize(ok=nil, stamp=[], arguments=[])
|
|
18
|
+
@ok, @stamp, @arguments = ok, stamp, arguments
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def result
|
|
22
|
+
Property.new(@ok, @stamp, @arguments)
|
|
23
|
+
end
|
|
24
|
+
alias property :result
|
|
25
|
+
|
|
26
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# = rushcheck.rb
|
|
2
|
+
# this is just a prelude include file
|
|
3
|
+
# this provides all of feature of RushCheck for random testing.
|
|
4
|
+
|
|
5
|
+
require 'rushcheck/arbitrary'
|
|
6
|
+
require 'rushcheck/assertion'
|
|
7
|
+
require 'rushcheck/gen'
|
|
8
|
+
require 'rushcheck/random'
|
|
9
|
+
require 'rushcheck/testable'
|
|
10
|
+
|
|
11
|
+
require 'rushcheck/array'
|
|
12
|
+
require 'rushcheck/bool'
|
|
13
|
+
require 'rushcheck/hash'
|
|
14
|
+
require 'rushcheck/integer'
|
|
15
|
+
require 'rushcheck/float'
|
|
16
|
+
require 'rushcheck/proc'
|
|
17
|
+
require 'rushcheck/string'
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# = string.rb
|
|
2
|
+
# an extension to String class for RushCheck
|
|
3
|
+
# this file provides two classes String and SpecialString
|
|
4
|
+
|
|
5
|
+
require 'rushcheck/arbitrary'
|
|
6
|
+
require 'rushcheck/gen'
|
|
7
|
+
require 'rushcheck/integer'
|
|
8
|
+
require 'rushcheck/random'
|
|
9
|
+
|
|
10
|
+
class String
|
|
11
|
+
|
|
12
|
+
extend Arbitrary
|
|
13
|
+
extend HsRandom
|
|
14
|
+
|
|
15
|
+
include Coarbitrary
|
|
16
|
+
|
|
17
|
+
@@min_range = 0
|
|
18
|
+
@@max_range = 1024
|
|
19
|
+
|
|
20
|
+
def self.arbitrary
|
|
21
|
+
Gen.sized do |n|
|
|
22
|
+
Gen.choose(0, n).bind do |len|
|
|
23
|
+
Gen.vector(Integer, len).bind do |xs|
|
|
24
|
+
Gen.unit(xs.map{|x| (x % 128).chr}.join)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def self.bound
|
|
31
|
+
[@@min_range, @@max_range]
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def self.random_range(gen, lo=@@min_range, hi=@@max_range)
|
|
35
|
+
len, g = Integer.random(gen, lo, hi)
|
|
36
|
+
result = ''
|
|
37
|
+
len.times do
|
|
38
|
+
v, g = Integer.random(g, 0, 127)
|
|
39
|
+
result += v.chr
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
[result. g]
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def coarbitrary(g)
|
|
46
|
+
r = g.variant(0)
|
|
47
|
+
each_byte do |c|
|
|
48
|
+
r = c.coarbitrary(r.variant(1))
|
|
49
|
+
end
|
|
50
|
+
r
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# class SpecialString is a subclass of String.
|
|
56
|
+
# SpecialString provides another generator which prefers
|
|
57
|
+
# control codes and special unprinted codes than usual alphabets or numbers.
|
|
58
|
+
# This class maybe useful to find a counter example efficiently than
|
|
59
|
+
# using the standard generator of String.
|
|
60
|
+
class SpecialString < String
|
|
61
|
+
|
|
62
|
+
# ASCII code (see man ascii)
|
|
63
|
+
@@alphabet = (65..90).to_a + (97..122).to_a
|
|
64
|
+
@@control = (0..32).to_a + [177]
|
|
65
|
+
@@number = (48..57).to_a
|
|
66
|
+
@@special =
|
|
67
|
+
[[33,47],[58,64],[91,96],[123,126]].inject([]) do |ary, pair|
|
|
68
|
+
lo, hi = pair
|
|
69
|
+
ary = ary + (lo..hi).to_a
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
@@frequency = { 'alphabet' => 3,
|
|
73
|
+
'control' => 10,
|
|
74
|
+
'number' => 2,
|
|
75
|
+
'special' => 5 }
|
|
76
|
+
|
|
77
|
+
def self.arbitrary
|
|
78
|
+
f = @@frequency
|
|
79
|
+
frq = []
|
|
80
|
+
[f['alphabet'],f['control'],f['number'],f['special']].zip(
|
|
81
|
+
[ @@alphabet, @@control, @@number, @@special]) do
|
|
82
|
+
|weight, table|
|
|
83
|
+
gen = Gen.oneof(table.map {|n| Gen.unit(n.chr)})
|
|
84
|
+
frq << [weight, gen]
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
Gen.sized do |m|
|
|
88
|
+
Gen.choose(0, m).bind do |len|
|
|
89
|
+
Gen.new do |n, r|
|
|
90
|
+
r2 = r
|
|
91
|
+
(1..len).map do
|
|
92
|
+
r1, r2 = r2.split
|
|
93
|
+
Gen.frequency(frq).value(n, r1)
|
|
94
|
+
end.join
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# = testable.rb
|
|
2
|
+
# this provides an abstract interface of Testable
|
|
3
|
+
# See also QuickCheck in Haskell
|
|
4
|
+
|
|
5
|
+
require 'rushcheck/config'
|
|
6
|
+
|
|
7
|
+
module Testable
|
|
8
|
+
|
|
9
|
+
def property
|
|
10
|
+
raise(NotImplementedError, "This method should be overrided.")
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def check(config=RushCheckConfig.quick)
|
|
14
|
+
config.tests(property.gen, TheStdGen.instance)
|
|
15
|
+
end
|
|
16
|
+
alias quick_check :check
|
|
17
|
+
alias quickcheck :check
|
|
18
|
+
|
|
19
|
+
def classify(name)
|
|
20
|
+
yield ? label(name) : property
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def imply
|
|
24
|
+
yield ? property : Result.nothing.result
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def label(s)
|
|
28
|
+
Property.new(property.gen.fmap {|res| res.stamp << s.to_s; res })
|
|
29
|
+
end
|
|
30
|
+
alias collect :label
|
|
31
|
+
|
|
32
|
+
def test
|
|
33
|
+
check(RushCheckConfig.verbose)
|
|
34
|
+
end
|
|
35
|
+
alias verbose_check :test
|
|
36
|
+
|
|
37
|
+
def trivial
|
|
38
|
+
classify('trivial') { yield }
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
rubygems_version: 0.9.0
|
|
3
|
+
specification_version: 1
|
|
4
|
+
name: rushcheck
|
|
5
|
+
version: !ruby/object:Gem::Version
|
|
6
|
+
version: "0.2"
|
|
7
|
+
date: 2006-08-09 00:00:00.000000 +09:00
|
|
8
|
+
summary: A lightweight random testing tool
|
|
9
|
+
require_paths:
|
|
10
|
+
- lib
|
|
11
|
+
email: ikegami@madscientist.jp
|
|
12
|
+
homepage: http://rushcheck.rubyforge.org
|
|
13
|
+
rubyforge_project:
|
|
14
|
+
description: RushCheck is a random testing tool which is one of implementations of QuichCheck in Haskell.
|
|
15
|
+
autorequire: rushcheck
|
|
16
|
+
default_executable:
|
|
17
|
+
bindir: bin
|
|
18
|
+
has_rdoc: true
|
|
19
|
+
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
|
20
|
+
requirements:
|
|
21
|
+
-
|
|
22
|
+
- ">"
|
|
23
|
+
- !ruby/object:Gem::Version
|
|
24
|
+
version: 0.0.0
|
|
25
|
+
version:
|
|
26
|
+
platform: ruby
|
|
27
|
+
signing_key:
|
|
28
|
+
cert_chain:
|
|
29
|
+
post_install_message:
|
|
30
|
+
authors:
|
|
31
|
+
- Daisuke IKEGAMI
|
|
32
|
+
files:
|
|
33
|
+
- lib/rushcheck
|
|
34
|
+
- lib/rushcheck/arbitrary.rb
|
|
35
|
+
- lib/rushcheck/array.rb
|
|
36
|
+
- lib/rushcheck/assertion.rb
|
|
37
|
+
- lib/rushcheck/bool.rb
|
|
38
|
+
- lib/rushcheck/config.rb
|
|
39
|
+
- lib/rushcheck/float.rb
|
|
40
|
+
- lib/rushcheck/gen.rb
|
|
41
|
+
- lib/rushcheck/guard.rb
|
|
42
|
+
- lib/rushcheck/hash.rb
|
|
43
|
+
- lib/rushcheck/integer.rb
|
|
44
|
+
- lib/rushcheck/proc.rb
|
|
45
|
+
- lib/rushcheck/property.rb
|
|
46
|
+
- lib/rushcheck/random.rb
|
|
47
|
+
- lib/rushcheck/result.rb
|
|
48
|
+
- lib/rushcheck/rushcheck.rb
|
|
49
|
+
- lib/rushcheck/string.rb
|
|
50
|
+
- lib/rushcheck/testable.rb
|
|
51
|
+
- data/rushcheck
|
|
52
|
+
- data/rushcheck/doc
|
|
53
|
+
- data/rushcheck/examples
|
|
54
|
+
- data/rushcheck/rdoc
|
|
55
|
+
- data/rushcheck/doc/policy.txt
|
|
56
|
+
- data/rushcheck/doc/rushcheck.txt
|
|
57
|
+
- data/rushcheck/examples/printf.rb
|
|
58
|
+
- data/rushcheck/examples/proc.rb
|
|
59
|
+
- data/rushcheck/examples/roguetile.rb
|
|
60
|
+
- data/rushcheck/examples/sample.rb
|
|
61
|
+
- data/rushcheck/rdoc/classes
|
|
62
|
+
- data/rushcheck/rdoc/created.rid
|
|
63
|
+
- data/rushcheck/rdoc/files
|
|
64
|
+
- data/rushcheck/rdoc/fr_class_index.html
|
|
65
|
+
- data/rushcheck/rdoc/fr_file_index.html
|
|
66
|
+
- data/rushcheck/rdoc/fr_method_index.html
|
|
67
|
+
- data/rushcheck/rdoc/index.html
|
|
68
|
+
- data/rushcheck/rdoc/rdoc-style.css
|
|
69
|
+
- data/rushcheck/rdoc/classes/Arbitrary.html
|
|
70
|
+
- data/rushcheck/rdoc/classes/Arbitrary.src
|
|
71
|
+
- data/rushcheck/rdoc/classes/Assertion.html
|
|
72
|
+
- data/rushcheck/rdoc/classes/Assertion.src
|
|
73
|
+
- data/rushcheck/rdoc/classes/Coarbitrary.html
|
|
74
|
+
- data/rushcheck/rdoc/classes/Coarbitrary.src
|
|
75
|
+
- data/rushcheck/rdoc/classes/FalseClass.html
|
|
76
|
+
- data/rushcheck/rdoc/classes/FalseClass.src
|
|
77
|
+
- data/rushcheck/rdoc/classes/Float.html
|
|
78
|
+
- data/rushcheck/rdoc/classes/Float.src
|
|
79
|
+
- data/rushcheck/rdoc/classes/Gen.html
|
|
80
|
+
- data/rushcheck/rdoc/classes/Gen.src
|
|
81
|
+
- data/rushcheck/rdoc/classes/Guard.html
|
|
82
|
+
- data/rushcheck/rdoc/classes/Guard.src
|
|
83
|
+
- data/rushcheck/rdoc/classes/HsRandom.html
|
|
84
|
+
- data/rushcheck/rdoc/classes/HsRandom.src
|
|
85
|
+
- data/rushcheck/rdoc/classes/Integer.html
|
|
86
|
+
- data/rushcheck/rdoc/classes/Integer.src
|
|
87
|
+
- data/rushcheck/rdoc/classes/NilClass.html
|
|
88
|
+
- data/rushcheck/rdoc/classes/NilClass.src
|
|
89
|
+
- data/rushcheck/rdoc/classes/Property.html
|
|
90
|
+
- data/rushcheck/rdoc/classes/Property.src
|
|
91
|
+
- data/rushcheck/rdoc/classes/RandomArray.html
|
|
92
|
+
- data/rushcheck/rdoc/classes/RandomArray.src
|
|
93
|
+
- data/rushcheck/rdoc/classes/RandomBool.html
|
|
94
|
+
- data/rushcheck/rdoc/classes/RandomBool.src
|
|
95
|
+
- data/rushcheck/rdoc/classes/RandomGen.html
|
|
96
|
+
- data/rushcheck/rdoc/classes/RandomGen.src
|
|
97
|
+
- data/rushcheck/rdoc/classes/RandomHash.html
|
|
98
|
+
- data/rushcheck/rdoc/classes/RandomHash.src
|
|
99
|
+
- data/rushcheck/rdoc/classes/RandomProc.html
|
|
100
|
+
- data/rushcheck/rdoc/classes/RandomProc.src
|
|
101
|
+
- data/rushcheck/rdoc/classes/Result.html
|
|
102
|
+
- data/rushcheck/rdoc/classes/Result.src
|
|
103
|
+
- data/rushcheck/rdoc/classes/RushCheckConfig.html
|
|
104
|
+
- data/rushcheck/rdoc/classes/RushCheckConfig.src
|
|
105
|
+
- data/rushcheck/rdoc/classes/RushCheckGuard.html
|
|
106
|
+
- data/rushcheck/rdoc/classes/SpecialString.html
|
|
107
|
+
- data/rushcheck/rdoc/classes/SpecialString.src
|
|
108
|
+
- data/rushcheck/rdoc/classes/StdGen.html
|
|
109
|
+
- data/rushcheck/rdoc/classes/StdGen.src
|
|
110
|
+
- data/rushcheck/rdoc/classes/String.html
|
|
111
|
+
- data/rushcheck/rdoc/classes/String.src
|
|
112
|
+
- data/rushcheck/rdoc/classes/Testable.html
|
|
113
|
+
- data/rushcheck/rdoc/classes/Testable.src
|
|
114
|
+
- data/rushcheck/rdoc/classes/TheStdGen.html
|
|
115
|
+
- data/rushcheck/rdoc/classes/TheStdGen.src
|
|
116
|
+
- data/rushcheck/rdoc/classes/TrueClass.html
|
|
117
|
+
- data/rushcheck/rdoc/classes/TrueClass.src
|
|
118
|
+
- data/rushcheck/rdoc/classes/Arbitrary.src/M000075.html
|
|
119
|
+
- data/rushcheck/rdoc/classes/Assertion.src/M000015.html
|
|
120
|
+
- data/rushcheck/rdoc/classes/Assertion.src/M000016.html
|
|
121
|
+
- data/rushcheck/rdoc/classes/Coarbitrary.src/M000095.html
|
|
122
|
+
- data/rushcheck/rdoc/classes/FalseClass.src/M000018.html
|
|
123
|
+
- data/rushcheck/rdoc/classes/FalseClass.src/M000019.html
|
|
124
|
+
- data/rushcheck/rdoc/classes/FalseClass.src/M000020.html
|
|
125
|
+
- data/rushcheck/rdoc/classes/Float.src/M000047.html
|
|
126
|
+
- data/rushcheck/rdoc/classes/Float.src/M000048.html
|
|
127
|
+
- data/rushcheck/rdoc/classes/Float.src/M000049.html
|
|
128
|
+
- data/rushcheck/rdoc/classes/Float.src/M000050.html
|
|
129
|
+
- data/rushcheck/rdoc/classes/Gen.src/M000026.html
|
|
130
|
+
- data/rushcheck/rdoc/classes/Gen.src/M000027.html
|
|
131
|
+
- data/rushcheck/rdoc/classes/Gen.src/M000028.html
|
|
132
|
+
- data/rushcheck/rdoc/classes/Gen.src/M000029.html
|
|
133
|
+
- data/rushcheck/rdoc/classes/Gen.src/M000030.html
|
|
134
|
+
- data/rushcheck/rdoc/classes/Gen.src/M000031.html
|
|
135
|
+
- data/rushcheck/rdoc/classes/Gen.src/M000032.html
|
|
136
|
+
- data/rushcheck/rdoc/classes/Gen.src/M000033.html
|
|
137
|
+
- data/rushcheck/rdoc/classes/Gen.src/M000034.html
|
|
138
|
+
- data/rushcheck/rdoc/classes/Gen.src/M000035.html
|
|
139
|
+
- data/rushcheck/rdoc/classes/Gen.src/M000036.html
|
|
140
|
+
- data/rushcheck/rdoc/classes/Gen.src/M000037.html
|
|
141
|
+
- data/rushcheck/rdoc/classes/Gen.src/M000038.html
|
|
142
|
+
- data/rushcheck/rdoc/classes/Gen.src/M000039.html
|
|
143
|
+
- data/rushcheck/rdoc/classes/Gen.src/M000040.html
|
|
144
|
+
- data/rushcheck/rdoc/classes/Gen.src/M000041.html
|
|
145
|
+
- data/rushcheck/rdoc/classes/Gen.src/M000042.html
|
|
146
|
+
- data/rushcheck/rdoc/classes/Gen.src/M000043.html
|
|
147
|
+
- data/rushcheck/rdoc/classes/Guard.src/M000024.html
|
|
148
|
+
- data/rushcheck/rdoc/classes/Guard.src/M000025.html
|
|
149
|
+
- data/rushcheck/rdoc/classes/HsRandom.src/M000081.html
|
|
150
|
+
- data/rushcheck/rdoc/classes/HsRandom.src/M000082.html
|
|
151
|
+
- data/rushcheck/rdoc/classes/HsRandom.src/M000083.html
|
|
152
|
+
- data/rushcheck/rdoc/classes/Integer.src/M000006.html
|
|
153
|
+
- data/rushcheck/rdoc/classes/Integer.src/M000007.html
|
|
154
|
+
- data/rushcheck/rdoc/classes/Integer.src/M000008.html
|
|
155
|
+
- data/rushcheck/rdoc/classes/Integer.src/M000009.html
|
|
156
|
+
- data/rushcheck/rdoc/classes/NilClass.src/M000059.html
|
|
157
|
+
- data/rushcheck/rdoc/classes/NilClass.src/M000060.html
|
|
158
|
+
- data/rushcheck/rdoc/classes/NilClass.src/M000061.html
|
|
159
|
+
- data/rushcheck/rdoc/classes/Property.src/M000070.html
|
|
160
|
+
- data/rushcheck/rdoc/classes/Property.src/M000071.html
|
|
161
|
+
- data/rushcheck/rdoc/classes/RandomArray.src/M000021.html
|
|
162
|
+
- data/rushcheck/rdoc/classes/RandomArray.src/M000022.html
|
|
163
|
+
- data/rushcheck/rdoc/classes/RandomArray.src/M000023.html
|
|
164
|
+
- data/rushcheck/rdoc/classes/RandomBool.src/M000079.html
|
|
165
|
+
- data/rushcheck/rdoc/classes/RandomBool.src/M000080.html
|
|
166
|
+
- data/rushcheck/rdoc/classes/RandomGen.src/M000076.html
|
|
167
|
+
- data/rushcheck/rdoc/classes/RandomGen.src/M000077.html
|
|
168
|
+
- data/rushcheck/rdoc/classes/RandomGen.src/M000078.html
|
|
169
|
+
- data/rushcheck/rdoc/classes/RandomHash.src/M000044.html
|
|
170
|
+
- data/rushcheck/rdoc/classes/RandomHash.src/M000045.html
|
|
171
|
+
- data/rushcheck/rdoc/classes/RandomHash.src/M000046.html
|
|
172
|
+
- data/rushcheck/rdoc/classes/RandomProc.src/M000055.html
|
|
173
|
+
- data/rushcheck/rdoc/classes/RandomProc.src/M000056.html
|
|
174
|
+
- data/rushcheck/rdoc/classes/RandomProc.src/M000057.html
|
|
175
|
+
- data/rushcheck/rdoc/classes/RandomProc.src/M000058.html
|
|
176
|
+
- data/rushcheck/rdoc/classes/Result.src/M000051.html
|
|
177
|
+
- data/rushcheck/rdoc/classes/Result.src/M000052.html
|
|
178
|
+
- data/rushcheck/rdoc/classes/Result.src/M000053.html
|
|
179
|
+
- data/rushcheck/rdoc/classes/RushCheckConfig.src/M000001.html
|
|
180
|
+
- data/rushcheck/rdoc/classes/RushCheckConfig.src/M000002.html
|
|
181
|
+
- data/rushcheck/rdoc/classes/RushCheckConfig.src/M000003.html
|
|
182
|
+
- data/rushcheck/rdoc/classes/RushCheckConfig.src/M000004.html
|
|
183
|
+
- data/rushcheck/rdoc/classes/RushCheckConfig.src/M000005.html
|
|
184
|
+
- data/rushcheck/rdoc/classes/SpecialString.src/M000017.html
|
|
185
|
+
- data/rushcheck/rdoc/classes/StdGen.src/M000010.html
|
|
186
|
+
- data/rushcheck/rdoc/classes/StdGen.src/M000011.html
|
|
187
|
+
- data/rushcheck/rdoc/classes/StdGen.src/M000012.html
|
|
188
|
+
- data/rushcheck/rdoc/classes/StdGen.src/M000013.html
|
|
189
|
+
- data/rushcheck/rdoc/classes/StdGen.src/M000014.html
|
|
190
|
+
- data/rushcheck/rdoc/classes/String.src/M000066.html
|
|
191
|
+
- data/rushcheck/rdoc/classes/String.src/M000067.html
|
|
192
|
+
- data/rushcheck/rdoc/classes/String.src/M000068.html
|
|
193
|
+
- data/rushcheck/rdoc/classes/String.src/M000069.html
|
|
194
|
+
- data/rushcheck/rdoc/classes/Testable.src/M000084.html
|
|
195
|
+
- data/rushcheck/rdoc/classes/Testable.src/M000085.html
|
|
196
|
+
- data/rushcheck/rdoc/classes/Testable.src/M000088.html
|
|
197
|
+
- data/rushcheck/rdoc/classes/Testable.src/M000089.html
|
|
198
|
+
- data/rushcheck/rdoc/classes/Testable.src/M000090.html
|
|
199
|
+
- data/rushcheck/rdoc/classes/Testable.src/M000092.html
|
|
200
|
+
- data/rushcheck/rdoc/classes/Testable.src/M000094.html
|
|
201
|
+
- data/rushcheck/rdoc/classes/TheStdGen.src/M000062.html
|
|
202
|
+
- data/rushcheck/rdoc/classes/TheStdGen.src/M000063.html
|
|
203
|
+
- data/rushcheck/rdoc/classes/TheStdGen.src/M000064.html
|
|
204
|
+
- data/rushcheck/rdoc/classes/TheStdGen.src/M000065.html
|
|
205
|
+
- data/rushcheck/rdoc/classes/TrueClass.src/M000072.html
|
|
206
|
+
- data/rushcheck/rdoc/classes/TrueClass.src/M000073.html
|
|
207
|
+
- data/rushcheck/rdoc/classes/TrueClass.src/M000074.html
|
|
208
|
+
- data/rushcheck/rdoc/files/rushcheck
|
|
209
|
+
- data/rushcheck/rdoc/files/rushcheck/arbitrary_rb.html
|
|
210
|
+
- data/rushcheck/rdoc/files/rushcheck/array_rb.html
|
|
211
|
+
- data/rushcheck/rdoc/files/rushcheck/assertion_rb.html
|
|
212
|
+
- data/rushcheck/rdoc/files/rushcheck/bool_rb.html
|
|
213
|
+
- data/rushcheck/rdoc/files/rushcheck/config_rb.html
|
|
214
|
+
- data/rushcheck/rdoc/files/rushcheck/float_rb.html
|
|
215
|
+
- data/rushcheck/rdoc/files/rushcheck/gen_rb.html
|
|
216
|
+
- data/rushcheck/rdoc/files/rushcheck/guard_rb.html
|
|
217
|
+
- data/rushcheck/rdoc/files/rushcheck/hash_rb.html
|
|
218
|
+
- data/rushcheck/rdoc/files/rushcheck/integer_rb.html
|
|
219
|
+
- data/rushcheck/rdoc/files/rushcheck/proc_rb.html
|
|
220
|
+
- data/rushcheck/rdoc/files/rushcheck/property_rb.html
|
|
221
|
+
- data/rushcheck/rdoc/files/rushcheck/random_rb.html
|
|
222
|
+
- data/rushcheck/rdoc/files/rushcheck/result_rb.html
|
|
223
|
+
- data/rushcheck/rdoc/files/rushcheck/rushcheck_rb.html
|
|
224
|
+
- data/rushcheck/rdoc/files/rushcheck/string_rb.html
|
|
225
|
+
- data/rushcheck/rdoc/files/rushcheck/testable_rb.html
|
|
226
|
+
- COPYING
|
|
227
|
+
- INSTALL
|
|
228
|
+
- LICENSE
|
|
229
|
+
- Rakefile
|
|
230
|
+
- README
|
|
231
|
+
- copying.txt
|
|
232
|
+
test_files: []
|
|
233
|
+
rdoc_options: []
|
|
234
|
+
extra_rdoc_files: []
|
|
235
|
+
executables: []
|
|
236
|
+
extensions: []
|
|
237
|
+
requirements: []
|
|
238
|
+
dependencies: []
|