croupier 1.6.0 → 2.0.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +2 -2
- data/Rakefile +7 -0
- data/lib/croupier/distribution.rb +115 -36
- data/lib/croupier/distribution_generator.rb +57 -0
- data/lib/croupier/distribution_generators/enumerator_block_generator.rb +23 -0
- data/lib/croupier/distribution_generators/enumerator_generator.rb +21 -0
- data/lib/croupier/distribution_generators/inverse_cdf_generator.rb +21 -0
- data/lib/croupier/distribution_generators/minimum_sample_generator.rb +24 -0
- data/lib/croupier/distribution_generators.rb +18 -0
- data/lib/croupier/distributions/bernoulli.rb +18 -25
- data/lib/croupier/distributions/binomial.rb +30 -29
- data/lib/croupier/distributions/cauchy.rb +22 -19
- data/lib/croupier/distributions/credit_card.rb +39 -29
- data/lib/croupier/distributions/degenerate.rb +16 -19
- data/lib/croupier/distributions/exponential.rb +18 -19
- data/lib/croupier/distributions/gamma.rb +66 -37
- data/lib/croupier/distributions/geometric.rb +19 -20
- data/lib/croupier/distributions/nbinomial.rb +22 -33
- data/lib/croupier/distributions/normal.rb +30 -34
- data/lib/croupier/distributions/poisson.rb +26 -25
- data/lib/croupier/distributions/triangular.rb +39 -25
- data/lib/croupier/distributions/uniform.rb +43 -19
- data/lib/croupier/distributions.rb +3 -4
- data/lib/croupier/version.rb +1 -1
- data/lib/croupier.rb +43 -6
- data/test/minitest/distribution_class/test_class_methods.rb +142 -0
- data/test/{test_distribution_class.rb → minitest/distribution_class/test_instance_methods.rb} +26 -28
- data/test/minitest/distribution_generator_class/test_class_methods.rb +24 -0
- data/test/minitest/distribution_generator_class/test_instance_methods.rb +35 -0
- data/test/minitest/distribution_generators/test_enumerator_block_generator.rb +31 -0
- data/test/minitest/distribution_generators/test_enumerator_generator.rb +33 -0
- data/test/minitest/distribution_generators/test_inverse_cdf_generator.rb +36 -0
- data/test/minitest/distribution_generators/test_minimum_sample_generator.rb +33 -0
- data/test/minitest/distributions/test_bernoulli_distribution.rb +13 -0
- data/test/minitest/distributions/test_binomial_distribution.rb +18 -0
- data/test/minitest/distributions/test_cauchy_distribution.rb +18 -0
- data/test/{distributions/minitest/test_credit_card.rb → minitest/distributions/test_credit_card_distribution.rb} +5 -0
- data/test/{distributions/minitest → minitest/distributions}/test_degenerate_distribution.rb +2 -2
- data/test/minitest/distributions/test_exponential_distribution.rb +13 -0
- data/test/minitest/distributions/test_gamma_distribution.rb +23 -0
- data/test/minitest/distributions/test_geometric_distribution.rb +13 -0
- data/test/minitest/distributions/test_normal_distribution.rb +17 -0
- data/test/minitest/distributions/test_poisson_distribution.rb +13 -0
- data/test/minitest/distributions/test_triangular_distribution.rb +26 -0
- data/test/minitest/distributions/test_uniform_distribution.rb +54 -0
- data/test/{test_croupier_module.rb → minitest/test_croupier_module.rb} +0 -0
- data/test/minitest/test_distribution_generators_module.rb +37 -0
- data/test/{test_distributions_module.rb → minitest/test_distributions_module.rb} +0 -0
- data/test/rtests.R +1 -0
- metadata +62 -44
- data/test/distributions/R_tests/test_bernoulli.R +0 -17
- data/test/distributions/R_tests/test_binomial.R +0 -17
- data/test/distributions/R_tests/test_cauchy.R +0 -28
- data/test/distributions/R_tests/test_exponential.R +0 -28
- data/test/distributions/R_tests/test_gamma.R +0 -27
- data/test/distributions/R_tests/test_geometric.R +0 -23
- data/test/distributions/R_tests/test_nbinomial.R +0 -17
- data/test/distributions/R_tests/test_normal.R +0 -52
- data/test/distributions/R_tests/test_poisson.R +0 -17
- data/test/distributions/R_tests/test_triangular.R +0 -28
- data/test/distributions/R_tests/test_uniform.R +0 -30
- data/test/testsuite.R +0 -37
@@ -0,0 +1,26 @@
|
|
1
|
+
require "minitest/autorun"
|
2
|
+
require "croupier"
|
3
|
+
class TestTriangularDistribution < MiniTest::Unit::TestCase
|
4
|
+
|
5
|
+
def triangular(opts={})
|
6
|
+
::Croupier::Distributions.triangular(opts)
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_change_lower_and_upper_values_if_they_are_not_in_the_right_order
|
10
|
+
t = triangular lower: 8, upper: 3, mode: 4
|
11
|
+
assert_equal 3, t.lower, "lower is not 3"
|
12
|
+
assert_equal 8, t.upper, "upper is not 8"
|
13
|
+
assert_equal 5, t.range, "range is not upper - limit"
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_change_mode_if_lt_lower_value
|
17
|
+
t = triangular lower: 3, upper: 6, mode: 2
|
18
|
+
assert_in_delta 4.5, t.mode, 1e-10, "mode did not change to median"
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_change_mode_if_gt_upper_value
|
22
|
+
t = triangular lower: 3, upper: 6, mode: 8
|
23
|
+
assert_in_delta 4.5, t.mode, 1e-10, "mode did not change to median"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require "minitest/autorun"
|
2
|
+
require "croupier"
|
3
|
+
class TestUniformDistribution < MiniTest::Unit::TestCase
|
4
|
+
|
5
|
+
def uniform(opts={})
|
6
|
+
::Croupier::Distributions.uniform(opts)
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_inverted_for_default_uniform
|
10
|
+
u = uniform
|
11
|
+
assert !u.inverted?, "uniform should not be considered inverted"
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_inverted_for_uniform_where_included_smaller_than_excluded
|
15
|
+
u = uniform included: 5, excluded: 7
|
16
|
+
assert !u.inverted?, "uniform should not be considered inverted"
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_inverted_for_uniform_where_included_greater_than_excluded
|
20
|
+
u = uniform({included: 7, excluded: 5})
|
21
|
+
assert u.inverted?, "uniform should be considered inverted"
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_minmax_and_range_in_default_uniform
|
25
|
+
u = uniform
|
26
|
+
assert_equal 0, u.min, "default minimum is not 0"
|
27
|
+
assert_equal 1, u.max, "default maximum is not 1"
|
28
|
+
assert_equal 1, u.range, "default range is not 1"
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_minmax_and_range_in_non_inverted_uniform
|
32
|
+
u = uniform included: 5, excluded: 7
|
33
|
+
assert_equal 5, u.min, "minimum is not the included value"
|
34
|
+
assert_equal 7, u.max, "maximum is not the excluded value"
|
35
|
+
assert_equal 2, u.range, "range is not maximum - minimum"
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_minmax_and_range_in_inverted_uniform
|
39
|
+
u = uniform included: 7, excluded: 5
|
40
|
+
assert_equal 5, u.min, "minimum is not the excluded value"
|
41
|
+
assert_equal 7, u.max, "maximum is not the included value"
|
42
|
+
assert_equal 2, u.range, "range is not maximum - minimum"
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_exclude_value_for_non_inverted_distributions
|
46
|
+
u = uniform
|
47
|
+
assert_in_delta 0.3, u.exclude_value.(0.3), 1e-10, "exclude value function is not the identity"
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_exclude_value_for_inverted_distributions
|
51
|
+
u = uniform included: 7, excluded: 5
|
52
|
+
assert_in_delta 0.7, u.exclude_value.(0.3), 1e-10, "exclude value function is not 1-n"
|
53
|
+
end
|
54
|
+
end
|
File without changes
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require "minitest/autorun"
|
2
|
+
require "croupier"
|
3
|
+
|
4
|
+
class TestDistributionGeneratorsModule < MiniTest::Unit::TestCase
|
5
|
+
|
6
|
+
def test_list_of_all_distribution_generators
|
7
|
+
all = Croupier::DistributionGenerators.all
|
8
|
+
|
9
|
+
assert_operator all.size, :>, 1, "#{all.size} is 1 or less"
|
10
|
+
|
11
|
+
all.each{|d|
|
12
|
+
assert_equal Croupier::DistributionGenerator, d.superclass, "#{d.name} is not a distribution generator"
|
13
|
+
}
|
14
|
+
|
15
|
+
Croupier::DistributionGenerators.constants(false).each do |distrib|
|
16
|
+
d = ::Croupier::DistributionGenerators.const_get(distrib)
|
17
|
+
if d.is_a?(Class) && d.kind_of?(Croupier::DistributionGenerator)
|
18
|
+
assert_includes all, d, "#{d.name} not included in array of all distributions"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_method_names_list
|
24
|
+
list = Croupier::DistributionGenerators.list
|
25
|
+
assert_operator list.size, :>, 1, "#{list.size} is 1 or less"
|
26
|
+
Croupier::DistributionGenerators.all.each{|d|
|
27
|
+
assert_includes list, d.method_name, "#{d.method_name} not included in list"
|
28
|
+
}
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_all_and_list_have_same_size
|
32
|
+
all = Croupier::DistributionGenerators.all
|
33
|
+
list = Croupier::DistributionGenerators.list
|
34
|
+
assert_operator list.size, :>, 1, "#{list.size} is 1 or less"
|
35
|
+
assert_equal list.size, all.size, "#{list.size} and #{all.size} are not equal"
|
36
|
+
end
|
37
|
+
end
|
File without changes
|
data/test/rtests.R
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
source('./sample_test/testsuite.R', chdir = TRUE)
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: croupier
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
5
|
-
prerelease:
|
4
|
+
version: 2.0.0.rc1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Juanjo Bazán
|
@@ -10,7 +9,7 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date: 2013-
|
12
|
+
date: 2013-09-24 00:00:00.000000000 Z
|
14
13
|
dependencies: []
|
15
14
|
description: Croupier is a Ruby gem to generate a random sample of numbers with a
|
16
15
|
given probability distribution.
|
@@ -28,6 +27,12 @@ files:
|
|
28
27
|
- lib/croupier/cli/application.rb
|
29
28
|
- lib/croupier/cli/trollop.rb
|
30
29
|
- lib/croupier/distribution.rb
|
30
|
+
- lib/croupier/distribution_generator.rb
|
31
|
+
- lib/croupier/distribution_generators/enumerator_block_generator.rb
|
32
|
+
- lib/croupier/distribution_generators/enumerator_generator.rb
|
33
|
+
- lib/croupier/distribution_generators/inverse_cdf_generator.rb
|
34
|
+
- lib/croupier/distribution_generators/minimum_sample_generator.rb
|
35
|
+
- lib/croupier/distribution_generators.rb
|
31
36
|
- lib/croupier/distributions/bernoulli.rb
|
32
37
|
- lib/croupier/distributions/binomial.rb
|
33
38
|
- lib/croupier/distributions/cauchy.rb
|
@@ -45,26 +50,34 @@ files:
|
|
45
50
|
- lib/croupier/exceptions.rb
|
46
51
|
- lib/croupier/version.rb
|
47
52
|
- lib/croupier.rb
|
48
|
-
- test/
|
49
|
-
- test/
|
50
|
-
- test/
|
51
|
-
- test/
|
52
|
-
- test/
|
53
|
-
- test/
|
54
|
-
- test/
|
55
|
-
- test/
|
56
|
-
- test/distributions/
|
57
|
-
- test/distributions/
|
58
|
-
- test/distributions/
|
59
|
-
- test/distributions/
|
60
|
-
- test/distributions/
|
61
|
-
- test/
|
62
|
-
- test/
|
63
|
-
- test/
|
64
|
-
- test/
|
53
|
+
- test/minitest/distribution_class/test_class_methods.rb
|
54
|
+
- test/minitest/distribution_class/test_instance_methods.rb
|
55
|
+
- test/minitest/distribution_generator_class/test_class_methods.rb
|
56
|
+
- test/minitest/distribution_generator_class/test_instance_methods.rb
|
57
|
+
- test/minitest/distribution_generators/test_enumerator_block_generator.rb
|
58
|
+
- test/minitest/distribution_generators/test_enumerator_generator.rb
|
59
|
+
- test/minitest/distribution_generators/test_inverse_cdf_generator.rb
|
60
|
+
- test/minitest/distribution_generators/test_minimum_sample_generator.rb
|
61
|
+
- test/minitest/distributions/test_bernoulli_distribution.rb
|
62
|
+
- test/minitest/distributions/test_binomial_distribution.rb
|
63
|
+
- test/minitest/distributions/test_cauchy_distribution.rb
|
64
|
+
- test/minitest/distributions/test_credit_card_distribution.rb
|
65
|
+
- test/minitest/distributions/test_degenerate_distribution.rb
|
66
|
+
- test/minitest/distributions/test_exponential_distribution.rb
|
67
|
+
- test/minitest/distributions/test_gamma_distribution.rb
|
68
|
+
- test/minitest/distributions/test_geometric_distribution.rb
|
69
|
+
- test/minitest/distributions/test_normal_distribution.rb
|
70
|
+
- test/minitest/distributions/test_poisson_distribution.rb
|
71
|
+
- test/minitest/distributions/test_triangular_distribution.rb
|
72
|
+
- test/minitest/distributions/test_uniform_distribution.rb
|
73
|
+
- test/minitest/test_croupier_module.rb
|
74
|
+
- test/minitest/test_distribution_generators_module.rb
|
75
|
+
- test/minitest/test_distributions_module.rb
|
76
|
+
- test/rtests.R
|
65
77
|
- bin/croupier
|
66
78
|
homepage: https://github.com/xuanxu/croupier
|
67
79
|
licenses: []
|
80
|
+
metadata: {}
|
68
81
|
post_install_message:
|
69
82
|
rdoc_options:
|
70
83
|
- --main
|
@@ -73,38 +86,43 @@ rdoc_options:
|
|
73
86
|
require_paths:
|
74
87
|
- lib
|
75
88
|
required_ruby_version: !ruby/object:Gem::Requirement
|
76
|
-
none: false
|
77
89
|
requirements:
|
78
|
-
- -
|
90
|
+
- - '>='
|
79
91
|
- !ruby/object:Gem::Version
|
80
92
|
version: '0'
|
81
93
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
94
|
requirements:
|
84
|
-
- -
|
95
|
+
- - '>'
|
85
96
|
- !ruby/object:Gem::Version
|
86
|
-
version:
|
97
|
+
version: 1.3.1
|
87
98
|
requirements: []
|
88
99
|
rubyforge_project:
|
89
|
-
rubygems_version:
|
100
|
+
rubygems_version: 2.0.3
|
90
101
|
signing_key:
|
91
|
-
specification_version:
|
102
|
+
specification_version: 4
|
92
103
|
summary: Samples of random numbers with specific probability distributions
|
93
104
|
test_files:
|
94
|
-
- test/
|
95
|
-
- test/
|
96
|
-
- test/
|
97
|
-
- test/
|
98
|
-
- test/
|
99
|
-
- test/
|
100
|
-
- test/
|
101
|
-
- test/
|
102
|
-
- test/distributions/
|
103
|
-
- test/distributions/
|
104
|
-
- test/distributions/
|
105
|
-
- test/distributions/
|
106
|
-
- test/distributions/
|
107
|
-
- test/
|
108
|
-
- test/
|
109
|
-
- test/
|
110
|
-
- test/
|
105
|
+
- test/minitest/distribution_class/test_class_methods.rb
|
106
|
+
- test/minitest/distribution_class/test_instance_methods.rb
|
107
|
+
- test/minitest/distribution_generator_class/test_class_methods.rb
|
108
|
+
- test/minitest/distribution_generator_class/test_instance_methods.rb
|
109
|
+
- test/minitest/distribution_generators/test_enumerator_block_generator.rb
|
110
|
+
- test/minitest/distribution_generators/test_enumerator_generator.rb
|
111
|
+
- test/minitest/distribution_generators/test_inverse_cdf_generator.rb
|
112
|
+
- test/minitest/distribution_generators/test_minimum_sample_generator.rb
|
113
|
+
- test/minitest/distributions/test_bernoulli_distribution.rb
|
114
|
+
- test/minitest/distributions/test_binomial_distribution.rb
|
115
|
+
- test/minitest/distributions/test_cauchy_distribution.rb
|
116
|
+
- test/minitest/distributions/test_credit_card_distribution.rb
|
117
|
+
- test/minitest/distributions/test_degenerate_distribution.rb
|
118
|
+
- test/minitest/distributions/test_exponential_distribution.rb
|
119
|
+
- test/minitest/distributions/test_gamma_distribution.rb
|
120
|
+
- test/minitest/distributions/test_geometric_distribution.rb
|
121
|
+
- test/minitest/distributions/test_normal_distribution.rb
|
122
|
+
- test/minitest/distributions/test_poisson_distribution.rb
|
123
|
+
- test/minitest/distributions/test_triangular_distribution.rb
|
124
|
+
- test/minitest/distributions/test_uniform_distribution.rb
|
125
|
+
- test/minitest/test_croupier_module.rb
|
126
|
+
- test/minitest/test_distribution_generators_module.rb
|
127
|
+
- test/minitest/test_distributions_module.rb
|
128
|
+
- test/rtests.R
|
@@ -1,17 +0,0 @@
|
|
1
|
-
context('** Bernoulli Distribution **')
|
2
|
-
|
3
|
-
context('ChiSquare Goodness of Fit test for default success p = 0.5')
|
4
|
-
croupier_bernoulli <- read.table("../generated_samples/bernoulli_05.data")
|
5
|
-
cs_result<-summary(goodfit(croupier_bernoulli$V1, type="binomial", method="ML", par=list(size=1, prob=0.5)))
|
6
|
-
|
7
|
-
test_that("p-value > 0.05, bernoulli, p = 0.5", {
|
8
|
-
expect_true(cs_result['Pearson',3] > 0.05)
|
9
|
-
})
|
10
|
-
|
11
|
-
context('ChiSquare Goodness of Fit test for success p = 0.75')
|
12
|
-
croupier_bernoulli <- read.table("../generated_samples/bernoulli_075.data")
|
13
|
-
cs_result<-summary(goodfit(croupier_bernoulli$V1, type="binomial", method="ML", par=list(size=1, prob=0.75)))
|
14
|
-
|
15
|
-
test_that("p-value > 0.05, bernoulli, p = 0.75", {
|
16
|
-
expect_true(cs_result['Pearson',3] > 0.05)
|
17
|
-
})
|
@@ -1,17 +0,0 @@
|
|
1
|
-
context('** Binomial Distribution **')
|
2
|
-
|
3
|
-
context('ChiSquare Goodness of Fit test for p=0.5, size=5')
|
4
|
-
croupier_binomial <- read.table("../generated_samples/binomial_05_5.data")
|
5
|
-
cs_result<-summary(goodfit(croupier_binomial$V1, type="binomial", method="ML", par=list(size=5, prob=0.5)))
|
6
|
-
|
7
|
-
test_that("p-value > 0.05, binomial, p = 0.5, size=5", {
|
8
|
-
expect_true(cs_result['Pearson',3] > 0.05)
|
9
|
-
})
|
10
|
-
|
11
|
-
context('ChiSquare Goodness of Fit test for p = 0.35, size=17')
|
12
|
-
croupier_binomial <- read.table("../generated_samples/binomial_035_17.data")
|
13
|
-
cs_result<-summary(goodfit(croupier_binomial$V1, type="binomial", method="ML", par=list(size=17, prob=0.35)))
|
14
|
-
|
15
|
-
test_that("p-value > 0.05, binomial, p=0.35, size=17", {
|
16
|
-
expect_true(cs_result['Pearson',3] > 0.05)
|
17
|
-
})
|
@@ -1,28 +0,0 @@
|
|
1
|
-
context('** Cauchy Distribution **')
|
2
|
-
# Run a K-S test on the Croupier sample against a Cauchy R-generated sample
|
3
|
-
# Accept Croupier's sample as Cauchy if p-value > 0.05
|
4
|
-
# Also check for a statistic near 0
|
5
|
-
|
6
|
-
context('Kolmogorov-Smirnov test for default (location, scale) = (0,1)')
|
7
|
-
croupier_cauchy <- read.table("../generated_samples/cauchy_0_1.data")
|
8
|
-
ks_result<-ks.test(croupier_cauchy$V1, "pcauchy")
|
9
|
-
|
10
|
-
test_that("p-value > 0.05, cauchy, location=0, scale=1", {
|
11
|
-
expect_true(ks_result$p.value > 0.05)
|
12
|
-
})
|
13
|
-
|
14
|
-
test_that("statistic converging to 0", {
|
15
|
-
expect_true(as.numeric(ks_result$statistic) < 0.05)
|
16
|
-
})
|
17
|
-
|
18
|
-
context('Kolmogorov-Smirnov test for given (location, scale) = (12, 3)')
|
19
|
-
croupier_cauchy <- read.table("../generated_samples/cauchy_12_3.data")
|
20
|
-
ks_result<-ks.test(croupier_cauchy$V1, "pcauchy", location=12, scale=3)
|
21
|
-
|
22
|
-
test_that("p-value > 0.05, cauchy, location=12, scale=3", {
|
23
|
-
expect_true(ks_result$p.value > 0.05)
|
24
|
-
})
|
25
|
-
|
26
|
-
test_that("statistic converging to 0", {
|
27
|
-
expect_true(as.numeric(ks_result$statistic) < 0.05)
|
28
|
-
})
|
@@ -1,28 +0,0 @@
|
|
1
|
-
context('** Exponential Distribution **')
|
2
|
-
# Run a K-S test on the Croupier sample against a exponential R-generated sample
|
3
|
-
# Accept Croupier's sample as exponential if p-value > 0.05
|
4
|
-
# Also check for a statistic near 0
|
5
|
-
|
6
|
-
context('Kolmogorov-Smirnov test for default lambda = 1')
|
7
|
-
croupier_exponential <- read.table("../generated_samples/exponential_1.data")
|
8
|
-
ks_result<-ks.test(croupier_exponential$V1, "pexp")
|
9
|
-
|
10
|
-
test_that("p-value > 0.05, exponential, lambda=1", {
|
11
|
-
expect_true(ks_result$p.value > 0.05)
|
12
|
-
})
|
13
|
-
|
14
|
-
test_that("statistic converging to 0", {
|
15
|
-
expect_true(as.numeric(ks_result$statistic) < 0.05)
|
16
|
-
})
|
17
|
-
|
18
|
-
context('Kolmogorov-Smirnov test for given lambda = 1.6')
|
19
|
-
croupier_exponential <- read.table("../generated_samples/exponential_1_6.data")
|
20
|
-
ks_result<-ks.test(croupier_exponential$V1, "pexp", rate = 1.6)
|
21
|
-
|
22
|
-
test_that("p-value > 0.05, exponential, lambda=1.6", {
|
23
|
-
expect_true(ks_result$p.value > 0.05)
|
24
|
-
})
|
25
|
-
|
26
|
-
test_that("statistic converging to 0", {
|
27
|
-
expect_true(as.numeric(ks_result$statistic) < 0.05)
|
28
|
-
})
|
@@ -1,27 +0,0 @@
|
|
1
|
-
context('** Gamma Distribution **')
|
2
|
-
|
3
|
-
context('Kolmogorov-Smirnov test for gamma, shape=1.0, scale=1.0')
|
4
|
-
croupier_gamma <- read.table("../generated_samples/gamma_1_1.data")
|
5
|
-
ks_result<-ks.test(croupier_gamma$V1, "pgamma", shape = 1.0, scale=1.0)
|
6
|
-
|
7
|
-
test_that("p-value > 0.05 gamma, shape=1.0, scale=1.0", {
|
8
|
-
expect_true(ks_result$p.value > 0.05)
|
9
|
-
})
|
10
|
-
|
11
|
-
test_that("statistic converging to 0 gamma, shape=1.0, scale=1.0", {
|
12
|
-
expect_true(as.numeric(ks_result$statistic) < 0.05)
|
13
|
-
})
|
14
|
-
|
15
|
-
|
16
|
-
context('Kolmogorov-Smirnov test for gamma, shape=10.35, scale=2.5')
|
17
|
-
croupier_gamma <- read.table("../generated_samples/gamma_1035_25.data")
|
18
|
-
ks_result<-ks.test(croupier_gamma$V1, "pgamma", shape=10.35, scale=2.5)
|
19
|
-
|
20
|
-
test_that("p-value > 0.05 gamma, shape=10.35, scale=2.5", {
|
21
|
-
expect_true(ks_result$p.value > 0.05)
|
22
|
-
})
|
23
|
-
|
24
|
-
test_that("statistic converging to 0 gamma, shape=10.35, scale=2.5", {
|
25
|
-
expect_true(as.numeric(ks_result$statistic) < 0.05)
|
26
|
-
})
|
27
|
-
|
@@ -1,23 +0,0 @@
|
|
1
|
-
context('** Geometric Distribution **')
|
2
|
-
|
3
|
-
# It uses the fact that it is equivalent to a negative binomial
|
4
|
-
# distribution with parameters size=1 and prob = p (Wikipedia
|
5
|
-
# set p_{nbinomial} to be the fail probability while R takes
|
6
|
-
# it as the success one).
|
7
|
-
# Besides, since for the equality to hold the support must start
|
8
|
-
# at zero, it just substracts one from the vector of samples.
|
9
|
-
context('ChiSquare Goodness of Fit test for p=0.5')
|
10
|
-
croupier_geometric <- read.table("../generated_samples/geometric_05.data")
|
11
|
-
cs_result<-summary(goodfit(croupier_geometric$V1 - 1, type="nbinomial", method="ML", par=list(size=1, prob=0.5)))
|
12
|
-
|
13
|
-
test_that("p-value > 0.05, geometric, p = 0.5", {
|
14
|
-
expect_true(cs_result['Pearson',3] > 0.05)
|
15
|
-
})
|
16
|
-
|
17
|
-
context('ChiSquare Goodness of Fit test for p = 0.05')
|
18
|
-
croupier_geometric <- read.table("../generated_samples/geometric_005.data")
|
19
|
-
cs_result<-summary(goodfit(croupier_geometric$V1 - 1, type="nbinomial", method="ML", par=list(size=1, prob=0.05)))
|
20
|
-
|
21
|
-
test_that("p-value > 0.05, geometric, p=0.05", {
|
22
|
-
expect_true(cs_result['Pearson',3] > 0.05)
|
23
|
-
})
|
@@ -1,17 +0,0 @@
|
|
1
|
-
context('** Negative Binomial Distribution **')
|
2
|
-
|
3
|
-
context('ChiSquare Goodness of Fit test for prob=0.5, size=5')
|
4
|
-
croupier_nbinomial <- read.table("../generated_samples/nbinomial_05_5.data")
|
5
|
-
cs_result<-summary(goodfit(croupier_nbinomial$V1, type="nbinomial", method="ML", par=list(size=5, prob=0.5)))
|
6
|
-
|
7
|
-
test_that("p-value > 0.05, nbinomial, prob = 0.5, size=5", {
|
8
|
-
expect_true(cs_result['Pearson',3] > 0.05)
|
9
|
-
})
|
10
|
-
|
11
|
-
context('ChiSquare Goodness of Fit test for prob = 0.25, size=15')
|
12
|
-
croupier_nbinomial <- read.table("../generated_samples/nbinomial_025_15.data")
|
13
|
-
cs_result<-summary(goodfit(croupier_nbinomial$V1, type="nbinomial", method="ML", par=list(size=15, prob=0.25)))
|
14
|
-
|
15
|
-
test_that("p-value > 0.05, nbinomial, prob=0.25, size=15", {
|
16
|
-
expect_true(cs_result['Pearson',3] > 0.05)
|
17
|
-
})
|
@@ -1,52 +0,0 @@
|
|
1
|
-
context('** Normal Distribution **')
|
2
|
-
# Run a K-S test on the Croupier sample against a exponential R-generated sample
|
3
|
-
# Accept Croupier's sample as normal if p-value > 0.05
|
4
|
-
# Also check for a statistic near 0
|
5
|
-
|
6
|
-
context('Kolmogorov-Smirnov test for default mean = 0 and std = 1')
|
7
|
-
croupier_normal <- read.table("../generated_samples/normal_0_1.data")
|
8
|
-
ks_result<-ks.test(croupier_normal$V1, "pnorm")
|
9
|
-
|
10
|
-
test_that("p-value > 0.05, normal (0,1)", {
|
11
|
-
expect_true(ks_result$p.value > 0.05)
|
12
|
-
})
|
13
|
-
|
14
|
-
test_that("statistic converging to 0, normal(0,1)", {
|
15
|
-
expect_true(as.numeric(ks_result$statistic) < 0.05)
|
16
|
-
})
|
17
|
-
|
18
|
-
context('Shapiro test for default mean = 0 and std = 1')
|
19
|
-
croupier_normal <- read.table("../generated_samples/normal_0_1.data")
|
20
|
-
s_result<-shapiro.test(croupier_normal$V1[1:5000])
|
21
|
-
|
22
|
-
test_that("p-value > 0.05, normal (0,1)", {
|
23
|
-
expect_true(s_result$p.value > 0.05)
|
24
|
-
})
|
25
|
-
|
26
|
-
test_that("statistic converging to 0, normal(0,1)", {
|
27
|
-
expect_true(as.numeric(ks_result$statistic) < 0.05)
|
28
|
-
})
|
29
|
-
|
30
|
-
context('Kolmogorov-Smirnov test for given mean = 5 and std = 6')
|
31
|
-
croupier_normal <- read.table("../generated_samples/normal_5_6.data")
|
32
|
-
ks_result<-ks.test((croupier_normal$V1 - 5)/6, "pnorm")
|
33
|
-
|
34
|
-
test_that("p-value > 0.05, normal(5,6)", {
|
35
|
-
expect_true(ks_result$p.value > 0.05)
|
36
|
-
})
|
37
|
-
|
38
|
-
test_that("statistic converging to 0, normal(5,6)", {
|
39
|
-
expect_true(as.numeric(ks_result$statistic) < 0.05)
|
40
|
-
})
|
41
|
-
|
42
|
-
context('Shapiro test for default mean = 5 and std = 1')
|
43
|
-
croupier_normal <- read.table("../generated_samples/normal_0_1.data")
|
44
|
-
s_result<-shapiro.test((croupier_normal$V1[1:5000] - 5 ) / 6)
|
45
|
-
|
46
|
-
test_that("p-value > 0.05, normal(5,6)", {
|
47
|
-
expect_true(s_result$p.value > 0.05)
|
48
|
-
})
|
49
|
-
|
50
|
-
test_that("statistic converging to 0, normal(5,6)", {
|
51
|
-
expect_true(as.numeric(ks_result$statistic) < 0.05)
|
52
|
-
})
|
@@ -1,17 +0,0 @@
|
|
1
|
-
context('** Poisson Distribution **')
|
2
|
-
|
3
|
-
context('ChiSquare Goodness of Fit test for mean = 5')
|
4
|
-
croupier_poisson <- read.table("../generated_samples/poisson_5.data")
|
5
|
-
cs_result<-summary(goodfit(croupier_poisson$V1, type="poisson", method="ML", par=list(lambda=5)))
|
6
|
-
|
7
|
-
test_that("p-value > 0.05, poisson mean = 5", {
|
8
|
-
expect_true(cs_result['Pearson',3] > 0.05)
|
9
|
-
})
|
10
|
-
|
11
|
-
context('ChiSquare Goodness of Fit test for mean = 50')
|
12
|
-
croupier_poisson <- read.table("../generated_samples/poisson_50.data")
|
13
|
-
cs_result<-summary(goodfit(croupier_poisson$V1, type="poisson", method="ML", par=list(lambda=50)))
|
14
|
-
|
15
|
-
test_that("err, poisson lambda = 50", {
|
16
|
-
expect_true(cs_result['Pearson',3] > 0.05)
|
17
|
-
})
|
@@ -1,28 +0,0 @@
|
|
1
|
-
context('** Triangular Distribution **')
|
2
|
-
# Run a K-S test on the Croupier sample against a exponential R-generated sample
|
3
|
-
# Accept Croupier's sample as exponential if p-value > 0.05
|
4
|
-
# Also check for a statistic near 0
|
5
|
-
|
6
|
-
context('Kolmogorov-Smirnov test for a = -1, b = 5, c=4')
|
7
|
-
croupier_exponential <- read.table("../generated_samples/triangular_-1_5_4.data")
|
8
|
-
ks_result<-ks.test(croupier_exponential$V1, "ptriangle", a=-1, b=5, c=4)
|
9
|
-
|
10
|
-
test_that("p-value > 0.05 triangular, not default parameters", {
|
11
|
-
expect_true(ks_result$p.value > 0.05)
|
12
|
-
})
|
13
|
-
|
14
|
-
test_that("statistic converging to 0", {
|
15
|
-
expect_true(as.numeric(ks_result$statistic) < 0.05)
|
16
|
-
})
|
17
|
-
|
18
|
-
context('Kolmogorov-Smirnov test for default values a=0, b=1, c=0.5')
|
19
|
-
croupier_exponential <- read.table("../generated_samples/triangular_0_1_05.data")
|
20
|
-
ks_result<-ks.test(croupier_exponential$V1, "ptriangle", a=0, b=1, c=0.5)
|
21
|
-
|
22
|
-
test_that("p-value > 0.05 triangular, default parameters", {
|
23
|
-
expect_true(ks_result$p.value > 0.05)
|
24
|
-
})
|
25
|
-
|
26
|
-
test_that("statistic converging to 0", {
|
27
|
-
expect_true(as.numeric(ks_result$statistic) < 0.05)
|
28
|
-
})
|
@@ -1,30 +0,0 @@
|
|
1
|
-
context('** Uniform Distribution **')
|
2
|
-
# Run a K-S test on the Croupier sample against a uniform R-generated sample
|
3
|
-
# Accept Croupier's sample as uniform if p-value > 0.05
|
4
|
-
# Also check for a statistic near 0
|
5
|
-
|
6
|
-
context('Kolmogorov-Smirnov test for default sample in [0,1]')
|
7
|
-
croupier_uniform_0_1 <- read.table("../generated_samples/uniform_0_1.data")
|
8
|
-
ks_result<-ks.test(croupier_uniform_0_1$V1, "punif")
|
9
|
-
|
10
|
-
test_that("p-value > 0.05, uniform, [0,1]", {
|
11
|
-
expect_true(ks_result$p.value > 0.05)
|
12
|
-
})
|
13
|
-
|
14
|
-
test_that("statistic converging to 0", {
|
15
|
-
expect_true(as.numeric(ks_result$statistic) < 0.05)
|
16
|
-
})
|
17
|
-
|
18
|
-
|
19
|
-
context('Kolmogorov-Smirnov test for sample with custom interval')
|
20
|
-
croupier_uniform_5_33 <- read.table("../generated_samples/uniform_5_33.data")
|
21
|
-
ks_result<-ks.test(croupier_uniform_5_33$V1, "punif", min = 5, max = 33)
|
22
|
-
|
23
|
-
test_that("p-value > 0.05, uniform, [5,33]", {
|
24
|
-
expect_true(ks_result$p.value > 0.05)
|
25
|
-
})
|
26
|
-
|
27
|
-
test_that("statistic converging to 0", {
|
28
|
-
expect_true(as.numeric(ks_result$statistic) < 0.05)
|
29
|
-
})
|
30
|
-
|
data/test/testsuite.R
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
#!/usr/bin/env Rscript
|
2
|
-
#
|
3
|
-
# This script runs all the R tests of the croupier gem for all the distributions.
|
4
|
-
#
|
5
|
-
# Running the script:
|
6
|
-
# Option 1, Via Rscript:
|
7
|
-
# $> Rscript testsuite.R
|
8
|
-
#
|
9
|
-
# Option 2, from the R console:
|
10
|
-
# source('testsuite.R')
|
11
|
-
#
|
12
|
-
# Dependencies:
|
13
|
-
# In order to run the tests you need to have installed the following packages:
|
14
|
-
#
|
15
|
-
# - testthat
|
16
|
-
# - triangle
|
17
|
-
# - vcd
|
18
|
-
#
|
19
|
-
# Croupier will try to install them automatically if they are not included
|
20
|
-
# in your R installation.
|
21
|
-
|
22
|
-
if(require('testthat') == FALSE) {
|
23
|
-
install.packages('testthat', repos = "http://cran.r-project.org/", type="source")
|
24
|
-
require('testthat')
|
25
|
-
}
|
26
|
-
|
27
|
-
if(require('triangle') == FALSE) {
|
28
|
-
install.packages('triangle')
|
29
|
-
require('triangle')
|
30
|
-
}
|
31
|
-
if(require('vcd') == FALSE) {
|
32
|
-
install.packages('vcd')
|
33
|
-
require('vcd')
|
34
|
-
}
|
35
|
-
options(warn=-1)
|
36
|
-
test_dir("./distributions/R_tests/")
|
37
|
-
options(warn=0)
|