gene 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Manifest +46 -0
- data/Rakefile +12 -9
- data/TODO +7 -0
- data/gene.gemspec +34 -0
- data/initializers/functional_extensions.rb +44 -0
- data/initializers/module_extensions.rb +14 -0
- data/initializers/object_extensions.rb +25 -0
- data/initializers/range_extensions.rb +9 -0
- data/initializers/runner.rb +15 -0
- data/initializers/symbol_extensions.rb +11 -0
- data/initializers/unbound_method_extensions.rb +3 -0
- data/lib/aligner.rb +34 -0
- data/lib/calculator.rb +42 -0
- data/lib/cell.rb +41 -0
- data/lib/color.rb +9 -0
- data/lib/dsl.rb +16 -0
- data/lib/gene.rb +67 -3
- data/lib/generator.rb +83 -0
- data/lib/geometry.rb +64 -0
- data/lib/hungarian.rb +205 -0
- data/lib/imagine.rb +22 -0
- data/lib/petri.rb +85 -0
- data/lib/point.rb +1 -0
- data/lib/trait.rb +60 -0
- data/tasks/test.rake +23 -0
- data/test/assets/Nova.jpg +0 -0
- data/test/assets/Rex.jpg +0 -0
- data/test/assets/Squares.jpg +0 -0
- data/test/test_helper.rb +6 -0
- data/test/unit/aligner_test.rb +91 -0
- data/test/unit/calculator_test.rb +100 -0
- data/test/unit/cell_test.rb +64 -0
- data/test/unit/color_test.rb +23 -0
- data/test/unit/dsl_test.rb +45 -0
- data/test/unit/functionals_extensions_test.rb +51 -0
- data/test/unit/gene_test.rb +76 -0
- data/test/unit/generator_test.rb +76 -0
- data/test/unit/geometry_test.rb +57 -0
- data/test/unit/hungarian_test.rb +196 -0
- data/test/unit/imagine_test.rb +54 -0
- data/test/unit/module_extensions_test.rb +40 -0
- data/test/unit/object_extensions_test.rb +34 -0
- data/test/unit/petri_test.rb +87 -0
- data/test/unit/range_extensions_test.rb +29 -0
- data/test/unit/symbol_extensions_test.rb +18 -0
- data/test/unit/trait_test.rb +97 -0
- data/test/unit/unbound_method_extensions_test.rb +11 -0
- metadata +118 -30
- data/History.txt +0 -6
- data/Manifest.txt +0 -7
- data/README.txt +0 -48
- data/bin/gene +0 -3
- data/test/test_gene.rb +0 -8
@@ -0,0 +1,40 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "..", "test_helper.rb")
|
2
|
+
|
3
|
+
class ModuleExtensionsTest < Test::Unit::TestCase
|
4
|
+
def test_true
|
5
|
+
assert true
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_module__array_get
|
9
|
+
assert_equal "#<UnboundMethod: String#reverse>", String[:reverse].inspect
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_module__array_set
|
13
|
+
String[:backwards] = lambda { reverse }
|
14
|
+
assert_equal "syawedis", "sideways".backwards
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_alias_method_chain
|
18
|
+
def method; :old_method; end
|
19
|
+
def method_with_chain; :chained_method; end
|
20
|
+
|
21
|
+
class << self
|
22
|
+
alias_method_chain :method, :chain
|
23
|
+
end
|
24
|
+
|
25
|
+
assert_equal :chained_method, method
|
26
|
+
assert_equal :old_method, method_without_chain
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_alias_method_chain__bang!
|
30
|
+
def method!; :old_method; end
|
31
|
+
def method_with_chain!; :chained_method; end
|
32
|
+
|
33
|
+
class << self
|
34
|
+
alias_method_chain :method!, :chain
|
35
|
+
end
|
36
|
+
|
37
|
+
assert_equal :chained_method, method!
|
38
|
+
assert_equal :old_method, method_without_chain!
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "..", "test_helper.rb")
|
2
|
+
|
3
|
+
class SymbolExtensionsTest < Test::Unit::TestCase
|
4
|
+
def test_true
|
5
|
+
assert true
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_returning
|
9
|
+
return_value = returning(1) { nil }
|
10
|
+
assert_equal 1, return_value
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_object__send_if
|
14
|
+
assert_equal 3, [1, 2, 3].send_if(true, :length)
|
15
|
+
assert_equal [1, 2, 3], [1, 2, 3].send_if(false, :length)
|
16
|
+
|
17
|
+
assert_equal 1, [1, 2, 3].send_if(true, :[], 0)
|
18
|
+
assert_equal [1, 2, 3], [1, 2, 3].send_if(false, :[], 0)
|
19
|
+
|
20
|
+
assert_equal [2, 3, 4], [1, 2, 3].send_if(true, :map, proc { |element| element.succ })
|
21
|
+
assert_equal [1, 2, 3], [1, 2, 3].send_if(false, :map, proc { |element| element.succ })
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_assert_at_least__raises_error
|
25
|
+
assert_raise ArgumentError do
|
26
|
+
assert_at_least 3, 2
|
27
|
+
end
|
28
|
+
|
29
|
+
assert_nothing_raised do
|
30
|
+
assert_at_least 3, 3
|
31
|
+
assert_at_least 3, 4
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "..", "test_helper.rb")
|
2
|
+
|
3
|
+
class PetriTest < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
# Don't make a petri here.
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_true
|
9
|
+
assert true
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_prepare_image
|
13
|
+
petri = setup_petri
|
14
|
+
assert_equal Magick::Image, petri.target_image.class
|
15
|
+
assert_equal Point.new(600, 800), Petri.image_dimensions
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_initialize__with_block
|
19
|
+
Petri.new(test_image_path) do
|
20
|
+
set_num_cells 1
|
21
|
+
set_num_genes 2
|
22
|
+
set_num_points 3
|
23
|
+
end
|
24
|
+
|
25
|
+
assert_equal 3, Petri.num_cells
|
26
|
+
assert_equal 2, Petri.num_genes
|
27
|
+
assert_equal 3, Petri.num_points
|
28
|
+
|
29
|
+
assert_raise NoMethodError do
|
30
|
+
Petri.rawr!
|
31
|
+
end
|
32
|
+
|
33
|
+
assert_raise NoMethodError do
|
34
|
+
Petri.new(test_image_path) { set_num_cells 1 }.rawr!
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_initialize
|
39
|
+
petri = Petri.new(test_image_path)
|
40
|
+
|
41
|
+
assert_equal 30, Petri.num_cells
|
42
|
+
assert_equal 50, Petri.num_genes
|
43
|
+
assert_equal 3, Petri.num_points
|
44
|
+
|
45
|
+
assert_equal 30, petri.dish.size
|
46
|
+
assert petri.dish.all? { |cell| cell.is_a?(Cell) }
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_initialize__num_cells_divisible_by_three
|
50
|
+
[1, 2, 3].each do |i|
|
51
|
+
assert_equal 3, Petri.new(test_image_path) { set_num_cells i }.num_cells
|
52
|
+
end
|
53
|
+
|
54
|
+
assert_equal 6, Petri.new(test_image_path) { set_num_cells 4 }.num_cells
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_sort_by_fitness!
|
58
|
+
cells = [stub(:fitness => 0.5), stub(:fitness => 0.75), stub(:fitness => 0.25)]
|
59
|
+
|
60
|
+
petri = setup_petri
|
61
|
+
petri.instance_variable_set(:@dish, cells)
|
62
|
+
petri.send(:sort_by_fitness!)
|
63
|
+
|
64
|
+
assert_equal [0.75, 0.5, 0.25], petri.dish.map(&:fitness)
|
65
|
+
end
|
66
|
+
|
67
|
+
def test_round
|
68
|
+
petri = setup_petri
|
69
|
+
assert_equal 0, petri.round
|
70
|
+
|
71
|
+
petri.send(:next_round)
|
72
|
+
assert_equal 1, petri.round
|
73
|
+
|
74
|
+
petri.send(:next_round)
|
75
|
+
assert_equal 2, petri.round
|
76
|
+
end
|
77
|
+
|
78
|
+
private
|
79
|
+
|
80
|
+
def setup_petri
|
81
|
+
Petri.new(test_image_path) { set_num_cells 1 }
|
82
|
+
end
|
83
|
+
|
84
|
+
def test_image_path
|
85
|
+
File.join(File.dirname(__FILE__), "..", "assets", "Nova.jpg")
|
86
|
+
end
|
87
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "..", "test_helper.rb")
|
2
|
+
|
3
|
+
class RangeExtensionsTest < Test::Unit::TestCase
|
4
|
+
def test_true
|
5
|
+
assert true
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_add_bounding_methods_to__integer_range__max_and_min
|
9
|
+
inclusive_range = 0..10
|
10
|
+
exclusive_range = 0...10
|
11
|
+
|
12
|
+
assert_equal 0, inclusive_range.min
|
13
|
+
assert_equal 10, inclusive_range.max
|
14
|
+
|
15
|
+
assert_equal 0, exclusive_range.min
|
16
|
+
assert_equal 9, exclusive_range.max
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_add_bounding_methods_to__float_range__max_and_min
|
20
|
+
inclusive_range = 0.0..1.0
|
21
|
+
exclusive_range = 0.0...1.0
|
22
|
+
|
23
|
+
assert_equal 0.0, inclusive_range.min
|
24
|
+
assert_equal 1.0, inclusive_range.max
|
25
|
+
|
26
|
+
assert_equal 0.0, exclusive_range.min
|
27
|
+
assert_equal 1.0, exclusive_range.max
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "..", "test_helper.rb")
|
2
|
+
|
3
|
+
class SymbolExtensionsTest < Test::Unit::TestCase
|
4
|
+
def test_true
|
5
|
+
assert true
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_symbol__array_get
|
9
|
+
dashes = :*["-"]
|
10
|
+
assert_equal "----------", dashes[10]
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_symbol__array_set
|
14
|
+
string = "Hello world."
|
15
|
+
:singleton[string] = lambda { "You have found my singleton method." }
|
16
|
+
assert_equal "You have found my singleton method.", string.singleton
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,97 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "..", "test_helper.rb")
|
2
|
+
|
3
|
+
class TraitTest < Test::Unit::TestCase
|
4
|
+
def test_true
|
5
|
+
assert true
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_initialize
|
9
|
+
x = Trait.new(0...100) { set_value 10 }
|
10
|
+
y = Trait.new(0...100) { set_value 20 }
|
11
|
+
|
12
|
+
assert_equal 10, x.value
|
13
|
+
assert_equal 20, y.value
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_standard_deviation__default
|
17
|
+
assert_equal 1.0, Trait.new(0..10).standard_deviation
|
18
|
+
assert_equal 0.9, Trait.new(0...10).standard_deviation
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_standard_deviation__provided
|
22
|
+
assert_equal 5.0, Trait.new(0..10) { deviation 0.5 }.standard_deviation
|
23
|
+
assert_equal 4.5, Trait.new(0...10) { deviation 0.5 }.standard_deviation
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_setup_standard_deviation_with__provided
|
27
|
+
trait = Trait.new(0..10) { deviation 1 }
|
28
|
+
assert_equal trait.range.max, trait.standard_deviation
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_setup_standard_deviation_with__default
|
32
|
+
trait = Trait.new(0..10)
|
33
|
+
assert_equal Trait::STANDARD_DEVIATION[:default] * trait.range.max, trait.standard_deviation
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_setup_value_with
|
37
|
+
trait = Trait.new(0..10) { set_value :value }
|
38
|
+
|
39
|
+
assert_equal :value, trait.value
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_setup_value_with__no_value
|
43
|
+
Trait.expects(:generate_value).returns(:value)
|
44
|
+
|
45
|
+
trait = Trait.new(0..10)
|
46
|
+
|
47
|
+
assert_equal :value, trait.value
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_setup_value_with__raises_error_if_out_of_range
|
51
|
+
assert_raise ArgumentError do
|
52
|
+
Trait.new(0..10, :default => 100)
|
53
|
+
end
|
54
|
+
|
55
|
+
assert_raise ArgumentError do
|
56
|
+
Trait.new(0..10, :default => -100)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def test_mutated_value__inclusive
|
61
|
+
trait = Trait.new(0..100)
|
62
|
+
Trait.stubs(:get_normal_random_variable).returns(1)
|
63
|
+
|
64
|
+
trait.instance_variable_set(:@standard_deviation, 1000)
|
65
|
+
assert_equal 100, trait.mutated_value
|
66
|
+
|
67
|
+
trait.instance_variable_set(:@standard_deviation, -1000)
|
68
|
+
assert_equal 0, trait.mutated_value
|
69
|
+
|
70
|
+
trait.instance_variable_set(:@standard_deviation, 0)
|
71
|
+
assert_equal trait.value, trait.mutated_value
|
72
|
+
end
|
73
|
+
|
74
|
+
def test_mutated_value__exclusive
|
75
|
+
trait = Trait.new(0...100)
|
76
|
+
Trait.stubs(:get_normal_random_variable).returns(1)
|
77
|
+
|
78
|
+
trait.instance_variable_set(:@standard_deviation, 1000)
|
79
|
+
assert_equal 99, trait.mutated_value
|
80
|
+
end
|
81
|
+
|
82
|
+
def test_percentify
|
83
|
+
trait = Trait.new(0..100) { set_value 12 }
|
84
|
+
assert_equal "12.0%", trait.percentify
|
85
|
+
|
86
|
+
trait = Trait.new(0.0..1.0) { set_value 0.5 }
|
87
|
+
assert_equal "50.0%", trait.percentify
|
88
|
+
end
|
89
|
+
|
90
|
+
def test_new_standard_deviation_from
|
91
|
+
trait = Trait.new(0...100)
|
92
|
+
|
93
|
+
# The float.to_s is to ensure comparison works.
|
94
|
+
assert_equal Trait::STANDARD_DEVIATION[:range].max.to_s, trait.send(:new_standard_deviation_from, 0).to_s
|
95
|
+
assert_equal Trait::STANDARD_DEVIATION[:range].min.to_s, trait.send(:new_standard_deviation_from, 1).to_s
|
96
|
+
end
|
97
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "..", "test_helper.rb")
|
2
|
+
|
3
|
+
class UnboundMethodExtensionsTest < Test::Unit::TestCase
|
4
|
+
def test_true
|
5
|
+
assert true
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_unbound_method__array_get
|
9
|
+
assert_equal "syawedis", String[:reverse]["sideways"][]
|
10
|
+
end
|
11
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gene
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 27
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 0
|
10
|
+
version: 0.1.0
|
5
11
|
platform: ruby
|
6
12
|
authors:
|
7
13
|
- Evan Senter
|
@@ -9,66 +15,148 @@ autorequire:
|
|
9
15
|
bindir: bin
|
10
16
|
cert_chain: []
|
11
17
|
|
12
|
-
date:
|
18
|
+
date: 2010-07-20 00:00:00 -04:00
|
13
19
|
default_executable:
|
14
20
|
dependencies:
|
15
21
|
- !ruby/object:Gem::Dependency
|
16
|
-
name:
|
17
|
-
|
18
|
-
|
19
|
-
|
22
|
+
name: rmagick
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
20
26
|
requirements:
|
21
27
|
- - ">="
|
22
28
|
- !ruby/object:Gem::Version
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
29
|
+
hash: 3
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
version: "0"
|
33
|
+
type: :runtime
|
34
|
+
version_requirements: *id001
|
35
|
+
description: Sample genetic program in Ruby
|
36
|
+
email: evansenter@gmail.com
|
37
|
+
executables: []
|
38
|
+
|
30
39
|
extensions: []
|
31
40
|
|
32
41
|
extra_rdoc_files:
|
33
|
-
-
|
34
|
-
-
|
35
|
-
-
|
42
|
+
- TODO
|
43
|
+
- lib/aligner.rb
|
44
|
+
- lib/calculator.rb
|
45
|
+
- lib/cell.rb
|
46
|
+
- lib/color.rb
|
47
|
+
- lib/dsl.rb
|
48
|
+
- lib/gene.rb
|
49
|
+
- lib/generator.rb
|
50
|
+
- lib/geometry.rb
|
51
|
+
- lib/hungarian.rb
|
52
|
+
- lib/imagine.rb
|
53
|
+
- lib/petri.rb
|
54
|
+
- lib/point.rb
|
55
|
+
- lib/trait.rb
|
56
|
+
- tasks/test.rake
|
36
57
|
files:
|
37
|
-
-
|
38
|
-
- Manifest.txt
|
39
|
-
- README.txt
|
58
|
+
- Manifest
|
40
59
|
- Rakefile
|
41
|
-
-
|
60
|
+
- TODO
|
61
|
+
- initializers/functional_extensions.rb
|
62
|
+
- initializers/module_extensions.rb
|
63
|
+
- initializers/object_extensions.rb
|
64
|
+
- initializers/range_extensions.rb
|
65
|
+
- initializers/runner.rb
|
66
|
+
- initializers/symbol_extensions.rb
|
67
|
+
- initializers/unbound_method_extensions.rb
|
68
|
+
- lib/aligner.rb
|
69
|
+
- lib/calculator.rb
|
70
|
+
- lib/cell.rb
|
71
|
+
- lib/color.rb
|
72
|
+
- lib/dsl.rb
|
42
73
|
- lib/gene.rb
|
43
|
-
-
|
74
|
+
- lib/generator.rb
|
75
|
+
- lib/geometry.rb
|
76
|
+
- lib/hungarian.rb
|
77
|
+
- lib/imagine.rb
|
78
|
+
- lib/petri.rb
|
79
|
+
- lib/point.rb
|
80
|
+
- lib/trait.rb
|
81
|
+
- tasks/test.rake
|
82
|
+
- test/assets/Nova.jpg
|
83
|
+
- test/assets/Rex.jpg
|
84
|
+
- test/assets/Squares.jpg
|
85
|
+
- test/test_helper.rb
|
86
|
+
- test/unit/aligner_test.rb
|
87
|
+
- test/unit/calculator_test.rb
|
88
|
+
- test/unit/cell_test.rb
|
89
|
+
- test/unit/color_test.rb
|
90
|
+
- test/unit/dsl_test.rb
|
91
|
+
- test/unit/functionals_extensions_test.rb
|
92
|
+
- test/unit/gene_test.rb
|
93
|
+
- test/unit/generator_test.rb
|
94
|
+
- test/unit/geometry_test.rb
|
95
|
+
- test/unit/hungarian_test.rb
|
96
|
+
- test/unit/imagine_test.rb
|
97
|
+
- test/unit/module_extensions_test.rb
|
98
|
+
- test/unit/object_extensions_test.rb
|
99
|
+
- test/unit/petri_test.rb
|
100
|
+
- test/unit/range_extensions_test.rb
|
101
|
+
- test/unit/symbol_extensions_test.rb
|
102
|
+
- test/unit/trait_test.rb
|
103
|
+
- test/unit/unbound_method_extensions_test.rb
|
104
|
+
- gene.gemspec
|
44
105
|
has_rdoc: true
|
45
|
-
homepage: http://github.com/evansenter/gene
|
106
|
+
homepage: http://github.com/evansenter/gene
|
46
107
|
licenses: []
|
47
108
|
|
48
109
|
post_install_message:
|
49
110
|
rdoc_options:
|
50
|
-
- --
|
51
|
-
-
|
111
|
+
- --line-numbers
|
112
|
+
- --inline-source
|
113
|
+
- --title
|
114
|
+
- Gene
|
52
115
|
require_paths:
|
53
116
|
- lib
|
54
117
|
required_ruby_version: !ruby/object:Gem::Requirement
|
118
|
+
none: false
|
55
119
|
requirements:
|
56
120
|
- - ">="
|
57
121
|
- !ruby/object:Gem::Version
|
122
|
+
hash: 3
|
123
|
+
segments:
|
124
|
+
- 0
|
58
125
|
version: "0"
|
59
|
-
version:
|
60
126
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
127
|
+
none: false
|
61
128
|
requirements:
|
62
129
|
- - ">="
|
63
130
|
- !ruby/object:Gem::Version
|
64
|
-
|
65
|
-
|
131
|
+
hash: 11
|
132
|
+
segments:
|
133
|
+
- 1
|
134
|
+
- 2
|
135
|
+
version: "1.2"
|
66
136
|
requirements: []
|
67
137
|
|
68
138
|
rubyforge_project: gene
|
69
|
-
rubygems_version: 1.3.
|
139
|
+
rubygems_version: 1.3.7
|
70
140
|
signing_key:
|
71
141
|
specification_version: 3
|
72
|
-
summary:
|
142
|
+
summary: Sample genetic program in Ruby
|
73
143
|
test_files:
|
74
|
-
- test/
|
144
|
+
- test/test_helper.rb
|
145
|
+
- test/unit/aligner_test.rb
|
146
|
+
- test/unit/calculator_test.rb
|
147
|
+
- test/unit/cell_test.rb
|
148
|
+
- test/unit/color_test.rb
|
149
|
+
- test/unit/dsl_test.rb
|
150
|
+
- test/unit/functionals_extensions_test.rb
|
151
|
+
- test/unit/gene_test.rb
|
152
|
+
- test/unit/generator_test.rb
|
153
|
+
- test/unit/geometry_test.rb
|
154
|
+
- test/unit/hungarian_test.rb
|
155
|
+
- test/unit/imagine_test.rb
|
156
|
+
- test/unit/module_extensions_test.rb
|
157
|
+
- test/unit/object_extensions_test.rb
|
158
|
+
- test/unit/petri_test.rb
|
159
|
+
- test/unit/range_extensions_test.rb
|
160
|
+
- test/unit/symbol_extensions_test.rb
|
161
|
+
- test/unit/trait_test.rb
|
162
|
+
- test/unit/unbound_method_extensions_test.rb
|