summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Putnam <putnam.eric@gmail.com>2017-07-18 15:16:34 -0700
committerGitHub <noreply@github.com>2017-07-18 15:16:34 -0700
commit27003b7b2de5021c512b094050de9063f0f3a134 (patch)
tree0da0fc6f1116f665569aa63724e72f5c65b2d725
parent596878a7bc1fd4a64da89c5c760accb3e8178ec1 (diff)
parent39ea2c0bc49d812f41dcbbed6635e25607f80970 (diff)
Merge pull request #748 from npwalker/add_round_function
Add a round function to complement ceiling and floor
-rw-r--r--README.md4
-rw-r--r--functions/round.pp9
-rwxr-xr-xspec/functions/round_spec.rb11
3 files changed, 24 insertions, 0 deletions
diff --git a/README.md b/README.md
index 61318ea..b92c226 100644
--- a/README.md
+++ b/README.md
@@ -1509,6 +1509,10 @@ For example, `reject(['aaa','bbb','ccc','aaaddd'], 'aaa')` returns ['bbb','ccc']
Reverses the order of a string or array.
+#### `stdlib::round`
+
+ Rounds a number to the nearest integer
+
*Type*: rvalue.
#### `rstrip`
diff --git a/functions/round.pp b/functions/round.pp
new file mode 100644
index 0000000..6bad92d
--- /dev/null
+++ b/functions/round.pp
@@ -0,0 +1,9 @@
+function stdlib::round(
+ Numeric $input,
+) {
+ if $input >= 0 {
+ Integer( $input + 0.5 )
+ } else {
+ Integer( $input - 0.5 )
+ }
+}
diff --git a/spec/functions/round_spec.rb b/spec/functions/round_spec.rb
new file mode 100755
index 0000000..5aa801c
--- /dev/null
+++ b/spec/functions/round_spec.rb
@@ -0,0 +1,11 @@
+require 'spec_helper'
+
+describe 'stdlib::round' do
+ it { is_expected.not_to eq(nil) }
+ it { is_expected.to run.with_params(34.3).and_return(34) }
+ it { is_expected.to run.with_params(-34.3).and_return(-34) }
+ it { is_expected.to run.with_params(34.5).and_return(35) }
+ it { is_expected.to run.with_params(-34.5).and_return(-35) }
+ it { is_expected.to run.with_params(34.7).and_return(35) }
+ it { is_expected.to run.with_params(-34.7).and_return(-35) }
+end