csv-stats 0.2.1__tar.gz → 0.4.2__tar.gz

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.
Files changed (648) hide show
  1. csv_stats-0.4.2/.gitignore +8 -0
  2. {csv_stats-0.2.1 → csv_stats-0.4.2}/PKG-INFO +55 -1
  3. {csv_stats-0.2.1 → csv_stats-0.4.2}/README.md +52 -0
  4. {csv_stats-0.2.1 → csv_stats-0.4.2}/pyproject.toml +9 -2
  5. csv_stats-0.4.2/src/csvstats/__init__.py +1 -0
  6. {csv_stats-0.2.1 → csv_stats-0.4.2}/src/csvstats/core.py +49 -1
  7. {csv_stats-0.2.1 → csv_stats-0.4.2}/src/csvstats/descriptive.py +10 -3
  8. csv_stats-0.4.2/src/csvstats/lmm.py +858 -0
  9. csv_stats-0.4.2/src/csvstats/lmm_fit.py +540 -0
  10. csv_stats-0.4.2/src/csvstats/lmm_formula.py +259 -0
  11. csv_stats-0.4.2/tests/_lmm_oracle.py +239 -0
  12. csv_stats-0.4.2/tests/reference/README.md +107 -0
  13. csv_stats-0.4.2/tests/reference/check_lmm_optimum.R +57 -0
  14. csv_stats-0.4.2/tests/reference/datasets/B2B2W2_complete_n17_icc50_effect_unit_intercept.csv +35 -0
  15. csv_stats-0.4.2/tests/reference/datasets/B2B2W2_mcar15_n17_icc50_effect_unit_intercept.csv +30 -0
  16. csv_stats-0.4.2/tests/reference/datasets/B2B2W2_monotone15_n17_icc50_effect_unit_intercept.csv +32 -0
  17. csv_stats-0.4.2/tests/reference/datasets/B2W3_complete_n12_icc50_effect_unit_intercept.csv +37 -0
  18. csv_stats-0.4.2/tests/reference/datasets/B2W3_complete_n17_icc50_effect_unit_intercept.csv +52 -0
  19. csv_stats-0.4.2/tests/reference/datasets/B2W3_complete_n17_icc50_null_unit_intercept.csv +52 -0
  20. csv_stats-0.4.2/tests/reference/datasets/B2W3_complete_n40_icc50_effect_unit_intercept.csv +121 -0
  21. csv_stats-0.4.2/tests/reference/datasets/B2W3_complete_n6_icc50_effect_unit_intercept.csv +19 -0
  22. csv_stats-0.4.2/tests/reference/datasets/B2W3_level_missing_one_group_n17_icc50_effect_unit_intercept.csv +49 -0
  23. csv_stats-0.4.2/tests/reference/datasets/B2W3_mcar05_n17_icc50_effect_unit_intercept.csv +49 -0
  24. csv_stats-0.4.2/tests/reference/datasets/B2W3_mcar15_n17_icc50_effect_unit_intercept.csv +44 -0
  25. csv_stats-0.4.2/tests/reference/datasets/B2W3_mcar30_n17_icc50_effect_unit_intercept.csv +38 -0
  26. csv_stats-0.4.2/tests/reference/datasets/B2W3_monotone15_n12_icc50_effect_unit_intercept.csv +35 -0
  27. csv_stats-0.4.2/tests/reference/datasets/B2W3_monotone15_n17_icc50_effect_unit_intercept.csv +47 -0
  28. csv_stats-0.4.2/tests/reference/datasets/B2W3_monotone15_n40_icc50_effect_unit_intercept.csv +114 -0
  29. csv_stats-0.4.2/tests/reference/datasets/B2W3_monotone15_n6_icc50_effect_unit_intercept.csv +18 -0
  30. csv_stats-0.4.2/tests/reference/datasets/B2W3_monotone40_n17_icc50_effect_unit_intercept.csv +41 -0
  31. csv_stats-0.4.2/tests/reference/datasets/B2W3_monotone40_n17_icc50_null_unit_intercept.csv +39 -0
  32. csv_stats-0.4.2/tests/reference/datasets/B2W3_singletons_n17_icc50_effect_unit_intercept.csv +46 -0
  33. csv_stats-0.4.2/tests/reference/datasets/B2W3_sparse_cell_n17_icc50_effect_unit_intercept.csv +46 -0
  34. csv_stats-0.4.2/tests/reference/datasets/B2W3_unequal_groups_n17_icc50_effect_unit_intercept.csv +52 -0
  35. csv_stats-0.4.2/tests/reference/datasets/B2W3_unequal_reps_n17_icc50_effect_unit_intercept.csv +136 -0
  36. csv_stats-0.4.2/tests/reference/datasets/B2rep_complete_n17_icc50_effect_unit_intercept.csv +52 -0
  37. csv_stats-0.4.2/tests/reference/datasets/B2rep_unequal_reps_n17_icc50_effect_unit_intercept.csv +44 -0
  38. csv_stats-0.4.2/tests/reference/datasets/B3W2_complete_n17_icc50_effect_unit_intercept.csv +35 -0
  39. csv_stats-0.4.2/tests/reference/datasets/B3W2_mcar15_n17_icc50_effect_unit_intercept.csv +30 -0
  40. csv_stats-0.4.2/tests/reference/datasets/B3W2_monotone15_n17_icc50_effect_unit_intercept.csv +32 -0
  41. csv_stats-0.4.2/tests/reference/datasets/LABELS_complete_n17_icc50_effect_unit_intercept.csv +52 -0
  42. csv_stats-0.4.2/tests/reference/datasets/LABELS_monotone15_n17_icc50_effect_unit_intercept.csv +46 -0
  43. csv_stats-0.4.2/tests/reference/datasets/W2_complete_n17_icc50_effect_unit_intercept.csv +35 -0
  44. csv_stats-0.4.2/tests/reference/datasets/W2_mcar05_n17_icc50_effect_unit_intercept.csv +33 -0
  45. csv_stats-0.4.2/tests/reference/datasets/W2_mcar15_n17_icc50_effect_unit_intercept.csv +30 -0
  46. csv_stats-0.4.2/tests/reference/datasets/W2_mcar30_n17_icc50_effect_unit_intercept.csv +26 -0
  47. csv_stats-0.4.2/tests/reference/datasets/W2_monotone15_n17_icc50_effect_unit_intercept.csv +32 -0
  48. csv_stats-0.4.2/tests/reference/datasets/W2_monotone40_n17_icc50_effect_unit_intercept.csv +28 -0
  49. csv_stats-0.4.2/tests/reference/datasets/W2_singletons_n17_icc50_effect_unit_intercept.csv +32 -0
  50. csv_stats-0.4.2/tests/reference/datasets/W2_sparse_cell_n17_icc50_effect_unit_intercept.csv +20 -0
  51. csv_stats-0.4.2/tests/reference/datasets/W2_unequal_reps_n17_icc50_effect_unit_intercept.csv +87 -0
  52. csv_stats-0.4.2/tests/reference/datasets/W2xW3_complete_n17_icc50_effect_unit_intercept.csv +103 -0
  53. csv_stats-0.4.2/tests/reference/datasets/W2xW3_complete_n17_icc50_null_unit_intercept.csv +103 -0
  54. csv_stats-0.4.2/tests/reference/datasets/W2xW3_mcar15_n17_icc50_effect_unit_intercept.csv +88 -0
  55. csv_stats-0.4.2/tests/reference/datasets/W2xW3_monotone15_n17_icc50_effect_unit_intercept.csv +95 -0
  56. csv_stats-0.4.2/tests/reference/datasets/W2xW3_monotone40_n17_icc50_effect_unit_intercept.csv +87 -0
  57. csv_stats-0.4.2/tests/reference/datasets/W2xW3_monotone40_n17_icc50_null_unit_intercept.csv +85 -0
  58. csv_stats-0.4.2/tests/reference/datasets/W3_complete_n12_icc50_effect_unit_intercept.csv +37 -0
  59. csv_stats-0.4.2/tests/reference/datasets/W3_complete_n17_icc0_effect_unit_intercept.csv +52 -0
  60. csv_stats-0.4.2/tests/reference/datasets/W3_complete_n17_icc10_effect_unit_intercept.csv +52 -0
  61. csv_stats-0.4.2/tests/reference/datasets/W3_complete_n17_icc50_effect_large_intercept.csv +52 -0
  62. csv_stats-0.4.2/tests/reference/datasets/W3_complete_n17_icc50_effect_small_intercept.csv +52 -0
  63. csv_stats-0.4.2/tests/reference/datasets/W3_complete_n17_icc50_effect_unit_intercept.csv +52 -0
  64. csv_stats-0.4.2/tests/reference/datasets/W3_complete_n17_icc80_effect_unit_intercept.csv +52 -0
  65. csv_stats-0.4.2/tests/reference/datasets/W3_complete_n40_icc50_effect_unit_intercept.csv +121 -0
  66. csv_stats-0.4.2/tests/reference/datasets/W3_complete_n6_icc50_effect_unit_intercept.csv +19 -0
  67. csv_stats-0.4.2/tests/reference/datasets/W3_mcar05_n17_icc50_effect_unit_intercept.csv +49 -0
  68. csv_stats-0.4.2/tests/reference/datasets/W3_mcar15_n17_icc0_effect_unit_intercept.csv +44 -0
  69. csv_stats-0.4.2/tests/reference/datasets/W3_mcar15_n17_icc10_effect_unit_intercept.csv +44 -0
  70. csv_stats-0.4.2/tests/reference/datasets/W3_mcar15_n17_icc50_effect_large_intercept.csv +44 -0
  71. csv_stats-0.4.2/tests/reference/datasets/W3_mcar15_n17_icc50_effect_small_intercept.csv +44 -0
  72. csv_stats-0.4.2/tests/reference/datasets/W3_mcar15_n17_icc50_effect_unit_intercept.csv +44 -0
  73. csv_stats-0.4.2/tests/reference/datasets/W3_mcar15_n17_icc80_effect_unit_intercept.csv +44 -0
  74. csv_stats-0.4.2/tests/reference/datasets/W3_mcar30_n17_icc50_effect_unit_intercept.csv +37 -0
  75. csv_stats-0.4.2/tests/reference/datasets/W3_monotone15_n12_icc50_effect_unit_intercept.csv +35 -0
  76. csv_stats-0.4.2/tests/reference/datasets/W3_monotone15_n17_icc50_effect_unit_intercept.csv +47 -0
  77. csv_stats-0.4.2/tests/reference/datasets/W3_monotone15_n40_icc50_effect_unit_intercept.csv +113 -0
  78. csv_stats-0.4.2/tests/reference/datasets/W3_monotone15_n6_icc50_effect_unit_intercept.csv +17 -0
  79. csv_stats-0.4.2/tests/reference/datasets/W3_monotone40_n17_icc50_effect_unit_intercept.csv +42 -0
  80. csv_stats-0.4.2/tests/reference/datasets/W3_singletons_n17_icc50_effect_unit_intercept.csv +46 -0
  81. csv_stats-0.4.2/tests/reference/datasets/W3_sparse_cell_n17_icc50_effect_unit_intercept.csv +37 -0
  82. csv_stats-0.4.2/tests/reference/datasets/W3_unequal_reps_n17_icc50_effect_unit_intercept.csv +126 -0
  83. csv_stats-0.4.2/tests/reference/datasets/W3rep_complete_n17_icc50_effect_unit_intercept.csv +154 -0
  84. csv_stats-0.4.2/tests/reference/datasets/W3rep_complete_n17_icc50_effect_unit_slopes.csv +154 -0
  85. csv_stats-0.4.2/tests/reference/datasets/W3rep_mcar15_n17_icc50_effect_unit_intercept.csv +130 -0
  86. csv_stats-0.4.2/tests/reference/datasets/W3rep_mcar15_n17_icc50_effect_unit_slopes.csv +130 -0
  87. csv_stats-0.4.2/tests/reference/datasets/W3rep_monotone15_n17_icc50_effect_unit_intercept.csv +142 -0
  88. csv_stats-0.4.2/tests/reference/datasets/W7_complete_n17_icc50_effect_unit_intercept.csv +120 -0
  89. csv_stats-0.4.2/tests/reference/datasets/W7_mcar15_n17_icc50_effect_unit_intercept.csv +102 -0
  90. csv_stats-0.4.2/tests/reference/datasets/W7_monotone15_n17_icc50_effect_unit_intercept.csv +110 -0
  91. csv_stats-0.4.2/tests/reference/lmm_reference_common.R +144 -0
  92. csv_stats-0.4.2/tests/reference/make_lmm_reference.R +314 -0
  93. csv_stats-0.4.2/tests/reference/make_lmm_scenarios.R +622 -0
  94. csv_stats-0.4.2/tests/reference/results/B2B2W2_complete_n17_icc50_effect_unit_intercept.json +596 -0
  95. csv_stats-0.4.2/tests/reference/results/B2B2W2_mcar15_n17_icc50_effect_unit_intercept.json +596 -0
  96. csv_stats-0.4.2/tests/reference/results/B2B2W2_monotone15_n17_icc50_effect_unit_intercept.json +596 -0
  97. csv_stats-0.4.2/tests/reference/results/B2W3_complete_n12_icc50_effect_unit_intercept.json +395 -0
  98. csv_stats-0.4.2/tests/reference/results/B2W3_complete_n17_icc50_effect_unit_intercept.json +395 -0
  99. csv_stats-0.4.2/tests/reference/results/B2W3_complete_n17_icc50_null_unit_intercept.json +395 -0
  100. csv_stats-0.4.2/tests/reference/results/B2W3_complete_n40_icc50_effect_unit_intercept.json +395 -0
  101. csv_stats-0.4.2/tests/reference/results/B2W3_complete_n6_icc50_effect_unit_intercept.json +399 -0
  102. csv_stats-0.4.2/tests/reference/results/B2W3_level_missing_one_group_n17_icc50_effect_unit_intercept.json +395 -0
  103. csv_stats-0.4.2/tests/reference/results/B2W3_mcar05_n17_icc50_effect_unit_intercept.json +395 -0
  104. csv_stats-0.4.2/tests/reference/results/B2W3_mcar15_n17_icc50_effect_unit_intercept.json +395 -0
  105. csv_stats-0.4.2/tests/reference/results/B2W3_mcar30_n17_icc50_effect_unit_intercept.json +395 -0
  106. csv_stats-0.4.2/tests/reference/results/B2W3_monotone15_n12_icc50_effect_unit_intercept.json +395 -0
  107. csv_stats-0.4.2/tests/reference/results/B2W3_monotone15_n17_icc50_effect_unit_intercept.json +395 -0
  108. csv_stats-0.4.2/tests/reference/results/B2W3_monotone15_n40_icc50_effect_unit_intercept.json +395 -0
  109. csv_stats-0.4.2/tests/reference/results/B2W3_monotone15_n6_icc50_effect_unit_intercept.json +395 -0
  110. csv_stats-0.4.2/tests/reference/results/B2W3_monotone40_n17_icc50_effect_unit_intercept.json +395 -0
  111. csv_stats-0.4.2/tests/reference/results/B2W3_monotone40_n17_icc50_null_unit_intercept.json +395 -0
  112. csv_stats-0.4.2/tests/reference/results/B2W3_singletons_n17_icc50_effect_unit_intercept.json +395 -0
  113. csv_stats-0.4.2/tests/reference/results/B2W3_sparse_cell_n17_icc50_effect_unit_intercept.json +395 -0
  114. csv_stats-0.4.2/tests/reference/results/B2W3_unequal_groups_n17_icc50_effect_unit_intercept.json +395 -0
  115. csv_stats-0.4.2/tests/reference/results/B2W3_unequal_reps_n17_icc50_effect_unit_intercept.json +395 -0
  116. csv_stats-0.4.2/tests/reference/results/B2rep_complete_n17_icc50_effect_unit_intercept.json +132 -0
  117. csv_stats-0.4.2/tests/reference/results/B2rep_unequal_reps_n17_icc50_effect_unit_intercept.json +132 -0
  118. csv_stats-0.4.2/tests/reference/results/B3W2_complete_n17_icc50_effect_unit_intercept.json +395 -0
  119. csv_stats-0.4.2/tests/reference/results/B3W2_mcar15_n17_icc50_effect_unit_intercept.json +395 -0
  120. csv_stats-0.4.2/tests/reference/results/B3W2_monotone15_n17_icc50_effect_unit_intercept.json +395 -0
  121. csv_stats-0.4.2/tests/reference/results/LABELS_complete_n17_icc50_effect_unit_intercept.json +395 -0
  122. csv_stats-0.4.2/tests/reference/results/LABELS_monotone15_n17_icc50_effect_unit_intercept.json +395 -0
  123. csv_stats-0.4.2/tests/reference/results/W2_complete_n17_icc50_effect_unit_intercept.json +132 -0
  124. csv_stats-0.4.2/tests/reference/results/W2_mcar05_n17_icc50_effect_unit_intercept.json +132 -0
  125. csv_stats-0.4.2/tests/reference/results/W2_mcar15_n17_icc50_effect_unit_intercept.json +132 -0
  126. csv_stats-0.4.2/tests/reference/results/W2_mcar30_n17_icc50_effect_unit_intercept.json +132 -0
  127. csv_stats-0.4.2/tests/reference/results/W2_monotone15_n17_icc50_effect_unit_intercept.json +132 -0
  128. csv_stats-0.4.2/tests/reference/results/W2_monotone40_n17_icc50_effect_unit_intercept.json +132 -0
  129. csv_stats-0.4.2/tests/reference/results/W2_singletons_n17_icc50_effect_unit_intercept.json +132 -0
  130. csv_stats-0.4.2/tests/reference/results/W2_sparse_cell_n17_icc50_effect_unit_intercept.json +132 -0
  131. csv_stats-0.4.2/tests/reference/results/W2_unequal_reps_n17_icc50_effect_unit_intercept.json +132 -0
  132. csv_stats-0.4.2/tests/reference/results/W2xW3_complete_n17_icc50_effect_unit_intercept.json +395 -0
  133. csv_stats-0.4.2/tests/reference/results/W2xW3_complete_n17_icc50_null_unit_intercept.json +395 -0
  134. csv_stats-0.4.2/tests/reference/results/W2xW3_mcar15_n17_icc50_effect_unit_intercept.json +395 -0
  135. csv_stats-0.4.2/tests/reference/results/W2xW3_monotone15_n17_icc50_effect_unit_intercept.json +395 -0
  136. csv_stats-0.4.2/tests/reference/results/W2xW3_monotone40_n17_icc50_effect_unit_intercept.json +395 -0
  137. csv_stats-0.4.2/tests/reference/results/W2xW3_monotone40_n17_icc50_null_unit_intercept.json +395 -0
  138. csv_stats-0.4.2/tests/reference/results/W3_complete_n12_icc50_effect_unit_intercept.json +181 -0
  139. csv_stats-0.4.2/tests/reference/results/W3_complete_n17_icc0_effect_unit_intercept.json +185 -0
  140. csv_stats-0.4.2/tests/reference/results/W3_complete_n17_icc10_effect_unit_intercept.json +181 -0
  141. csv_stats-0.4.2/tests/reference/results/W3_complete_n17_icc50_effect_large_intercept.json +181 -0
  142. csv_stats-0.4.2/tests/reference/results/W3_complete_n17_icc50_effect_small_intercept.json +181 -0
  143. csv_stats-0.4.2/tests/reference/results/W3_complete_n17_icc50_effect_unit_intercept.json +181 -0
  144. csv_stats-0.4.2/tests/reference/results/W3_complete_n17_icc80_effect_unit_intercept.json +181 -0
  145. csv_stats-0.4.2/tests/reference/results/W3_complete_n40_icc50_effect_unit_intercept.json +181 -0
  146. csv_stats-0.4.2/tests/reference/results/W3_complete_n6_icc50_effect_unit_intercept.json +181 -0
  147. csv_stats-0.4.2/tests/reference/results/W3_mcar05_n17_icc50_effect_unit_intercept.json +181 -0
  148. csv_stats-0.4.2/tests/reference/results/W3_mcar15_n17_icc0_effect_unit_intercept.json +185 -0
  149. csv_stats-0.4.2/tests/reference/results/W3_mcar15_n17_icc10_effect_unit_intercept.json +185 -0
  150. csv_stats-0.4.2/tests/reference/results/W3_mcar15_n17_icc50_effect_large_intercept.json +181 -0
  151. csv_stats-0.4.2/tests/reference/results/W3_mcar15_n17_icc50_effect_small_intercept.json +181 -0
  152. csv_stats-0.4.2/tests/reference/results/W3_mcar15_n17_icc50_effect_unit_intercept.json +181 -0
  153. csv_stats-0.4.2/tests/reference/results/W3_mcar15_n17_icc80_effect_unit_intercept.json +181 -0
  154. csv_stats-0.4.2/tests/reference/results/W3_mcar30_n17_icc50_effect_unit_intercept.json +181 -0
  155. csv_stats-0.4.2/tests/reference/results/W3_monotone15_n12_icc50_effect_unit_intercept.json +181 -0
  156. csv_stats-0.4.2/tests/reference/results/W3_monotone15_n17_icc50_effect_unit_intercept.json +181 -0
  157. csv_stats-0.4.2/tests/reference/results/W3_monotone15_n40_icc50_effect_unit_intercept.json +181 -0
  158. csv_stats-0.4.2/tests/reference/results/W3_monotone15_n6_icc50_effect_unit_intercept.json +181 -0
  159. csv_stats-0.4.2/tests/reference/results/W3_monotone40_n17_icc50_effect_unit_intercept.json +181 -0
  160. csv_stats-0.4.2/tests/reference/results/W3_singletons_n17_icc50_effect_unit_intercept.json +181 -0
  161. csv_stats-0.4.2/tests/reference/results/W3_sparse_cell_n17_icc50_effect_unit_intercept.json +181 -0
  162. csv_stats-0.4.2/tests/reference/results/W3_unequal_reps_n17_icc50_effect_unit_intercept.json +181 -0
  163. csv_stats-0.4.2/tests/reference/results/W3rep_complete_n17_icc50_effect_unit_intercept.json +181 -0
  164. csv_stats-0.4.2/tests/reference/results/W3rep_complete_n17_icc50_effect_unit_slopes.json +199 -0
  165. csv_stats-0.4.2/tests/reference/results/W3rep_mcar15_n17_icc50_effect_unit_intercept.json +181 -0
  166. csv_stats-0.4.2/tests/reference/results/W3rep_mcar15_n17_icc50_effect_unit_slopes.json +195 -0
  167. csv_stats-0.4.2/tests/reference/results/W3rep_monotone15_n17_icc50_effect_unit_intercept.json +181 -0
  168. csv_stats-0.4.2/tests/reference/results/W7_complete_n17_icc50_effect_unit_intercept.json +577 -0
  169. csv_stats-0.4.2/tests/reference/results/W7_mcar15_n17_icc50_effect_unit_intercept.json +577 -0
  170. csv_stats-0.4.2/tests/reference/results/W7_monotone15_n17_icc50_effect_unit_intercept.json +577 -0
  171. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_001.csv +231 -0
  172. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_002.csv +221 -0
  173. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_003.csv +157 -0
  174. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_004.csv +96 -0
  175. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_005.csv +79 -0
  176. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_006.csv +84 -0
  177. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_007.csv +163 -0
  178. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_008.csv +161 -0
  179. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_009.csv +682 -0
  180. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_010.csv +58 -0
  181. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_011.csv +21 -0
  182. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_012.csv +17 -0
  183. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_013.csv +43 -0
  184. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_014.csv +239 -0
  185. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_015.csv +160 -0
  186. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_016.csv +490 -0
  187. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_017.csv +139 -0
  188. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_018.csv +417 -0
  189. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_019.csv +109 -0
  190. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_020.csv +647 -0
  191. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_021.csv +138 -0
  192. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_022.csv +75 -0
  193. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_023.csv +103 -0
  194. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_024.csv +228 -0
  195. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_025.csv +88 -0
  196. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_SLOPES_001.csv +226 -0
  197. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_SLOPES_002.csv +267 -0
  198. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_SLOPES_003.csv +85 -0
  199. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_SLOPES_004.csv +76 -0
  200. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_SLOPES_005.csv +475 -0
  201. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_SLOPES_006.csv +317 -0
  202. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_SLOPES_007.csv +195 -0
  203. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_SLOPES_008.csv +246 -0
  204. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_SLOPES_009.csv +242 -0
  205. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_SLOPES_010.csv +237 -0
  206. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_SLOPES_011.csv +21 -0
  207. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_SLOPES_012.csv +32 -0
  208. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_SLOPES_013.csv +40 -0
  209. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_SLOPES_014.csv +425 -0
  210. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_SLOPES_015.csv +169 -0
  211. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_SLOPES_016.csv +361 -0
  212. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_SLOPES_017.csv +145 -0
  213. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_SLOPES_018.csv +577 -0
  214. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_SLOPES_019.csv +118 -0
  215. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_SLOPES_020.csv +98 -0
  216. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_SLOPES_021.csv +113 -0
  217. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_SLOPES_022.csv +249 -0
  218. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_SLOPES_023.csv +161 -0
  219. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_SLOPES_024.csv +108 -0
  220. csv_stats-0.4.2/tests/reference/scenarios/datasets/CROSSED_SLOPES_025.csv +417 -0
  221. csv_stats-0.4.2/tests/reference/scenarios/datasets/NESTED_001.csv +193 -0
  222. csv_stats-0.4.2/tests/reference/scenarios/datasets/NESTED_002.csv +187 -0
  223. csv_stats-0.4.2/tests/reference/scenarios/datasets/NESTED_003.csv +40 -0
  224. csv_stats-0.4.2/tests/reference/scenarios/datasets/NESTED_004.csv +121 -0
  225. csv_stats-0.4.2/tests/reference/scenarios/datasets/NESTED_005.csv +224 -0
  226. csv_stats-0.4.2/tests/reference/scenarios/datasets/NESTED_006.csv +127 -0
  227. csv_stats-0.4.2/tests/reference/scenarios/datasets/NESTED_007.csv +118 -0
  228. csv_stats-0.4.2/tests/reference/scenarios/datasets/NESTED_008.csv +178 -0
  229. csv_stats-0.4.2/tests/reference/scenarios/datasets/NESTED_009.csv +363 -0
  230. csv_stats-0.4.2/tests/reference/scenarios/datasets/NESTED_010.csv +126 -0
  231. csv_stats-0.4.2/tests/reference/scenarios/datasets/NESTED_011.csv +25 -0
  232. csv_stats-0.4.2/tests/reference/scenarios/datasets/NESTED_012.csv +21 -0
  233. csv_stats-0.4.2/tests/reference/scenarios/datasets/NESTED_013.csv +18 -0
  234. csv_stats-0.4.2/tests/reference/scenarios/datasets/NESTED_014.csv +45 -0
  235. csv_stats-0.4.2/tests/reference/scenarios/datasets/NESTED_015.csv +114 -0
  236. csv_stats-0.4.2/tests/reference/scenarios/datasets/NESTED_016.csv +35 -0
  237. csv_stats-0.4.2/tests/reference/scenarios/datasets/NESTED_017.csv +115 -0
  238. csv_stats-0.4.2/tests/reference/scenarios/datasets/NESTED_018.csv +83 -0
  239. csv_stats-0.4.2/tests/reference/scenarios/datasets/NESTED_019.csv +190 -0
  240. csv_stats-0.4.2/tests/reference/scenarios/datasets/NESTED_020.csv +27 -0
  241. csv_stats-0.4.2/tests/reference/scenarios/datasets/NESTED_021.csv +60 -0
  242. csv_stats-0.4.2/tests/reference/scenarios/datasets/NESTED_022.csv +37 -0
  243. csv_stats-0.4.2/tests/reference/scenarios/datasets/NESTED_023.csv +63 -0
  244. csv_stats-0.4.2/tests/reference/scenarios/datasets/NESTED_024.csv +142 -0
  245. csv_stats-0.4.2/tests/reference/scenarios/datasets/NESTED_025.csv +141 -0
  246. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIF_001.csv +137 -0
  247. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIF_002.csv +473 -0
  248. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIF_003.csv +97 -0
  249. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIF_004.csv +191 -0
  250. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIF_005.csv +104 -0
  251. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIF_006.csv +541 -0
  252. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIF_007.csv +209 -0
  253. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIF_008.csv +45 -0
  254. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIF_009.csv +74 -0
  255. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIF_010.csv +257 -0
  256. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIF_011.csv +61 -0
  257. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIF_012.csv +61 -0
  258. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIF_013.csv +50 -0
  259. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIF_014.csv +25 -0
  260. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIF_015.csv +86 -0
  261. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIF_016.csv +34 -0
  262. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIF_017.csv +222 -0
  263. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIF_018.csv +111 -0
  264. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIF_019.csv +196 -0
  265. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIF_020.csv +76 -0
  266. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIF_021.csv +113 -0
  267. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIF_022.csv +89 -0
  268. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIF_023.csv +63 -0
  269. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIF_024.csv +109 -0
  270. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIF_025.csv +53 -0
  271. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_001.csv +79 -0
  272. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_002.csv +246 -0
  273. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_003.csv +85 -0
  274. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_004.csv +243 -0
  275. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_005.csv +169 -0
  276. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_006.csv +102 -0
  277. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_007.csv +289 -0
  278. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_008.csv +76 -0
  279. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_009.csv +165 -0
  280. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_010.csv +43 -0
  281. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_011.csv +37 -0
  282. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_012.csv +24 -0
  283. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_013.csv +12 -0
  284. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_014.csv +84 -0
  285. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_015.csv +36 -0
  286. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_016.csv +61 -0
  287. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_017.csv +38 -0
  288. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_018.csv +80 -0
  289. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_019.csv +85 -0
  290. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_020.csv +93 -0
  291. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_021.csv +159 -0
  292. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_022.csv +61 -0
  293. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_023.csv +200 -0
  294. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_024.csv +92 -0
  295. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_025.csv +58 -0
  296. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_FACTOR_001.csv +271 -0
  297. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_FACTOR_002.csv +133 -0
  298. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_FACTOR_003.csv +211 -0
  299. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_FACTOR_004.csv +487 -0
  300. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_FACTOR_005.csv +697 -0
  301. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_FACTOR_006.csv +298 -0
  302. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_FACTOR_007.csv +91 -0
  303. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_FACTOR_008.csv +65 -0
  304. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_FACTOR_009.csv +271 -0
  305. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_FACTOR_010.csv +116 -0
  306. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_FACTOR_011.csv +46 -0
  307. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_FACTOR_012.csv +61 -0
  308. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_FACTOR_013.csv +97 -0
  309. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_FACTOR_014.csv +130 -0
  310. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_FACTOR_015.csv +164 -0
  311. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_FACTOR_016.csv +191 -0
  312. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_FACTOR_017.csv +179 -0
  313. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_FACTOR_018.csv +257 -0
  314. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_FACTOR_019.csv +90 -0
  315. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_FACTOR_020.csv +205 -0
  316. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_FACTOR_021.csv +103 -0
  317. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_FACTOR_022.csv +213 -0
  318. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_FACTOR_023.csv +153 -0
  319. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_FACTOR_024.csv +163 -0
  320. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_FACTOR_025.csv +172 -0
  321. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_UNCORR_001.csv +61 -0
  322. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_UNCORR_002.csv +28 -0
  323. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_UNCORR_003.csv +79 -0
  324. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_UNCORR_004.csv +154 -0
  325. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_UNCORR_005.csv +95 -0
  326. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_UNCORR_006.csv +225 -0
  327. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_UNCORR_007.csv +92 -0
  328. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_UNCORR_008.csv +173 -0
  329. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_UNCORR_009.csv +26 -0
  330. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_UNCORR_010.csv +154 -0
  331. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_UNCORR_011.csv +29 -0
  332. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_UNCORR_012.csv +36 -0
  333. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_UNCORR_013.csv +19 -0
  334. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_UNCORR_014.csv +30 -0
  335. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_UNCORR_015.csv +70 -0
  336. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_UNCORR_016.csv +106 -0
  337. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_UNCORR_017.csv +116 -0
  338. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_UNCORR_018.csv +205 -0
  339. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_UNCORR_019.csv +39 -0
  340. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_UNCORR_020.csv +105 -0
  341. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_UNCORR_021.csv +37 -0
  342. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_UNCORR_022.csv +217 -0
  343. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_UNCORR_023.csv +44 -0
  344. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_UNCORR_024.csv +226 -0
  345. csv_stats-0.4.2/tests/reference/scenarios/datasets/RIS_UNCORR_025.csv +153 -0
  346. csv_stats-0.4.2/tests/reference/scenarios/datasets/RI_001.csv +89 -0
  347. csv_stats-0.4.2/tests/reference/scenarios/datasets/RI_002.csv +133 -0
  348. csv_stats-0.4.2/tests/reference/scenarios/datasets/RI_003.csv +213 -0
  349. csv_stats-0.4.2/tests/reference/scenarios/datasets/RI_004.csv +61 -0
  350. csv_stats-0.4.2/tests/reference/scenarios/datasets/RI_005.csv +30 -0
  351. csv_stats-0.4.2/tests/reference/scenarios/datasets/RI_006.csv +88 -0
  352. csv_stats-0.4.2/tests/reference/scenarios/datasets/RI_007.csv +154 -0
  353. csv_stats-0.4.2/tests/reference/scenarios/datasets/RI_008.csv +129 -0
  354. csv_stats-0.4.2/tests/reference/scenarios/datasets/RI_009.csv +122 -0
  355. csv_stats-0.4.2/tests/reference/scenarios/datasets/RI_010.csv +40 -0
  356. csv_stats-0.4.2/tests/reference/scenarios/datasets/RI_011.csv +13 -0
  357. csv_stats-0.4.2/tests/reference/scenarios/datasets/RI_012.csv +45 -0
  358. csv_stats-0.4.2/tests/reference/scenarios/datasets/RI_013.csv +70 -0
  359. csv_stats-0.4.2/tests/reference/scenarios/datasets/RI_014.csv +197 -0
  360. csv_stats-0.4.2/tests/reference/scenarios/datasets/RI_015.csv +76 -0
  361. csv_stats-0.4.2/tests/reference/scenarios/datasets/RI_016.csv +236 -0
  362. csv_stats-0.4.2/tests/reference/scenarios/datasets/RI_017.csv +19 -0
  363. csv_stats-0.4.2/tests/reference/scenarios/datasets/RI_018.csv +40 -0
  364. csv_stats-0.4.2/tests/reference/scenarios/datasets/RI_019.csv +86 -0
  365. csv_stats-0.4.2/tests/reference/scenarios/datasets/RI_020.csv +70 -0
  366. csv_stats-0.4.2/tests/reference/scenarios/datasets/RI_021.csv +49 -0
  367. csv_stats-0.4.2/tests/reference/scenarios/datasets/RI_022.csv +120 -0
  368. csv_stats-0.4.2/tests/reference/scenarios/datasets/RI_023.csv +259 -0
  369. csv_stats-0.4.2/tests/reference/scenarios/datasets/RI_024.csv +70 -0
  370. csv_stats-0.4.2/tests/reference/scenarios/datasets/RI_025.csv +246 -0
  371. csv_stats-0.4.2/tests/reference/scenarios/datasets/RM_001.csv +91 -0
  372. csv_stats-0.4.2/tests/reference/scenarios/datasets/RM_002.csv +205 -0
  373. csv_stats-0.4.2/tests/reference/scenarios/datasets/RM_003.csv +187 -0
  374. csv_stats-0.4.2/tests/reference/scenarios/datasets/RM_004.csv +257 -0
  375. csv_stats-0.4.2/tests/reference/scenarios/datasets/RM_005.csv +154 -0
  376. csv_stats-0.4.2/tests/reference/scenarios/datasets/RM_006.csv +561 -0
  377. csv_stats-0.4.2/tests/reference/scenarios/datasets/RM_007.csv +141 -0
  378. csv_stats-0.4.2/tests/reference/scenarios/datasets/RM_008.csv +329 -0
  379. csv_stats-0.4.2/tests/reference/scenarios/datasets/RM_009.csv +271 -0
  380. csv_stats-0.4.2/tests/reference/scenarios/datasets/RM_010.csv +177 -0
  381. csv_stats-0.4.2/tests/reference/scenarios/datasets/RM_011.csv +44 -0
  382. csv_stats-0.4.2/tests/reference/scenarios/datasets/RM_012.csv +38 -0
  383. csv_stats-0.4.2/tests/reference/scenarios/datasets/RM_013.csv +39 -0
  384. csv_stats-0.4.2/tests/reference/scenarios/datasets/RM_014.csv +72 -0
  385. csv_stats-0.4.2/tests/reference/scenarios/datasets/RM_015.csv +74 -0
  386. csv_stats-0.4.2/tests/reference/scenarios/datasets/RM_016.csv +121 -0
  387. csv_stats-0.4.2/tests/reference/scenarios/datasets/RM_017.csv +239 -0
  388. csv_stats-0.4.2/tests/reference/scenarios/datasets/RM_018.csv +336 -0
  389. csv_stats-0.4.2/tests/reference/scenarios/datasets/RM_019.csv +532 -0
  390. csv_stats-0.4.2/tests/reference/scenarios/datasets/RM_020.csv +108 -0
  391. csv_stats-0.4.2/tests/reference/scenarios/datasets/RM_021.csv +244 -0
  392. csv_stats-0.4.2/tests/reference/scenarios/datasets/RM_022.csv +100 -0
  393. csv_stats-0.4.2/tests/reference/scenarios/datasets/RM_023.csv +313 -0
  394. csv_stats-0.4.2/tests/reference/scenarios/datasets/RM_024.csv +91 -0
  395. csv_stats-0.4.2/tests/reference/scenarios/datasets/RM_025.csv +73 -0
  396. csv_stats-0.4.2/tests/reference/scenarios/manifest.csv +226 -0
  397. csv_stats-0.4.2/tests/reference/scenarios/ours_check.json +122 -0
  398. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_001.json +250 -0
  399. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_002.json +250 -0
  400. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_003.json +298 -0
  401. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_004.json +304 -0
  402. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_005.json +250 -0
  403. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_006.json +329 -0
  404. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_007.json +256 -0
  405. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_008.json +250 -0
  406. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_009.json +250 -0
  407. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_010.json +250 -0
  408. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_011.json +304 -0
  409. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_012.json +300 -0
  410. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_013.json +304 -0
  411. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_014.json +298 -0
  412. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_015.json +323 -0
  413. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_016.json +250 -0
  414. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_017.json +323 -0
  415. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_018.json +250 -0
  416. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_019.json +329 -0
  417. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_020.json +323 -0
  418. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_021.json +250 -0
  419. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_022.json +250 -0
  420. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_023.json +323 -0
  421. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_024.json +298 -0
  422. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_025.json +298 -0
  423. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_SLOPES_001.json +361 -0
  424. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_SLOPES_002.json +361 -0
  425. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_SLOPES_003.json +361 -0
  426. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_SLOPES_004.json +371 -0
  427. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_SLOPES_005.json +361 -0
  428. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_SLOPES_006.json +367 -0
  429. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_SLOPES_007.json +361 -0
  430. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_SLOPES_008.json +361 -0
  431. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_SLOPES_009.json +367 -0
  432. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_SLOPES_010.json +367 -0
  433. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_SLOPES_011.json +367 -0
  434. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_SLOPES_012.json +361 -0
  435. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_SLOPES_013.json +367 -0
  436. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_SLOPES_014.json +361 -0
  437. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_SLOPES_015.json +361 -0
  438. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_SLOPES_016.json +361 -0
  439. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_SLOPES_017.json +361 -0
  440. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_SLOPES_018.json +361 -0
  441. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_SLOPES_019.json +367 -0
  442. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_SLOPES_020.json +367 -0
  443. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_SLOPES_021.json +361 -0
  444. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_SLOPES_022.json +363 -0
  445. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_SLOPES_023.json +361 -0
  446. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_SLOPES_024.json +361 -0
  447. csv_stats-0.4.2/tests/reference/scenarios/results/CROSSED_SLOPES_025.json +361 -0
  448. csv_stats-0.4.2/tests/reference/scenarios/results/NESTED_001.json +383 -0
  449. csv_stats-0.4.2/tests/reference/scenarios/results/NESTED_002.json +383 -0
  450. csv_stats-0.4.2/tests/reference/scenarios/results/NESTED_003.json +300 -0
  451. csv_stats-0.4.2/tests/reference/scenarios/results/NESTED_004.json +304 -0
  452. csv_stats-0.4.2/tests/reference/scenarios/results/NESTED_005.json +389 -0
  453. csv_stats-0.4.2/tests/reference/scenarios/results/NESTED_006.json +630 -0
  454. csv_stats-0.4.2/tests/reference/scenarios/results/NESTED_007.json +636 -0
  455. csv_stats-0.4.2/tests/reference/scenarios/results/NESTED_008.json +632 -0
  456. csv_stats-0.4.2/tests/reference/scenarios/results/NESTED_009.json +383 -0
  457. csv_stats-0.4.2/tests/reference/scenarios/results/NESTED_010.json +298 -0
  458. csv_stats-0.4.2/tests/reference/scenarios/results/NESTED_011.json +310 -0
  459. csv_stats-0.4.2/tests/reference/scenarios/results/NESTED_012.json +636 -0
  460. csv_stats-0.4.2/tests/reference/scenarios/results/NESTED_013.json +298 -0
  461. csv_stats-0.4.2/tests/reference/scenarios/results/NESTED_014.json +383 -0
  462. csv_stats-0.4.2/tests/reference/scenarios/results/NESTED_015.json +630 -0
  463. csv_stats-0.4.2/tests/reference/scenarios/results/NESTED_016.json +300 -0
  464. csv_stats-0.4.2/tests/reference/scenarios/results/NESTED_017.json +630 -0
  465. csv_stats-0.4.2/tests/reference/scenarios/results/NESTED_018.json +304 -0
  466. csv_stats-0.4.2/tests/reference/scenarios/results/NESTED_019.json +350 -0
  467. csv_stats-0.4.2/tests/reference/scenarios/results/NESTED_020.json +385 -0
  468. csv_stats-0.4.2/tests/reference/scenarios/results/NESTED_021.json +298 -0
  469. csv_stats-0.4.2/tests/reference/scenarios/results/NESTED_022.json +630 -0
  470. csv_stats-0.4.2/tests/reference/scenarios/results/NESTED_023.json +632 -0
  471. csv_stats-0.4.2/tests/reference/scenarios/results/NESTED_024.json +298 -0
  472. csv_stats-0.4.2/tests/reference/scenarios/results/NESTED_025.json +630 -0
  473. csv_stats-0.4.2/tests/reference/scenarios/results/RIF_001.json +339 -0
  474. csv_stats-0.4.2/tests/reference/scenarios/results/RIF_002.json +333 -0
  475. csv_stats-0.4.2/tests/reference/scenarios/results/RIF_003.json +333 -0
  476. csv_stats-0.4.2/tests/reference/scenarios/results/RIF_004.json +333 -0
  477. csv_stats-0.4.2/tests/reference/scenarios/results/RIF_005.json +490 -0
  478. csv_stats-0.4.2/tests/reference/scenarios/results/RIF_006.json +339 -0
  479. csv_stats-0.4.2/tests/reference/scenarios/results/RIF_007.json +496 -0
  480. csv_stats-0.4.2/tests/reference/scenarios/results/RIF_008.json +494 -0
  481. csv_stats-0.4.2/tests/reference/scenarios/results/RIF_009.json +500 -0
  482. csv_stats-0.4.2/tests/reference/scenarios/results/RIF_010.json +496 -0
  483. csv_stats-0.4.2/tests/reference/scenarios/results/RIF_011.json +333 -0
  484. csv_stats-0.4.2/tests/reference/scenarios/results/RIF_012.json +496 -0
  485. csv_stats-0.4.2/tests/reference/scenarios/results/RIF_013.json +496 -0
  486. csv_stats-0.4.2/tests/reference/scenarios/results/RIF_014.json +496 -0
  487. csv_stats-0.4.2/tests/reference/scenarios/results/RIF_015.json +333 -0
  488. csv_stats-0.4.2/tests/reference/scenarios/results/RIF_016.json +333 -0
  489. csv_stats-0.4.2/tests/reference/scenarios/results/RIF_017.json +490 -0
  490. csv_stats-0.4.2/tests/reference/scenarios/results/RIF_018.json +490 -0
  491. csv_stats-0.4.2/tests/reference/scenarios/results/RIF_019.json +339 -0
  492. csv_stats-0.4.2/tests/reference/scenarios/results/RIF_020.json +496 -0
  493. csv_stats-0.4.2/tests/reference/scenarios/results/RIF_021.json +333 -0
  494. csv_stats-0.4.2/tests/reference/scenarios/results/RIF_022.json +339 -0
  495. csv_stats-0.4.2/tests/reference/scenarios/results/RIF_023.json +337 -0
  496. csv_stats-0.4.2/tests/reference/scenarios/results/RIF_024.json +490 -0
  497. csv_stats-0.4.2/tests/reference/scenarios/results/RIF_025.json +496 -0
  498. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_001.json +426 -0
  499. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_002.json +308 -0
  500. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_003.json +424 -0
  501. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_004.json +426 -0
  502. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_005.json +420 -0
  503. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_006.json +426 -0
  504. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_007.json +308 -0
  505. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_008.json +426 -0
  506. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_009.json +314 -0
  507. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_010.json +314 -0
  508. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_011.json +426 -0
  509. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_012.json +426 -0
  510. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_013.json +314 -0
  511. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_014.json +52 -0
  512. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_015.json +52 -0
  513. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_016.json +314 -0
  514. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_017.json +426 -0
  515. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_018.json +320 -0
  516. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_019.json +337 -0
  517. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_020.json +426 -0
  518. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_021.json +320 -0
  519. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_022.json +420 -0
  520. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_023.json +420 -0
  521. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_024.json +314 -0
  522. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_025.json +420 -0
  523. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_FACTOR_001.json +857 -0
  524. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_FACTOR_002.json +500 -0
  525. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_FACTOR_003.json +502 -0
  526. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_FACTOR_004.json +857 -0
  527. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_FACTOR_005.json +857 -0
  528. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_FACTOR_006.json +863 -0
  529. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_FACTOR_007.json +857 -0
  530. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_FACTOR_008.json +857 -0
  531. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_FACTOR_009.json +506 -0
  532. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_FACTOR_010.json +857 -0
  533. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_FACTOR_011.json +857 -0
  534. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_FACTOR_012.json +506 -0
  535. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_FACTOR_013.json +851 -0
  536. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_FACTOR_014.json +857 -0
  537. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_FACTOR_015.json +506 -0
  538. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_FACTOR_016.json +857 -0
  539. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_FACTOR_017.json +851 -0
  540. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_FACTOR_018.json +506 -0
  541. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_FACTOR_019.json +672 -0
  542. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_FACTOR_020.json +506 -0
  543. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_FACTOR_021.json +851 -0
  544. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_FACTOR_022.json +851 -0
  545. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_FACTOR_023.json +500 -0
  546. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_FACTOR_024.json +853 -0
  547. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_FACTOR_025.json +512 -0
  548. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_UNCORR_001.json +407 -0
  549. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_UNCORR_002.json +401 -0
  550. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_UNCORR_003.json +289 -0
  551. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_UNCORR_004.json +295 -0
  552. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_UNCORR_005.json +289 -0
  553. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_UNCORR_006.json +289 -0
  554. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_UNCORR_007.json +295 -0
  555. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_UNCORR_008.json +293 -0
  556. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_UNCORR_009.json +295 -0
  557. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_UNCORR_010.json +295 -0
  558. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_UNCORR_011.json +407 -0
  559. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_UNCORR_012.json +407 -0
  560. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_UNCORR_013.json +289 -0
  561. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_UNCORR_014.json +401 -0
  562. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_UNCORR_015.json +291 -0
  563. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_UNCORR_016.json +295 -0
  564. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_UNCORR_017.json +407 -0
  565. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_UNCORR_018.json +407 -0
  566. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_UNCORR_019.json +318 -0
  567. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_UNCORR_020.json +407 -0
  568. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_UNCORR_021.json +407 -0
  569. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_UNCORR_022.json +407 -0
  570. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_UNCORR_023.json +401 -0
  571. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_UNCORR_024.json +295 -0
  572. csv_stats-0.4.2/tests/reference/scenarios/results/RIS_UNCORR_025.json +407 -0
  573. csv_stats-0.4.2/tests/reference/scenarios/results/RI_001.json +222 -0
  574. csv_stats-0.4.2/tests/reference/scenarios/results/RI_002.json +382 -0
  575. csv_stats-0.4.2/tests/reference/scenarios/results/RI_003.json +222 -0
  576. csv_stats-0.4.2/tests/reference/scenarios/results/RI_004.json +276 -0
  577. csv_stats-0.4.2/tests/reference/scenarios/results/RI_005.json +228 -0
  578. csv_stats-0.4.2/tests/reference/scenarios/results/RI_006.json +228 -0
  579. csv_stats-0.4.2/tests/reference/scenarios/results/RI_007.json +276 -0
  580. csv_stats-0.4.2/tests/reference/scenarios/results/RI_008.json +222 -0
  581. csv_stats-0.4.2/tests/reference/scenarios/results/RI_009.json +602 -0
  582. csv_stats-0.4.2/tests/reference/scenarios/results/RI_010.json +270 -0
  583. csv_stats-0.4.2/tests/reference/scenarios/results/RI_011.json +228 -0
  584. csv_stats-0.4.2/tests/reference/scenarios/results/RI_012.json +602 -0
  585. csv_stats-0.4.2/tests/reference/scenarios/results/RI_013.json +602 -0
  586. csv_stats-0.4.2/tests/reference/scenarios/results/RI_014.json +355 -0
  587. csv_stats-0.4.2/tests/reference/scenarios/results/RI_015.json +605 -0
  588. csv_stats-0.4.2/tests/reference/scenarios/results/RI_016.json +602 -0
  589. csv_stats-0.4.2/tests/reference/scenarios/results/RI_017.json +388 -0
  590. csv_stats-0.4.2/tests/reference/scenarios/results/RI_018.json +270 -0
  591. csv_stats-0.4.2/tests/reference/scenarios/results/RI_019.json +232 -0
  592. csv_stats-0.4.2/tests/reference/scenarios/results/RI_020.json +222 -0
  593. csv_stats-0.4.2/tests/reference/scenarios/results/RI_021.json +222 -0
  594. csv_stats-0.4.2/tests/reference/scenarios/results/RI_022.json +355 -0
  595. csv_stats-0.4.2/tests/reference/scenarios/results/RI_023.json +355 -0
  596. csv_stats-0.4.2/tests/reference/scenarios/results/RI_024.json +388 -0
  597. csv_stats-0.4.2/tests/reference/scenarios/results/RI_025.json +355 -0
  598. csv_stats-0.4.2/tests/reference/scenarios/results/RM_001.json +632 -0
  599. csv_stats-0.4.2/tests/reference/scenarios/results/RM_002.json +630 -0
  600. csv_stats-0.4.2/tests/reference/scenarios/results/RM_003.json +630 -0
  601. csv_stats-0.4.2/tests/reference/scenarios/results/RM_004.json +389 -0
  602. csv_stats-0.4.2/tests/reference/scenarios/results/RM_005.json +389 -0
  603. csv_stats-0.4.2/tests/reference/scenarios/results/RM_006.json +389 -0
  604. csv_stats-0.4.2/tests/reference/scenarios/results/RM_007.json +389 -0
  605. csv_stats-0.4.2/tests/reference/scenarios/results/RM_008.json +630 -0
  606. csv_stats-0.4.2/tests/reference/scenarios/results/RM_009.json +630 -0
  607. csv_stats-0.4.2/tests/reference/scenarios/results/RM_010.json +385 -0
  608. csv_stats-0.4.2/tests/reference/scenarios/results/RM_011.json +630 -0
  609. csv_stats-0.4.2/tests/reference/scenarios/results/RM_012.json +389 -0
  610. csv_stats-0.4.2/tests/reference/scenarios/results/RM_013.json +636 -0
  611. csv_stats-0.4.2/tests/reference/scenarios/results/RM_014.json +383 -0
  612. csv_stats-0.4.2/tests/reference/scenarios/results/RM_015.json +383 -0
  613. csv_stats-0.4.2/tests/reference/scenarios/results/RM_016.json +383 -0
  614. csv_stats-0.4.2/tests/reference/scenarios/results/RM_017.json +383 -0
  615. csv_stats-0.4.2/tests/reference/scenarios/results/RM_018.json +630 -0
  616. csv_stats-0.4.2/tests/reference/scenarios/results/RM_019.json +454 -0
  617. csv_stats-0.4.2/tests/reference/scenarios/results/RM_020.json +383 -0
  618. csv_stats-0.4.2/tests/reference/scenarios/results/RM_021.json +630 -0
  619. csv_stats-0.4.2/tests/reference/scenarios/results/RM_022.json +383 -0
  620. csv_stats-0.4.2/tests/reference/scenarios/results/RM_023.json +632 -0
  621. csv_stats-0.4.2/tests/reference/scenarios/results/RM_024.json +383 -0
  622. csv_stats-0.4.2/tests/reference/scenarios/results/RM_025.json +383 -0
  623. csv_stats-0.4.2/tests/reference/write_ours_check.py +27 -0
  624. csv_stats-0.4.2/tests/test_assumption_checks.py +38 -0
  625. {csv_stats-0.2.1 → csv_stats-0.4.2}/tests/test_descriptive.py +7 -2
  626. csv_stats-0.4.2/tests/test_lmm.py +159 -0
  627. csv_stats-0.4.2/tests/test_lmm_fit.py +278 -0
  628. csv_stats-0.4.2/tests/test_lmm_formula.py +122 -0
  629. csv_stats-0.4.2/tests/test_lmm_invariants.py +171 -0
  630. csv_stats-0.4.2/tests/test_lmm_pairwise_covariates.py +75 -0
  631. csv_stats-0.4.2/tests/test_lmm_reference.py +222 -0
  632. csv_stats-0.4.2/tests/test_lmm_scenarios.py +514 -0
  633. csv_stats-0.4.2/tests/test_lmm_type3.py +115 -0
  634. csv_stats-0.2.1/.gitignore +0 -5
  635. csv_stats-0.2.1/src/csvstats/__init__.py +0 -1
  636. {csv_stats-0.2.1 → csv_stats-0.4.2}/src/csvstats/anova.py +0 -0
  637. {csv_stats-0.2.1 → csv_stats-0.4.2}/src/csvstats/ttest.py +0 -0
  638. {csv_stats-0.2.1 → csv_stats-0.4.2}/src/csvstats/utils/__init__.py +0 -0
  639. {csv_stats-0.2.1 → csv_stats-0.4.2}/src/csvstats/utils/load_data.py +0 -0
  640. {csv_stats-0.2.1 → csv_stats-0.4.2}/src/csvstats/utils/plot_data.py +0 -0
  641. {csv_stats-0.2.1 → csv_stats-0.4.2}/src/csvstats/utils/plot_helper.py +0 -0
  642. {csv_stats-0.2.1 → csv_stats-0.4.2}/src/csvstats/utils/run_all_columns.py +0 -0
  643. {csv_stats-0.2.1 → csv_stats-0.4.2}/src/csvstats/utils/save_stats.py +0 -0
  644. {csv_stats-0.2.1 → csv_stats-0.4.2}/src/csvstats/utils/summary_stats.py +0 -0
  645. {csv_stats-0.2.1 → csv_stats-0.4.2}/src/csvstats/utils/test_assumptions.py +0 -0
  646. {csv_stats-0.2.1 → csv_stats-0.4.2}/tests/test_anova1way.py +0 -0
  647. {csv_stats-0.2.1 → csv_stats-0.4.2}/tests/test_anova2way.py +0 -0
  648. {csv_stats-0.2.1 → csv_stats-0.4.2}/tests/test_core.py +0 -0
