summaryrefslogtreecommitdiff
path: root/spec/unit/puppet/parser/functions/range_spec.rb
diff options
context:
space:
mode:
authorSteve Huff <shuff@vecna.org>2012-04-03 11:46:20 -0400
committerSteve Huff <shuff@vecna.org>2012-04-03 11:46:20 -0400
commit4732676548f91a43bc67ea0b70abdd34cae093c1 (patch)
treed818422bdcabd33f0b0a7aaf1a0ed2f0757994d9 /spec/unit/puppet/parser/functions/range_spec.rb
parent1434f3cea6f6e2a1b939d91cb5ff66338cc87d32 (diff)
add a "step" argument to range()
This patch adds an optional "step" argument to the stdlib range() function. There is no change to the default behavior of the function; however, passing a numeric "step" argument invokes the Ruby Range#step method, e.g. range("0", "9", "2") returns [0,2,4,6,8]
Diffstat (limited to 'spec/unit/puppet/parser/functions/range_spec.rb')
-rw-r--r--spec/unit/puppet/parser/functions/range_spec.rb30
1 files changed, 30 insertions, 0 deletions
diff --git a/spec/unit/puppet/parser/functions/range_spec.rb b/spec/unit/puppet/parser/functions/range_spec.rb
index 8c2446a..24cc391 100644
--- a/spec/unit/puppet/parser/functions/range_spec.rb
+++ b/spec/unit/puppet/parser/functions/range_spec.rb
@@ -23,9 +23,39 @@ describe "the range function" do
result.should(eq(['a','b','c','d']))
end
+ it "should return a letter range given a step of 1" do
+ result = @scope.function_range(["a","d","1"])
+ result.should(eq(['a','b','c','d']))
+ end
+
+ it "should return a stepped letter range" do
+ result = @scope.function_range(["a","d","2"])
+ result.should(eq(['a','c']))
+ end
+
+ it "should return a stepped letter range given a negative step" do
+ result = @scope.function_range(["1","4","-2"])
+ result.should(eq(['a','c']))
+ end
+
it "should return a number range" do
result = @scope.function_range(["1","4"])
result.should(eq([1,2,3,4]))
end
+ it "should return a number range given a step of 1" do
+ result = @scope.function_range(["1","4","1"])
+ result.should(eq([1,2,3,4]))
+ end
+
+ it "should return a stepped number range" do
+ result = @scope.function_range(["1","4","2"])
+ result.should(eq([1,3]))
+ end
+
+ it "should return a stepped number range given a negative step" do
+ result = @scope.function_range(["1","4","-2"])
+ result.should(eq([1,3]))
+ end
+
end