statsample 1.4.1 → 1.4.2
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 +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
 
| 
         @@ -1,140 +1,138 @@ 
     | 
|
| 
       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 
     | 
    
         
            -
            $reliability_icc=nil
         
     | 
| 
      
 3 
     | 
    
         
            +
            $reliability_icc = nil
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
            class StatsampleReliabilityIccTestCase <  
     | 
| 
      
 5 
     | 
    
         
            +
            class StatsampleReliabilityIccTestCase < Minitest::Test
         
     | 
| 
       6 
6 
     | 
    
         
             
              context Statsample::Reliability::ICC do
         
     | 
| 
       7 
7 
     | 
    
         
             
                setup do
         
     | 
| 
       8 
     | 
    
         
            -
                  a=[9,6,8,7,10,6].to_scale
         
     | 
| 
       9 
     | 
    
         
            -
                  b=[2,1,4,1,5,2].to_scale
         
     | 
| 
       10 
     | 
    
         
            -
                  c=[5,3,6,2,6,4].to_scale
         
     | 
| 
       11 
     | 
    
         
            -
                  d=[8,2,8,6,9,7].to_scale
         
     | 
| 
       12 
     | 
    
         
            -
                  @ds={'a'=>a,'b'=>b,'c'=>c,'d'=>d}.to_dataset
         
     | 
| 
       13 
     | 
    
         
            -
                  @icc=Statsample::Reliability::ICC.new(@ds)
         
     | 
| 
      
 8 
     | 
    
         
            +
                  a = [9, 6, 8, 7, 10, 6].to_scale
         
     | 
| 
      
 9 
     | 
    
         
            +
                  b = [2, 1, 4, 1, 5, 2].to_scale
         
     | 
| 
      
 10 
     | 
    
         
            +
                  c = [5, 3, 6, 2, 6, 4].to_scale
         
     | 
| 
      
 11 
     | 
    
         
            +
                  d = [8, 2, 8, 6, 9, 7].to_scale
         
     | 
| 
      
 12 
     | 
    
         
            +
                  @ds = { 'a' => a, 'b' => b, 'c' => c, 'd' => d }.to_dataset
         
     | 
| 
      
 13 
     | 
    
         
            +
                  @icc = Statsample::Reliability::ICC.new(@ds)
         
     | 
| 
       14 
14 
     | 
    
         
             
                end
         
     | 
| 
       15 
     | 
    
         
            -
                should  
     | 
