Module: Bullshit::ModuleFunctions
- Included in:
- Case::CaseExtension, Case::CaseExtension::TruncateData
- Defined in:
- lib/bullshit.rb
Class Method Summary collapse
-
.angle(degree) ⇒ Object
Return the angle
degree
in radians. -
.array_window(array, window_size) ⇒ Object
Let a window of size
window_size
slide over the arrayarray
and yield to the window array. -
.percent(number) ⇒ Object
Return the percentage number as a value in the range 0..1.
Class Method Details
.angle(degree) ⇒ Object
Return the angle degree
in radians.
190 191 192 |
# File 'lib/bullshit.rb', line 190 def angle(degree) Math.tan(Math::PI * degree / 180) end |
.array_window(array, window_size) ⇒ Object
Let a window of size window_size
slide over the array array
and yield to the window array.
201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 |
# File 'lib/bullshit.rb', line 201 def array_window(array, window_size) window_size < 1 and raise ArgumentError, "window_size = #{window_size} < 1" window_size = window_size.to_i window_size += 1 if window_size % 2 == 0 radius = window_size / 2 array.each_index do |i| ws = window_size from = i - radius negative_from = false if from < 0 negative_from = true ws += from from = 0 end a = array[from, ws] if (diff = window_size - a.size) > 0 mean = a.inject(0.0) { |s, x| s + x } / a.size a = if negative_from [ mean ] * diff + a else a + [ mean ] * diff end end yield a end nil end |
.percent(number) ⇒ Object
Return the percentage number as a value in the range 0..1.
195 196 197 |
# File 'lib/bullshit.rb', line 195 def percent(number) number / 100.0 end |