cellular_map 0.3.2 → 0.4.0

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.
@@ -8,6 +8,7 @@ module CellularMap
8
8
  #
9
9
  # (see README for examples)
10
10
  class Map
11
+ include Enumerable
11
12
 
12
13
  # Store of actually filled cells.
13
14
  attr_reader :store
@@ -40,16 +41,6 @@ module CellularMap
40
41
  self
41
42
  end
42
43
 
43
- # Collecting all filled cells
44
- def collect # :yields: cell
45
- @store.keys.collect { |k| yield Cell.new(*(k + [self])) }
46
- end
47
-
48
- # Converts to map to an array of filled cells
49
- def to_a
50
- @store.keys.collect { |k| Cell.new(*(k + [self])) }
51
- end
52
-
53
44
  # Empties the map filled cells.
54
45
  def empty!
55
46
  @store = {}
@@ -6,6 +6,7 @@ module CellularMap
6
6
  #
7
7
  # (see README for examples)
8
8
  class Zone
9
+ include Enumerable
9
10
 
10
11
  # Zone's boundaries
11
12
  attr_reader :x, :y
@@ -54,13 +55,6 @@ module CellularMap
54
55
  self
55
56
  end
56
57
 
57
- # Collecting cells inside the zone.
58
- #
59
- # see each
60
- def collect # :yields: cell
61
- @y.inject([]) { |r, y| r + @x.collect { |x| yield Cell.new(x, y, @map) } }
62
- end
63
-
64
58
  # Making an array of arrays of all cells inside the zone.
65
59
  #
66
60
  # see each
data/test/test_map.rb CHANGED
@@ -50,7 +50,13 @@ class TestMap < Test::Unit::TestCase
50
50
 
51
51
  should("collect all filled cells") {
52
52
  expected = @sample.collect { |c, v| c + [v] }.sort!
53
- inside = @map.collect { |cell| [cell.x, cell.y, cell.content] }.sort!
53
+ inside = @map.collect { |cell| [cell.x, cell.y, cell.content] }.sort
54
+ assert_equal expected, inside
55
+ }
56
+
57
+ should("inject its filled cells in a result") {
58
+ expected = @sample.collect { |c, v| c + [v] }.sort!
59
+ inside = @map.inject([]) { |r, c| r + [[c.x, c.y, c.content]] }.sort
54
60
  assert_equal expected, inside
55
61
  }
56
62
 
data/test/test_zone.rb CHANGED
@@ -39,6 +39,7 @@ class TestZone < Test::Unit::TestCase
39
39
  [53, 11] => /dolor sid amet/,
40
40
  [7, -22] => 0..11
41
41
  }).each { |k, v| @map[*k] = v }
42
+ @sort_order = lambda { |a, b| (a[0] <=> b[0]) * 2 + (a[1] <=> b[1]) }
42
43
  }
43
44
 
44
45
  context("a certain zone") {
@@ -65,8 +66,18 @@ class TestZone < Test::Unit::TestCase
65
66
  }
66
67
 
67
68
  should("collect all its cells in a basic one-dimension array") {
68
- inside = @zone.collect { |cell| [cell.x, cell.y, cell.content] }.sort!
69
- outside = @positions.collect { |x, y| [x, y, @sample[[x, y]]] }.sort!
69
+ inside, outside = [
70
+ @zone.collect { |cell| [cell.x, cell.y, cell.content] },
71
+ @positions.collect { |x, y| [x, y, @sample[[x, y]]] }
72
+ ].collect { |a| a.sort &@sort_order }
73
+ assert_equal outside, inside
74
+ }
75
+
76
+ should("inject its cells in a result") {
77
+ inside, outside = [
78
+ @zone.inject([]) { |r, c| r + [[c.x, c.y, c.content]] },
79
+ @positions.collect { |x, y| [x, y, @sample[[x, y]]] }
80
+ ].collect { |a| a.sort &@sort_order }
70
81
  assert_equal outside, inside
71
82
  }
72
83
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cellular_map
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michel Belleville
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-01-29 00:00:00 +01:00
12
+ date: 2010-02-01 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency