Sha256: dc78bb6210d9a1f42fd0dcd15bd22e54d338c30a5f0c10419777a7673feb61fa

Contents?: true

Size: 907 Bytes

Versions: 13

Compression:

Stored size: 907 Bytes

Contents

#!/usr/bin/env ruby

require 'test_helper'
require 'more_math'

class SequenceMovingAverageTest < Test::Unit::TestCase
  include MoreMath

  def setup
    @seq = Sequence.new([ 3, 1, 7, 5, 6 ])
  end

  def test_moving_average_fail
    assert_raise(ArgumentError) { @seq.moving_average(0) }
    assert_raise(ArgumentError) { @seq.moving_average(-1) }
    assert_raise(ArgumentError) { @seq.moving_average(@seq.size + 1) }
  end

  def test_moving_average
    assert_equal @seq.elements.map(&:to_f),
      @seq.moving_average(1)
    assert_equal [ (3 + 1) / 2.0, (1 + 7) / 2.0, (7 + 5) / 2.0, (5 + 6) / 2.0 ],
      @seq.moving_average(2)
    assert_equal [ (3 + 1 + 7) / 3.0, (1 + 7 + 5) / 3.0, (7 + 5 + 6) / 3.0 ],
      @seq.moving_average(3)
    assert_equal [ (3 + 1 + 7 + 5) / 4.0, (1 + 7 + 5 + 6) / 4.0 ],
      @seq.moving_average(4)
    assert_equal [ @seq.mean ], @seq.moving_average(5)
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
more_math-1.3.0 tests/sequence_moving_average_test.rb
more_math-1.2.2 tests/sequence_moving_average_test.rb
more_math-1.2.1 tests/sequence_moving_average_test.rb
more_math-1.2.0 tests/sequence_moving_average_test.rb
more_math-1.1.0 tests/sequence_moving_average_test.rb
more_math-1.0.2 tests/sequence_moving_average_test.rb
more_math-1.0.1 tests/sequence_moving_average_test.rb
more_math-1.0.0 tests/sequence_moving_average_test.rb
more_math-0.4.0 tests/sequence_moving_average_test.rb
more_math-0.3.3 tests/sequence_moving_average_test.rb
more_math-0.3.2 tests/sequence_moving_average_test.rb
more_math-0.3.1 tests/sequence_moving_average_test.rb
more_math-0.3.0 tests/sequence_moving_average_test.rb