@@ -0,0 +1,8 @@
1
+ /dist
2
+ /build
3
+ *.pyc
4
+ /src/csv_stats.egg-info
5
+ .DS_Store
6
+
7
+ # scratch input for tests/reference/check_lmm_optimum.R
8
+ tests/reference/scenarios/ours_check.json
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: csv-stats
3
- Version: 0.2.1
3
+ Version: 0.4.2
4
4
  Summary: A Python package for the life sciences to conduct hypothesis testing from CSV files.
5
5
  Project-URL: Homepage, https://github.com/mtillman14/csv-stats
6
6
  Project-URL: Documentation, https://github.com/mtillman14/csv-stats
@@ -20,6 +20,7 @@ Requires-Dist: pandas>=1.5
20
20
  Requires-Dist: scipy>=1.7
21
21
  Provides-Extra: dev
22
22
  Requires-Dist: matplotlib>=3.6; extra == 'dev'
23
+ Requires-Dist: patsy>=0.5; extra == 'dev'
23
24
  Requires-Dist: pingouin>=0.6.0; extra == 'dev'
24
25
  Requires-Dist: pytest; extra == 'dev'
25
26
  Requires-Dist: reportlab>=4.4.4; extra == 'dev'
@@ -27,6 +28,7 @@ Requires-Dist: seaborn>=0.13; extra == 'dev'
27
28
  Requires-Dist: statsmodels>=0.14.5; extra == 'dev'
