Cartesian 0.4.1 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +29 -0
- data/Manifest.txt +6 -0
- data/PostInstall.txt +9 -0
- data/README.txt +37 -0
- data/Rakefile +13 -0
- data/lib/cartesian.rb +0 -161
- metadata +83 -36
- data/lib/cartesian_iterator.rb +0 -109
- data/lib/extensions.rb +0 -12
- data/lib/grid_search.rb +0 -39
- data/lib/recursive.rb +0 -8
- data/tests/benchmark.rb +0 -26
- data/tests/coverage/-home-adriano-software-ruby-Cartesian-lib-cartesian_iterator_rb.html +0 -308
- data/tests/coverage/-home-adriano-software-ruby-Cartesian-lib-cartesian_rb.html +0 -384
- data/tests/coverage/-home-adriano-software-ruby-Cartesian-lib-extensions_rb.html +0 -214
- data/tests/coverage/-home-adriano-software-ruby-Cartesian-lib-grid_search_rb.html +0 -242
- data/tests/coverage/index.html +0 -141
- data/tests/tc_cartesian.rb +0 -83
- data/tests/tc_cartesian_iterator.rb +0 -34
- data/tests/tc_extensions.rb +0 -12
- data/tests/tc_grid_search.rb +0 -15
data/tests/coverage/index.html
DELETED
@@ -1,141 +0,0 @@
|
|
1
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2
|
-
<html lang='en' xml:lang='en' xmlns='http://www.w3.org/1999/xhtml'>
|
3
|
-
<head>
|
4
|
-
<title>
|
5
|
-
C0 code coverage information
|
6
|
-
</title>
|
7
|
-
<style type='text/css'>
|
8
|
-
body { background-color: rgb(240, 240, 245); }
|
9
|
-
</style>
|
10
|
-
<style type='text/css'>
|
11
|
-
span.cross-ref-title { font-size: 140%; } span.cross-ref a {
|
12
|
-
text-decoration: none; } span.cross-ref { background-color:#f3f7fa;
|
13
|
-
border: 1px dashed #333; margin: 1em; padding: 0.5em; overflow: hidden; }
|
14
|
-
a.crossref-toggle { text-decoration: none; } span.marked0 {
|
15
|
-
background-color: rgb(185, 210, 200); display: block; } span.marked1 {
|
16
|
-
background-color: rgb(190, 215, 205); display: block; } span.inferred0 {
|
17
|
-
background-color: rgb(175, 200, 200); display: block; } span.inferred1 {
|
18
|
-
background-color: rgb(180, 205, 205); display: block; } span.uncovered0 {
|
19
|
-
background-color: rgb(225, 110, 110); display: block; } span.uncovered1 {
|
20
|
-
background-color: rgb(235, 120, 120); display: block; } span.overview {
|
21
|
-
border-bottom: 8px solid black; } div.overview { border-bottom: 8px solid
|
22
|
-
black; } body { font-family: verdana, arial, helvetica; } div.footer {
|
23
|
-
font-size: 68%; margin-top: 1.5em; } h1, h2, h3, h4, h5, h6 {
|
24
|
-
margin-bottom: 0.5em; } h5 { margin-top: 0.5em; } .hidden { display: none;
|
25
|
-
} div.separator { height: 10px; } /* Commented out for better readability,
|
26
|
-
esp. on IE */ /* table tr td, table tr th { font-size: 68%; } td.value
|
27
|
-
table tr td { font-size: 11px; } */ table.percent_graph { height: 12px;
|
28
|
-
border: #808080 1px solid; empty-cells: show; } table.percent_graph
|
29
|
-
td.covered { height: 10px; background: #00f000; } table.percent_graph
|
30
|
-
td.uncovered { height: 10px; background: #e00000; } table.percent_graph
|
31
|
-
td.NA { height: 10px; background: #eaeaea; } table.report {
|
32
|
-
border-collapse: collapse; width: 100%; } table.report td.heading {
|
33
|
-
background: #dcecff; border: #d0d0d0 1px solid; font-weight: bold;
|
34
|
-
text-align: center; } table.report td.heading:hover { background: #c0ffc0;
|
35
|
-
} table.report td.text { border: #d0d0d0 1px solid; } table.report
|
36
|
-
td.value, table.report td.lines_total, table.report td.lines_code {
|
37
|
-
text-align: right; border: #d0d0d0 1px solid; } table.report tr.light {
|
38
|
-
background-color: rgb(240, 240, 245); } table.report tr.dark {
|
39
|
-
background-color: rgb(230, 230, 235); }
|
40
|
-
</style>
|
41
|
-
<script type='text/javascript'>
|
42
|
-
// <![CDATA[ function toggleCode( id ) { if ( document.getElementById )
|
43
|
-
elem = document.getElementById( id ); else if ( document.all ) elem =
|
44
|
-
eval( "document.all." + id ); else return false; elemStyle = elem.style;
|
45
|
-
if ( elemStyle.display != "block" ) { elemStyle.display = "block" } else {
|
46
|
-
elemStyle.display = "none" } return true; } // Make cross-references
|
47
|
-
hidden by default document.writeln( "<style
|
48
|
-
type=\"text/css\">span.cross-ref { display: none }</style>" ) // ]]>
|
49
|
-
</script>
|
50
|
-
</head>
|
51
|
-
<body>
|
52
|
-
<h3>
|
53
|
-
C0 code coverage information
|
54
|
-
</h3>
|
55
|
-
<p>
|
56
|
-
Generated on Tue Nov 04 04:48:28 -0200 2008 with
|
57
|
-
<a href='http://eigenclass.org/hiki/rcov'>
|
58
|
-
rcov 0.8.1.2
|
59
|
-
</a>
|
60
|
-
</p>
|
61
|
-
<hr />
|
62
|
-
<table class='report'> <thead> <tr> <td class='heading'> Name </td> <td
|
63
|
-
class='heading'> Total lines </td> <td class='heading'> Lines of code </td>
|
64
|
-
<td class='heading'> Total coverage </td> <td class='heading'> Code coverage
|
65
|
-
</td> </tr> </thead> <tbody> <tr class='light'> <td> TOTAL </td> <td
|
66
|
-
class='lines_total'> <tt> 320 </tt> </td> <td class='lines_code'> <tt> 172
|
67
|
-
</tt> </td> <td> <table cellspacing='0' align='right' cellpadding='0'> <tr>
|
68
|
-
<td> <tt class='coverage_total'> 100.0% </tt> </td> <td> <table
|
69
|
-
class='percent_graph' cellspacing='0' width='100' cellpadding='0'> <tr> <td
|
70
|
-
class='covered' width='100' /> <td class='uncovered' width='0' /> </tr>
|
71
|
-
</table> </td> </tr> </table> </td> <td> <table cellspacing='0'
|
72
|
-
align='right' cellpadding='0'> <tr> <td> <tt class='coverage_code'> 100.0%
|
73
|
-
</tt> </td> <td> <table class='percent_graph' cellspacing='0'
|
74
|
-
width='100' cellpadding='0'> <tr> <td class='covered' width='100' /> <td
|
75
|
-
class='uncovered' width='0' /> </tr> </table> </td> </tr> </table> </td>
|
76
|
-
</tr> <tr class='dark'> <td> <a
|
77
|
-
href='-home-adriano-software-ruby-Cartesian-lib-cartesian_rb.html'>
|
78
|
-
/home/adriano/software/ruby/Cartesian/lib/cartesian.rb </a> </td> <td
|
79
|
-
class='lines_total'> <tt> 161 </tt> </td> <td class='lines_code'> <tt> 52
|
80
|
-
</tt> </td> <td> <table cellspacing='0' align='right' cellpadding='0'> <tr>
|
81
|
-
<td> <tt class='coverage_total'> 100.0% </tt> </td> <td> <table
|
82
|
-
class='percent_graph' cellspacing='0' width='100' cellpadding='0'> <tr> <td
|
83
|
-
class='covered' width='100' /> <td class='uncovered' width='0' /> </tr>
|
84
|
-
</table> </td> </tr> </table> </td> <td> <table cellspacing='0'
|
85
|
-
align='right' cellpadding='0'> <tr> <td> <tt class='coverage_code'> 100.0%
|
86
|
-
</tt> </td> <td> <table class='percent_graph' cellspacing='0'
|
87
|
-
width='100' cellpadding='0'> <tr> <td class='covered' width='100' /> <td
|
88
|
-
class='uncovered' width='0' /> </tr> </table> </td> </tr> </table> </td>
|
89
|
-
</tr> <tr class='light'> <td> <a
|
90
|
-
href='-home-adriano-software-ruby-Cartesian-lib-cartesian_iterator_rb.html'>
|
91
|
-
/home/adriano/software/ruby/Cartesian/lib/cartesian_iterator.rb </a> </td>
|
92
|
-
<td class='lines_total'> <tt> 108 </tt> </td> <td class='lines_code'> <tt>
|
93
|
-
89 </tt> </td> <td> <table cellspacing='0' align='right' cellpadding='0'>
|
94
|
-
<tr> <td> <tt class='coverage_total'> 100.0% </tt> </td> <td> <table
|
95
|
-
class='percent_graph' cellspacing='0' width='100' cellpadding='0'> <tr> <td
|
96
|
-
class='covered' width='100' /> <td class='uncovered' width='0' /> </tr>
|
97
|
-
</table> </td> </tr> </table> </td> <td> <table cellspacing='0'
|
98
|
-
align='right' cellpadding='0'> <tr> <td> <tt class='coverage_code'> 100.0%
|
99
|
-
</tt> </td> <td> <table class='percent_graph' cellspacing='0'
|
100
|
-
width='100' cellpadding='0'> <tr> <td class='covered' width='100' /> <td
|
101
|
-
class='uncovered' width='0' /> </tr> </table> </td> </tr> </table> </td>
|
102
|
-
</tr> <tr class='dark'> <td> <a
|
103
|
-
href='-home-adriano-software-ruby-Cartesian-lib-extensions_rb.html'>
|
104
|
-
/home/adriano/software/ruby/Cartesian/lib/extensions.rb </a> </td> <td
|
105
|
-
class='lines_total'> <tt> 12 </tt> </td> <td class='lines_code'> <tt> 5
|
106
|
-
</tt> </td> <td> <table cellspacing='0' align='right' cellpadding='0'> <tr>
|
107
|
-
<td> <tt class='coverage_total'> 100.0% </tt> </td> <td> <table
|
108
|
-
class='percent_graph' cellspacing='0' width='100' cellpadding='0'> <tr> <td
|
109
|
-
class='covered' width='100' /> <td class='uncovered' width='0' /> </tr>
|
110
|
-
</table> </td> </tr> </table> </td> <td> <table cellspacing='0'
|
111
|
-
align='right' cellpadding='0'> <tr> <td> <tt class='coverage_code'> 100.0%
|
112
|
-
</tt> </td> <td> <table class='percent_graph' cellspacing='0'
|
113
|
-
width='100' cellpadding='0'> <tr> <td class='covered' width='100' /> <td
|
114
|
-
class='uncovered' width='0' /> </tr> </table> </td> </tr> </table> </td>
|
115
|
-
</tr> <tr class='light'> <td> <a
|
116
|
-
href='-home-adriano-software-ruby-Cartesian-lib-grid_search_rb.html'>
|
117
|
-
/home/adriano/software/ruby/Cartesian/lib/grid_search.rb </a> </td> <td
|
118
|
-
class='lines_total'> <tt> 39 </tt> </td> <td class='lines_code'> <tt> 26
|
119
|
-
</tt> </td> <td> <table cellspacing='0' align='right' cellpadding='0'> <tr>
|
120
|
-
<td> <tt class='coverage_total'> 100.0% </tt> </td> <td> <table
|
121
|
-
class='percent_graph' cellspacing='0' width='100' cellpadding='0'> <tr> <td
|
122
|
-
class='covered' width='100' /> <td class='uncovered' width='0' /> </tr>
|
123
|
-
</table> </td> </tr> </table> </td> <td> <table cellspacing='0'
|
124
|
-
align='right' cellpadding='0'> <tr> <td> <tt class='coverage_code'> 100.0%
|
125
|
-
</tt> </td> <td> <table class='percent_graph' cellspacing='0'
|
126
|
-
width='100' cellpadding='0'> <tr> <td class='covered' width='100' /> <td
|
127
|
-
class='uncovered' width='0' /> </tr> </table> </td> </tr> </table> </td>
|
128
|
-
</tr> </tbody> </table>
|
129
|
-
<hr />
|
130
|
-
<p> Generated using the <a href='http://eigenclass.org/hiki.rb?rcov'> rcov
|
131
|
-
code coverage analysis tool for Ruby </a> version 0.8.1.2. </p>
|
132
|
-
<p>
|
133
|
-
<a href='http://validator.w3.org/check/referer'>
|
134
|
-
<img src='http://www.w3.org/Icons/valid-xhtml11' height='31' alt='Valid XHTML 1.1!' width='88' />
|
135
|
-
</a>
|
136
|
-
<a href='http://jigsaw.w3.org/css-validator/check/referer'>
|
137
|
-
<img src='http://jigsaw.w3.org/css-validator/images/vcss' alt='Valid CSS!' style='border:0;width:88px;height:31px' />
|
138
|
-
</a>
|
139
|
-
</p>
|
140
|
-
</body>
|
141
|
-
</html>
|
data/tests/tc_cartesian.rb
DELETED
@@ -1,83 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
require 'test/unit'
|
3
|
-
|
4
|
-
$:.unshift File.join(File.dirname(__FILE__), "..", "lib")
|
5
|
-
require 'cartesian'
|
6
|
-
require 'extensions'
|
7
|
-
|
8
|
-
class TestCartesian < Test::Unit::TestCase
|
9
|
-
|
10
|
-
def test_arrays
|
11
|
-
foo = [1,2,3]
|
12
|
-
bar = %w{a b c}
|
13
|
-
expected = [[1, "a"], [1, "b"], [1, "c"], [2, "a"], [2, "b"],
|
14
|
-
[2, "c"], [3, "a"], [3, "b"], [3, "c"]]
|
15
|
-
assert(foo.x(bar).to_a == expected)
|
16
|
-
assert(Cartesian.product(foo,bar) == expected)
|
17
|
-
end
|
18
|
-
|
19
|
-
def test_ranges
|
20
|
-
foo = 1..3
|
21
|
-
bar = 4..6
|
22
|
-
expected = [[1, 4], [1, 5], [1, 6], [2, 4], [2, 5],
|
23
|
-
[2, 6], [3, 4], [3, 5], [3, 6]]
|
24
|
-
assert(foo.x(bar).to_a == expected)
|
25
|
-
assert(Cartesian.product(foo,bar) == expected)
|
26
|
-
end
|
27
|
-
|
28
|
-
def test_product
|
29
|
-
c = [1].x([2])
|
30
|
-
c.x([3])
|
31
|
-
assert_equal [1].x([2]), c
|
32
|
-
end
|
33
|
-
|
34
|
-
def test_left_product
|
35
|
-
c = [1].right_product([2])
|
36
|
-
d = [1].left_product([2])
|
37
|
-
e = [2].left_product([1])
|
38
|
-
assert_not_equal c, d
|
39
|
-
assert_equal c, e
|
40
|
-
c = [1].x([2]).right_product([3])
|
41
|
-
d = [1].x([2]).left_product([3])
|
42
|
-
e = [2].x([3]).left_product([1])
|
43
|
-
assert_not_equal c, d
|
44
|
-
assert_equal c, e
|
45
|
-
end
|
46
|
-
|
47
|
-
def test_mixed
|
48
|
-
foo = 1..3
|
49
|
-
bar = %w{a b c}
|
50
|
-
expected = [[1, "a"], [1, "b"], [1, "c"], [2, "a"], [2, "b"],
|
51
|
-
[2, "c"], [3, "a"], [3, "b"], [3, "c"]]
|
52
|
-
assert(foo.x(bar).to_a == expected)
|
53
|
-
assert(Cartesian.product(foo,bar) == expected) ##################
|
54
|
-
end
|
55
|
-
|
56
|
-
def test_power
|
57
|
-
ary = [1,2,3]
|
58
|
-
assert_raise(ArgumentError) { ary**(-1) }
|
59
|
-
assert_equal [], ary**0
|
60
|
-
assert_equal ary, ary**1
|
61
|
-
expected = [[0, 0, 0], [0, 0, 1], [0, 1, 0],\
|
62
|
-
[0, 1, 1], [1, 0, 0], [1, 0, 1],\
|
63
|
-
[1, 1, 0], [1, 1, 1]]
|
64
|
-
assert_equal expected, ([0,1]**3).to_a
|
65
|
-
end
|
66
|
-
|
67
|
-
def test_argmin
|
68
|
-
assert_equal [0,0], ((-3..3)**2).argmin {|x,y| x**2+y**2 }
|
69
|
-
end
|
70
|
-
|
71
|
-
def test_argmax
|
72
|
-
values = []
|
73
|
-
-3.step(3, 0.25) {|val| values << val }
|
74
|
-
x, y = (values**2).argmax {|x,y| x**2+y**2 }
|
75
|
-
assert x.among?([-3,3])
|
76
|
-
assert y.among?([-3,3])
|
77
|
-
end
|
78
|
-
|
79
|
-
def test_joined_cartesian
|
80
|
-
assert_equal ["1A", "1B", "2A", "2B"], [1,2].joined_cartesian(%w<A B>)
|
81
|
-
end
|
82
|
-
|
83
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
require 'test/unit'
|
3
|
-
|
4
|
-
$:.unshift File.join(File.dirname(__FILE__), "..", "lib")
|
5
|
-
require 'cartesian'
|
6
|
-
require 'extensions'
|
7
|
-
|
8
|
-
class TestCartesianIterator < Test::Unit::TestCase
|
9
|
-
|
10
|
-
def test_equal
|
11
|
-
assert_equal [1].x([2]), [1].x([2])
|
12
|
-
assert_not_equal [1].x([2]), [1].x([3])
|
13
|
-
end
|
14
|
-
|
15
|
-
|
16
|
-
def test_dup
|
17
|
-
c = [1,2].x([3,4])
|
18
|
-
d = c.dup
|
19
|
-
e = d.x([5,6])
|
20
|
-
assert_not_equal(e, c)
|
21
|
-
assert_equal(c, d)
|
22
|
-
end
|
23
|
-
|
24
|
-
def test_iterator_next_and_restart
|
25
|
-
foo = [1,2]
|
26
|
-
assert_equal 1, foo.next
|
27
|
-
assert_equal 2, foo.next
|
28
|
-
assert_equal nil, foo.next
|
29
|
-
foo.start
|
30
|
-
assert_equal 1, foo.next
|
31
|
-
|
32
|
-
end
|
33
|
-
|
34
|
-
end
|
data/tests/tc_extensions.rb
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
require 'test/unit'
|
2
|
-
|
3
|
-
$:.unshift File.join(File.dirname(__FILE__), "..", "lib")
|
4
|
-
require 'extensions'
|
5
|
-
|
6
|
-
class TestExtensions < Test::Unit::TestCase
|
7
|
-
def test_among?
|
8
|
-
assert 1.among?([1,2,3])
|
9
|
-
assert ! 7.among?([1,2,3])
|
10
|
-
assert (3.0).among?([1,2,3])
|
11
|
-
end
|
12
|
-
end
|
data/tests/tc_grid_search.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
require 'test/unit'
|
2
|
-
|
3
|
-
$:.unshift File.join(File.dirname(__FILE__), "..", "lib")
|
4
|
-
require 'grid_search'
|
5
|
-
|
6
|
-
class TestCartesian < Test::Unit::TestCase
|
7
|
-
def test_argmin
|
8
|
-
assert_equal 0, *[-1,0,1].argmin {|x| x**2 }
|
9
|
-
end
|
10
|
-
|
11
|
-
def test_argmax
|
12
|
-
assert_equal 0, *[-2,-1,0].argmax {|x| x**3 }
|
13
|
-
end
|
14
|
-
|
15
|
-
end
|