rushcheck 0.3 → 0.4
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/Rakefile +1 -1
- data/data/rushcheck/doc/policy.txt +107 -0
- data/data/rushcheck/doc/rushcheck.thtml +832 -0
- data/data/rushcheck/examples/candy.rb +6 -8
- data/data/rushcheck/examples/printf.rb +3 -3
- data/data/rushcheck/examples/proc.rb +4 -4
- data/data/rushcheck/examples/roguetile.rb +16 -16
- data/data/rushcheck/examples/sample.rb +10 -10
- data/data/rushcheck/rdoc/classes/Arbitrary.html +5 -5
- data/data/rushcheck/rdoc/classes/Arbitrary.src/M000082.html +18 -0
- data/data/rushcheck/rdoc/classes/Assertion.html +11 -11
- data/data/rushcheck/rdoc/classes/Assertion.src/M000019.html +20 -0
- data/data/rushcheck/rdoc/classes/Assertion.src/M000020.html +50 -0
- data/data/rushcheck/rdoc/classes/Coarbitrary.html +5 -5
- data/data/rushcheck/rdoc/classes/Coarbitrary.src/M000105.html +18 -0
- data/data/rushcheck/rdoc/classes/FalseClass.html +15 -15
- data/data/rushcheck/rdoc/classes/FalseClass.src/M000022.html +18 -0
- data/data/rushcheck/rdoc/classes/FalseClass.src/M000023.html +18 -0
- data/data/rushcheck/rdoc/classes/FalseClass.src/M000024.html +18 -0
- data/data/rushcheck/rdoc/classes/Float.html +20 -20
- data/data/rushcheck/rdoc/classes/Float.src/M000052.html +21 -0
- data/data/rushcheck/rdoc/classes/Float.src/M000053.html +18 -0
- data/data/rushcheck/rdoc/classes/Float.src/M000054.html +22 -0
- data/data/rushcheck/rdoc/classes/Float.src/M000055.html +20 -0
- data/data/rushcheck/rdoc/classes/Gen.html +102 -102
- data/data/rushcheck/rdoc/classes/Gen.src/M000030.html +4 -10
- data/data/rushcheck/rdoc/classes/Gen.src/M000031.html +29 -4
- data/data/rushcheck/rdoc/classes/Gen.src/M000032.html +6 -4
- data/data/rushcheck/rdoc/classes/Gen.src/M000033.html +14 -4
- data/data/rushcheck/rdoc/classes/Gen.src/M000034.html +10 -4
- data/data/rushcheck/rdoc/classes/Gen.src/M000035.html +4 -4
- data/data/rushcheck/rdoc/classes/Gen.src/M000036.html +4 -10
- data/data/rushcheck/rdoc/classes/Gen.src/M000037.html +4 -4
- data/data/rushcheck/rdoc/classes/Gen.src/M000038.html +4 -7
- data/data/rushcheck/rdoc/classes/Gen.src/M000039.html +4 -4
- data/data/rushcheck/rdoc/classes/Gen.src/M000040.html +10 -4
- data/data/rushcheck/rdoc/classes/Gen.src/M000041.html +4 -9
- data/data/rushcheck/rdoc/classes/Gen.src/M000042.html +7 -5
- data/data/rushcheck/rdoc/classes/Gen.src/M000043.html +4 -4
- data/data/rushcheck/rdoc/classes/Gen.src/M000044.html +4 -10
- data/data/rushcheck/rdoc/classes/Gen.src/M000045.html +23 -0
- data/data/rushcheck/rdoc/classes/Gen.src/M000046.html +19 -0
- data/data/rushcheck/rdoc/classes/Gen.src/M000047.html +18 -0
- data/data/rushcheck/rdoc/classes/Gen.src/M000048.html +24 -0
- data/data/rushcheck/rdoc/classes/Guard.html +10 -10
- data/data/rushcheck/rdoc/classes/Guard.src/M000028.html +27 -0
- data/data/rushcheck/rdoc/classes/Guard.src/M000029.html +18 -0
- data/data/rushcheck/rdoc/classes/HsRandom.html +20 -20
- data/data/rushcheck/rdoc/classes/HsRandom.src/M000088.html +22 -0
- data/data/rushcheck/rdoc/classes/HsRandom.src/M000089.html +32 -0
- data/data/rushcheck/rdoc/classes/HsRandom.src/M000090.html +18 -0
- data/data/rushcheck/rdoc/classes/Integer.html +20 -20
- data/data/rushcheck/rdoc/classes/Integer.src/M000010.html +18 -0
- data/data/rushcheck/rdoc/classes/Integer.src/M000011.html +18 -0
- data/data/rushcheck/rdoc/classes/Integer.src/M000012.html +21 -0
- data/data/rushcheck/rdoc/classes/Integer.src/M000013.html +19 -0
- data/data/rushcheck/rdoc/classes/NilClass.html +15 -15
- data/data/rushcheck/rdoc/classes/NilClass.src/M000064.html +18 -0
- data/data/rushcheck/rdoc/classes/NilClass.src/M000065.html +18 -0
- data/data/rushcheck/rdoc/classes/NilClass.src/M000066.html +18 -0
- data/data/rushcheck/rdoc/classes/Property.html +10 -10
- data/data/rushcheck/rdoc/classes/Property.src/M000077.html +26 -0
- data/data/rushcheck/rdoc/classes/Property.src/M000078.html +18 -0
- data/data/rushcheck/rdoc/classes/RandomArray.html +15 -15
- data/data/rushcheck/rdoc/classes/RandomArray.src/M000025.html +18 -0
- data/data/rushcheck/rdoc/classes/RandomArray.src/M000026.html +35 -0
- data/data/rushcheck/rdoc/classes/RandomArray.src/M000027.html +22 -0
- data/data/rushcheck/rdoc/classes/RandomBool.html +10 -10
- data/data/rushcheck/rdoc/classes/RandomBool.src/M000086.html +18 -0
- data/data/rushcheck/rdoc/classes/RandomBool.src/M000087.html +19 -0
- data/data/rushcheck/rdoc/classes/RandomGen.html +20 -20
- data/data/rushcheck/rdoc/classes/RandomGen.src/M000083.html +18 -0
- data/data/rushcheck/rdoc/classes/RandomGen.src/M000084.html +18 -0
- data/data/rushcheck/rdoc/classes/RandomGen.src/M000085.html +18 -0
- data/data/rushcheck/rdoc/classes/RandomHash.html +16 -16
- data/data/rushcheck/rdoc/classes/RandomHash.src/M000049.html +18 -0
- data/data/rushcheck/rdoc/classes/RandomHash.src/M000050.html +26 -0
- data/data/rushcheck/rdoc/classes/RandomHash.src/M000051.html +22 -0
- data/data/rushcheck/rdoc/classes/RandomProc.html +20 -20
- data/data/rushcheck/rdoc/classes/RandomProc.src/M000060.html +18 -0
- data/data/rushcheck/rdoc/classes/RandomProc.src/M000061.html +30 -0
- data/data/rushcheck/rdoc/classes/RandomProc.src/M000062.html +26 -0
- data/data/rushcheck/rdoc/classes/RandomProc.src/M000063.html +20 -0
- data/data/rushcheck/rdoc/classes/Result.html +19 -19
- data/data/rushcheck/rdoc/classes/Result.src/M000056.html +18 -0
- data/data/rushcheck/rdoc/classes/Result.src/M000057.html +18 -0
- data/data/rushcheck/rdoc/classes/Result.src/M000058.html +18 -0
- data/data/rushcheck/rdoc/classes/RushCheckConfig.html +41 -11
- data/data/rushcheck/rdoc/classes/RushCheckConfig.src/M000001.html +1 -1
- data/data/rushcheck/rdoc/classes/RushCheckConfig.src/M000002.html +1 -1
- data/data/rushcheck/rdoc/classes/RushCheckConfig.src/M000003.html +8 -4
- data/data/rushcheck/rdoc/classes/RushCheckConfig.src/M000004.html +4 -24
- data/data/rushcheck/rdoc/classes/RushCheckConfig.src/M000005.html +22 -39
- data/data/rushcheck/rdoc/classes/RushCheckConfig.src/M000006.html +55 -0
- data/data/rushcheck/rdoc/classes/RushCheckConfig.src/M000007.html +50 -0
- data/data/rushcheck/rdoc/classes/SpecialString.html +5 -5
- data/data/rushcheck/rdoc/classes/SpecialString.src/M000021.html +37 -0
- data/data/rushcheck/rdoc/classes/StdGen.html +27 -27
- data/data/rushcheck/rdoc/classes/StdGen.src/M000014.html +9 -4
- data/data/rushcheck/rdoc/classes/StdGen.src/M000015.html +21 -0
- data/data/rushcheck/rdoc/classes/StdGen.src/M000016.html +21 -0
- data/data/rushcheck/rdoc/classes/StdGen.src/M000017.html +18 -0
- data/data/rushcheck/rdoc/classes/StdGen.src/M000018.html +18 -0
- data/data/rushcheck/rdoc/classes/String.html +20 -20
- data/data/rushcheck/rdoc/classes/String.src/M000073.html +24 -0
- data/data/rushcheck/rdoc/classes/String.src/M000074.html +18 -0
- data/data/rushcheck/rdoc/classes/String.src/M000075.html +25 -0
- data/data/rushcheck/rdoc/classes/String.src/M000076.html +22 -0
- data/data/rushcheck/rdoc/classes/TestExausted.html +113 -0
- data/data/rushcheck/rdoc/classes/TestFailed.html +155 -0
- data/data/rushcheck/rdoc/classes/TestFailed.src/M000067.html +18 -0
- data/data/rushcheck/rdoc/classes/TestOk.html +113 -0
- data/data/rushcheck/rdoc/classes/TestOptions.html +180 -0
- data/data/rushcheck/rdoc/classes/TestOptions.src/M000008.html +18 -0
- data/data/rushcheck/rdoc/classes/TestOptions.src/M000009.html +18 -0
- data/data/rushcheck/rdoc/classes/TestResult.html +164 -0
- data/data/rushcheck/rdoc/classes/TestResult.src/M000068.html +18 -0
- data/data/rushcheck/rdoc/classes/Testable.html +96 -51
- data/data/rushcheck/rdoc/classes/Testable.src/M000091.html +4 -4
- data/data/rushcheck/rdoc/classes/Testable.src/M000092.html +4 -4
- data/data/rushcheck/rdoc/classes/Testable.src/M000095.html +4 -4
- data/data/rushcheck/rdoc/classes/Testable.src/M000096.html +18 -0
- data/data/rushcheck/rdoc/classes/Testable.src/M000097.html +18 -0
- data/data/rushcheck/rdoc/classes/Testable.src/M000099.html +19 -0
- data/data/rushcheck/rdoc/classes/Testable.src/M000100.html +21 -0
- data/data/rushcheck/rdoc/classes/Testable.src/M000101.html +18 -0
- data/data/rushcheck/rdoc/classes/Testable.src/M000103.html +18 -0
- data/data/rushcheck/rdoc/classes/Testable.src/M000104.html +18 -0
- data/data/rushcheck/rdoc/classes/TheStdGen.html +20 -20
- data/data/rushcheck/rdoc/classes/TheStdGen.src/M000069.html +18 -0
- data/data/rushcheck/rdoc/classes/TheStdGen.src/M000070.html +20 -0
- data/data/rushcheck/rdoc/classes/TheStdGen.src/M000071.html +21 -0
- data/data/rushcheck/rdoc/classes/TheStdGen.src/M000072.html +18 -0
- data/data/rushcheck/rdoc/classes/TrueClass.html +15 -15
- data/data/rushcheck/rdoc/classes/TrueClass.src/M000079.html +18 -0
- data/data/rushcheck/rdoc/classes/TrueClass.src/M000080.html +18 -0
- data/data/rushcheck/rdoc/classes/TrueClass.src/M000081.html +18 -0
- data/data/rushcheck/rdoc/created.rid +1 -1
- data/data/rushcheck/rdoc/files/rushcheck/config_rb.html +8 -1
- data/data/rushcheck/rdoc/files/rushcheck/testable_rb.html +3 -1
- data/data/rushcheck/rdoc/files/rushcheck/testoptions_rb.html +109 -0
- data/data/rushcheck/rdoc/files/rushcheck/testresult_rb.html +105 -0
- data/data/rushcheck/rdoc/files/rushcheck_rb.html +127 -0
- data/data/rushcheck/rdoc/fr_class_index.html +5 -0
- data/data/rushcheck/rdoc/fr_file_index.html +3 -1
- data/data/rushcheck/rdoc/fr_method_index.html +103 -94
- data/lib/rushcheck/arbitrary.rb +16 -12
- data/lib/rushcheck/array.rb +7 -6
- data/lib/rushcheck/assertion.rb +53 -50
- data/lib/rushcheck/bool.rb +26 -24
- data/lib/rushcheck/config.rb +131 -81
- data/lib/rushcheck/float.rb +4 -4
- data/lib/rushcheck/gen.rb +194 -182
- data/lib/rushcheck/guard.rb +9 -10
- data/lib/rushcheck/hash.rb +4 -3
- data/lib/rushcheck/integer.rb +11 -6
- data/lib/rushcheck/proc.rb +7 -7
- data/lib/rushcheck/property.rb +19 -15
- data/lib/rushcheck/random.rb +162 -159
- data/lib/rushcheck/result.rb +16 -12
- data/lib/rushcheck/string.rb +12 -12
- data/lib/rushcheck/testable.rb +99 -25
- data/lib/rushcheck/testoptions.rb +20 -0
- data/lib/rushcheck/testresult.rb +25 -0
- data/lib/{rushcheck/rushcheck.rb → rushcheck.rb} +2 -1
- metadata +93 -4
- data/data/rushcheck/doc/rushcheck.txt +0 -670
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# candy.rb
|
|
2
2
|
# an example to write a random generator
|
|
3
3
|
|
|
4
|
-
require 'rushcheck
|
|
4
|
+
require 'rushcheck'
|
|
5
5
|
|
|
6
6
|
class Candy
|
|
7
7
|
|
|
8
|
-
extend Arbitrary
|
|
8
|
+
extend RushCheck::Arbitrary
|
|
9
9
|
|
|
10
10
|
def initialize(name, price)
|
|
11
11
|
raise unless price >= 0
|
|
@@ -13,9 +13,8 @@ class Candy
|
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
def self.arbitrary
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
g.guard { price >= 0 }
|
|
16
|
+
RushCheck::Gen.create(String, Integer) do |name, price|
|
|
17
|
+
RushCheck::guard { price >= 0 }
|
|
19
18
|
new(name, price)
|
|
20
19
|
end
|
|
21
20
|
end
|
|
@@ -30,12 +29,11 @@ class ExpensiveCandy < Candy
|
|
|
30
29
|
end
|
|
31
30
|
|
|
32
31
|
def self.arbitrary
|
|
33
|
-
# xs = [String, Integer].map {|c| c.arbitrary}
|
|
34
32
|
lo = 100000
|
|
35
33
|
g = Gen.sized { |n| Gen.choose(lo, n + lo)}
|
|
36
34
|
xs = [String.arbitrary, g]
|
|
37
|
-
Gen.
|
|
38
|
-
|
|
35
|
+
Gen.create_by_gen(xs) do |name, price|
|
|
36
|
+
RushCheck::guard { price >= 100000 }
|
|
39
37
|
new(name, price)
|
|
40
38
|
end
|
|
41
39
|
end
|
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
# this news tells that a japanese handy-phone hungs when it receives
|
|
5
5
|
# an email which contains the special format string "%s".
|
|
6
6
|
|
|
7
|
-
require 'rushcheck
|
|
7
|
+
require 'rushcheck'
|
|
8
8
|
|
|
9
9
|
def malformed_format_string
|
|
10
|
-
Assertion.new(String) { |s|
|
|
10
|
+
RushCheck::Assertion.new(String) { |s|
|
|
11
11
|
sprintf(s)
|
|
12
12
|
true
|
|
13
13
|
}.check
|
|
@@ -15,7 +15,7 @@ end
|
|
|
15
15
|
|
|
16
16
|
def malformed_format_string2
|
|
17
17
|
# SpecialString is used to find special format more likely
|
|
18
|
-
Assertion.new(SpecialString) { |s|
|
|
18
|
+
RushCheck::Assertion.new(SpecialString) { |s|
|
|
19
19
|
sprintf(s)
|
|
20
20
|
true
|
|
21
21
|
}.check
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# proc.rb
|
|
2
2
|
# a sample of RushCheck
|
|
3
3
|
|
|
4
|
-
require 'rushcheck
|
|
4
|
+
require 'rushcheck'
|
|
5
5
|
|
|
6
6
|
class Proc
|
|
7
7
|
# application
|
|
@@ -13,11 +13,11 @@ class Proc
|
|
|
13
13
|
end
|
|
14
14
|
end
|
|
15
15
|
|
|
16
|
-
class MyRandomProc < RandomProc; end
|
|
16
|
+
class MyRandomProc < RushCheck::RandomProc; end
|
|
17
17
|
|
|
18
18
|
def associativity_integer
|
|
19
19
|
MyRandomProc.set_pattern([Integer], [Integer])
|
|
20
|
-
Assertion.new(MyRandomProc, MyRandomProc, MyRandomProc, Integer) do
|
|
20
|
+
RushCheck::Assertion.new(MyRandomProc, MyRandomProc, MyRandomProc, Integer) do
|
|
21
21
|
|a, b, c, x|
|
|
22
22
|
(a ** (b ** c)).call(x) == ((a ** b) ** c).call(x)
|
|
23
23
|
end.check
|
|
@@ -26,7 +26,7 @@ end
|
|
|
26
26
|
# this test takes much time than associativity_integer
|
|
27
27
|
def associativity_string
|
|
28
28
|
MyRandomProc.set_pattern([String], [String])
|
|
29
|
-
Assertion.new(MyRandomProc, MyRandomProc, MyRandomProc, String) do
|
|
29
|
+
RushCheck::Assertion.new(MyRandomProc, MyRandomProc, MyRandomProc, String) do
|
|
30
30
|
|a, b, c, x|
|
|
31
31
|
(a ** (b ** c)).call(x) == ((a ** b) ** c).call(x)
|
|
32
32
|
end.check
|
|
@@ -60,14 +60,14 @@ end
|
|
|
60
60
|
|
|
61
61
|
# ok, then let's test them and find a bug.
|
|
62
62
|
|
|
63
|
-
require 'rushcheck
|
|
63
|
+
require 'rushcheck'
|
|
64
64
|
|
|
65
65
|
class Tree
|
|
66
|
-
extend Arbitrary
|
|
67
|
-
include Coarbitrary
|
|
66
|
+
extend RushCheck::Arbitrary
|
|
67
|
+
include RushCheck::Coarbitrary
|
|
68
68
|
|
|
69
69
|
def self.arbitrary
|
|
70
|
-
Gen.frequency([[3, Leaf.arbitrary], [1, Branch.arbitrary]])
|
|
70
|
+
RushCheck::Gen.frequency([[3, Leaf.arbitrary], [1, Branch.arbitrary]])
|
|
71
71
|
end
|
|
72
72
|
|
|
73
73
|
# In this example, coarbitrary isn't needed, however,
|
|
@@ -78,11 +78,11 @@ class Tree
|
|
|
78
78
|
end
|
|
79
79
|
|
|
80
80
|
class Leaf
|
|
81
|
-
extend Arbitrary
|
|
82
|
-
include Coarbitrary
|
|
81
|
+
extend RushCheck::Arbitrary
|
|
82
|
+
include RushCheck::Coarbitrary
|
|
83
83
|
|
|
84
84
|
def self.arbitrary
|
|
85
|
-
Integer.arbitrary.bind {|x| Gen.unit(new(x)) }
|
|
85
|
+
Integer.arbitrary.bind {|x| RushCheck::Gen.unit(new(x)) }
|
|
86
86
|
end
|
|
87
87
|
|
|
88
88
|
def coarbitrary(g)
|
|
@@ -91,11 +91,11 @@ class Leaf
|
|
|
91
91
|
end
|
|
92
92
|
|
|
93
93
|
class Branch
|
|
94
|
-
extend Arbitrary
|
|
95
|
-
include Coarbitrary
|
|
94
|
+
extend RushCheck::Arbitrary
|
|
95
|
+
include RushCheck::Coarbitrary
|
|
96
96
|
|
|
97
97
|
def self.arbitrary
|
|
98
|
-
Gen.new do |n, g|
|
|
98
|
+
RushCheck::Gen.new do |n, g|
|
|
99
99
|
g2 = g
|
|
100
100
|
v, l, r = [Integer.arbitrary, Tree.arbitrary, Tree.arbitrary].map do |x|
|
|
101
101
|
g1, g2 = g2.split
|
|
@@ -111,15 +111,15 @@ class Branch
|
|
|
111
111
|
end
|
|
112
112
|
|
|
113
113
|
def prop_leaf_add
|
|
114
|
-
Assertion.new(Leaf) {|x| x.add == x.value }.check
|
|
114
|
+
RushCheck::Assertion.new(Leaf) {|x| x.add == x.value }.check
|
|
115
115
|
end
|
|
116
116
|
|
|
117
117
|
def prop_leaf_multiply
|
|
118
|
-
Assertion.new(Leaf) {|x| x.multiply == x.value }.check
|
|
118
|
+
RushCheck::Assertion.new(Leaf) {|x| x.multiply == x.value }.check
|
|
119
119
|
end
|
|
120
120
|
|
|
121
121
|
def prop_branch_add
|
|
122
|
-
Assertion.new(Branch) do |t|
|
|
122
|
+
RushCheck::Assertion.new(Branch) do |t|
|
|
123
123
|
t.add == t.value + t.left.add + t.right.add
|
|
124
124
|
end.check
|
|
125
125
|
end
|
|
@@ -129,7 +129,7 @@ def prop_branch_multiply
|
|
|
129
129
|
# If the tester write a wrong test case by copying the code snippet?
|
|
130
130
|
# Then we will meet the same problem! Even this test is passed, but
|
|
131
131
|
# it is wrong.
|
|
132
|
-
Assertion.new(Branch) do |t|
|
|
132
|
+
RushCheck::Assertion.new(Branch) do |t|
|
|
133
133
|
t.add == t.value * t.left.add + t.right.add # Oops, a bug in testcase.
|
|
134
134
|
end.check
|
|
135
135
|
end
|
|
@@ -137,13 +137,13 @@ end
|
|
|
137
137
|
# But, we can test another /primitive/ properties about
|
|
138
138
|
# branch_multiply.
|
|
139
139
|
def prop_branch_multiply_zero
|
|
140
|
-
Assertion.new(Leaf) do |x|
|
|
140
|
+
RushCheck::Assertion.new(Leaf) do |x|
|
|
141
141
|
Branch.new(0, x, x).multiply == 0
|
|
142
142
|
end.check
|
|
143
143
|
end
|
|
144
144
|
|
|
145
145
|
def prop_branch_multiply_power
|
|
146
|
-
Assertion.new(Leaf) do |x|
|
|
146
|
+
RushCheck::Assertion.new(Leaf) do |x|
|
|
147
147
|
Branch.new(1, x, x).multiply == x.value * x.value
|
|
148
148
|
end.check
|
|
149
149
|
end
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
# a simple example
|
|
2
2
|
|
|
3
|
-
require 'rushcheck
|
|
3
|
+
require 'rushcheck'
|
|
4
4
|
|
|
5
5
|
# first boring example
|
|
6
6
|
def assert_sort
|
|
7
|
-
Assertion.new { [].sort == [] }.check
|
|
7
|
+
RushCheck::Assertion.new { [].sort == [] }.check
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
# assert_sort_one should be true
|
|
11
11
|
def assert_sort_one
|
|
12
|
-
Assertion.new(Integer) { |x|
|
|
12
|
+
RushCheck::Assertion.new(Integer) { |x|
|
|
13
13
|
[x].sort == [x]
|
|
14
14
|
}.check
|
|
15
15
|
end
|
|
@@ -17,7 +17,7 @@ end
|
|
|
17
17
|
# however, assert_sort_two is not true generally,
|
|
18
18
|
# and RushCheck finds a counter example.
|
|
19
19
|
def assert_sort_two
|
|
20
|
-
Assertion.new(Integer, Integer) { |x, y|
|
|
20
|
+
RushCheck::Assertion.new(Integer, Integer) { |x, y|
|
|
21
21
|
ary = [x, y]
|
|
22
22
|
ary.sort == ary
|
|
23
23
|
}.check
|
|
@@ -26,8 +26,8 @@ end
|
|
|
26
26
|
# if given array is already sorted, then the
|
|
27
27
|
# assertion turns true.
|
|
28
28
|
def assert_sort_two_sorted
|
|
29
|
-
Assertion.new(Integer, Integer) { |x, y
|
|
30
|
-
|
|
29
|
+
RushCheck::Assertion.new(Integer, Integer) { |x, y|
|
|
30
|
+
RushCheck::guard {x <= y}
|
|
31
31
|
ary = [x, y]
|
|
32
32
|
ary.sort == ary
|
|
33
33
|
}.check
|
|
@@ -35,16 +35,16 @@ end
|
|
|
35
35
|
|
|
36
36
|
# watch statistics
|
|
37
37
|
def assert_sort_two_sorted_trivial
|
|
38
|
-
Assertion.new(Integer, Integer) { |x, y
|
|
39
|
-
|
|
38
|
+
RushCheck::Assertion.new(Integer, Integer) { |x, y|
|
|
39
|
+
RushCheck::guard {x <= y}
|
|
40
40
|
ary = [x, y]
|
|
41
41
|
(ary.sort == ary).trivial{x == y}
|
|
42
42
|
}.check
|
|
43
43
|
end
|
|
44
44
|
|
|
45
45
|
def assert_sort_two_sorted_classify
|
|
46
|
-
Assertion.new(Integer, Integer) { |x, y
|
|
47
|
-
|
|
46
|
+
RushCheck::Assertion.new(Integer, Integer) { |x, y|
|
|
47
|
+
RushCheck::guard {x <= y}
|
|
48
48
|
ary = [x, y]
|
|
49
49
|
(ary.sort == ary).classify('same'){x == y}.
|
|
50
50
|
classify('bit diff') { (x - y).abs == 1 }
|
|
@@ -92,7 +92,7 @@ each class after include/extend them.
|
|
|
92
92
|
<h3 class="section-bar">Methods</h3>
|
|
93
93
|
|
|
94
94
|
<div class="name-list">
|
|
95
|
-
<a href="#
|
|
95
|
+
<a href="#M000082">arbitrary</a>
|
|
96
96
|
</div>
|
|
97
97
|
</div>
|
|
98
98
|
|
|
@@ -114,12 +114,12 @@ each class after include/extend them.
|
|
|
114
114
|
<div id="methods">
|
|
115
115
|
<h3 class="section-bar">Public Instance methods</h3>
|
|
116
116
|
|
|
117
|
-
<div id="method-
|
|
118
|
-
<a name="
|
|
117
|
+
<div id="method-M000082" class="method-detail">
|
|
118
|
+
<a name="M000082"></a>
|
|
119
119
|
|
|
120
120
|
<div class="method-heading">
|
|
121
|
-
<a href="Arbitrary.src/
|
|
122
|
-
onclick="popupCode('Arbitrary.src/
|
|
121
|
+
<a href="Arbitrary.src/M000082.html" target="Code" class="method-signature"
|
|
122
|
+
onclick="popupCode('Arbitrary.src/M000082.html');return false;">
|
|
123
123
|
<span class="method-name">arbitrary</span><span class="method-args">()</span>
|
|
124
124
|
</a>
|
|
125
125
|
</div>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
+
<!DOCTYPE html
|
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
+
|
|
6
|
+
<html>
|
|
7
|
+
<head>
|
|
8
|
+
<title>arbitrary (Arbitrary)</title>
|
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
|
+
</head>
|
|
12
|
+
<body class="standalone-code">
|
|
13
|
+
<pre><span class="ruby-comment cmt"># File rushcheck/arbitrary.rb, line 14</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">arbitrary</span>
|
|
15
|
+
<span class="ruby-identifier">raise</span>(<span class="ruby-constant">NotImplementedError</span>, <span class="ruby-value str">"This method should be overrided."</span>)
|
|
16
|
+
<span class="ruby-keyword kw">end</span></pre>
|
|
17
|
+
</body>
|
|
18
|
+
</html>
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
RushCheck. You can write a testcase for random testing as follows:
|
|
85
85
|
</p>
|
|
86
86
|
<p>
|
|
87
|
-
<a href="Assertion.html#
|
|
87
|
+
<a href="Assertion.html#M000019">Assertion.new</a>(<a
|
|
88
88
|
href="Integer.html">Integer</a>, <a href="String.html">String</a>) do |x,
|
|
89
89
|
y, g|
|
|
90
90
|
</p>
|
|
@@ -108,8 +108,8 @@ See also documents and several examples.
|
|
|
108
108
|
<h3 class="section-bar">Methods</h3>
|
|
109
109
|
|
|
110
110
|
<div class="name-list">
|
|
111
|
-
<a href="#
|
|
112
|
-
<a href="#
|
|
111
|
+
<a href="#M000019">new</a>
|
|
112
|
+
<a href="#M000020">property</a>
|
|
113
113
|
</div>
|
|
114
114
|
</div>
|
|
115
115
|
|
|
@@ -138,12 +138,12 @@ See also documents and several examples.
|
|
|
138
138
|
<div id="methods">
|
|
139
139
|
<h3 class="section-bar">Public Class methods</h3>
|
|
140
140
|
|
|
141
|
-
<div id="method-
|
|
142
|
-
<a name="
|
|
141
|
+
<div id="method-M000019" class="method-detail">
|
|
142
|
+
<a name="M000019"></a>
|
|
143
143
|
|
|
144
144
|
<div class="method-heading">
|
|
145
|
-
<a href="Assertion.src/
|
|
146
|
-
onclick="popupCode('Assertion.src/
|
|
145
|
+
<a href="Assertion.src/M000019.html" target="Code" class="method-signature"
|
|
146
|
+
onclick="popupCode('Assertion.src/M000019.html');return false;">
|
|
147
147
|
<span class="method-name">new</span><span class="method-args">(*xs, &f)</span>
|
|
148
148
|
</a>
|
|
149
149
|
</div>
|
|
@@ -154,12 +154,12 @@ See also documents and several examples.
|
|
|
154
154
|
|
|
155
155
|
<h3 class="section-bar">Public Instance methods</h3>
|
|
156
156
|
|
|
157
|
-
<div id="method-
|
|
158
|
-
<a name="
|
|
157
|
+
<div id="method-M000020" class="method-detail">
|
|
158
|
+
<a name="M000020"></a>
|
|
159
159
|
|
|
160
160
|
<div class="method-heading">
|
|
161
|
-
<a href="Assertion.src/
|
|
162
|
-
onclick="popupCode('Assertion.src/
|
|
161
|
+
<a href="Assertion.src/M000020.html" target="Code" class="method-signature"
|
|
162
|
+
onclick="popupCode('Assertion.src/M000020.html');return false;">
|
|
163
163
|
<span class="method-name">property</span><span class="method-args">()</span>
|
|
164
164
|
</a>
|
|
165
165
|
</div>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
+
<!DOCTYPE html
|
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
+
|
|
6
|
+
<html>
|
|
7
|
+
<head>
|
|
8
|
+
<title>new (Assertion)</title>
|
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
|
+
</head>
|
|
12
|
+
<body class="standalone-code">
|
|
13
|
+
<pre><span class="ruby-comment cmt"># File rushcheck/assertion.rb, line 24</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">xs</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">f</span>)
|
|
15
|
+
<span class="ruby-ivar">@inputs</span> = <span class="ruby-identifier">xs</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span>(<span class="ruby-identifier">f</span>.<span class="ruby-identifier">arity</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>)]
|
|
16
|
+
<span class="ruby-ivar">@nguard</span> = <span class="ruby-identifier">f</span>.<span class="ruby-identifier">arity</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">xs</span>.<span class="ruby-identifier">length</span>
|
|
17
|
+
<span class="ruby-ivar">@proc</span> = <span class="ruby-identifier">f</span>
|
|
18
|
+
<span class="ruby-keyword kw">end</span></pre>
|
|
19
|
+
</body>
|
|
20
|
+
</html>
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
+
<!DOCTYPE html
|
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
+
|
|
6
|
+
<html>
|
|
7
|
+
<head>
|
|
8
|
+
<title>property (Assertion)</title>
|
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
|
+
</head>
|
|
12
|
+
<body class="standalone-code">
|
|
13
|
+
<pre><span class="ruby-comment cmt"># File rushcheck/assertion.rb, line 30</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">property</span>
|
|
15
|
+
<span class="ruby-constant">Property</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">Gen</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">n</span>, <span class="ruby-identifier">r</span><span class="ruby-operator">|</span>
|
|
16
|
+
<span class="ruby-identifier">r2</span> = <span class="ruby-identifier">r</span>
|
|
17
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@inputs</span>
|
|
18
|
+
<span class="ruby-keyword kw">then</span>
|
|
19
|
+
<span class="ruby-ivar">@inputs</span>.<span class="ruby-identifier">map</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
|
|
20
|
+
<span class="ruby-identifier">r1</span>, <span class="ruby-identifier">r2</span> = <span class="ruby-identifier">r2</span>.<span class="ruby-identifier">split</span>
|
|
21
|
+
<span class="ruby-identifier">c</span>.<span class="ruby-identifier">arbitrary</span>.<span class="ruby-identifier">value</span>(<span class="ruby-identifier">n</span>, <span class="ruby-identifier">r1</span>)
|
|
22
|
+
<span class="ruby-keyword kw">end</span>
|
|
23
|
+
<span class="ruby-keyword kw">else</span>
|
|
24
|
+
[]
|
|
25
|
+
<span class="ruby-keyword kw">end</span>
|
|
26
|
+
<span class="ruby-keyword kw">end</span>.<span class="ruby-identifier">bind</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">args</span><span class="ruby-operator">|</span>
|
|
27
|
+
<span class="ruby-identifier">guards</span> = <span class="ruby-ivar">@nguard</span> <span class="ruby-operator">>=</span> <span class="ruby-value">0</span> <span class="ruby-operator">?</span> <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@nguard</span>, <span class="ruby-constant">Guard</span>.<span class="ruby-identifier">new</span>) <span class="ruby-operator">:</span> []
|
|
28
|
+
<span class="ruby-identifier">test</span> = <span class="ruby-keyword kw">begin</span>
|
|
29
|
+
<span class="ruby-identifier">xs</span> = <span class="ruby-identifier">args</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">guards</span>
|
|
30
|
+
<span class="ruby-ivar">@proc</span>.<span class="ruby-identifier">call</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">xs</span>)
|
|
31
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">ex</span>
|
|
32
|
+
<span class="ruby-keyword kw">case</span> <span class="ruby-identifier">ex</span>
|
|
33
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-constant">RushCheckGuard</span>
|
|
34
|
+
<span class="ruby-constant">Result</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">nil</span>)
|
|
35
|
+
<span class="ruby-keyword kw">else</span>
|
|
36
|
+
<span class="ruby-identifier">err</span> = <span class="ruby-node">"Unexpected exception: #{ex.inspect}\n"</span> <span class="ruby-operator">+</span>
|
|
37
|
+
<span class="ruby-identifier">ex</span>.<span class="ruby-identifier">backtrace</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">"\n"</span>)
|
|
38
|
+
<span class="ruby-constant">Result</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">false</span>, [], [<span class="ruby-identifier">err</span>])
|
|
39
|
+
<span class="ruby-keyword kw">end</span>
|
|
40
|
+
<span class="ruby-keyword kw">end</span>
|
|
41
|
+
<span class="ruby-comment cmt"># not use ensure here because ensure clause</span>
|
|
42
|
+
<span class="ruby-comment cmt"># does not return values</span>
|
|
43
|
+
<span class="ruby-identifier">test</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">gen</span>.<span class="ruby-identifier">bind</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">res</span><span class="ruby-operator">|</span>
|
|
44
|
+
<span class="ruby-identifier">res</span>.<span class="ruby-identifier">arguments</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">inspect</span>
|
|
45
|
+
<span class="ruby-constant">Gen</span>.<span class="ruby-identifier">unit</span>(<span class="ruby-identifier">res</span>)
|
|
46
|
+
<span class="ruby-keyword kw">end</span>
|
|
47
|
+
<span class="ruby-keyword kw">end</span>)
|
|
48
|
+
<span class="ruby-keyword kw">end</span></pre>
|
|
49
|
+
</body>
|
|
50
|
+
</html>
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
<h3 class="section-bar">Methods</h3>
|
|
81
81
|
|
|
82
82
|
<div class="name-list">
|
|
83
|
-
<a href="#
|
|
83
|
+
<a href="#M000105">coarbitrary</a>
|
|
84
84
|
</div>
|
|
85
85
|
</div>
|
|
86
86
|
|
|
@@ -102,12 +102,12 @@
|
|
|
102
102
|
<div id="methods">
|
|
103
103
|
<h3 class="section-bar">Public Instance methods</h3>
|
|
104
104
|
|
|
105
|
-
<div id="method-
|
|
106
|
-
<a name="
|
|
105
|
+
<div id="method-M000105" class="method-detail">
|
|
106
|
+
<a name="M000105"></a>
|
|
107
107
|
|
|
108
108
|
<div class="method-heading">
|
|
109
|
-
<a href="Coarbitrary.src/
|
|
110
|
-
onclick="popupCode('Coarbitrary.src/
|
|
109
|
+
<a href="Coarbitrary.src/M000105.html" target="Code" class="method-signature"
|
|
110
|
+
onclick="popupCode('Coarbitrary.src/M000105.html');return false;">
|
|
111
111
|
<span class="method-name">coarbitrary</span><span class="method-args">(g)</span>
|
|
112
112
|
</a>
|
|
113
113
|
</div>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
+
<!DOCTYPE html
|
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
+
|
|
6
|
+
<html>
|
|
7
|
+
<head>
|
|
8
|
+
<title>coarbitrary (Coarbitrary)</title>
|
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
|
+
</head>
|
|
12
|
+
<body class="standalone-code">
|
|
13
|
+
<pre><span class="ruby-comment cmt"># File rushcheck/arbitrary.rb, line 24</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">coarbitrary</span>(<span class="ruby-identifier">g</span>)
|
|
15
|
+
<span class="ruby-identifier">raise</span>(<span class="ruby-constant">NotImplementedError</span>, <span class="ruby-value str">"This method should be overrided."</span>)
|
|
16
|
+
<span class="ruby-keyword kw">end</span></pre>
|
|
17
|
+
</body>
|
|
18
|
+
</html>
|
|
@@ -86,9 +86,9 @@
|
|
|
86
86
|
<h3 class="section-bar">Methods</h3>
|
|
87
87
|
|
|
88
88
|
<div class="name-list">
|
|
89
|
-
<a href="#
|
|
90
|
-
<a href="#
|
|
91
|
-
<a href="#
|
|
89
|
+
<a href="#M000022">bound</a>
|
|
90
|
+
<a href="#M000023">coarbitrary</a>
|
|
91
|
+
<a href="#M000024">property</a>
|
|
92
92
|
</div>
|
|
93
93
|
</div>
|
|
94
94
|
|
|
@@ -118,12 +118,12 @@
|
|
|
118
118
|
<div id="methods">
|
|
119
119
|
<h3 class="section-bar">Public Class methods</h3>
|
|
120
120
|
|
|
121
|
-
<div id="method-
|
|
122
|
-
<a name="
|
|
121
|
+
<div id="method-M000022" class="method-detail">
|
|
122
|
+
<a name="M000022"></a>
|
|
123
123
|
|
|
124
124
|
<div class="method-heading">
|
|
125
|
-
<a href="FalseClass.src/
|
|
126
|
-
onclick="popupCode('FalseClass.src/
|
|
125
|
+
<a href="FalseClass.src/M000022.html" target="Code" class="method-signature"
|
|
126
|
+
onclick="popupCode('FalseClass.src/M000022.html');return false;">
|
|
127
127
|
<span class="method-name">bound</span><span class="method-args">()</span>
|
|
128
128
|
</a>
|
|
129
129
|
</div>
|
|
@@ -134,12 +134,12 @@
|
|
|
134
134
|
|
|
135
135
|
<h3 class="section-bar">Public Instance methods</h3>
|
|
136
136
|
|
|
137
|
-
<div id="method-
|
|
138
|
-
<a name="
|
|
137
|
+
<div id="method-M000023" class="method-detail">
|
|
138
|
+
<a name="M000023"></a>
|
|
139
139
|
|
|
140
140
|
<div class="method-heading">
|
|
141
|
-
<a href="FalseClass.src/
|
|
142
|
-
onclick="popupCode('FalseClass.src/
|
|
141
|
+
<a href="FalseClass.src/M000023.html" target="Code" class="method-signature"
|
|
142
|
+
onclick="popupCode('FalseClass.src/M000023.html');return false;">
|
|
143
143
|
<span class="method-name">coarbitrary</span><span class="method-args">(g)</span>
|
|
144
144
|
</a>
|
|
145
145
|
</div>
|
|
@@ -148,12 +148,12 @@
|
|
|
148
148
|
</div>
|
|
149
149
|
</div>
|
|
150
150
|
|
|
151
|
-
<div id="method-
|
|
152
|
-
<a name="
|
|
151
|
+
<div id="method-M000024" class="method-detail">
|
|
152
|
+
<a name="M000024"></a>
|
|
153
153
|
|
|
154
154
|
<div class="method-heading">
|
|
155
|
-
<a href="FalseClass.src/
|
|
156
|
-
onclick="popupCode('FalseClass.src/
|
|
155
|
+
<a href="FalseClass.src/M000024.html" target="Code" class="method-signature"
|
|
156
|
+
onclick="popupCode('FalseClass.src/M000024.html');return false;">
|
|
157
157
|
<span class="method-name">property</span><span class="method-args">()</span>
|
|
158
158
|
</a>
|
|
159
159
|
</div>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
+
<!DOCTYPE html
|
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
+
|
|
6
|
+
<html>
|
|
7
|
+
<head>
|
|
8
|
+
<title>bound (FalseClass)</title>
|
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
|
+
</head>
|
|
12
|
+
<body class="standalone-code">
|
|
13
|
+
<pre><span class="ruby-comment cmt"># File rushcheck/bool.rb, line 59</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bound</span>
|
|
15
|
+
[<span class="ruby-ivar">@@min_bound</span>, <span class="ruby-ivar">@@max_bound</span>]
|
|
16
|
+
<span class="ruby-keyword kw">end</span></pre>
|
|
17
|
+
</body>
|
|
18
|
+
</html>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
+
<!DOCTYPE html
|
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
+
|
|
6
|
+
<html>
|
|
7
|
+
<head>
|
|
8
|
+
<title>coarbitrary (FalseClass)</title>
|
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
|
+
</head>
|
|
12
|
+
<body class="standalone-code">
|
|
13
|
+
<pre><span class="ruby-comment cmt"># File rushcheck/bool.rb, line 63</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">coarbitrary</span>(<span class="ruby-identifier">g</span>)
|
|
15
|
+
<span class="ruby-identifier">g</span>.<span class="ruby-identifier">variant</span>(<span class="ruby-value">1</span>)
|
|
16
|
+
<span class="ruby-keyword kw">end</span></pre>
|
|
17
|
+
</body>
|
|
18
|
+
</html>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
+
<!DOCTYPE html
|
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
+
|
|
6
|
+
<html>
|
|
7
|
+
<head>
|
|
8
|
+
<title>property (FalseClass)</title>
|
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
|
+
</head>
|
|
12
|
+
<body class="standalone-code">
|
|
13
|
+
<pre><span class="ruby-comment cmt"># File rushcheck/bool.rb, line 67</span>
|
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">property</span>
|
|
15
|
+
<span class="ruby-constant">Result</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>).<span class="ruby-identifier">result</span>
|
|
16
|
+
<span class="ruby-keyword kw">end</span></pre>
|
|
17
|
+
</body>
|
|
18
|
+
</html>
|