28
29
  Provides-Extra: full
29
30
  Requires-Dist: matplotlib>=3.6; extra == 'full'
31
+ Requires-Dist: patsy>=0.5; extra == 'full'
30
32
  Requires-Dist: pingouin>=0.6.0; extra == 'full'
31
33
  Requires-Dist: reportlab>=4.4.4; extra == 'full'
32
34
  Requires-Dist: seaborn>=0.13; extra == 'full'
@@ -55,6 +57,58 @@ ci_interval([4.1, 5.0, 6.2]) # (low, high); also a seaborn errorbar= calla
55
57
  ci_half_width(sd=1.2, n=5) # t(0.975, 4) * 1.2 / sqrt(5)
56
58
  ```
57
59
 
60
+ ## Linear mixed models (0.4.1)
61
+ `csvstats.lmm` uses every observation: a subject missing some within-subject
62
+ levels is kept, not dropped (a repeated-measures ANOVA or paired t-test would
63
+ have to drop it). REML, sum-to-zero coding. The random effects default to an
64
+ intercept per subject. `random=` takes any lme4-style structure:
65
+ - random slopes, correlated or uncorrelated (`||`)
66
+ - crossed groupings, e.g. subject + item
67
+ - nested and interaction groupings, e.g. `site:subject`
68
+
69
+ Numeric `covariates=` are crossed with the factors. Term tests are type III,
70
+ as in lmerTest and SAS. So a factor crossed with a covariate is tested at
71
+ covariate = 0, and a `type3_at_covariate_zero` warning says so. Centre the
72
+ covariate to test the factor at the covariate's mean.
73
+
74
+ `csvstats.lmm_formula` reads and writes the lme4 spelling of these models
75
+ (`parse("y ~ group * time * x + (1 + x | subject)")`, `render(...)`), with
76
+ errors that point at the offending character. It accepts what `lmm` can fit:
77
+ the fixed part is ONE crossing (`a * b * x`, or `1`), and random terms are
78
+ `(… | g)`, `(… || g)`, `a:b` and `a/b`. A model with no more observations
79
+ than random effects is refused before fitting, as lme4 does.
80
+
81
+ `lmm_pairwise` takes the same `covariates=` and compares levels with each
82
+ covariate at its mean (emmeans' reference grid), or at the value you give
83
+ in `covariates_at={"age": 65}`. The record's `details["covariates_at"]`
84
+ states the value used. So with a covariate, `lmm`'s F for a factor (at 0)
85
+ and `lmm_pairwise`'s contrasts (at the mean) answer different questions,
86
+ exactly as lmerTest's anova and emmeans do in R.
87
+
88
+ The fit is checked against lme4 on 225 sampled scenarios over 9
89
+ random-effect structures (tests/reference/scenarios). That covers the
90
+ criterion itself at fixed θ, the estimates, θ and the Satterthwaite df.
91
+ Tests use **Satterthwaite** degrees of freedom, as R's lmerTest does: t(df) per
92
+ coefficient, a type-III F(q, ddf) per term, and t(df) per pairwise contrast. The
93
+ pairwise contrasts come from the full model (emmeans-style). Everything is checked
94
+ against lme4 / lmerTest / emmeans on 75 reference datasets (tests/reference).
95
+ If a df cannot be computed, the Wald test is reported, labelled `df_method: "wald"`.
96
+
97
+ ```python
98
+ from csvstats.lmm import lmm, lmm_pairwise
99
+ from csvstats.core import assumption_checks
100
+
101
+ lmm(df, "step_length", within=["session", "speed"], subject="subject") # one F(q, ddf) per term
102
+ lmm_pairwise(df, "step_length", within=["session", "speed"], subject="subject", factor="session",
103
+ levels={"session": ["post", "pre"]}) # post − pre within each speed, t(df)
104
+ assumption_checks(df, "step_length", within=["session"], subject="subject") # Shapiro–Wilk on residuals (+ Levene)
105
+
106
+ # Random slopes and crossed effects: y ~ cond * x + (1 + x | subject) + (1 | item)
107
+ lmm(df, "rt", within=["cond"], subject="subject", covariates=["x"],
108
+ random=[{"group": "subject", "terms": ["(Intercept)", "x"]},
109
+ {"group": "item"}])
110
+ ```
111
+
58
112
  ## Examples
59
113
  All code examples below use the following constants:
60
114
  ```python
