updawg 0.3.5 → 0.3.6
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.
- data/CHANGELOG +2 -0
- data/README.rdoc +2 -0
- data/VERSION +1 -1
- data/lib/updawg/checks/deviation_check.rb +7 -2
- data/spec/updawg/checks/deviation_check_spec.rb +38 -2
- data/updawg.gemspec +2 -2
- metadata +4 -4
data/CHANGELOG
CHANGED
data/README.rdoc
CHANGED
@@ -49,6 +49,8 @@ Checks are defined with a simple DSL:
|
|
49
49
|
# Supports options:
|
50
50
|
# scale_factor - multiple of the std_dev to user (default: 2)
|
51
51
|
# smoothing - whether to ignore outliers in the dataset (default: true)
|
52
|
+
# skip_if_minimum_below - set to a value to skip this check for values that would be very small (default: false)
|
53
|
+
# skip_if_maximum_above - set to a value to skip this check for values that would be very large (default: false)
|
52
54
|
deviation 'Hourly Transaction Value' do
|
53
55
|
Transaction.group('hour').order('hour ASC') # will report if the last hour of data is our of range
|
54
56
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.6
|
@@ -5,7 +5,9 @@ module Updawg
|
|
5
5
|
def initialize(name, options = {}, &block)
|
6
6
|
super(name, options, &block)
|
7
7
|
|
8
|
-
unknown_keys = options.keys - [
|
8
|
+
unknown_keys = options.keys - [
|
9
|
+
:deviates_high, :deviates_low, :scale_factor, :smoothing, :unless_below, :unless_above
|
10
|
+
].flatten
|
9
11
|
raise(ArgumentError, "Unknown key(s): #{unknown_keys.join(", ")}") unless unknown_keys.empty?
|
10
12
|
|
11
13
|
@options = options
|
@@ -47,7 +49,10 @@ module Updawg
|
|
47
49
|
|
48
50
|
min = mean - scale_factor * std_dev
|
49
51
|
max = mean + scale_factor * std_dev
|
50
|
-
|
52
|
+
|
53
|
+
return pass("SKIP due to low minimum value") if @options[:unless_below] && min < @options[:unless_below]
|
54
|
+
return pass("SKIP due to high maximum value") if @options[:unless_above] && max > @options[:unless_above]
|
55
|
+
|
51
56
|
return low(sample, min) if sample < min
|
52
57
|
return high(sample, max) if sample > max
|
53
58
|
return pass("#{sample} within expected range (#{min..max})")
|
@@ -120,6 +120,42 @@ describe Updawg::DeviationCheck do
|
|
120
120
|
check = Updawg::DeviationCheck.new('test', @options){ @values + [@avg - 2 * @std_dev + 0.01] }
|
121
121
|
check.perform.should be_success
|
122
122
|
end
|
123
|
-
end
|
124
|
-
|
123
|
+
end
|
124
|
+
|
125
|
+
describe 'when unless_below is set' do
|
126
|
+
before(:each) do
|
127
|
+
@dataset = @values + [@avg - 2 * @std_dev - 1]
|
128
|
+
end
|
129
|
+
|
130
|
+
it 'should be error if values are above threshold' do
|
131
|
+
@options[:unless_below] = 1
|
132
|
+
check = Updawg::DeviationCheck.new('test', @options){ @dataset }
|
133
|
+
check.perform.should be_error
|
134
|
+
end
|
135
|
+
|
136
|
+
it 'should pass if values are below threshold' do
|
137
|
+
@options[:unless_below] = 100
|
138
|
+
check = Updawg::DeviationCheck.new('test', @options){ @dataset }
|
139
|
+
check.perform.should be_success
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
describe 'when unless_above is set' do
|
144
|
+
before(:each) do
|
145
|
+
@dataset = @values + [@avg + 2 * @std_dev + 1]
|
146
|
+
end
|
147
|
+
|
148
|
+
it 'should be error if values are below threshold' do
|
149
|
+
@options[:unless_above] = 100
|
150
|
+
check = Updawg::DeviationCheck.new('test', @options){ @dataset }
|
151
|
+
check.perform.should be_error
|
152
|
+
end
|
153
|
+
|
154
|
+
it 'should pass if values are above threshold' do
|
155
|
+
@options[:unless_above] = 1
|
156
|
+
check = Updawg::DeviationCheck.new('test', @options){ @dataset }
|
157
|
+
check.perform.should be_success
|
158
|
+
end
|
159
|
+
end
|
160
|
+
end
|
125
161
|
end
|
data/updawg.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{updawg}
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.6"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Matt Griffin"]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-04-14}
|
13
13
|
s.email = %q{matt@griffinonline.org}
|
14
14
|
s.extra_rdoc_files = [
|
15
15
|
"LICENSE",
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: updawg
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 31
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
9
|
+
- 6
|
10
|
+
version: 0.3.6
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Matt Griffin
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-04-14 00:00:00 -04:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|