| 
       16 
     | 
    
         
            -
                  assert_equal(6 
     | 
| 
       17 
     | 
    
         
            -
                  assert_equal(4 
     | 
| 
      
 15 
     | 
    
         
            +
                should 'basic method be correct' do
         
     | 
| 
      
 16 
     | 
    
         
            +
                  assert_equal(6, @icc.n)
         
     | 
| 
      
 17 
     | 
    
         
            +
                  assert_equal(4, @icc.k)
         
     | 
| 
       18 
18 
     | 
    
         
             
                end
         
     | 
| 
       19 
     | 
    
         
            -
                should  
     | 
| 
      
 19 
     | 
    
         
            +
                should 'total mean be correct' do
         
     | 
| 
       20 
20 
     | 
    
         
             
                  assert_in_delta(5.291, @icc.total_mean, 0.001)
         
     | 
| 
       21 
21 
     | 
    
         
             
                end
         
     | 
| 
       22 
     | 
    
         
            -
                should  
     | 
| 
      
 22 
     | 
    
         
            +
                should 'df methods be correct' do
         
     | 
| 
       23 
23 
     | 
    
         
             
                  assert_equal(5,  @icc.df_bt)
         
     | 
| 
       24 
24 
     | 
    
         
             
                  assert_equal(18, @icc.df_wt)
         
     | 
| 
       25 
25 
     | 
    
         
             
                  assert_equal(3,  @icc.df_bj)
         
     | 
| 
       26 
26 
     | 
    
         
             
                  assert_equal(15, @icc.df_residual)
         
     | 
| 
       27 
27 
     | 
    
         
             
                end
         
     | 
| 
       28 
     | 
    
         
            -
                should  
     | 
| 
      
 28 
     | 
    
         
            +
                should 'ms between targets be correct' do
         
     | 
| 
       29 
29 
     | 
    
         
             
                  assert_in_delta(11.24, @icc.ms_bt, 0.01)
         
     | 
| 
       30 
30 
     | 
    
         
             
                end
         
     | 
| 
       31 
     | 
    
         
            -
                should  
     | 
| 
      
 31 
     | 
    
         
            +
                should 'ms within targets be correct' do
         
     | 
| 
       32 
32 
     | 
    
         
             
                  assert_in_delta(6.26,  @icc.ms_wt, 0.01)
         
     | 
| 
       33 
33 
     | 
    
         
             
                end
         
     | 
| 
       34 
     | 
    
         
            -
                should  
     | 
| 
      
 34 
     | 
    
         
            +
                should 'ms between judges be correct' do
         
     | 
| 
       35 
35 
     | 
    
         
             
                  assert_in_delta(32.49, @icc.ms_bj, 0.01)
         
     | 
| 
       36 
36 
     | 
    
         
             
                end
         
     | 
| 
       37 
     | 
    
         
            -
                should  
     | 
| 
      
 37 
     | 
    
         
            +
                should 'ms residual be correct' do
         
     | 
| 
       38 
38 
     | 
    
         
             
                  assert_in_delta(1.02,  @icc.ms_residual, 0.01)
         
     | 
| 
       39 
39 
     | 
    
         
             
                end
         
     | 
| 
       40 
     | 
    
         
            -
                context  
     | 
| 
       41 
     | 
    
         
            -
                  
         
     | 
| 
      
 40 
     | 
    
         
            +
                context 'with McGraw and Wong denominations,' do
         
     | 
| 
       42 
41 
     | 
    
         
             
                end
         
     | 
| 
       43 
     | 
    
         
            -
                context  
     | 
| 
       44 
     | 
    
         
            -
                  should  
     | 
| 
      
 42 
     | 
    
         
            +
                context 'with Shrout & Fleiss denominations, ' do
         
     | 
| 
      
 43 
     | 
    
         
            +
                  should 'icc(1,1) method be correct' do
         
     | 
| 
       45 
44 
     | 
    
         
             
                    assert_in_delta(0.17, @icc.icc_1_1, 0.01)
         
     | 
| 
       46 
45 
     | 
    
         
             
                  end
         
     | 
| 
       47 
46 
     | 
    
         
             
                  # Verified on SPSS and R
         
     | 
| 
       48 
     | 
    
         
            -
                  should  
     | 
| 
      
 47 
     | 
    
         
            +
                  should 'icc(2,1) method be correct' do
         
     | 
| 
       49 
48 
     | 
    
         
             
                    assert_in_delta(0.29, @icc.icc_2_1, 0.01)
         
     | 
| 
       50 
49 
     | 
    
         
             
                  end
         
     | 
| 
       51 
     | 
    
         
            -
                  should  
     | 
| 
      
 50 
     | 
    
         
            +
                  should 'icc(3,1) method be correct' do
         
     | 
| 
       52 
51 
     | 
    
         
             
                    assert_in_delta(0.71, @icc.icc_3_1, 0.01)
         
     | 
| 
       53 
52 
     | 
    
         
             
                  end
         
     | 
| 
       54 
     | 
    
         
            -
                  should  
     | 
| 
      
 53 
     | 
    
         
            +
                  should 'icc(1,k) method be correct' do
         
     | 
| 
       55 
54 
     | 
    
         
             
                    assert_in_delta(0.44, @icc.icc_1_k, 0.01)
         
     | 
| 
       56 
55 
     | 
    
         
             
                  end
         
     | 
| 
       57 
56 
     | 
    
         
             
                  # Verified on SPSS and R
         
     | 
| 
       58 
     | 
    
         
            -
                  should  
     | 
| 
      
 57 
     | 
    
         
            +
                  should 'icc(2,k) method be correct' do
         
     | 
| 
       59 
58 
     | 
    
         
             
                    assert_in_delta(0.62, @icc.icc_2_k, 0.01)
         
     | 
| 
       60 
     | 
    
         
            -
                  end 
     | 
| 
       61 
     | 
    
         
            -
                  should  
     | 
| 
      
 59 
     | 
    
         
            +
                  end
         
     | 
| 
      
 60 
     | 
    
         
            +
                  should 'icc(3,k) method be correct' do
         
     | 
| 
       62 
61 
     | 
    
         
             
                    assert_in_delta(0.91, @icc.icc_3_k, 0.01)
         
     | 
| 
       63 
62 
     | 
    
         
             
                  end
         
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
     | 
    
         
            -
                  should  
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
                  should 'icc(1,1) F be correct' do
         
     | 
| 
       66 
65 
     | 
    
         
             
                    assert_in_delta(1.795, @icc.icc_1_f.f)
         
     | 
| 
       67 
66 
     | 
    
         
             
                  end
         
     | 
| 
       68 
     | 
    
         
            -
                  should  
     | 
| 
      
 67 
     | 
    
         
            +
                  should 'icc(1,1) confidence interval should be correct' do
         
     | 
| 
       69 
68 
     | 
    
         
             
                    assert_in_delta(-0.133, @icc.icc_1_1_ci[0], 0.001)
         
     | 
| 
       70 
69 
     | 
    
         
             
                    assert_in_delta(0.723, @icc.icc_1_1_ci[1], 0.001)
         
     | 
| 
       71 
70 
     | 
    
         
             
                  end
         
     | 
| 
       72 
     | 
    
         
            -
                  should  
     | 
| 
      
 71 
     | 
    
         
            +
                  should 'icc(1,k) confidence interval should be correct' do
         
     | 
| 
       73 
72 
     | 
    
         
             
                    assert_in_delta(-0.884, @icc.icc_1_k_ci[0], 0.001)
         
     | 
| 
       74 
73 
     | 
    
         
             
                    assert_in_delta(0.912, @icc.icc_1_k_ci[1], 0.001)
         
     | 
| 
       75 
74 
     | 
    
         
             
                  end
         
     | 
| 
       76 
     | 
    
         
            -
             
     | 
| 
       77 
     | 
    
         
            -
                  should  
     | 
| 
      
 75 
     | 
    
         
            +
             
     | 
| 
      
 76 
     | 
    
         
            +
                  should 'icc(2,1) F be correct' do
         
     | 
| 
       78 
77 
     | 
    
         
             
                    assert_in_delta(11.027, @icc.icc_2_f.f)
         
     | 
| 
       79 
78 
     | 
    
         
             
                  end
         
     | 
| 
       80 
     | 
    
         
            -
                  should  
     | 
| 
       81 
     | 
    
         
            -
                    #skip("Not yet operational")
         
     | 
| 
      
 79 
     | 
    
         
            +
                  should 'icc(2,1) confidence interval should be correct' do
         
     | 
| 
      
 80 
     | 
    
         
            +
                    # skip("Not yet operational")
         
     | 
| 
       82 
81 
     | 
    
         
             
                    assert_in_delta(0.019, @icc.icc_2_1_ci[0], 0.001)
         
     | 
| 
       83 
82 
     | 
    
         
             
                    assert_in_delta(0.761, @icc.icc_2_1_ci[1], 0.001)
         
     | 
| 
       84 
83 
     | 
    
         
             
                  end
         
     | 
| 
       85 
     | 
    
         
            -
             
     | 
| 
       86 
     | 
    
         
            -
                  # Verified on SPSS and R 
     | 
| 
       87 
     | 
    
         
            -
                  should  
     | 
| 
       88 
     | 
    
         
            -
                    #skip("Not yet operational")
         
     | 
| 
       89 
     | 
    
         
            -
                    #p @icc.icc_2_k_ci
         
     | 
| 
      
 84 
     | 
    
         
            +
             
     | 
| 
      
 85 
     | 
    
         
            +
                  # Verified on SPSS and R
         
     | 
| 
      
 86 
     | 
    
         
            +
                  should 'icc(2,k) confidence interval should be correct' do
         
     | 
| 
      
 87 
     | 
    
         
            +
                    # skip("Not yet operational")
         
     | 
| 
      
 88 
     | 
    
         
            +
                    # p @icc.icc_2_k_ci
         
     | 
| 
       90 
89 
     | 
    
         
             
                    assert_in_delta(0.039, @icc.icc_2_k_ci[0], 0.001)
         
     | 
| 
       91 
90 
     | 
    
         
             
                    assert_in_delta(0.929, @icc.icc_2_k_ci[1], 0.001)
         
     | 
| 
       92 
     | 
    
         
            -
             
     | 
| 
       93 
91 
     | 
    
         
             
                  end
         
     | 
| 
       94 
     | 
    
         
            -
                  #should "Shrout icc(2,k) and McGraw icc(a,k) ci be equal" do
         
     | 
| 
      
 92 
     | 
    
         
            +
                  # should "Shrout icc(2,k) and McGraw icc(a,k) ci be equal" do
         
     | 
| 
       95 
93 
     | 
    
         
             
                  #  assert_in_delta(@icc.icc_2_k_ci_shrout[0], @icc.icc_2_k_ci_mcgraw[0], 10e-5)
         
     | 
| 
       96 
     | 
    
         
            -
                  #end
         
     | 
| 
       97 
     | 
    
         
            -
             
     | 
| 
       98 
     | 
    
         
            -
                  should  
     | 
| 
      
 94 
     | 
    
         
            +
                  # end
         
     | 
| 
      
 95 
     | 
    
         
            +
             
     | 
| 
      
 96 
     | 
    
         
            +
                  should 'icc(3,1) F be correct' do
         
     | 
| 
       99 
97 
     | 
    
         
             
                    assert_in_delta(11.027, @icc.icc_3_f.f)
         
     | 
| 
       100 
98 
     | 
    
         
             
                  end
         
     | 
| 
       101 
     | 
    
         
            -
             
     | 
| 
       102 
     | 
    
         
            -
                  should  
     | 
| 
      
 99 
     | 
    
         
            +
             
     | 
| 
      
 100 
     | 
    
         
            +
                  should 'icc(3,1) confidence interval should be correct' do
         
     | 
| 
       103 
101 
     | 
    
         
             
                    assert_in_delta(0.342, @icc.icc_3_1_ci[0], 0.001)
         
     | 
| 
       104 
102 
     | 
    
         
             
                    assert_in_delta(0.946, @icc.icc_3_1_ci[1], 0.001)
         
     | 
| 
       105 
103 
     | 
    
         
             
                  end
         
     | 
| 
       106 
     | 
    
         
            -
                  should  
     | 
| 
      
 104 
     | 
    
         
            +
                  should 'icc(3,k) confidence interval should be correct' do
         
     | 
| 
       107 
105 
     | 
    
         
             
                    assert_in_delta(0.676, @icc.icc_3_k_ci[0], 0.001)
         
     | 
| 
       108 
106 
     | 
    
         
             
                    assert_in_delta(0.986, @icc.icc_3_k_ci[1], 0.001)
         
     | 
| 
       109 
107 
     | 
    
         
             
                  end
         
     | 
| 
       110 
     | 
    
         
            -
                  should  
     | 
| 
       111 
     | 
    
         
            -
                    assert_raise(::RuntimeError) do 
     | 
| 
       112 
     | 
    
         
            -
                      @icc.type 
     | 
| 
      
 108 
     | 
    
         
            +
                  should 'incorrect type raises an error' do
         
     | 
| 
      
 109 
     | 
    
         
            +
                    assert_raise(::RuntimeError) do
         
     | 
| 
      
 110 
     | 
    
         
            +
                      @icc.type = :nonexistant_type
         
     | 
| 
       113 
111 
     | 
    
         
             
                    end
         
     | 
| 
       114 
112 
     | 
    
         
             
                  end
         
     | 
| 
       115 
113 
     | 
    
         
             
                end
         
     | 
| 
       116 
     | 
    
         
            -
             
     | 
| 
      
 114 
     | 
    
         
            +
             
     | 
| 
       117 
115 
     | 
    
         
             
                begin
         
     | 
| 
       118 
116 
     | 
    
         
             
                  require 'rserve'
         
     | 
| 
       119 
117 
     | 
    
         
             
                  require 'statsample/rserve_extension'
         
     | 
| 
       120 
     | 
    
         
            -
                  context  
     | 
| 
      
 118 
     | 
    
         
            +
                  context 'McGraw and Wong' do
         
     | 
| 
       121 
119 
     | 
    
         
             
                    teardown do
         
     | 
| 
       122 
     | 
    
         
            -
                      @r 
     | 
| 
      
 120 
     | 
    
         
            +
                      @r = $reliability_icc[:r].close unless $reliability_icc[:r].nil?
         
     | 
| 
       123 
121 
     | 
    
         
             
                    end
         
     | 
| 
       124 
122 
     | 
    
         
             
                    setup do
         
     | 
| 
       125 
     | 
    
         
            -
                      if 
     | 
| 
       126 
     | 
    
         
            -
                        size=100
         
     | 
| 
       127 
     | 
    
         
            -
                        a=size.times.map {rand(10)}.to_scale
         
     | 
| 
       128 
     | 
    
         
            -
                        b=a.recode{|i|i+rand(4)-2}
         
     | 
| 
       129 
     | 
    
         
            -
                        c=a.recode{|i|i+rand(4)-2}
         
     | 
| 
       130 
     | 
    
         
            -
                        d=a.recode{|i|i+rand(4)-2}
         
     | 
| 
       131 
     | 
    
         
            -
                        @ds={'a'=>a,'b'=>b,'c'=>c,'d'=>d}.to_dataset
         
     | 
| 
       132 
     | 
    
         
            -
             
     | 
| 
       133 
     | 
    
         
            -
                        @icc=Statsample::Reliability::ICC.new(@ds)
         
     | 
| 
       134 
     | 
    
         
            -
                        @r=Rserve::Connection.new
         
     | 
| 
       135 
     | 
    
         
            -
             
     | 
| 
       136 
     | 
    
         
            -
                        @r.assign('ds' 
     | 
| 
       137 
     | 
    
         
            -
             
     | 
| 
      
 123 
     | 
    
         
            +
                      if $reliability_icc.nil?
         
     | 
| 
      
 124 
     | 
    
         
            +
                        size = 100
         
     | 
| 
      
 125 
     | 
    
         
            +
                        a = size.times.map { rand(10) }.to_scale
         
     | 
| 
      
 126 
     | 
    
         
            +
                        b = a.recode { |i| i + rand(4) - 2 }
         
     | 
| 
      
 127 
     | 
    
         
            +
                        c = a.recode { |i| i + rand(4) - 2 }
         
     | 
| 
      
 128 
     | 
    
         
            +
                        d = a.recode { |i| i + rand(4) - 2 }
         
     | 
| 
      
 129 
     | 
    
         
            +
                        @ds = { 'a' => a, 'b' => b, 'c' => c, 'd' => d }.to_dataset
         
     | 
| 
      
 130 
     | 
    
         
            +
             
     | 
| 
      
 131 
     | 
    
         
            +
                        @icc = Statsample::Reliability::ICC.new(@ds)
         
     | 
| 
      
 132 
     | 
    
         
            +
                        @r = Rserve::Connection.new
         
     | 
| 
      
 133 
     | 
    
         
            +
             
     | 
| 
      
 134 
     | 
    
         
            +
                        @r.assign('ds', @ds)
         
     | 
| 
      
 135 
     | 
    
         
            +
             
     | 
| 
       138 
136 
     | 
    
         
             
                        @r.void_eval("library(irr);
         
     | 
| 
       139 
137 
     | 
    
         
             
                          iccs=list(
         
     | 
| 
       140 
138 
     | 
    
         
             
                          icc_1=icc(ds,'o','c','s'),
         
     | 
| 
         @@ -144,59 +142,57 @@ class StatsampleReliabilityIccTestCase < MiniTest::Test 
     | 
|
| 
       144 
142 
     | 
    
         
             
                          icc_a_1=icc(ds,'t','a','s'),
         
     | 
| 
       145 
143 
     | 
    
         
             
                          icc_a_k=icc(ds,'t','a','a'))
         
     | 
| 
       146 
144 
     | 
    
         
             
                          ")
         
     | 
| 
       147 
     | 
    
         
            -
                        @iccs 
     | 
| 
       148 
     | 
    
         
            -
                        $reliability_icc={ :icc 
     | 
| 
      
 145 
     | 
    
         
            +
                        @iccs = @r.eval('iccs').to_ruby
         
     | 
| 
      
 146 
     | 
    
         
            +
                        $reliability_icc = { icc: @icc, iccs: @iccs, r: @r
         
     | 
| 
       149 
147 
     | 
    
         
             
                        }
         
     | 
| 
       150 
     | 
    
         
            -
                        
         
     | 
| 
       151 
     | 
    
         
            -
                      end
         
     | 
| 
       152 
     | 
    
         
            -
                      @icc=$reliability_icc[:icc]
         
     | 
| 
       153 
     | 
    
         
            -
                      @iccs=$reliability_icc[:iccs]
         
     | 
| 
       154 
     | 
    
         
            -
                      @r=$reliability_icc[:r]
         
     | 
| 
       155 
148 
     | 
    
         | 
| 
      
 149 
     | 
    
         
            +
                      end
         
     | 
| 
      
 150 
     | 
    
         
            +
                      @icc = $reliability_icc[:icc]
         
     | 
| 
      
 151 
     | 
    
         
            +
                      @iccs = $reliability_icc[:iccs]
         
     | 
| 
      
 152 
     | 
    
         
            +
                      @r = $reliability_icc[:r]
         
     | 
| 
       156 
153 
     | 
    
         
             
                    end
         
     | 
| 
       157 
154 
     | 
    
         
             
                    [:icc_1, :icc_k, :icc_c_1, :icc_c_k, :icc_a_1, :icc_a_k].each do |t|
         
     | 
| 
       158 
155 
     | 
    
         
             
                      context "ICC Type #{t} " do
         
     | 
| 
       159 
     | 
    
         
            -
                        should  
     | 
| 
       160 
     | 
    
         
            -
                          @icc.type=t
         
     | 
| 
       161 
     | 
    
         
            -
                          @r_icc 
     | 
| 
       162 
     | 
    
         
            -
                          assert_in_delta(@r_icc['value'] 
     | 
| 
      
 156 
     | 
    
         
            +
                        should 'value be correct' do
         
     | 
| 
      
 157 
     | 
    
         
            +
                          @icc.type = t
         
     | 
| 
      
 158 
     | 
    
         
            +
                          @r_icc = @iccs[t.to_s]
         
     | 
| 
      
 159 
     | 
    
         
            +
                          assert_in_delta(@r_icc['value'], @icc.r)
         
     | 
| 
       163 
160 
     | 
    
         
             
                        end
         
     | 
| 
       164 
     | 
    
         
            -
                        should  
     | 
| 
       165 
     | 
    
         
            -
                          @icc.type=t
         
     | 
| 
       166 
     | 
    
         
            -
                          @r_icc 
     | 
| 
       167 
     | 
    
         
            -
                          assert_in_delta(@r_icc['Fvalue'] 
     | 
| 
      
 161 
     | 
    
         
            +
                        should 'fvalue be correct' do
         
     | 
| 
      
 162 
     | 
    
         
            +
                          @icc.type = t
         
     | 
| 
      
 163 
     | 
    
         
            +
                          @r_icc = @iccs[t.to_s]
         
     | 
| 
      
 164 
     | 
    
         
            +
                          assert_in_delta(@r_icc['Fvalue'], @icc.f.f)
         
     | 
| 
       168 
165 
     | 
    
         
             
                        end
         
     | 
| 
       169 
     | 
    
         
            -
                        should  
     | 
| 
       170 
     | 
    
         
            -
                          @icc.type=t
         
     | 
| 
       171 
     | 
    
         
            -
                          @r_icc 
     | 
| 
       172 
     | 
    
         
            -
                          assert_in_delta(@r_icc['df1'] 
     | 
| 
      
 166 
     | 
    
         
            +
                        should 'num df be correct' do
         
     | 
| 
      
 167 
     | 
    
         
            +
                          @icc.type = t
         
     | 
| 
      
 168 
     | 
    
         
            +
                          @r_icc = @iccs[t.to_s]
         
     | 
| 
      
 169 
     | 
    
         
            +
                          assert_in_delta(@r_icc['df1'], @icc.f.df_num)
         
     | 
| 
       173 
170 
     | 
    
         
             
                        end
         
     | 
| 
       174 
     | 
    
         
            -
                        should  
     | 
| 
       175 
     | 
    
         
            -
                          @icc.type=t
         
     | 
| 
       176 
     | 
    
         
            -
                          @r_icc 
     | 
| 
       177 
     | 
    
         
            -
                          assert_in_delta(@r_icc['df2'] 
     | 
| 
      
 171 
     | 
    
         
            +
                        should 'den df be correct' do
         
     | 
| 
      
 172 
     | 
    
         
            +
                          @icc.type = t
         
     | 
| 
      
 173 
     | 
    
         
            +
                          @r_icc = @iccs[t.to_s]
         
     | 
| 
      
 174 
     | 
    
         
            +
                          assert_in_delta(@r_icc['df2'], @icc.f.df_den)
         
     | 
| 
       178 
175 
     | 
    
         
             
                        end
         
     | 
| 
       179 
176 
     | 
    
         | 
| 
       180 
     | 
    
         
            -
                        should  
     | 
| 
       181 
     | 
    
         
            -
                          @icc.type=t
         
     | 
| 
       182 
     | 
    
         
            -
                          @r_icc 
     | 
| 
       183 
     | 
    
         
            -
                          assert_in_delta(@r_icc['p.value'] 
     | 
| 
      
 177 
     | 
    
         
            +
                        should 'f probability be correct' do
         
     | 
| 
      
 178 
     | 
    
         
            +
                          @icc.type = t
         
     | 
| 
      
 179 
     | 
    
         
            +
                          @r_icc = @iccs[t.to_s]
         
     | 
| 
      
 180 
     | 
    
         
            +
                          assert_in_delta(@r_icc['p.value'], @icc.f.probability)
         
     | 
| 
       184 
181 
     | 
    
         
             
                        end
         
     | 
| 
       185 
     | 
    
         
            -
                        should  
     | 
| 
       186 
     | 
    
         
            -
                          @icc.type=t
         
     | 
| 
       187 
     | 
    
         
            -
                          @r_icc 
     | 
| 
       188 
     | 
    
         
            -
                          assert_in_delta(@r_icc['lbound'] 
     | 
| 
       189 
     | 
    
         
            -
                          assert_in_delta(@r_icc['ubound'] 
     | 
| 
      
 182 
     | 
    
         
            +
                        should 'bounds be equal' do
         
     | 
| 
      
 183 
     | 
    
         
            +
                          @icc.type = t
         
     | 
| 
      
 184 
     | 
    
         
            +
                          @r_icc = @iccs[t.to_s]
         
     | 
| 
      
 185 
     | 
    
         
            +
                          assert_in_delta(@r_icc['lbound'], @icc.lbound)
         
     | 
| 
      
 186 
     | 
    
         
            +
                          assert_in_delta(@r_icc['ubound'], @icc.ubound)
         
     | 
| 
       190 
187 
     | 
    
         
             
                        end
         
     | 
| 
       191 
     | 
    
         
            -
                        should  
     | 
| 
       192 
     | 
    
         
            -
                          assert(@icc.summary.size>0)
         
     | 
| 
      
 188 
     | 
    
         
            +
                        should 'summary generated' do
         
     | 
| 
      
 189 
     | 
    
         
            +
                          assert(@icc.summary.size > 0)
         
     | 
| 
       193 
190 
     | 
    
         
             
                        end
         
     | 
| 
       194 
191 
     | 
    
         
             
                      end
         
     | 
| 
       195 
192 
     | 
    
         
             
                    end
         
     | 
| 
       196 
193 
     | 
    
         
             
                  end
         
     | 
| 
       197 
194 
     | 
    
         
             
                rescue
         
     | 
| 
       198 
     | 
    
         
            -
                  puts  
     | 
| 
      
 195 
     | 
    
         
            +
                  puts 'requires rserve'
         
     | 
| 
       199 
196 
     | 
    
         
             
                end
         
     | 
| 
       200 
     | 
    
         
            -
                
         
     | 
| 
       201 
197 
     | 
    
         
             
              end
         
     | 
| 
       202 
198 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,57 +1,55 @@ 
     | 
|
| 
       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 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
            class StatsampleReliabilitySkillScaleTestCase < MiniTest::Unit::TestCase
         
     | 
| 
      
 3 
     | 
    
         
            +
            class StatsampleReliabilitySkillScaleTestCase < Minitest::Test
         
     | 
| 
       5 
4 
     | 
    
         
             
              context Statsample::Reliability::SkillScaleAnalysis do
         
     | 
| 
       6 
5 
     | 
    
         
             
                setup do
         
     | 
| 
       7 
     | 
    
         
            -
                  options 
     | 
| 
       8 
     | 
    
         
            -
                  cases=20
         
     | 
| 
       9 
     | 
    
         
            -
                  @id=cases.times.map {|v| v}.to_scale
         
     | 
| 
       10 
     | 
    
         
            -
                  @a=cases.times.map {options[rand(5)]}.to_vector
         
     | 
| 
       11 
     | 
    
         
            -
                  @b=cases.times.map {options[rand(5)]}.to_vector
         
     | 
| 
       12 
     | 
    
         
            -
                  @c=cases.times.map {options[rand(5)]}.to_vector
         
     | 
| 
       13 
     | 
    
         
            -
                  @d=cases.times.map {options[rand(5)]}.to_vector
         
     | 
| 
       14 
     | 
    
         
            -
                  @e=cases.times.map {|i|
         
     | 
| 
       15 
     | 
    
         
            -
                    i==0 ? options[rand(0)] : 
     | 
| 
       16 
     | 
    
         
            -
                      rand 
     | 
| 
      
 6 
     | 
    
         
            +
                  options = %w(a b c d e)
         
     | 
| 
      
 7 
     | 
    
         
            +
                  cases = 20
         
     | 
| 
      
 8 
     | 
    
         
            +
                  @id = cases.times.map { |v| v }.to_scale
         
     | 
| 
      
 9 
     | 
    
         
            +
                  @a = cases.times.map { options[rand(5)] }.to_vector
         
     | 
| 
      
 10 
     | 
    
         
            +
                  @b = cases.times.map { options[rand(5)] }.to_vector
         
     | 
| 
      
 11 
     | 
    
         
            +
                  @c = cases.times.map { options[rand(5)] }.to_vector
         
     | 
| 
      
 12 
     | 
    
         
            +
                  @d = cases.times.map { options[rand(5)] }.to_vector
         
     | 
| 
      
 13 
     | 
    
         
            +
                  @e = cases.times.map {|i|
         
     | 
| 
      
 14 
     | 
    
         
            +
                    i == 0 ? options[rand(0)] :
         
     | 
| 
      
 15 
     | 
    
         
            +
                      rand > 0.8 ? nil : options[rand(5)]
         
     | 
| 
       17 
16 
     | 
    
         
             
                  }.to_vector
         
     | 
| 
       18 
     | 
    
         
            -
                  @ds={'id' 
     | 
| 
       19 
     | 
    
         
            -
                  @key={'a'=> 
     | 
| 
       20 
     | 
    
         
            -
                  @ssa=Statsample::Reliability::SkillScaleAnalysis.new(@ds, @key)
         
     | 
| 
       21 
     | 
    
         
            -
                  @ac 
     | 
| 
       22 
     | 
    
         
            -
                  @bc 
     | 
| 
       23 
     | 
    
         
            -
                  @cc 
     | 
| 
       24 
     | 
    
         
            -
                  @dc 
     | 
| 
       25 
     | 
    
         
            -
                  @ec 
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
      
 17 
     | 
    
         
            +
                  @ds = { 'id' => @id, 'a' => @a, 'b' => @b, 'c' => @c, 'd' => @d, 'e' => @e }.to_dataset
         
     | 
| 
      
 18 
     | 
    
         
            +
                  @key = { 'a' => 'a', 'b' => options[rand(5)], 'c' => options[rand(5)], 'd' => options[rand(5)], 'e' => options[rand(5)] }
         
     | 
| 
      
 19 
     | 
    
         
            +
                  @ssa = Statsample::Reliability::SkillScaleAnalysis.new(@ds, @key)
         
     | 
| 
      
 20 
     | 
    
         
            +
                  @ac = @a.map { |v| v == @key['a'] ? 1 : 0 }.to_scale
         
     | 
| 
      
 21 
     | 
    
         
            +
                  @bc = @b.map { |v| v == @key['b'] ? 1 : 0 }.to_scale
         
     | 
| 
      
 22 
     | 
    
         
            +
                  @cc = @c.map { |v| v == @key['c'] ? 1 : 0 }.to_scale
         
     | 
| 
      
 23 
     | 
    
         
            +
                  @dc = @d.map { |v| v == @key['d'] ? 1 : 0 }.to_scale
         
     | 
| 
      
 24 
     | 
    
         
            +
                  @ec = @e.map { |v| v.nil? ? nil : (v == @key['e'] ? 1 : 0) }.to_scale
         
     | 
| 
       27 
25 
     | 
    
         
             
                end
         
     | 
| 
       28 
     | 
    
         
            -
                should  
     | 
| 
       29 
     | 
    
         
            -
                  cds={'id' 
     | 
| 
      
 26 
     | 
    
         
            +
                should 'return proper corrected dataset' do
         
     | 
| 
      
 27 
     | 
    
         
            +
                  cds = { 'id' => @id, 'a' => @ac, 'b' => @bc, 'c' => @cc, 'd' => @dc, 'e' => @ec }.to_dataset
         
     | 
| 
       30 
28 
     | 
    
         
             
                  assert_equal(cds, @ssa.corrected_dataset)
         
     | 
| 
       31 
29 
     | 
    
         
             
                end
         
     | 
| 
       32 
     | 
    
         
            -
                should  
     | 
| 
       33 
     | 
    
         
            -
                  cdsm={'a' 
     | 
| 
      
 30 
     | 
    
         
            +
                should 'return proper corrected minimal dataset' do
         
     | 
| 
      
 31 
     | 
    
         
            +
                  cdsm = { 'a' => @ac, 'b' => @bc, 'c' => @cc, 'd' => @dc, 'e' => @ec }.to_dataset
         
     | 
| 
       34 
32 
     | 
    
         
             
                  assert_equal(cdsm, @ssa.corrected_dataset_minimal)
         
     | 
| 
       35 
33 
     | 
    
         
             
                end
         
     | 
| 
       36 
     | 
    
         
            -
                should  
     | 
| 
       37 
     | 
    
         
            -
                  cdsm 
     | 
| 
      
 34 
     | 
    
         
            +
                should 'return correct vector_sum and vector_sum' do
         
     | 
| 
      
 35 
     | 
    
         
            +
                  cdsm = @ssa.corrected_dataset_minimal
         
     | 
| 
       38 
36 
     | 
    
         
             
                  assert_equal(cdsm.vector_sum, @ssa.vector_sum)
         
     | 
| 
       39 
37 
     | 
    
         
             
                  assert_equal(cdsm.vector_mean, @ssa.vector_mean)
         
     | 
| 
       40 
38 
     | 
    
         
             
                end
         
     | 
| 
       41 
     | 
    
         
            -
                should  
     | 
| 
       42 
     | 
    
         
            -
                  a=Statsample::Vector[ 
     | 
| 
       43 
     | 
    
         
            -
                  b=Statsample::Vector[ 
     | 
| 
       44 
     | 
    
         
            -
                  c=Statsample::Vector[ 
     | 
| 
       45 
     | 
    
         
            -
                  d=Statsample::Vector[ 
     | 
| 
       46 
     | 
    
         
            -
                  e=Statsample::Vector[ 
     | 
| 
       47 
     | 
    
         
            -
                  key={ 
     | 
| 
       48 
     | 
    
         
            -
                  ds=Statsample::Dataset.new( 
     | 
| 
       49 
     | 
    
         
            -
                  ssa=Statsample::Reliability::SkillScaleAnalysis.new(ds, key)
         
     | 
| 
      
 39 
     | 
    
         
            +
                should 'not crash on rare case' do
         
     | 
| 
      
 40 
     | 
    
         
            +
                  a = Statsample::Vector['c', 'c', 'a', 'a', 'c', 'a', 'b', 'c', 'c', 'b', 'a', 'd', 'a', 'd', 'a', 'a', 'd', 'e', 'c', 'd']
         
     | 
| 
      
 41 
     | 
    
         
            +
                  b = Statsample::Vector['e', 'b', 'e', 'b', 'c', 'd', 'a', 'e', 'e', 'c', 'b', 'e', 'e', 'b', 'd', 'c', 'e', 'b', 'b', 'd']
         
     | 
| 
      
 42 
     | 
    
         
            +
                  c = Statsample::Vector['e', 'b', 'e', 'c', 'e', 'c', 'b', 'd', 'e', 'c', 'a', 'a', 'b', 'd', 'e', 'c', 'b', 'a', 'a', 'e']
         
     | 
| 
      
 43 
     | 
    
         
            +
                  d = Statsample::Vector['a', 'b', 'd', 'd', 'e', 'b', 'e', 'b', 'd', 'c', 'e', 'a', 'c', 'd', 'c', 'c', 'e', 'd', 'd', 'b']
         
     | 
| 
      
 44 
     | 
    
         
            +
                  e = Statsample::Vector['a', 'b', nil, 'd', 'c', 'c', 'd', nil, 'd', 'd', 'e', 'e', nil, nil, nil, 'd', 'c', nil, 'e', 'd']
         
     | 
| 
      
 45 
     | 
    
         
            +
                  key = { 'a' => 'a', 'b' => 'e', 'c' => 'd', 'd' => 'c', 'e' => 'd' }
         
     | 
| 
      
 46 
     | 
    
         
            +
                  ds = Statsample::Dataset.new('a' => a, 'b' => b, 'c' => c, 'd' => d, 'e' => e)
         
     | 
| 
      
 47 
     | 
    
         
            +
                  ssa = Statsample::Reliability::SkillScaleAnalysis.new(ds, key)
         
     | 
| 
       50 
48 
     | 
    
         
             
                  assert(ssa.summary)
         
     | 
| 
       51 
49 
     | 
    
         
             
                end
         
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
       53 
     | 
    
         
            -
                should  
     | 
| 
       54 
     | 
    
         
            -
                  assert(@ssa.summary.size>0)
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
                should 'return valid summary' do
         
     | 
| 
      
 52 
     | 
    
         
            +
                  assert(@ssa.summary.size > 0)
         
     | 
| 
       55 
53 
     | 
    
         
             
                end
         
     | 
| 
       56 
54 
     | 
    
         
             
              end
         
     | 
| 
       57 
55 
     | 
    
         
             
            end
         
     | 
    
        data/test/test_resample.rb
    CHANGED
    
    | 
         @@ -1,22 +1,24 @@ 
     | 
|
| 
       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 StatsampleResampleTestCase <  
     | 
| 
      
 3 
     | 
    
         
            +
            class StatsampleResampleTestCase < Minitest::Test
         
     | 
| 
       4 
4 
     | 
    
         
             
              def initialize(*args)
         
     | 
| 
       5 
5 
     | 
    
         
             
                super
         
     | 
| 
       6 
6 
     | 
    
         
             
              end
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
       7 
8 
     | 
    
         
             
              def test_basic
         
     | 
| 
       8 
     | 
    
         
            -
                r=Statsample::Resample.generate(20,1,10)
         
     | 
| 
       9 
     | 
    
         
            -
                assert_equal(20,r.size)
         
     | 
| 
       10 
     | 
    
         
            -
                assert(r.min>=1)
         
     | 
| 
       11 
     | 
    
         
            -
                assert(r.max<=10)
         
     | 
| 
      
 9 
     | 
    
         
            +
                r = Statsample::Resample.generate(20, 1, 10)
         
     | 
| 
      
 10 
     | 
    
         
            +
                assert_equal(20, r.size)
         
     | 
| 
      
 11 
     | 
    
         
            +
                assert(r.min >= 1)
         
     | 
| 
      
 12 
     | 
    
         
            +
                assert(r.max <= 10)
         
     | 
| 
       12 
13 
     | 
    
         
             
              end
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
       13 
15 
     | 
    
         
             
              def test_repeat_and_save
         
     | 
| 
       14 
     | 
    
         
            -
                r=Statsample::Resample.repeat_and_save(400) {
         
     | 
| 
       15 
     | 
    
         
            -
                  Statsample::Resample.generate(20,1,10).count(1)
         
     | 
| 
      
 16 
     | 
    
         
            +
                r = Statsample::Resample.repeat_and_save(400) {
         
     | 
| 
      
 17 
     | 
    
         
            +
                  Statsample::Resample.generate(20, 1, 10).count(1)
         
     | 
| 
       16 
18 
     | 
    
         
             
                }
         
     | 
| 
       17 
     | 
    
         
            -
                assert_equal(400,r.size)
         
     | 
| 
       18 
     | 
    
         
            -
                v=Statsample::Vector.new(r 
     | 
| 
       19 
     | 
    
         
            -
                a=v.count {|x|  x > 3}
         
     | 
| 
       20 
     | 
    
         
            -
                assert(a>=30 && a<=70)
         
     | 
| 
      
 19 
     | 
    
         
            +
                assert_equal(400, r.size)
         
     | 
| 
      
 20 
     | 
    
         
            +
                v = Statsample::Vector.new(r, :scale)
         
     | 
| 
      
 21 
     | 
    
         
            +
                a = v.count { |x|  x > 3 }
         
     | 
| 
      
 22 
     | 
    
         
            +
                assert(a >= 30 && a <= 70)
         
     | 
| 
       21 
23 
     | 
    
         
             
              end
         
     | 
| 
       22 
24 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,42 +1,42 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require(File.expand_path(File.dirname(__FILE__)+'/helpers_tests.rb'))
         
     | 
| 
      
 1 
     | 
    
         
            +
            require(File.expand_path(File.dirname(__FILE__) + '/helpers_tests.rb'))
         
     | 
| 
       2 
2 
     | 
    
         
             
            begin
         
     | 
| 
       3 
3 
     | 
    
         
             
              require 'rserve'
         
     | 
| 
       4 
4 
     | 
    
         
             
              require 'statsample/rserve_extension'
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
     | 
    
         
            -
            class StatsampleRserveExtensionTestCase <  
     | 
| 
       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 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
      
 6 
     | 
    
         
            +
              class StatsampleRserveExtensionTestCase < Minitest::Test
         
     | 
| 
      
 7 
     | 
    
         
            +
                context 'Statsample Rserve extensions' do
         
     | 
| 
      
 8 
     | 
    
         
            +
                  setup do
         
     | 
| 
      
 9 
     | 
    
         
            +
                    @r = Rserve::Connection.new
         
     | 
| 
      
 10 
     | 
    
         
            +
                  end
         
     | 
| 
      
 11 
     | 
    
         
            +
                  teardown do
         
     | 
| 
      
 12 
     | 
    
         
            +
                    @r.close
         
     | 
| 
      
 13 
     | 
    
         
            +
                  end
         
     | 
| 
      
 14 
     | 
    
         
            +
                  should 'return a valid rexp for numeric vector' do
         
     | 
| 
      
 15 
     | 
    
         
            +
                    a = 100.times.map { |i| rand > 0.9 ? nil : i + rand }.to_scale
         
     | 
| 
      
 16 
     | 
    
         
            +
                    rexp = a.to_REXP
         
     | 
| 
      
 17 
     | 
    
         
            +
                    assert(rexp.is_a? Rserve::REXP::Double)
         
     | 
| 
      
 18 
     | 
    
         
            +
                    assert_equal(rexp.to_ruby, a.data_with_nils)
         
     | 
| 
      
 19 
     | 
    
         
            +
                    @r.assign 'a', rexp
         
     | 
| 
      
 20 
     | 
    
         
            +
                    assert_equal(a.data_with_nils, @r.eval('a').to_ruby)
         
     | 
| 
      
 21 
     | 
    
         
            +
                  end
         
     | 
| 
      
 22 
     | 
    
         
            +
                  should 'return a valid rserve dataframe for statsample datasets' do
         
     | 
| 
      
 23 
     | 
    
         
            +
                    a = 100.times.map { |i| rand > 0.9 ? nil : i + rand }.to_scale
         
     | 
| 
      
 24 
     | 
    
         
            +
                    b = 100.times.map { |i| rand > 0.9 ? nil : i + rand }.to_scale
         
     | 
| 
      
 25 
     | 
    
         
            +
                    c = 100.times.map { |i| rand > 0.9 ? nil : i + rand }.to_scale
         
     | 
| 
      
 26 
     | 
    
         
            +
                    ds = { 'a' => a, 'b' => b, 'c' => c }.to_dataset
         
     | 
| 
      
 27 
     | 
    
         
            +
                    rexp = ds.to_REXP
         
     | 
| 
      
 28 
     | 
    
         
            +
                    assert(rexp.is_a? Rserve::REXP::GenericVector)
         
     | 
| 
      
 29 
     | 
    
         
            +
                    ret = rexp.to_ruby
         
     | 
| 
      
 30 
     | 
    
         
            +
                    assert_equal(a.data_with_nils, ret['a'])
         
     | 
| 
      
 31 
     | 
    
         
            +
                    @r.assign 'df', rexp
         
     | 
| 
      
 32 
     | 
    
         
            +
                    out_df = @r.eval('df').to_ruby
         
     | 
| 
      
 33 
     | 
    
         
            +
                    assert_equal('data.frame', out_df.attributes['class'])
         
     | 
| 
      
 34 
     | 
    
         
            +
                    assert_equal(%w(a b c), out_df.attributes['names'])
         
     | 
| 
      
 35 
     | 
    
         
            +
                    assert_equal(a.data_with_nils, out_df['a'])
         
     | 
| 
      
 36 
     | 
    
         
            +
                  end
         
     | 
| 
       36 
37 
     | 
    
         
             
                end
         
     | 
| 
       37 
38 
     | 
    
         
             
              end
         
     | 
| 
       38 
     | 
    
         
            -
            end
         
     | 
| 
       39 
39 
     | 
    
         | 
| 
       40 
40 
     | 
    
         
             
            rescue LoadError
         
     | 
| 
       41 
     | 
    
         
            -
              puts  
     | 
| 
      
 41 
     | 
    
         
            +
              puts 'Require rserve extension'
         
     | 
| 
       42 
42 
     | 
    
         
             
            end
         
     |