range_builder 1.0.0 → 1.0.1

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.
@@ -1,3 +1,3 @@
1
1
  module RangeBuilder
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
data/lib/range_builder.rb CHANGED
@@ -22,8 +22,8 @@ class RangeBuilder
22
22
  # arg: sorted enum. elements must implement succ
23
23
  def self.build_from_sorted enum
24
24
  ranges = []
25
- first = enum.first
26
- last = nil
25
+ return ranges if enum.empty?
26
+ first = last = enum.first
27
27
  enum.each_cons(2) do |a,b|
28
28
  last = b
29
29
  if a.succ != b
@@ -8,7 +8,6 @@ class RangeBuilderTest < MiniTest::Unit::TestCase
8
8
 
9
9
  def test_build_range
10
10
  m = [3, 2, 6, 2].map{|i|M.new(i)}
11
- puts RangeBuilder.build_range(m){|a|a.foo}.inspect
12
11
  first, last = RangeBuilder.build_range(m){|a|a.foo}
13
12
  assert_equal 2, first.foo
14
13
  assert_equal 6, last.foo
@@ -23,4 +22,17 @@ class RangeBuilderTest < MiniTest::Unit::TestCase
23
22
  assert_equal (9..9), ranges[2]
24
23
  assert_equal (11..13), ranges[3]
25
24
  end
25
+
26
+ def test_trivial_build_from_sorted
27
+ m = [ 2 ]
28
+ ranges = RangeBuilder.build_from_sorted(m)
29
+ assert_equal 1, ranges.size
30
+ assert_equal (2..2), ranges[0]
31
+ end
32
+
33
+ def test_empty_build_from_sorted
34
+ m = []
35
+ ranges = RangeBuilder.build_from_sorted(m)
36
+ assert_equal 0, ranges.size
37
+ end
26
38
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: range_builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-04 00:00:00.000000000 Z
12
+ date: 2012-06-06 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Build ranges from an enumeration
15
15
  email: