Updated mcollective.init according to OSCI-658
[packages/precise/mcollective.git] / spec / unit / array_spec.rb
diff --git a/spec/unit/array_spec.rb b/spec/unit/array_spec.rb
new file mode 100755 (executable)
index 0000000..d189922
--- /dev/null
@@ -0,0 +1,30 @@
+#!/usr/bin/env rspec
+
+require 'spec_helper'
+
+class Array
+  describe "#in_groups_of" do
+    it "should correctly group array members" do
+      [1,2,3,4,5,6,7,8,9,10].in_groups_of(5).should == [[1,2,3,4,5], [6,7,8,9,10]]
+    end
+
+    it "should padd missing data with correctly" do
+      arr = [1,2,3,4,5,6,7,8,9,10]
+
+      arr.in_groups_of(3).should == [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, nil, nil]]
+      arr.in_groups_of(3, 0).should == [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 0, 0]]
+      arr.in_groups_of(11).should == [[1,2,3,4,5, 6,7,8,9,10, nil]]
+      arr.in_groups_of(11, 0).should == [[1,2,3,4,5, 6,7,8,9,10, 0]]
+    end
+
+    it "should indicate when the last abtched was reached" do
+      arr = [1,2,3,4,5,6,7,8,9,10]
+
+      ctr = 0
+
+      [1,2,3,4,5,6,7,8,9,10].in_groups_of(3) {|a, last_batch| ctr += 1 unless last_batch}
+
+      ctr.should == 3
+    end
+  end
+end