Sha256: 0ea85e30dae4cab9417b3bf97eb771b150acab071a1195fdac87c9be349a72cd

Contents?: true

Size: 909 Bytes

Versions: 13

Compression:

Stored size: 909 Bytes

Contents

require 'test_helper'

class QuarticTest < GSL::TestCase

  def _test_quartic(n, *sol)
    z = GSL::Poly.complex_solve_quartic(0.0, 0.0, 0.0, n)
    desc = "Four roots, x^4 #{n}"

    assert_rel z[0].re, sol[0], 1e-9, "#{desc}: z0.real"
    assert_rel z[0].im, sol[1], 1e-9, "#{desc}: z0.imag"
    assert_rel z[1].re, sol[2], 1e-9, "#{desc}: z1.real"
    assert_rel z[1].im, sol[3], 1e-9, "#{desc}: z1.imag"
    assert_rel z[2].re, sol[4], 1e-9, "#{desc}: z2.real"
    assert_rel z[2].im, sol[5], 1e-9, "#{desc}: z2.imag"
    assert_rel z[3].re, sol[6], 1e-9, "#{desc}: z3.real"
    assert_rel z[3].im, sol[7], 1e-9, "#{desc}: z3.imag"
  end

  def test_quartic
    return unless GSL::Poly.method_defined?(:complex_solve_quartic)

    sol = 3.0 / Math.sqrt(2.0)

    _test_quartic(-81.0, -3.0, 0.0, 0.0, -3.0, 0.0, 3.0, 3.0, 0.0)
    _test_quartic(81.0, -sol, -sol, -sol, sol, sol, -sol, sol, sol)
  end

end

Version data entries

13 entries across 13 versions & 2 rubygems

Version Path
gsl-2.1.0.3 test/gsl/quartic_test.rb
gsl-2.1.0.2 test/gsl/quartic_test.rb
gsl-2.1.0.1 test/gsl/quartic_test.rb
gsl-2.1.0 test/gsl/quartic_test.rb
gsl-1.16.0.6 test/gsl/quartic_test.rb
rb-gsl-1.16.0.5 test/gsl/quartic_test.rb
rb-gsl-1.16.0.4 test/gsl/quartic_test.rb
rb-gsl-1.16.0.3 test/gsl/quartic_test.rb
rb-gsl-1.16.0.3.rc1 test/gsl/quartic_test.rb
rb-gsl-1.16.0.2 test/gsl/quartic_test.rb
rb-gsl-1.16.0.1 test/gsl/quartic_test.rb
rb-gsl-1.16.0 test/gsl/quartic_test.rb
rb-gsl-1.15.3.2 test/gsl/quartic_test.rb