statsample 1.4.1 → 1.4.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +4 -3
- data/History.txt +4 -0
- data/README.md +4 -0
- data/lib/statsample/converter/csv.rb +41 -54
- data/lib/statsample/converters.rb +18 -19
- data/lib/statsample/version.rb +1 -1
- data/test/fixtures/scientific_notation.csv +4 -0
- data/test/helpers_tests.rb +37 -38
- data/test/test_analysis.rb +96 -97
- data/test/test_anova_contrast.rb +22 -22
- data/test/test_anovaoneway.rb +12 -12
- data/test/test_anovatwoway.rb +16 -17
- data/test/test_anovatwowaywithdataset.rb +22 -24
- data/test/test_anovawithvectors.rb +67 -69
- data/test/test_awesome_print_bug.rb +9 -9
- data/test/test_bartlettsphericity.rb +13 -13
- data/test/test_bivariate.rb +122 -126
- data/test/test_codification.rb +51 -49
- data/test/test_crosstab.rb +44 -40
- data/test/test_csv.rb +52 -70
- data/test/test_dataset.rb +347 -330
- data/test/test_dominance_analysis.rb +22 -24
- data/test/test_factor.rb +163 -166
- data/test/test_factor_map.rb +25 -30
- data/test/test_factor_pa.rb +28 -28
- data/test/test_ggobi.rb +19 -18
- data/test/test_gsl.rb +13 -15
- data/test/test_histogram.rb +74 -77
- data/test/test_matrix.rb +29 -31
- data/test/test_multiset.rb +132 -126
- data/test/test_regression.rb +143 -149
- data/test/test_reliability.rb +149 -155
- data/test/test_reliability_icc.rb +100 -104
- data/test/test_reliability_skillscale.rb +38 -40
- data/test/test_resample.rb +14 -12
- data/test/test_rserve_extension.rb +33 -33
- data/test/test_srs.rb +5 -5
- data/test/test_statistics.rb +52 -50
- data/test/test_stest.rb +27 -28
- data/test/test_stratified.rb +10 -10
- data/test/test_test_f.rb +17 -17
- data/test/test_test_kolmogorovsmirnov.rb +21 -21
- data/test/test_test_t.rb +52 -52
- data/test/test_umannwhitney.rb +16 -16
- data/test/test_vector.rb +419 -410
- data/test/test_wilcoxonsignedrank.rb +60 -63
- data/test/test_xls.rb +41 -41
- metadata +55 -5
- data/web/Rakefile +0 -39
data/test/test_anova_contrast.rb
CHANGED
@@ -1,36 +1,36 @@
|
|
1
|
-
require(File.expand_path(File.dirname(__FILE__)+'/helpers_tests.rb'))
|
2
|
-
class StatsampleAnovaContrastTestCase <
|
1
|
+
require(File.expand_path(File.dirname(__FILE__) + '/helpers_tests.rb'))
|
2
|
+
class StatsampleAnovaContrastTestCase < Minitest::Test
|
3
3
|
context(Statsample::Anova::Contrast) do
|
4
4
|
setup do
|
5
|
-
constant=[12,13,11,12,12].to_scale
|
6
|
-
frequent=[9,10,9,13,14].to_scale
|
7
|
-
infrequent=[15,16,17,16,16].to_scale
|
8
|
-
never=[17,18,12,18,20].to_scale
|
9
|
-
@vectors=[constant, frequent, infrequent, never]
|
10
|
-
@c=Statsample::Anova::Contrast.new(:vectors
|
5
|
+
constant = [12, 13, 11, 12, 12].to_scale
|
6
|
+
frequent = [9, 10, 9, 13, 14].to_scale
|
7
|
+
infrequent = [15, 16, 17, 16, 16].to_scale
|
8
|
+
never = [17, 18, 12, 18, 20].to_scale
|
9
|
+
@vectors = [constant, frequent, infrequent, never]
|
10
|
+
@c = Statsample::Anova::Contrast.new(vectors: @vectors)
|
11
11
|
end
|
12
|
-
should
|
13
|
-
@c.c([1
|
14
|
-
|
12
|
+
should 'return correct value using c' do
|
13
|
+
@c.c([1, -1.quo(3), -1.quo(3), -1.quo(3)])
|
14
|
+
# @c.c([1,-0.333,-0.333,-0.333])
|
15
15
|
assert_in_delta(-2.6667, @c.psi, 0.0001)
|
16
16
|
assert_in_delta(1.0165, @c.se, 0.0001)
|
17
17
|
assert_in_delta(-2.623, @c.t, 0.001)
|
18
|
-
assert_in_delta(-4.82, @c.confidence_interval[0],0.01)
|
19
|
-
assert_in_delta(-0.51, @c.confidence_interval[1],0.01)
|
20
|
-
assert(@c.summary.size>0)
|
18
|
+
assert_in_delta(-4.82, @c.confidence_interval[0], 0.01)
|
19
|
+
assert_in_delta(-0.51, @c.confidence_interval[1], 0.01)
|
20
|
+
assert(@c.summary.size > 0)
|
21
21
|
end
|
22
|
-
should
|
23
|
-
@c.c_by_index([0],[1,2,3])
|
22
|
+
should 'return correct values using c_by_index' do
|
23
|
+
@c.c_by_index([0], [1, 2, 3])
|
24
24
|
assert_in_delta(-2.6667, @c.psi, 0.0001)
|
25
25
|
assert_in_delta(1.0165, @c.se, 0.0001)
|
26
26
|
assert_in_delta(-2.623, @c.t, 0.001)
|
27
27
|
end
|
28
|
-
should
|
29
|
-
c1=Statsample::Anova::Contrast.new(:vectors
|
30
|
-
c2=Statsample::Anova::Contrast.new(:vectors
|
31
|
-
assert_equal(c1.psi,c2.psi)
|
32
|
-
assert_equal(c1.se,c2.se)
|
33
|
-
assert_equal(c1.t,c2.t)
|
28
|
+
should 'return correct values using incomplete c_by_index' do
|
29
|
+
c1 = Statsample::Anova::Contrast.new(vectors: @vectors, c: [0.5, 0.5, -1, 0])
|
30
|
+
c2 = Statsample::Anova::Contrast.new(vectors: @vectors, c1: [0, 1], c2: [2])
|
31
|
+
assert_equal(c1.psi, c2.psi)
|
32
|
+
assert_equal(c1.se, c2.se)
|
33
|
+
assert_equal(c1.t, c2.t)
|
34
34
|
end
|
35
35
|
end
|
36
36
|
end
|
data/test/test_anovaoneway.rb
CHANGED
@@ -1,26 +1,26 @@
|
|
1
|
-
require(File.expand_path(File.dirname(__FILE__)+'/helpers_tests.rb'))
|
2
|
-
class StatsampleAnovaOneWayTestCase <
|
1
|
+
require(File.expand_path(File.dirname(__FILE__) + '/helpers_tests.rb'))
|
2
|
+
class StatsampleAnovaOneWayTestCase < Minitest::Test
|
3
3
|
context(Statsample::Anova::OneWay) do
|
4
4
|
setup do
|
5
|
-
@ss_num=30.08
|
6
|
-
@ss_den=87.88
|
7
|
-
@df_num=2
|
8
|
-
@df_den=21
|
9
|
-
@anova=Statsample::Anova::OneWay.new(:ss_num
|
5
|
+
@ss_num = 30.08
|
6
|
+
@ss_den = 87.88
|
7
|
+
@df_num = 2
|
8
|
+
@df_den = 21
|
9
|
+
@anova = Statsample::Anova::OneWay.new(ss_num: @ss_num, ss_den: @ss_den, df_num: @df_num, df_den: @df_den)
|
10
10
|
end
|
11
|
-
should
|
11
|
+
should 'Statsample::Anova.oneway respond to #oneway' do
|
12
12
|
assert(Statsample::Anova.respond_to? :oneway)
|
13
13
|
end
|
14
|
-
should
|
14
|
+
should 'return correct value for ms_num and ms_den' do
|
15
15
|
assert_in_delta(15.04, @anova.ms_num, 0.01)
|
16
16
|
assert_in_delta(4.18, @anova.ms_den, 0.01)
|
17
17
|
end
|
18
|
-
should
|
18
|
+
should 'return correct value for f' do
|
19
19
|
assert_in_delta(3.59, @anova.f, 0.01)
|
20
20
|
end
|
21
|
-
should
|
21
|
+
should 'respond to summary' do
|
22
22
|
assert(@anova.respond_to? :summary)
|
23
|
-
assert(@anova.summary.size>0)
|
23
|
+
assert(@anova.summary.size > 0)
|
24
24
|
end
|
25
25
|
end
|
26
26
|
end
|
data/test/test_anovatwoway.rb
CHANGED
@@ -1,38 +1,37 @@
|
|
1
|
-
require(File.expand_path(File.dirname(__FILE__)+'/helpers_tests.rb'))
|
2
|
-
class StatsampleAnovaTwoWayTestCase <
|
1
|
+
require(File.expand_path(File.dirname(__FILE__) + '/helpers_tests.rb'))
|
2
|
+
class StatsampleAnovaTwoWayTestCase < Minitest::Test
|
3
3
|
context(Statsample::Anova::TwoWay) do
|
4
4
|
setup do
|
5
|
-
@ss_a=192.2
|
6
|
-
@ss_b=57.8
|
7
|
-
@ss_axb=168.2
|
8
|
-
@ss_within=75.6
|
9
|
-
@df_a
|
10
|
-
@df_within=16
|
11
|
-
@anova=Statsample::Anova::TwoWay.new(:ss_a
|
5
|
+
@ss_a = 192.2
|
6
|
+
@ss_b = 57.8
|
7
|
+
@ss_axb = 168.2
|
8
|
+
@ss_within = 75.6
|
9
|
+
@df_a = @df_b = 1
|
10
|
+
@df_within = 16
|
11
|
+
@anova = Statsample::Anova::TwoWay.new(ss_a: @ss_a, ss_b: @ss_b, ss_axb: @ss_axb, ss_within: @ss_within, df_a: @df_a, df_b: @df_b, df_within: @df_within)
|
12
12
|
end
|
13
|
-
should
|
14
|
-
|
13
|
+
should 'Statsample::Anova.twoway respond to #twoway' do
|
14
|
+
assert(Statsample::Anova.respond_to? :twoway)
|
15
15
|
end
|
16
|
-
should
|
16
|
+
should 'return correct value for ms_a, ms_b and ms_axb' do
|
17
17
|
assert_in_delta(192.2, @anova.ms_a, 0.01)
|
18
18
|
assert_in_delta(57.8, @anova.ms_b, 0.01)
|
19
19
|
assert_in_delta(168.2, @anova.ms_axb, 0.01)
|
20
|
-
|
21
20
|
end
|
22
|
-
should
|
21
|
+
should 'return correct value for f ' do
|
23
22
|
assert_in_delta(40.68, @anova.f_a, 0.01)
|
24
23
|
assert_in_delta(12.23, @anova.f_b, 0.01)
|
25
24
|
assert_in_delta(35.60, @anova.f_axb, 0.01)
|
26
25
|
end
|
27
|
-
should
|
26
|
+
should 'return correct value for probability for f ' do
|
28
27
|
assert(@anova.f_a_probability < 0.05)
|
29
28
|
assert(@anova.f_b_probability < 0.05)
|
30
29
|
assert(@anova.f_axb_probability < 0.05)
|
31
30
|
end
|
32
31
|
|
33
|
-
should
|
32
|
+
should 'respond to summary' do
|
34
33
|
assert(@anova.respond_to? :summary)
|
35
|
-
assert(@anova.summary.size>0)
|
34
|
+
assert(@anova.summary.size > 0)
|
36
35
|
end
|
37
36
|
end
|
38
37
|
end
|
@@ -1,49 +1,47 @@
|
|
1
|
-
require(File.expand_path(File.dirname(__FILE__)+'/helpers_tests.rb'))
|
1
|
+
require(File.expand_path(File.dirname(__FILE__) + '/helpers_tests.rb'))
|
2
2
|
# Reference:
|
3
3
|
# * http://www.uwsp.edu/psych/Stat/13/anova-2w.htm#III
|
4
|
-
class StatsampleAnovaTwoWayWithVectorsTestCase <
|
4
|
+
class StatsampleAnovaTwoWayWithVectorsTestCase < Minitest::Test
|
5
5
|
context(Statsample::Anova::TwoWayWithVectors) do
|
6
6
|
setup do
|
7
|
-
@pa=[5,4,3,4,2,18,19,14,12,15,6,7,5,8,4,6,9,5,9,3].to_scale
|
8
|
-
@pa.name=
|
9
|
-
@a=[0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1].to_vector
|
10
|
-
@a.labels={0=>'0%',1=>'35%'}
|
11
|
-
@a.name='Diet'
|
12
|
-
@b=[0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1].to_vector
|
13
|
-
@b.labels={0=>'Young',1=>'Older'}
|
14
|
-
@b.name=
|
15
|
-
@anova=Statsample::Anova::TwoWayWithVectors.new(:a
|
7
|
+
@pa = [5, 4, 3, 4, 2, 18, 19, 14, 12, 15, 6, 7, 5, 8, 4, 6, 9, 5, 9, 3].to_scale
|
8
|
+
@pa.name = 'Passive Avoidance'
|
9
|
+
@a = [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1].to_vector
|
10
|
+
@a.labels = { 0 => '0%', 1 => '35%' }
|
11
|
+
@a.name = 'Diet'
|
12
|
+
@b = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1].to_vector
|
13
|
+
@b.labels = { 0 => 'Young', 1 => 'Older' }
|
14
|
+
@b.name = 'Age'
|
15
|
+
@anova = Statsample::Anova::TwoWayWithVectors.new(a: @a, b: @b, dependent: @pa)
|
16
16
|
end
|
17
|
-
should
|
18
|
-
|
17
|
+
should 'Statsample::Anova respond to #twoway_with_vectors' do
|
18
|
+
assert(Statsample::Anova.respond_to? :twoway_with_vectors)
|
19
19
|
end
|
20
|
-
should
|
21
|
-
@anova2=Statsample::Anova.twoway_with_vectors(:a
|
20
|
+
should '#new returns the same as Statsample::Anova.twoway_with_vectors' do
|
21
|
+
@anova2 = Statsample::Anova.twoway_with_vectors(a: @a, b: @b, dependent: @pa)
|
22
22
|
assert_equal(@anova.summary, @anova2.summary)
|
23
23
|
end
|
24
|
-
should
|
24
|
+
should 'return correct value for ms_a, ms_b and ms_axb' do
|
25
25
|
assert_in_delta(192.2, @anova.ms_a, 0.01)
|
26
26
|
assert_in_delta(57.8, @anova.ms_b, 0.01)
|
27
27
|
assert_in_delta(168.2, @anova.ms_axb, 0.01)
|
28
|
-
|
29
28
|
end
|
30
|
-
should
|
29
|
+
should 'return correct value for f ' do
|
31
30
|
assert_in_delta(40.68, @anova.f_a, 0.01)
|
32
31
|
assert_in_delta(12.23, @anova.f_b, 0.01)
|
33
32
|
assert_in_delta(35.60, @anova.f_axb, 0.01)
|
34
33
|
end
|
35
|
-
should
|
34
|
+
should 'return correct value for probability for f ' do
|
36
35
|
assert(@anova.f_a_probability < 0.05)
|
37
36
|
assert(@anova.f_b_probability < 0.05)
|
38
37
|
assert(@anova.f_axb_probability < 0.05)
|
39
38
|
end
|
40
39
|
|
41
|
-
should
|
42
|
-
|
43
|
-
@anova.
|
44
|
-
@anova.summary_levene=true
|
40
|
+
should 'respond to summary' do
|
41
|
+
@anova.summary_descriptives = true
|
42
|
+
@anova.summary_levene = true
|
45
43
|
assert(@anova.respond_to? :summary)
|
46
|
-
assert(@anova.summary.size>0)
|
44
|
+
assert(@anova.summary.size > 0)
|
47
45
|
end
|
48
46
|
end
|
49
47
|
end
|
@@ -1,102 +1,100 @@
|
|
1
|
-
require(File.expand_path(File.dirname(__FILE__)+'/helpers_tests.rb'))
|
2
|
-
class StatsampleAnovaOneWayWithVectorsTestCase <
|
1
|
+
require(File.expand_path(File.dirname(__FILE__) + '/helpers_tests.rb'))
|
2
|
+
class StatsampleAnovaOneWayWithVectorsTestCase < Minitest::Test
|
3
3
|
context(Statsample::Anova::OneWayWithVectors) do
|
4
|
-
|
5
|
-
context("when initializing") do
|
4
|
+
context('when initializing') do
|
6
5
|
setup do
|
7
|
-
@v1=10.times.map {rand(100)}.to_scale
|
8
|
-
@v2=10.times.map {rand(100)}.to_scale
|
9
|
-
@v3=10.times.map {rand(100)}.to_scale
|
6
|
+
@v1 = 10.times.map { rand(100) }.to_scale
|
7
|
+
@v2 = 10.times.map { rand(100) }.to_scale
|
8
|
+
@v3 = 10.times.map { rand(100) }.to_scale
|
10
9
|
end
|
11
|
-
should
|
12
|
-
a1=Statsample::Anova::OneWayWithVectors.new(@v1
|
13
|
-
a2=Statsample::Anova::OneWayWithVectors.new([@v1
|
14
|
-
assert_equal(a1.f,a2.f)
|
10
|
+
should 'be the same using [] or args*' do
|
11
|
+
a1 = Statsample::Anova::OneWayWithVectors.new(@v1, @v2, @v3)
|
12
|
+
a2 = Statsample::Anova::OneWayWithVectors.new([@v1, @v2, @v3])
|
13
|
+
assert_equal(a1.f, a2.f)
|
15
14
|
end
|
16
|
-
should
|
17
|
-
a1=Statsample::Anova::OneWayWithVectors.new(@v1
|
18
|
-
a2=Statsample::Anova.oneway_with_vectors(@v1
|
19
|
-
assert_equal(a1.f,a2.f)
|
15
|
+
should 'be the same using module method or object instantiation' do
|
16
|
+
a1 = Statsample::Anova::OneWayWithVectors.new(@v1, @v2, @v3)
|
17
|
+
a2 = Statsample::Anova.oneway_with_vectors(@v1, @v2, @v3)
|
18
|
+
assert_equal(a1.f, a2.f)
|
20
19
|
end
|
21
|
-
should
|
22
|
-
a1=Statsample::Anova::OneWayWithVectors.new(@v1
|
20
|
+
should 'detect optional hash' do
|
21
|
+
a1 = Statsample::Anova::OneWayWithVectors.new(@v1, @v2, @v3, name: 'aaa')
|
23
22
|
assert_equal('aaa', a1.name)
|
24
23
|
end
|
25
|
-
should
|
26
|
-
a1=Statsample::Anova::OneWayWithVectors.new(@v1
|
27
|
-
a2=Statsample::Anova::OneWayWithVectors.new(@v1,nil,nil
|
28
|
-
assert_equal(a1.f,a2.f)
|
24
|
+
should 'omit incorrect arguments' do
|
25
|
+
a1 = Statsample::Anova::OneWayWithVectors.new(@v1, @v2, @v3, name: 'aaa')
|
26
|
+
a2 = Statsample::Anova::OneWayWithVectors.new(@v1, nil, nil, @v2, @v3, name: 'aaa')
|
27
|
+
assert_equal(a1.f, a2.f)
|
29
28
|
end
|
30
29
|
end
|
31
30
|
setup do
|
32
|
-
@v1=[3,3,2,3,6].to_vector(:scale)
|
33
|
-
@v2=[7,6,5,6,7].to_vector(:scale)
|
34
|
-
@v3=[9,8,9,7,8].to_vector(:scale)
|
35
|
-
@name=
|
36
|
-
@anova=Statsample::Anova::OneWayWithVectors.new(@v1
|
37
|
-
end
|
38
|
-
should
|
39
|
-
c1=Statsample::Anova::Contrast.new(:
|
40
|
-
|
41
|
-
c2
|
42
|
-
assert_equal(c1.t,c2.t)
|
43
|
-
|
44
|
-
|
45
|
-
should "respond to #summary" do
|
31
|
+
@v1 = [3, 3, 2, 3, 6].to_vector(:scale)
|
32
|
+
@v2 = [7, 6, 5, 6, 7].to_vector(:scale)
|
33
|
+
@v3 = [9, 8, 9, 7, 8].to_vector(:scale)
|
34
|
+
@name = 'Anova testing'
|
35
|
+
@anova = Statsample::Anova::OneWayWithVectors.new(@v1, @v2, @v3, name: @name)
|
36
|
+
end
|
37
|
+
should 'store correctly contrasts' do
|
38
|
+
c1 = Statsample::Anova::Contrast.new(vectors: [@v1, @v2, @v3], c: [1, -0.5, -0.5])
|
39
|
+
|
40
|
+
c2 = @anova.contrast(c: [1, -0.5, -0.5])
|
41
|
+
assert_equal(c1.t, c2.t)
|
42
|
+
end
|
43
|
+
should 'respond to #summary' do
|
46
44
|
assert(@anova.respond_to? :summary)
|
47
45
|
end
|
48
|
-
should
|
46
|
+
should 'have correct name of analysis on #summary' do
|
49
47
|
assert_match(/#{@name}/, @anova.summary)
|
50
48
|
end
|
51
|
-
should
|
52
|
-
assert_equal(@anova.levene.f, Statsample::Test.levene([@v1
|
49
|
+
should 'returns same levene values as direct Levene creation' do
|
50
|
+
assert_equal(@anova.levene.f, Statsample::Test.levene([@v1, @v2, @v3]).f)
|
53
51
|
end
|
54
|
-
should
|
55
|
-
assert_in_delta(0.604
|
56
|
-
assert_in_delta(0.562
|
52
|
+
should 'have correct value for levene' do
|
53
|
+
assert_in_delta(0.604, @anova.levene.f, 0.001)
|
54
|
+
assert_in_delta(0.562, @anova.levene.probability, 0.001)
|
57
55
|
end
|
58
|
-
should
|
59
|
-
|
56
|
+
should 'have correct value for sst' do
|
57
|
+
assert_in_delta(72.933, @anova.sst, 0.001)
|
60
58
|
end
|
61
|
-
should
|
62
|
-
assert_in_delta(14.8
|
59
|
+
should 'have correct value for sswg' do
|
60
|
+
assert_in_delta(14.8, @anova.sswg, 0.001)
|
63
61
|
end
|
64
|
-
should
|
65
|
-
assert_in_delta(58.133
|
62
|
+
should 'have correct value for ssb' do
|
63
|
+
assert_in_delta(58.133, @anova.ssbg, 0.001)
|
66
64
|
end
|
67
|
-
should
|
68
|
-
assert_in_delta(@anova.sst
|
65
|
+
should 'sst=sswg+ssbg' do
|
66
|
+
assert_in_delta(@anova.sst, @anova.sswg + @anova.ssbg, 0.00001)
|
69
67
|
end
|
70
|
-
should
|
71
|
-
assert_equal(@v1.n
|
68
|
+
should 'df total equal to number of n-1' do
|
69
|
+
assert_equal(@v1.n + @v2.n + @v3.n - 1, @anova.df_total)
|
72
70
|
end
|
73
|
-
should
|
74
|
-
assert_equal(@v1.n
|
71
|
+
should 'df wg equal to number of n-k' do
|
72
|
+
assert_equal(@v1.n + @v2.n + @v3.n - 3, @anova.df_wg)
|
75
73
|
end
|
76
|
-
should
|
77
|
-
assert_equal(2
|
74
|
+
should 'df bg equal to number of k-1' do
|
75
|
+
assert_equal(2, @anova.df_bg)
|
78
76
|
end
|
79
|
-
should
|
80
|
-
assert_in_delta((@anova.ssbg.quo(@anova.df_bg)).quo(
|
77
|
+
should 'f=(ssbg/df_bg)/(sswt/df_wt)' do
|
78
|
+
assert_in_delta((@anova.ssbg.quo(@anova.df_bg)).quo(@anova.sswg.quo(@anova.df_wg)), @anova.f, 0.001)
|
81
79
|
end
|
82
|
-
should
|
83
|
-
assert(@anova.probability<0.01)
|
80
|
+
should 'p be correct' do
|
81
|
+
assert(@anova.probability < 0.01)
|
84
82
|
end
|
85
|
-
should
|
86
|
-
anova2=Statsample::Anova::OneWayWithVectors.new([@v1
|
87
|
-
assert_in_delta(3.960, anova2.f,0.001)
|
88
|
-
assert_in_delta(0.016, anova2.probability,0.001)
|
83
|
+
should 'be correct using different test values' do
|
84
|
+
anova2 = Statsample::Anova::OneWayWithVectors.new([@v1, @v1, @v1, @v1, @v2])
|
85
|
+
assert_in_delta(3.960, anova2.f, 0.001)
|
86
|
+
assert_in_delta(0.016, anova2.probability, 0.001)
|
89
87
|
end
|
90
|
-
context
|
88
|
+
context 'with extra information on summary' do
|
91
89
|
setup do
|
92
|
-
@anova.summary_descriptives=true
|
93
|
-
@anova.summary_levene=true
|
94
|
-
@summary
|
90
|
+
@anova.summary_descriptives = true
|
91
|
+
@anova.summary_levene = true
|
92
|
+
@summary = @anova.summary
|
95
93
|
end
|
96
|
-
should
|
94
|
+
should 'have section with levene statistics' do
|
97
95
|
assert_match(/Levene/, @summary)
|
98
96
|
end
|
99
|
-
should
|
97
|
+
should 'have section with descriptives' do
|
100
98
|
assert_match(/Min/, @summary)
|
101
99
|
end
|
102
100
|
end
|
@@ -1,14 +1,14 @@
|
|
1
|
-
require(File.expand_path(File.dirname(__FILE__)+'/helpers_tests.rb'))
|
2
|
-
class StatsampleAwesomePrintBug <
|
3
|
-
context(
|
1
|
+
require(File.expand_path(File.dirname(__FILE__) + '/helpers_tests.rb'))
|
2
|
+
class StatsampleAwesomePrintBug < Minitest::Test
|
3
|
+
context('Awesome Print integration') do
|
4
4
|
setup do
|
5
|
-
require
|
5
|
+
require 'awesome_print'
|
6
6
|
end
|
7
|
-
should
|
8
|
-
a=[1,2,3].to_scale
|
9
|
-
|
10
|
-
assert(a!=[1,2,3])
|
11
|
-
assert_nothing_raised do
|
7
|
+
should 'should be flawless' do
|
8
|
+
a = [1, 2, 3].to_scale
|
9
|
+
|
10
|
+
assert(a != [1, 2, 3])
|
11
|
+
assert_nothing_raised do
|
12
12
|
ap a
|
13
13
|
end
|
14
14
|
end
|
@@ -1,25 +1,25 @@
|
|
1
|
-
require(File.expand_path(File.dirname(__FILE__)+'/helpers_tests.rb'))
|
1
|
+
require(File.expand_path(File.dirname(__FILE__) + '/helpers_tests.rb'))
|
2
2
|
|
3
|
-
class StatsampleBartlettSphericityTestCase <
|
3
|
+
class StatsampleBartlettSphericityTestCase < Minitest::Test
|
4
4
|
include Statsample::Test
|
5
5
|
context Statsample::Test::BartlettSphericity do
|
6
6
|
setup do
|
7
|
-
@v1=[1 ,
|
8
|
-
@v2=[5 ,
|
9
|
-
@v3=[10,3
|
7
|
+
@v1 = [1, 2, 3, 4, 7, 8, 9, 10, 14, 15, 20, 50, 60, 70].to_scale
|
8
|
+
@v2 = [5, 6, 11, 12, 13, 16, 17, 18, 19, 20, 30, 0, 0, 0].to_scale
|
9
|
+
@v3 = [10, 3, 20, 30, 40, 50, 80, 10, 20, 30, 40, 2, 3, 4].to_scale
|
10
10
|
# KMO: 0.490
|
11
|
-
ds={'v1'
|
12
|
-
cor=Statsample::Bivariate.correlation_matrix(ds)
|
13
|
-
@bs=Statsample::Test::BartlettSphericity.new(cor, 14)
|
11
|
+
ds = { 'v1' => @v1, 'v2' => @v2, 'v3' => @v3 }.to_dataset
|
12
|
+
cor = Statsample::Bivariate.correlation_matrix(ds)
|
13
|
+
@bs = Statsample::Test::BartlettSphericity.new(cor, 14)
|
14
14
|
end
|
15
|
-
should
|
16
|
-
assert_in_delta(9.477, @bs.value,0.001)
|
15
|
+
should 'have correct value for chi' do
|
16
|
+
assert_in_delta(9.477, @bs.value, 0.001)
|
17
17
|
end
|
18
|
-
should
|
18
|
+
should 'have correct value for df' do
|
19
19
|
assert_equal(3, @bs.df)
|
20
20
|
end
|
21
|
-
should
|
22
|
-
assert_in_delta(0.024
|
21
|
+
should 'have correct value for probability' do
|
22
|
+
assert_in_delta(0.024, @bs.probability, 0.001)
|
23
23
|
end
|
24
24
|
end
|
25
25
|
end
|