File: shorthand_spec.rb

package info (click to toggle)
ruby-distribution 0.7.3%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: buster, stretch
  • size: 624 kB
  • ctags: 379
  • sloc: ruby: 4,283; makefile: 7
file content (34 lines) | stat: -rw-r--r-- 1,182 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
require File.expand_path(File.dirname(__FILE__)+"/spec_helper.rb")
describe Distribution::Shorthand do
  include Distribution::Shorthand
  it "should have basic methods for all distributions" do
    [:Normal,:ChiSquare, :F, :Hypergeometric, :Binomial, :T].each do |d|
      klass=Distribution.const_get(d)
      shortname=klass::SHORTHAND
      methods=[:pdf, :cdf, :p_value].map {|m| "#{shortname}_#{m}".to_sym}
      methods.each do |m| 
        Distribution::Shorthand.instance_methods.map {|v| v.to_sym}.should include(m)
      end
    end
    
  end
  it "should have exact methods discrete distributions" do
    [:Hypergeometric, :Binomial].each do |d|
      klass=Distribution.const_get(d)
      shortname=klass::SHORTHAND
      methods=[:epdf, :ecdf].map {|m| "#{shortname}_#{m}".to_sym}
      methods.each do |m| 
        Distribution::Shorthand.instance_methods.map {|v| v.to_sym}.should include(m)
      end
    end
    
  end


  it "returns same values as long form" do
    x=rand()
    norm_cdf(x).should eql(Distribution::Normal.cdf(x))
    norm_pdf(x).should eql(Distribution::Normal.pdf(x))
    norm_p_value(x).should eql(Distribution::Normal.p_value(x))
  end
end