@@ -20,6 +20,58 @@ ci_interval([4.1, 5.0, 6.2]) # (low, high); also a seaborn errorbar= calla
20
20
  ci_half_width(sd=1.2, n=5) # t(0.975, 4) * 1.2 / sqrt(5)
21
21
  ```
22
22
 
23
+ ## Linear mixed models (0.4.1)
24
+ `csvstats.lmm` uses every observation: a subject missing some within-subject
25
+ levels is kept, not dropped (a repeated-measures ANOVA or paired t-test would
26
+ have to drop it). REML, sum-to-zero coding. The random effects default to an
27
+ intercept per subject. `random=` takes any lme4-style structure:
28
+ - random slopes, correlated or uncorrelated (`||`)
29
+ - crossed groupings, e.g. subject + item
30
+ - nested and interaction groupings, e.g. `site:subject`
31
+
32
+ Numeric `covariates=` are crossed with the factors. Term tests are type III,
33
+ as in lmerTest and SAS. So a factor crossed with a covariate is tested at
34
+ covariate = 0, and a `type3_at_covariate_zero` warning says so. Centre the
35
+ covariate to test the factor at the covariate's mean.
36
+
37
+ `csvstats.lmm_formula` reads and writes the lme4 spelling of these models
38
+ (`parse("y ~ group * time * x + (1 + x | subject)")`, `render(...)`), with
39
+ errors that point at the offending character. It accepts what `lmm` can fit:
40
+ the fixed part is ONE crossing (`a * b * x`, or `1`), and random terms are
41
+ `(… | g)`, `(… || g)`, `a:b` and `a/b`. A model with no more observations
42
+ than random effects is refused before fitting, as lme4 does.
43
+
44
+ `lmm_pairwise` takes the same `covariates=` and compares levels with each
45
+ covariate at its mean (emmeans' reference grid), or at the value you give
46
+ in `covariates_at={"age": 65}`. The record's `details["covariates_at"]`
47
+ states the value used. So with a covariate, `lmm`'s F for a factor (at 0)
48
+ and `lmm_pairwise`'s contrasts (at the mean) answer different questions,
49
+ exactly as lmerTest's anova and emmeans do in R.
50
+
51
+ The fit is checked against lme4 on 225 sampled scenarios over 9
52
+ random-effect structures (tests/reference/scenarios). That covers the
53
+ criterion itself at fixed θ, the estimates, θ and the Satterthwaite df.
54
+ Tests use **Satterthwaite** degrees of freedom, as R's lmerTest does: t(df) per
55
+ coefficient, a type-III F(q, ddf) per term, and t(df) per pairwise contrast. The
56
+ pairwise contrasts come from the full model (emmeans-style). Everything is checked
57
+ against lme4 / lmerTest / emmeans on 75 reference datasets (tests/reference).
58
+ If a df cannot be computed, the Wald test is reported, labelled `df_method: "wald"`.
59
+
60
+ ```python
61
+ from csvstats.lmm import lmm, lmm_pairwise
62
+ from csvstats.core import assumption_checks
63
+
64
+ lmm(df, "step_length", within=["session", "speed"], subject="subject") # one F(q, ddf) per term
65
+ lmm_pairwise(df, "step_length", within=["session", "speed"], subject="subject", factor="session",
66
+ levels={"session": ["post", "pre"]}) # post − pre within each speed, t(df)
67
+ assumption_checks(df, "step_length", within=["session"], subject="subject") # Shapiro–Wilk on residuals (+ Levene)
68
+
69
+ # Random slopes and crossed effects: y ~ cond * x + (1 + x | subject) + (1 | item)
70
+ lmm(df, "rt", within=["cond"], subject="subject", covariates=["x"],
71
+ random=[{"group": "subject", "terms": ["(Intercept)", "x"]},
72
+ {"group": "item"}])
73
+ ```
74
+
23
75
  ## Examples
24
76
  All code examples below use the following constants:
25
77
  ```python
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "csv-stats"
7
- version = "0.2.1"
7
+ version = "0.4.2"
8
8
  description = "A Python package for the life sciences to conduct hypothesis testing from CSV files."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.8"
