croupier 1.6.0 → 2.0.0.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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)
|