rushcheck 0.5 → 0.6
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 +9 -1
- data/Rakefile.in +9 -1
- data/data/rushcheck/doc/rushcheck.thtml +55 -0
- data/data/rushcheck/examples/proc.rb +1 -1
- data/data/rushcheck/examples/rspec/stack.rb +42 -0
- data/data/rushcheck/examples/rspec/stack_spec.rb +223 -0
- data/data/rushcheck/rdoc/classes/RushCheck/Arbitrary.src/M000035.html +1 -1
- data/data/rushcheck/rdoc/classes/RushCheck/Assertion.html +14 -3
- data/data/rushcheck/rdoc/classes/RushCheck/Assertion.src/M000073.html +1 -2
- data/data/rushcheck/rdoc/classes/RushCheck/Assertion.src/M000074.html +6 -33
- data/data/rushcheck/rdoc/classes/RushCheck/Claim.html +199 -0
- data/data/rushcheck/rdoc/classes/RushCheck/Claim.src/M000107.html +21 -0
- data/data/rushcheck/rdoc/classes/RushCheck/Coarbitrary.src/M000058.html +1 -1
- data/data/rushcheck/rdoc/classes/RushCheck/Gen.html +3 -3
- data/data/rushcheck/rdoc/classes/RushCheck/Gen.src/M000076.html +0 -1
- data/data/rushcheck/rdoc/classes/RushCheck/Gen.src/M000077.html +1 -1
- data/data/rushcheck/rdoc/classes/RushCheck/Gen.src/M000078.html +1 -1
- data/data/rushcheck/rdoc/classes/RushCheck/Gen.src/M000079.html +1 -1
- data/data/rushcheck/rdoc/classes/RushCheck/Gen.src/M000080.html +1 -1
- data/data/rushcheck/rdoc/classes/RushCheck/Gen.src/M000081.html +1 -1
- data/data/rushcheck/rdoc/classes/RushCheck/Gen.src/M000082.html +1 -1
- data/data/rushcheck/rdoc/classes/RushCheck/Gen.src/M000083.html +1 -1
- data/data/rushcheck/rdoc/classes/RushCheck/Gen.src/M000084.html +1 -1
- data/data/rushcheck/rdoc/classes/RushCheck/Gen.src/M000085.html +1 -1
- data/data/rushcheck/rdoc/classes/RushCheck/Gen.src/M000086.html +1 -1
- data/data/rushcheck/rdoc/classes/RushCheck/Gen.src/M000087.html +1 -1
- data/data/rushcheck/rdoc/classes/RushCheck/Gen.src/M000088.html +1 -1
- data/data/rushcheck/rdoc/classes/RushCheck/Gen.src/M000089.html +1 -1
- data/data/rushcheck/rdoc/classes/RushCheck/Gen.src/M000090.html +1 -1
- data/data/rushcheck/rdoc/classes/RushCheck/Gen.src/M000091.html +1 -1
- data/data/rushcheck/rdoc/classes/RushCheck/Gen.src/M000092.html +1 -1
- data/data/rushcheck/rdoc/classes/RushCheck/Gen.src/M000093.html +1 -1
- data/data/rushcheck/rdoc/classes/RushCheck/Gen.src/M000094.html +1 -1
- data/data/rushcheck/rdoc/classes/RushCheck.html +25 -1
- data/data/rushcheck/rdoc/created.rid +1 -1
- data/data/rushcheck/rdoc/files/rushcheck/arbitrary_rb.html +20 -2
- data/data/rushcheck/rdoc/files/rushcheck/assertion_rb.html +1 -1
- data/data/rushcheck/rdoc/files/rushcheck/claim_rb.html +119 -0
- data/data/rushcheck/rdoc/files/rushcheck/gen_rb.html +1 -1
- data/data/rushcheck/rdoc/files/rushcheck/random_rb.html +1 -1
- data/data/rushcheck/rdoc/files/rushcheck/version_rb.html +107 -0
- data/data/rushcheck/rdoc/files/rushcheck_rb.html +3 -1
- data/data/rushcheck/rdoc/fr_class_index.html +1 -0
- data/data/rushcheck/rdoc/fr_file_index.html +2 -0
- data/data/rushcheck/rdoc/fr_method_index.html +8 -7
- data/lib/rushcheck/arbitrary.rb +15 -1
- data/lib/rushcheck/assertion.rb +21 -6
- data/lib/rushcheck/claim.rb +56 -0
- data/lib/rushcheck/gen.rb +2 -4
- data/lib/rushcheck/version.rb +1 -1
- data/lib/rushcheck.rb +1 -0
- metadata +11 -2
@@ -0,0 +1,119 @@
|
|
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 xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
7
|
+
<head>
|
8
|
+
<title>File: claim.rb</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
11
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
12
|
+
<script type="text/javascript">
|
13
|
+
// <![CDATA[
|
14
|
+
|
15
|
+
function popupCode( url ) {
|
16
|
+
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
17
|
+
}
|
18
|
+
|
19
|
+
function toggleCode( id ) {
|
20
|
+
if ( document.getElementById )
|
21
|
+
elem = document.getElementById( id );
|
22
|
+
else if ( document.all )
|
23
|
+
elem = eval( "document.all." + id );
|
24
|
+
else
|
25
|
+
return false;
|
26
|
+
|
27
|
+
elemStyle = elem.style;
|
28
|
+
|
29
|
+
if ( elemStyle.display != "block" ) {
|
30
|
+
elemStyle.display = "block"
|
31
|
+
} else {
|
32
|
+
elemStyle.display = "none"
|
33
|
+
}
|
34
|
+
|
35
|
+
return true;
|
36
|
+
}
|
37
|
+
|
38
|
+
// Make codeblocks hidden by default
|
39
|
+
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
40
|
+
|
41
|
+
// ]]>
|
42
|
+
</script>
|
43
|
+
|
44
|
+
</head>
|
45
|
+
<body>
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
<div id="fileHeader">
|
50
|
+
<h1>claim.rb</h1>
|
51
|
+
<table class="header-table">
|
52
|
+
<tr class="top-aligned-row">
|
53
|
+
<td><strong>Path:</strong></td>
|
54
|
+
<td>rushcheck/claim.rb
|
55
|
+
</td>
|
56
|
+
</tr>
|
57
|
+
<tr class="top-aligned-row">
|
58
|
+
<td><strong>Last Update:</strong></td>
|
59
|
+
<td>Fri Oct 13 01:43:00 JST 2006</td>
|
60
|
+
</tr>
|
61
|
+
</table>
|
62
|
+
</div>
|
63
|
+
<!-- banner header -->
|
64
|
+
|
65
|
+
<div id="bodyContent">
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
<div id="contextContent">
|
70
|
+
|
71
|
+
<div id="description">
|
72
|
+
<h1>claim.rb</h1>
|
73
|
+
<pre>
|
74
|
+
this file provides a class Claim for random testing.
|
75
|
+
</pre>
|
76
|
+
|
77
|
+
</div>
|
78
|
+
|
79
|
+
<div id="requires-list">
|
80
|
+
<h3 class="section-bar">Required files</h3>
|
81
|
+
|
82
|
+
<div class="name-list">
|
83
|
+
<a href="gen_rb.html">rushcheck/gen</a>
|
84
|
+
<a href="guard_rb.html">rushcheck/guard</a>
|
85
|
+
<a href="property_rb.html">rushcheck/property</a>
|
86
|
+
<a href="result_rb.html">rushcheck/result</a>
|
87
|
+
<a href="testable_rb.html">rushcheck/testable</a>
|
88
|
+
</div>
|
89
|
+
</div>
|
90
|
+
|
91
|
+
</div>
|
92
|
+
|
93
|
+
|
94
|
+
</div>
|
95
|
+
|
96
|
+
|
97
|
+
<!-- if includes -->
|
98
|
+
|
99
|
+
<div id="section">
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
|
108
|
+
<!-- if method_list -->
|
109
|
+
|
110
|
+
|
111
|
+
</div>
|
112
|
+
|
113
|
+
|
114
|
+
<div id="validator-badges">
|
115
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
116
|
+
</div>
|
117
|
+
|
118
|
+
</body>
|
119
|
+
</html>
|
@@ -0,0 +1,107 @@
|
|
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 xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
7
|
+
<head>
|
8
|
+
<title>File: version.rb</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
11
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
12
|
+
<script type="text/javascript">
|
13
|
+
// <![CDATA[
|
14
|
+
|
15
|
+
function popupCode( url ) {
|
16
|
+
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
17
|
+
}
|
18
|
+
|
19
|
+
function toggleCode( id ) {
|
20
|
+
if ( document.getElementById )
|
21
|
+
elem = document.getElementById( id );
|
22
|
+
else if ( document.all )
|
23
|
+
elem = eval( "document.all." + id );
|
24
|
+
else
|
25
|
+
return false;
|
26
|
+
|
27
|
+
elemStyle = elem.style;
|
28
|
+
|
29
|
+
if ( elemStyle.display != "block" ) {
|
30
|
+
elemStyle.display = "block"
|
31
|
+
} else {
|
32
|
+
elemStyle.display = "none"
|
33
|
+
}
|
34
|
+
|
35
|
+
return true;
|
36
|
+
}
|
37
|
+
|
38
|
+
// Make codeblocks hidden by default
|
39
|
+
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
40
|
+
|
41
|
+
// ]]>
|
42
|
+
</script>
|
43
|
+
|
44
|
+
</head>
|
45
|
+
<body>
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
<div id="fileHeader">
|
50
|
+
<h1>version.rb</h1>
|
51
|
+
<table class="header-table">
|
52
|
+
<tr class="top-aligned-row">
|
53
|
+
<td><strong>Path:</strong></td>
|
54
|
+
<td>rushcheck/version.rb
|
55
|
+
</td>
|
56
|
+
</tr>
|
57
|
+
<tr class="top-aligned-row">
|
58
|
+
<td><strong>Last Update:</strong></td>
|
59
|
+
<td>Fri Oct 13 02:25:29 JST 2006</td>
|
60
|
+
</tr>
|
61
|
+
</table>
|
62
|
+
</div>
|
63
|
+
<!-- banner header -->
|
64
|
+
|
65
|
+
<div id="bodyContent">
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
<div id="contextContent">
|
70
|
+
|
71
|
+
<div id="description">
|
72
|
+
<p>
|
73
|
+
version.rb
|
74
|
+
</p>
|
75
|
+
|
76
|
+
</div>
|
77
|
+
|
78
|
+
|
79
|
+
</div>
|
80
|
+
|
81
|
+
|
82
|
+
</div>
|
83
|
+
|
84
|
+
|
85
|
+
<!-- if includes -->
|
86
|
+
|
87
|
+
<div id="section">
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
|
96
|
+
<!-- if method_list -->
|
97
|
+
|
98
|
+
|
99
|
+
</div>
|
100
|
+
|
101
|
+
|
102
|
+
<div id="validator-badges">
|
103
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
104
|
+
</div>
|
105
|
+
|
106
|
+
</body>
|
107
|
+
</html>
|
@@ -56,7 +56,7 @@
|
|
56
56
|
</tr>
|
57
57
|
<tr class="top-aligned-row">
|
58
58
|
<td><strong>Last Update:</strong></td>
|
59
|
-
<td>
|
59
|
+
<td>Fri Oct 13 01:42:09 JST 2006</td>
|
60
60
|
</tr>
|
61
61
|
</table>
|
62
62
|
</div>
|
@@ -83,10 +83,12 @@ href="../classes/RushCheck.html">RushCheck</a> for random testing.
|
|
83
83
|
<div class="name-list">
|
84
84
|
<a href="rushcheck/arbitrary_rb.html">rushcheck/arbitrary</a>
|
85
85
|
<a href="rushcheck/assertion_rb.html">rushcheck/assertion</a>
|
86
|
+
<a href="rushcheck/claim_rb.html">rushcheck/claim</a>
|
86
87
|
<a href="rushcheck/gen_rb.html">rushcheck/gen</a>
|
87
88
|
<a href="rushcheck/guard_rb.html">rushcheck/guard</a>
|
88
89
|
<a href="rushcheck/random_rb.html">rushcheck/random</a>
|
89
90
|
<a href="rushcheck/testable_rb.html">rushcheck/testable</a>
|
91
|
+
<a href="rushcheck/version_rb.html">rushcheck/version</a>
|
90
92
|
<a href="rushcheck/array_rb.html">rushcheck/array</a>
|
91
93
|
<a href="rushcheck/bool_rb.html">rushcheck/bool</a>
|
92
94
|
<a href="rushcheck/float_rb.html">rushcheck/float</a>
|
@@ -30,6 +30,7 @@
|
|
30
30
|
<a href="classes/RushCheck.html">RushCheck</a><br />
|
31
31
|
<a href="classes/RushCheck/Arbitrary.html">RushCheck::Arbitrary</a><br />
|
32
32
|
<a href="classes/RushCheck/Assertion.html">RushCheck::Assertion</a><br />
|
33
|
+
<a href="classes/RushCheck/Claim.html">RushCheck::Claim</a><br />
|
33
34
|
<a href="classes/RushCheck/Coarbitrary.html">RushCheck::Coarbitrary</a><br />
|
34
35
|
<a href="classes/RushCheck/Config.html">RushCheck::Config</a><br />
|
35
36
|
<a href="classes/RushCheck/Gen.html">RushCheck::Gen</a><br />
|
@@ -25,6 +25,7 @@
|
|
25
25
|
<a href="files/rushcheck/array_rb.html">rushcheck/array.rb</a><br />
|
26
26
|
<a href="files/rushcheck/assertion_rb.html">rushcheck/assertion.rb</a><br />
|
27
27
|
<a href="files/rushcheck/bool_rb.html">rushcheck/bool.rb</a><br />
|
28
|
+
<a href="files/rushcheck/claim_rb.html">rushcheck/claim.rb</a><br />
|
28
29
|
<a href="files/rushcheck/config_rb.html">rushcheck/config.rb</a><br />
|
29
30
|
<a href="files/rushcheck/float_rb.html">rushcheck/float.rb</a><br />
|
30
31
|
<a href="files/rushcheck/gen_rb.html">rushcheck/gen.rb</a><br />
|
@@ -39,6 +40,7 @@
|
|
39
40
|
<a href="files/rushcheck/testable_rb.html">rushcheck/testable.rb</a><br />
|
40
41
|
<a href="files/rushcheck/testoptions_rb.html">rushcheck/testoptions.rb</a><br />
|
41
42
|
<a href="files/rushcheck/testresult_rb.html">rushcheck/testresult.rb</a><br />
|
43
|
+
<a href="files/rushcheck/version_rb.html">rushcheck/version.rb</a><br />
|
42
44
|
</div>
|
43
45
|
</div>
|
44
46
|
</body>
|
@@ -74,41 +74,42 @@
|
|
74
74
|
<a href="classes/RushCheck/Property.html#M000105">new (RushCheck::Property)</a><br />
|
75
75
|
<a href="classes/RushCheck/Config.html#M000069">new (RushCheck::Config)</a><br />
|
76
76
|
<a href="classes/RushCheck/Assertion.html#M000073">new (RushCheck::Assertion)</a><br />
|
77
|
+
<a href="classes/RushCheck/Result.html#M000096">new (RushCheck::Result)</a><br />
|
77
78
|
<a href="classes/RushCheck/TheStdGen.html#M000101">new (RushCheck::TheStdGen)</a><br />
|
78
79
|
<a href="classes/RushCheck/TestResult.html#M000100">new (RushCheck::TestResult)</a><br />
|
79
|
-
<a href="classes/RushCheck/TestFailed.html#M000099">new (RushCheck::TestFailed)</a><br />
|
80
80
|
<a href="classes/RushCheck/StdGen.html#M000061">new (RushCheck::StdGen)</a><br />
|
81
81
|
<a href="classes/RushCheck/TestOptions.html#M000059">new (RushCheck::TestOptions)</a><br />
|
82
|
-
<a href="classes/RushCheck/Result.html#M000096">new (RushCheck::Result)</a><br />
|
83
82
|
<a href="classes/RushCheck/Gen.html#M000087">new (RushCheck::Gen)</a><br />
|
83
|
+
<a href="classes/RushCheck/TestFailed.html#M000099">new (RushCheck::TestFailed)</a><br />
|
84
84
|
<a href="classes/RushCheck/Result.html#M000095">nothing (RushCheck::Result)</a><br />
|
85
85
|
<a href="classes/RushCheck/Gen.html#M000081">oneof (RushCheck::Gen)</a><br />
|
86
86
|
<a href="classes/RushCheck/Gen.html#M000082">promote (RushCheck::Gen)</a><br />
|
87
87
|
<a href="classes/RushCheck/Testable.html#M000044">property (RushCheck::Testable)</a><br />
|
88
88
|
<a href="classes/RushCheck/Result.html#M000098">property (RushCheck::Result)</a><br />
|
89
|
-
<a href="classes/RandomProc.html#M000022">property (RandomProc)</a><br />
|
90
89
|
<a href="classes/FalseClass.html#M000008">property (FalseClass)</a><br />
|
90
|
+
<a href="classes/RushCheck/Claim.html#M000107">property (RushCheck::Claim)</a><br />
|
91
91
|
<a href="classes/RushCheck/Property.html#M000106">property (RushCheck::Property)</a><br />
|
92
|
+
<a href="classes/NilClass.html#M000025">property (NilClass)</a><br />
|
92
93
|
<a href="classes/TrueClass.html#M000032">property (TrueClass)</a><br />
|
93
94
|
<a href="classes/RushCheck/Assertion.html#M000074">property (RushCheck::Assertion)</a><br />
|
94
|
-
<a href="classes/
|
95
|
+
<a href="classes/RandomProc.html#M000022">property (RandomProc)</a><br />
|
95
96
|
<a href="classes/RushCheck/Config.html#M000066">quick (RushCheck::Config)</a><br />
|
96
97
|
<a href="classes/RushCheck/Testable.html#M000046">quick_check (RushCheck::Testable)</a><br />
|
97
98
|
<a href="classes/RushCheck/Testable.html#M000047">quickcheck (RushCheck::Testable)</a><br />
|
98
99
|
<a href="classes/RushCheck/Gen.html#M000083">rand (RushCheck::Gen)</a><br />
|
99
100
|
<a href="classes/RushCheck/HsRandom.html#M000041">random (RushCheck::HsRandom)</a><br />
|
100
101
|
<a href="classes/RushCheck/HsRandom.html#M000042">random_array (RushCheck::HsRandom)</a><br />
|
101
|
-
<a href="classes/Float.html#M000017">random_range (Float)</a><br />
|
102
102
|
<a href="classes/Integer.html#M000003">random_range (Integer)</a><br />
|
103
|
-
<a href="classes/String.html#M000028">random_range (String)</a><br />
|
104
103
|
<a href="classes/RushCheck/RandomBool.html#M000040">random_range (RushCheck::RandomBool)</a><br />
|
104
|
+
<a href="classes/String.html#M000028">random_range (String)</a><br />
|
105
|
+
<a href="classes/Float.html#M000017">random_range (Float)</a><br />
|
105
106
|
<a href="classes/RushCheck/HsRandom.html#M000043">random_std (RushCheck::HsRandom)</a><br />
|
106
107
|
<a href="classes/RushCheck/Gen.html#M000093">resize (RushCheck::Gen)</a><br />
|
107
108
|
<a href="classes/RushCheck/Result.html#M000097">result (RushCheck::Result)</a><br />
|
108
109
|
<a href="classes/RushCheck/Testable.html#M000052">run (RushCheck::Testable)</a><br />
|
109
110
|
<a href="classes/RushCheck/Testable.html#M000053">run_tests (RushCheck::Testable)</a><br />
|
110
|
-
<a href="classes/RandomProc.html#M000019">set_pattern (RandomProc)</a><br />
|
111
111
|
<a href="classes/RandomArray.html#M000009">set_pattern (RandomArray)</a><br />
|
112
|
+
<a href="classes/RandomProc.html#M000019">set_pattern (RandomProc)</a><br />
|
112
113
|
<a href="classes/RandomHash.html#M000012">set_pattern (RandomHash)</a><br />
|
113
114
|
<a href="classes/RushCheck/Gen.html#M000084">sized (RushCheck::Gen)</a><br />
|
114
115
|
<a href="classes/RushCheck/RandomGen.html#M000037">split (RushCheck::RandomGen)</a><br />
|
data/lib/rushcheck/arbitrary.rb
CHANGED
@@ -4,7 +4,21 @@
|
|
4
4
|
# Arbitrary provides an instance method arbitrary.
|
5
5
|
# Coarbitrary provides a class method coarbitrary.
|
6
6
|
# However they are abstract methods and should be overrided
|
7
|
-
# in each class after include
|
7
|
+
# in each class after extend/include them.
|
8
|
+
#
|
9
|
+
# class YourClass
|
10
|
+
# extend RushCheck::Arbitrary
|
11
|
+
# include RushCheck::Coarbitrary
|
12
|
+
#
|
13
|
+
# def self.arbitrary
|
14
|
+
# # must be overrided
|
15
|
+
# end
|
16
|
+
#
|
17
|
+
# def coarbitrary
|
18
|
+
# # must be overrided also
|
19
|
+
# end
|
20
|
+
# end
|
21
|
+
#
|
8
22
|
|
9
23
|
module RushCheck
|
10
24
|
|
data/lib/rushcheck/assertion.rb
CHANGED
@@ -17,8 +17,15 @@ module RushCheck
|
|
17
17
|
# body
|
18
18
|
# end
|
19
19
|
#
|
20
|
+
# The return value of the body of testcase is checked by
|
21
|
+
# the method 'check'.
|
22
|
+
#
|
20
23
|
# Note that the number of arguments in the block must be
|
21
24
|
# equal to the number of arguments of Assertion.new.
|
25
|
+
# However, for a curried block, we can write also
|
26
|
+
# Assertion.new(*cs) {|*xs| ...}
|
27
|
+
#
|
28
|
+
# See also class Claim, which is a subclass of Assertion
|
22
29
|
# See also the RushCheck tutorial and several examples.
|
23
30
|
#
|
24
31
|
class Assertion
|
@@ -26,12 +33,13 @@ module RushCheck
|
|
26
33
|
include RushCheck::Testable
|
27
34
|
|
28
35
|
def initialize(*xs, &f)
|
29
|
-
raise ArgumentError unless f.arity == xs.length
|
30
36
|
@inputs = xs[0..(f.arity - 1)]
|
31
37
|
@proc = f
|
32
38
|
end
|
33
39
|
|
34
|
-
def
|
40
|
+
def _property
|
41
|
+
# :nodoc:
|
42
|
+
# should be raise when the number of arguments are differ?
|
35
43
|
g = RushCheck::Gen.new do |n, r|
|
36
44
|
r2 = r
|
37
45
|
if @inputs
|
@@ -45,10 +53,7 @@ module RushCheck
|
|
45
53
|
end
|
46
54
|
end.bind do |args|
|
47
55
|
test = begin
|
48
|
-
|
49
|
-
then RushCheck::Result.new(true)
|
50
|
-
else RushCheck::Result.new(false)
|
51
|
-
end
|
56
|
+
yield(args)
|
52
57
|
rescue Exception => ex
|
53
58
|
case ex
|
54
59
|
when RushCheck::GuardException
|
@@ -69,6 +74,16 @@ module RushCheck
|
|
69
74
|
|
70
75
|
RushCheck::Property.new(g)
|
71
76
|
end
|
77
|
+
private :_property
|
78
|
+
|
79
|
+
def property
|
80
|
+
_property { |args|
|
81
|
+
if @proc.call(*args)
|
82
|
+
then RushCheck::Result.new(true)
|
83
|
+
else RushCheck::Result.new(false)
|
84
|
+
end
|
85
|
+
}
|
86
|
+
end
|
72
87
|
|
73
88
|
end
|
74
89
|
|
@@ -0,0 +1,56 @@
|
|
1
|
+
#= claim.rb
|
2
|
+
# this file provides a class Claim for random testing.
|
3
|
+
|
4
|
+
require 'rushcheck/gen'
|
5
|
+
require 'rushcheck/guard'
|
6
|
+
require 'rushcheck/property'
|
7
|
+
require 'rushcheck/result'
|
8
|
+
require 'rushcheck/testable'
|
9
|
+
|
10
|
+
module RushCheck
|
11
|
+
|
12
|
+
# class Claim is one of main features of RushCheck.
|
13
|
+
# You can write a testcase for random testing as follows:
|
14
|
+
#
|
15
|
+
# Claim.new(Integer, String) do |x, y|
|
16
|
+
# RushCheck::guard { precondition }
|
17
|
+
# body
|
18
|
+
# end
|
19
|
+
#
|
20
|
+
# The notation of Claim.new is same as Assertion.new is,
|
21
|
+
# however the semantics are different. When checking the
|
22
|
+
# body of testcase, the returned value is ignored. In
|
23
|
+
# other words, the body is executed but not checked the
|
24
|
+
# result. However, if an exception is raised while executing
|
25
|
+
# the body, then checking is failed. This means that the
|
26
|
+
# above testing case can be written by Assertion.new
|
27
|
+
# as follows:
|
28
|
+
#
|
29
|
+
# # meaning of Claim.new is similar to Assertion.new
|
30
|
+
# Assertion.new(Integer, String) do |x, y|
|
31
|
+
# RushCheck::guard { precondition }
|
32
|
+
# body
|
33
|
+
# true
|
34
|
+
# end
|
35
|
+
#
|
36
|
+
# Claim maybe useful for combining unit testing library,
|
37
|
+
# because sometimes we want to execute several assertions
|
38
|
+
# of unit testing library such as assert_equal(x, y).
|
39
|
+
# The assertions of unit testing library does not return
|
40
|
+
# true or false, but return nil (just only testing).
|
41
|
+
#
|
42
|
+
# Claim is-an Assertion so its subclass. See also Assertion.
|
43
|
+
|
44
|
+
class Claim < Assertion
|
45
|
+
|
46
|
+
include RushCheck::Testable
|
47
|
+
|
48
|
+
def property
|
49
|
+
_property { |args|
|
50
|
+
@proc.call(*args)
|
51
|
+
RushCheck::Result.new(true)
|
52
|
+
}
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
end
|
data/lib/rushcheck/gen.rb
CHANGED
@@ -25,7 +25,6 @@ module RushCheck
|
|
25
25
|
# Then create_gen returns a Gen object. It may useful to implement
|
26
26
|
# arbitrary method into your class.
|
27
27
|
def self.create_by_gen(xs, &f)
|
28
|
-
raise ArgumentError unless f.arity == xs.length
|
29
28
|
self.new do |n, r|
|
30
29
|
r2 = r
|
31
30
|
|
@@ -168,9 +167,8 @@ module RushCheck
|
|
168
167
|
end
|
169
168
|
|
170
169
|
# bind is a monadic function such as Haskel's (>>=).
|
171
|
-
# bind takes a block which has
|
172
|
-
#
|
173
|
-
# random generator of RandomGen. The block should return a Gen object.
|
170
|
+
# bind takes a block which has a variable where is the return value
|
171
|
+
# of the Gen object. The block should return a Gen object.
|
174
172
|
def bind
|
175
173
|
self.class.new do |n, r|
|
176
174
|
r1, r2 = r.split
|
data/lib/rushcheck/version.rb
CHANGED
data/lib/rushcheck.rb
CHANGED
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.0
|
|
3
3
|
specification_version: 1
|
4
4
|
name: rushcheck
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: "0.
|
7
|
-
date: 2006-10-
|
6
|
+
version: "0.6"
|
7
|
+
date: 2006-10-13 00:00:00.000000 +09:00
|
8
8
|
summary: A lightweight random testing tool
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -36,6 +36,7 @@ files:
|
|
36
36
|
- lib/rushcheck/array.rb
|
37
37
|
- lib/rushcheck/assertion.rb
|
38
38
|
- lib/rushcheck/bool.rb
|
39
|
+
- lib/rushcheck/claim.rb
|
39
40
|
- lib/rushcheck/config.rb
|
40
41
|
- lib/rushcheck/float.rb
|
41
42
|
- lib/rushcheck/gen.rb
|
@@ -62,7 +63,10 @@ files:
|
|
62
63
|
- data/rushcheck/examples/printf.rb
|
63
64
|
- data/rushcheck/examples/proc.rb
|
64
65
|
- data/rushcheck/examples/roguetile.rb
|
66
|
+
- data/rushcheck/examples/rspec
|
65
67
|
- data/rushcheck/examples/sample.rb
|
68
|
+
- data/rushcheck/examples/rspec/stack.rb
|
69
|
+
- data/rushcheck/examples/rspec/stack_spec.rb
|
66
70
|
- data/rushcheck/rdoc/classes
|
67
71
|
- data/rushcheck/rdoc/created.rid
|
68
72
|
- data/rushcheck/rdoc/files
|
@@ -279,6 +283,8 @@ files:
|
|
279
283
|
- data/rushcheck/rdoc/classes/RushCheck/Arbitrary.src
|
280
284
|
- data/rushcheck/rdoc/classes/RushCheck/Assertion.html
|
281
285
|
- data/rushcheck/rdoc/classes/RushCheck/Assertion.src
|
286
|
+
- data/rushcheck/rdoc/classes/RushCheck/Claim.html
|
287
|
+
- data/rushcheck/rdoc/classes/RushCheck/Claim.src
|
282
288
|
- data/rushcheck/rdoc/classes/RushCheck/Coarbitrary.html
|
283
289
|
- data/rushcheck/rdoc/classes/RushCheck/Coarbitrary.src
|
284
290
|
- data/rushcheck/rdoc/classes/RushCheck/Config.html
|
@@ -313,6 +319,7 @@ files:
|
|
313
319
|
- data/rushcheck/rdoc/classes/RushCheck/Arbitrary.src/M000035.html
|
314
320
|
- data/rushcheck/rdoc/classes/RushCheck/Assertion.src/M000073.html
|
315
321
|
- data/rushcheck/rdoc/classes/RushCheck/Assertion.src/M000074.html
|
322
|
+
- data/rushcheck/rdoc/classes/RushCheck/Claim.src/M000107.html
|
316
323
|
- data/rushcheck/rdoc/classes/RushCheck/Coarbitrary.src/M000058.html
|
317
324
|
- data/rushcheck/rdoc/classes/RushCheck/Config.src/M000066.html
|
318
325
|
- data/rushcheck/rdoc/classes/RushCheck/Config.src/M000067.html
|
@@ -458,6 +465,7 @@ files:
|
|
458
465
|
- data/rushcheck/rdoc/files/rushcheck/array_rb.html
|
459
466
|
- data/rushcheck/rdoc/files/rushcheck/assertion_rb.html
|
460
467
|
- data/rushcheck/rdoc/files/rushcheck/bool_rb.html
|
468
|
+
- data/rushcheck/rdoc/files/rushcheck/claim_rb.html
|
461
469
|
- data/rushcheck/rdoc/files/rushcheck/config_rb.html
|
462
470
|
- data/rushcheck/rdoc/files/rushcheck/float_rb.html
|
463
471
|
- data/rushcheck/rdoc/files/rushcheck/gen_rb.html
|
@@ -473,6 +481,7 @@ files:
|
|
473
481
|
- data/rushcheck/rdoc/files/rushcheck/testable_rb.html
|
474
482
|
- data/rushcheck/rdoc/files/rushcheck/testoptions_rb.html
|
475
483
|
- data/rushcheck/rdoc/files/rushcheck/testresult_rb.html
|
484
|
+
- data/rushcheck/rdoc/files/rushcheck/version_rb.html
|
476
485
|
- COPYING
|
477
486
|
- INSTALL
|
478
487
|
- LICENSE
|