@@ -35,6 +35,7 @@ dependencies = [
35
35
  full = [
36
36
  "pingouin>=0.6.0",
37
37
  "statsmodels>=0.14.5",
38
+ "patsy>=0.5", # csvstats.lmm builds its design matrices with patsy
38
39
  "reportlab>=4.4.4",
39
40
  "matplotlib>=3.6",
40
41
  "seaborn>=0.13",
@@ -60,4 +61,10 @@ packages = ["src/csvstats"]
60
61
  only-include = ["src/csvstats", "tests", "README.md"]
61
62
 
62
63
  [tool.hatch.build]
63
- ignore-vcs = true
64
+ ignore-vcs = true
65
+
66
+ # Collect only tests/. A bare `pytest` also walked src/, where the library
67
+ # module utils/test_assumptions.py (functions named test_*) was collected as
68
+ # tests and errored for missing fixtures.
69
+ [tool.pytest.ini_options]
70
+ testpaths = ["tests"]
@@ -0,0 +1 @@
1
+ __version__ = "0.4.2"
@@ -166,10 +166,17 @@ class _Prepared:
166
166
  factors: list[str],
167
167
  subject: str | None,
168
168
  levels: dict[str, list[Any]] | None,
169
+ extra: Sequence[str] = (),
169
170
  ) -> None:
171
+ """``extra``: further columns a test reads (an LMM's covariates,
172
+ random-effect groups and slopes), carried along; a row missing one
173
+ is dropped like a row missing the dv."""
170
174
  if not isinstance(data, pd.DataFrame):
171
175
  raise ValueError(f"data must be a pandas DataFrame, got {type(data).__name__}")
172
176
  needed = [dv, *factors, *([subject] if subject else [])]
177
+ # dict.fromkeys: a column named twice (a covariate that is also a
178
+ # random slope) must be selected once, or frame[c] is a DataFrame
179
+ needed += [c for c in dict.fromkeys(extra) if c not in needed]
173
180
  missing = [c for c in needed if c not in data.columns]
174
181
  if missing:
175
182
  raise ValueError(f"column(s) {missing!r} are not in the data")
@@ -182,9 +189,13 @@ class _Prepared:
182
189
  bad = frame[dv].isna() | frame[factors].isna().any(axis=1)
183
190
  if subject:
184
191
  bad |= frame[subject].isna()
192
+ carried = [c for c in dict.fromkeys(extra) if c not in (dv, subject, *factors)]
193
+ if carried:
194
+ bad |= frame[carried].isna().any(axis=1)
185
195
  if bad.any():
186
196
  self.excluded_detail.append(
187
- {"rows": int(bad.sum()), "reason": f"missing {dv} or a factor/subject value"}
197
+ {"rows": int(bad.sum()), "reason": f"missing {dv} or a factor/subject value"
198
+ + (f" or one of {carried}" if carried else "")}
188
199
  )
189
200
  self.warnings.append(
190
201
  {"code": "rows_dropped_missing", "message": f"{int(bad.sum())} row(s) with a missing value dropped"}
@@ -334,6 +345,43 @@ def _levene(groups: list[np.ndarray], alpha: float) -> dict[str, Any]:
334
345
  return {"name": "homogeneity_of_variance", "test": "levene", "scope": "groups", "statistic": _num(w), "p": _num(p), "violated": bool(p < alpha)}
335
346
 
336
347
 
348
+ def assumption_checks(
349
+ data: pd.DataFrame,
350
+ dv: str,
351
+ *,
352
+ between: Sequence[str] = (),
353
+ within: Sequence[str] = (),
354
+ subject: str | None = None,
355
+ levels: dict[str, list[Any]] | None = None,
356
+ alpha: float = 0.05,
357
+ ) -> dict[str, Any]:
358
+ """The checks a caller uses to RECOMMEND a test, before running one.
359
+
360
+ Normality (Shapiro–Wilk) of the residuals the parametric model would have:
361
+ ``y − cell mean`` for between-only designs, and additionally centred on
362
+ each subject's mean when there is a within factor (every observation is
363
+ used; nobody is dropped). Homogeneity of variance (Levene, median-centred)
364
+ across the between cells, when there are any.
365
+
366
+ Returns ``{"assumptions": [...], "n": ...}``. Pre-testing assumptions to
367
+ choose a test is debated; callers should show this as evidence for a
368
+ recommendation the user can override, never as a silent switch.
369
+ """
370
+ between, within = list(between), list(within)
371
+ factors = [*between, *within]
372
+ prep = _Prepared(data, dv, factors, subject if within else None, levels)
373
+ frame = prep.frame
374
+ y = frame[dv].astype(float)
375
+ resid = y - (frame.groupby(factors)[dv].transform("mean") if factors else y.mean())
376
+ if within and subject:
377
+ resid = resid - frame.groupby(subject)[dv].transform("mean") + y.mean()
378
+ checks = [_shapiro(resid.to_numpy(float), "residuals", alpha)]
379
+ if between:
380
+ groups = [g[dv].to_numpy(float) for _, g in frame.groupby(between)]
381
+ checks.append(_levene(groups, alpha))
382
+ return {"assumptions": checks, "n": prep.n_record()}
383
+
384
+
337
385
  def _flag_violations(assumptions: list[dict], warnings: list[dict]) -> None:
338
386
  for a in assumptions:
339
387
  if a.get("violated"):
@@ -6,9 +6,13 @@ shape statistic gets it from here. That includes csv-stats' own test results
6
6
  (StatStudio descriptives). So an error bar on a figure and the number in a
7
7
  table cannot disagree.
8
8
 
9
- Light on purpose: this module imports numpy, pandas and scipy only (never
9
+ Light on purpose: importing this module loads numpy and pandas only (never
10
10
  pingouin, statsmodels, matplotlib or reportlab), so a plotting package can
11
- depend on it cheaply. ``tests/test_descriptive.py`` guards that.
11
+ depend on it cheaply. scipy is imported inside the two functions that need
12
+ it (:func:`t_critical`, :func:`summarize`): ``scipy.stats`` alone cost 2 s of
13
+ scistackplot's 4 s first import on Windows (2026-10-20), paid on every Plot
14
+ Studio open even when no figure draws an interval. ``tests/test_descriptive.py``
15
+ guards both.
12
16
 
13
17
  Conventions (each one is a decision, stated once):
14
18
 
@@ -34,7 +38,6 @@ from typing import Any, Literal
34
38
 
35
39
  import numpy as np
36
40
  import pandas as pd
37
- from scipy import stats
38
41
 
39
42
  #: Divisor offset of the sample SD (and variance): ``n - SD_DDOF``.
40
43
  SD_DDOF = 1
@@ -61,6 +64,8 @@ def t_critical(n: Any, level: float = CI_LEVEL) -> Any:
61
64
  NaN where ``n < 2``. Accepts a scalar, numpy array or pandas Series
62
65
  (index kept) and returns the same kind.
63
66
  """
67
+ from scipy import stats # lazy: see the module docstring
68
+
64
69
  counts = np.asarray(n, dtype=float)
65
70
  upper = 1.0 - (1.0 - level) / 2.0
66
71
  with np.errstate(invalid="ignore"):
@@ -126,6 +131,8 @@ def summarize(values: Any, level: float = CI_LEVEL) -> dict[str, float]:
126
131
  ``cv`` (SD / mean) is NaN when the mean is 0. Skewness needs 3 values and
127
132
  kurtosis 4; with fewer they are NaN.
128
133
  """
134
+ from scipy import stats # lazy: see the module docstring
135
+
129
136
  raw = pd.Series(values, dtype=float)
130
137
  clean = raw.dropna()
131
138
  n = int(len(clean))