sapor 0.1b1 → 0.2a1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (324) hide show
  1. checksums.yaml +5 -5
  2. data/Example-Catalonia.md +361 -0
  3. data/Example-Flanders.md +486 -0
  4. data/Example-Greece.md +25 -0
  5. data/Example-Oslo.md +678 -0
  6. data/Example-UnitedKingdom-Referendum.md +132 -0
  7. data/Examples.md +9 -355
  8. data/README.md +41 -8
  9. data/bin/create_installation_package.sh +2 -2
  10. data/bin/install.sh +1 -1
  11. data/bin/sapor.rb +4 -2
  12. data/bin/sapor.sh +10 -9
  13. data/data/hu/hungary-2014.txt +1680 -0
  14. data/data/hu/hungary_2014_screen_scraper.rb +48 -0
  15. data/data/hu/hungary_2014_to_psv.rb +80 -0
  16. data/data/hu/index-2014.txt +106 -0
  17. data/data/pl/2015-gl-lis-okr.csv +42 -0
  18. data/data/pl/poland_2015_to_psv.rb +79 -0
  19. data/data/pl/poland_2015_to_psv_with_ko_and_rsw.rb +94 -0
  20. data/data/pl/poland_2015_to_psv_with_ko_konf_kp_l_and_zp.rb +100 -0
  21. data/data/pl/poland_2015_to_psv_with_ko_sld_and_wi.rb +92 -0
  22. data/data/pl/poland_2015_to_psv_with_sld.rb +84 -0
  23. data/data/pl/poland_2015_to_psv_with_sld_and_wi.rb +85 -0
  24. data/data/uk/inject_ukip_2015_as_brexit_2019_in_2017.rb +54 -0
  25. data/data/uk/united_kingdom_2015.txt +651 -0
  26. data/data/uk/united_kingdom_2015_to_psv.rb +104 -0
  27. data/data/uk/united_kingdom_2017.txt +651 -0
  28. data/data/uk/united_kingdom_2017_to_psv.rb +104 -0
  29. data/data/uk/united_kingdom_2017_to_psv_with_brexit_and_chuk.rb +113 -0
  30. data/data/uk/united_kingdom_2017_to_psv_with_tig.rb +111 -0
  31. data/lib/sapor/binomials_cache.rb +1 -1
  32. data/lib/sapor/combinations_distribution.rb +43 -1
  33. data/lib/sapor/denominators.rb +67 -0
  34. data/lib/sapor/dichotomies.rb +41 -1
  35. data/lib/sapor/dichotomy.rb +31 -5
  36. data/lib/sapor/first_past_the_post.rb +6 -2
  37. data/lib/sapor/largest_remainder.rb +118 -0
  38. data/lib/sapor/log4r_logger.rb +1 -1
  39. data/lib/sapor/log_facade.rb +1 -1
  40. data/lib/sapor/{leveled_proportional.rb → multi_district_leveled_proportional.rb} +7 -7
  41. data/lib/sapor/{proportional.rb → multi_district_proportional.rb} +27 -32
  42. data/lib/sapor/multi_district_variable_threshold_proportional.rb +128 -0
  43. data/lib/sapor/number_formatter.rb +1 -1
  44. data/lib/sapor/options.rb +73 -0
  45. data/lib/sapor/poll.rb +178 -29
  46. data/lib/sapor/polychotomy.rb +100 -259
  47. data/lib/sapor/pseudorandom_multirange_enumerator.rb +1 -1
  48. data/lib/sapor/referendum_polychotomy.rb +165 -0
  49. data/lib/sapor/regional_data/area.rb +4 -2
  50. data/lib/sapor/regional_data/austria.rb +84 -0
  51. data/lib/sapor/regional_data/belgium-brussels-2014.psv +46 -0
  52. data/lib/sapor/regional_data/belgium-brussels-20190526.psv +33 -0
  53. data/lib/sapor/regional_data/belgium-flanders-2014.psv +80 -0
  54. data/lib/sapor/regional_data/belgium-flanders-20190526.psv +74 -0
  55. data/lib/sapor/regional_data/belgium-wallonia-2014.psv +114 -0
  56. data/lib/sapor/regional_data/belgium-wallonia-20190526.psv +93 -0
  57. data/lib/sapor/regional_data/belgium.rb +97 -0
  58. data/lib/sapor/regional_data/belgium_brussels.rb +62 -0
  59. data/lib/sapor/regional_data/belgium_flanders.rb +64 -0
  60. data/lib/sapor/regional_data/belgium_wallonia.rb +63 -0
  61. data/lib/sapor/regional_data/catalonia-2012-2015.psv +1 -1
  62. data/lib/sapor/regional_data/catalonia-2012.psv +1 -1
  63. data/lib/sapor/regional_data/catalonia-2015-jxcat.psv +68 -0
  64. data/lib/sapor/regional_data/catalonia-2015-no-jxsi.psv +68 -0
  65. data/lib/sapor/regional_data/catalonia-2015.psv +63 -0
  66. data/lib/sapor/regional_data/catalonia-jxcat.rb +109 -0
  67. data/lib/sapor/regional_data/catalonia-no-jxsi.rb +96 -0
  68. data/lib/sapor/regional_data/catalonia.rb +27 -21
  69. data/lib/sapor/regional_data/denmark-20150618-with-e-and-p.psv +164 -0
  70. data/lib/sapor/regional_data/denmark-20150618-with-e.psv +153 -0
  71. data/lib/sapor/regional_data/denmark-20150618-with-p.psv +153 -0
  72. data/lib/sapor/regional_data/denmark-20150618.psv +142 -0
  73. data/lib/sapor/regional_data/denmark.rb +128 -0
  74. data/lib/sapor/regional_data/denmark_with_e.rb +128 -0
  75. data/lib/sapor/regional_data/denmark_with_e_and_p.rb +128 -0
  76. data/lib/sapor/regional_data/denmark_with_p.rb +128 -0
  77. data/lib/sapor/regional_data/estonia.rb +88 -0
  78. data/lib/sapor/regional_data/european-union-great-britain-20140522-brexit-chuk.psv +172 -0
  79. data/lib/sapor/regional_data/european-union-great-britain-20140522.psv +146 -0
  80. data/lib/sapor/regional_data/european-union-great-britain-20190523.psv +141 -0
  81. data/lib/sapor/regional_data/european-union-ireland-2014-ia-ri-sd.psv +64 -0
  82. data/lib/sapor/regional_data/european-union-ireland-2014-ia-sd.psv +60 -0
  83. data/lib/sapor/regional_data/european-union-ireland-2014-ia.psv +56 -0
  84. data/lib/sapor/regional_data/european-union-ireland-2014-sd.psv +56 -0
  85. data/lib/sapor/regional_data/european-union-ireland-2014.psv +50 -0
  86. data/lib/sapor/regional_data/european-union-ireland-20190524-ia.psv +58 -0
  87. data/lib/sapor/regional_data/european-union-ireland-20190524.psv +52 -0
  88. data/lib/sapor/regional_data/european_union_27_austria.rb +76 -0
  89. data/lib/sapor/regional_data/european_union_27_croatia.rb +81 -0
  90. data/lib/sapor/regional_data/european_union_27_denmark.rb +77 -0
  91. data/lib/sapor/regional_data/european_union_27_estonia.rb +74 -0
  92. data/lib/sapor/regional_data/european_union_27_finland.rb +74 -0
  93. data/lib/sapor/regional_data/european_union_27_ireland.rb +96 -0
  94. data/lib/sapor/regional_data/european_union_27_ireland_with_ia.rb +97 -0
  95. data/lib/sapor/regional_data/european_union_27_italy.rb +83 -0
  96. data/lib/sapor/regional_data/european_union_27_netherlands.rb +81 -0
  97. data/lib/sapor/regional_data/european_union_27_poland.rb +79 -0
  98. data/lib/sapor/regional_data/european_union_27_romania.rb +78 -0
  99. data/lib/sapor/regional_data/european_union_27_slovakia.rb +80 -0
  100. data/lib/sapor/regional_data/european_union_27_spain.rb +82 -0
  101. data/lib/sapor/regional_data/european_union_27_sweden.rb +76 -0
  102. data/lib/sapor/regional_data/european_union_austria.rb +76 -0
  103. data/lib/sapor/regional_data/european_union_bulgaria.rb +81 -0
  104. data/lib/sapor/regional_data/european_union_croatia.rb +81 -0
  105. data/lib/sapor/regional_data/european_union_cyprus.rb +72 -0
  106. data/lib/sapor/regional_data/european_union_czech_republic.rb +82 -0
  107. data/lib/sapor/regional_data/european_union_denmark.rb +77 -0
  108. data/lib/sapor/regional_data/european_union_estonia.rb +74 -0
  109. data/lib/sapor/regional_data/european_union_finland.rb +74 -0
  110. data/lib/sapor/regional_data/european_union_flanders.rb +74 -0
  111. data/lib/sapor/regional_data/european_union_france.rb +84 -0
  112. data/lib/sapor/regional_data/european_union_france_2019.rb +84 -0
  113. data/lib/sapor/regional_data/european_union_french_community_of_belgium.rb +73 -0
  114. data/lib/sapor/regional_data/european_union_germany.rb +86 -0
  115. data/lib/sapor/regional_data/european_union_great_britain.rb +98 -0
  116. data/lib/sapor/regional_data/european_union_greece.rb +77 -0
  117. data/lib/sapor/regional_data/european_union_hungary.rb +76 -0
  118. data/lib/sapor/regional_data/european_union_ireland.rb +96 -0
  119. data/lib/sapor/regional_data/european_union_ireland_with_ia.rb +97 -0
  120. data/lib/sapor/regional_data/european_union_italy.rb +83 -0
  121. data/lib/sapor/regional_data/european_union_latvia.rb +81 -0
  122. data/lib/sapor/regional_data/european_union_lithuania.rb +80 -0
  123. data/lib/sapor/regional_data/european_union_luxembourg.rb +75 -0
  124. data/lib/sapor/regional_data/european_union_malta.rb +71 -0
  125. data/lib/sapor/regional_data/european_union_netherlands.rb +81 -0
  126. data/lib/sapor/regional_data/european_union_northern_ireland.rb +75 -0
  127. data/lib/sapor/regional_data/european_union_poland.rb +79 -0
  128. data/lib/sapor/regional_data/european_union_portugal.rb +75 -0
  129. data/lib/sapor/regional_data/european_union_romania.rb +78 -0
  130. data/lib/sapor/regional_data/european_union_slovakia.rb +81 -0
  131. data/lib/sapor/regional_data/european_union_slovenia.rb +85 -0
  132. data/lib/sapor/regional_data/european_union_spain.rb +82 -0
  133. data/lib/sapor/regional_data/european_union_sweden.rb +76 -0
  134. data/lib/sapor/regional_data/finland-20150419-with-sin.psv +224 -0
  135. data/lib/sapor/regional_data/finland-20150419.psv +212 -0
  136. data/lib/sapor/regional_data/finland.rb +107 -0
  137. data/lib/sapor/regional_data/finland_with_sin.rb +107 -0
  138. data/lib/sapor/regional_data/flanders-2014.psv +96 -0
  139. data/lib/sapor/regional_data/flanders-20190526.psv +87 -0
  140. data/lib/sapor/regional_data/flanders.rb +115 -0
  141. data/lib/sapor/regional_data/france.rb +38 -0
  142. data/lib/sapor/regional_data/greece.rb +92 -0
  143. data/lib/sapor/regional_data/hungary-2014.psv +2104 -0
  144. data/lib/sapor/regional_data/hungary.rb +116 -0
  145. data/lib/sapor/regional_data/iceland-20161029-midflokkurinn.psv +94 -0
  146. data/lib/sapor/regional_data/iceland-20161029.psv +88 -0
  147. data/lib/sapor/regional_data/iceland-20171028.psv +85 -0
  148. data/lib/sapor/regional_data/iceland.rb +133 -0
  149. data/lib/sapor/regional_data/latvia-20141004-kpv-p-par.psv +109 -0
  150. data/lib/sapor/regional_data/latvia-20141004-kpv-par.psv +103 -0
  151. data/lib/sapor/regional_data/latvia-20141004-kpv.psv +97 -0
  152. data/lib/sapor/regional_data/latvia-20141004.psv +89 -0
  153. data/lib/sapor/regional_data/latvia.rb +112 -0
  154. data/lib/sapor/regional_data/latvia_kpv.rb +112 -0
  155. data/lib/sapor/regional_data/latvia_kpv_p_par.rb +112 -0
  156. data/lib/sapor/regional_data/latvia_kpv_par.rb +112 -0
  157. data/lib/sapor/regional_data/luxembourg-20131020.psv +76 -0
  158. data/lib/sapor/regional_data/luxembourg.rb +82 -0
  159. data/lib/sapor/regional_data/netherlands.rb +108 -0
  160. data/lib/sapor/regional_data/norway.rb +85 -68
  161. data/lib/sapor/regional_data/norwegian_municipality.rb +68 -0
  162. data/lib/sapor/regional_data/poland-20151025-with-ko-and-l-without-n-po-r-and-zl.psv +321 -0
  163. data/lib/sapor/regional_data/poland-20151025-with-ko-konf-kp-l-and-zp-without-k-k15-n-pis-po-psl-r-and-zl.psv +280 -0
  164. data/lib/sapor/regional_data/poland-20151025-with-ko-sld-and-wi-without-n-po-and-zl.psv +403 -0
  165. data/lib/sapor/regional_data/poland-20151025-with-sld-and-wi-without-zl.psv +444 -0
  166. data/lib/sapor/regional_data/poland-20151025-with-sld-without-zl.psv +403 -0
  167. data/lib/sapor/regional_data/poland-20151025.psv +403 -0
  168. data/lib/sapor/regional_data/poland.rb +125 -0
  169. data/lib/sapor/regional_data/poland_with_ko_and_l_without_n_po_r_and_zl.rb +122 -0
  170. data/lib/sapor/regional_data/poland_with_ko_konf_kp_l_and_zp_without_k_k15_n_pis_po_psl_r_and_zl.rb +123 -0
  171. data/lib/sapor/regional_data/poland_with_ko_sld_and_wi_without_n_po_and_zl.rb +125 -0
  172. data/lib/sapor/regional_data/poland_with_sld_and_wi_without_zl.rb +126 -0
  173. data/lib/sapor/regional_data/poland_with_sld_without_zl.rb +126 -0
  174. data/lib/sapor/regional_data/portugal-20151004-with-a-and-ch-without-paf.psv +438 -0
  175. data/lib/sapor/regional_data/portugal-20151004-with-a-and-il-without-paf.psv +438 -0
  176. data/lib/sapor/regional_data/portugal-20151004-with-a-ch-and-il-without-paf.psv +461 -0
  177. data/lib/sapor/regional_data/portugal-20151004-with-a-without-paf.psv +415 -0
  178. data/lib/sapor/regional_data/portugal-20151004-with-ch-and-il-without-paf.psv +438 -0
  179. data/lib/sapor/regional_data/portugal-20151004-without-paf.psv +392 -0
  180. data/lib/sapor/regional_data/portugal-20151004.psv +370 -0
  181. data/lib/sapor/regional_data/portugal.rb +101 -0
  182. data/lib/sapor/regional_data/portugal_with_a_and_ch_without_paf.rb +92 -0
  183. data/lib/sapor/regional_data/portugal_with_a_and_il_without_paf.rb +92 -0
  184. data/lib/sapor/regional_data/portugal_with_a_ch_and_il_without_paf.rb +92 -0
  185. data/lib/sapor/regional_data/portugal_with_a_without_paf.rb +92 -0
  186. data/lib/sapor/regional_data/portugal_with_ch_and_il_without_paf.rb +92 -0
  187. data/lib/sapor/regional_data/portugal_without_paf.rb +92 -0
  188. data/lib/sapor/regional_data/slovakia.rb +81 -0
  189. data/lib/sapor/regional_data/slovenia.rb +114 -0
  190. data/lib/sapor/regional_data/spain-20160626.psv +619 -0
  191. data/lib/sapor/regional_data/spain.rb +136 -0
  192. data/lib/sapor/regional_data/sweden.rb +92 -0
  193. data/lib/sapor/regional_data/sweden_20140914.rb +89 -0
  194. data/lib/sapor/regional_data/united_kingdom-2015.psv +4358 -0
  195. data/lib/sapor/regional_data/united_kingdom-20170608-brexit-chuk.psv +5154 -0
  196. data/lib/sapor/regional_data/united_kingdom-20170608-brexit.psv +4521 -0
  197. data/lib/sapor/regional_data/united_kingdom-20170608-tig.psv +4529 -0
  198. data/lib/sapor/regional_data/united_kingdom-20170608.psv +3894 -0
  199. data/lib/sapor/regional_data/united_kingdom.rb +57 -1038
  200. data/lib/sapor/regional_data/united_kingdom_with_brexit.rb +110 -0
  201. data/lib/sapor/regional_data/united_kingdom_with_brexit_and_chuk.rb +111 -0
  202. data/lib/sapor/regional_data/united_kingdom_with_tig.rb +111 -0
  203. data/lib/sapor/regional_data/utopia.rb +2 -2
  204. data/lib/sapor/regional_data/wallonia-2014.psv +101 -0
  205. data/lib/sapor/regional_data/wallonia.rb +97 -0
  206. data/lib/sapor/representatives_polychotomy.rb +338 -0
  207. data/lib/sapor/single_district_proportional.rb +75 -0
  208. data/lib/sapor.rb +112 -6
  209. data/sapor.gemspec +2 -2
  210. data/spec/integration/area_spec.rb +2 -2
  211. data/spec/integration/poll_spec.rb +6 -1
  212. data/spec/integration/sample.poll +2 -1
  213. data/spec/spec_helper.rb +2 -2
  214. data/spec/unit/area_spec.rb +12 -12
  215. data/spec/unit/austria_spec.rb +76 -0
  216. data/spec/unit/belgium_brussels_spec.rb +58 -0
  217. data/spec/unit/belgium_flanders_spec.rb +62 -0
  218. data/spec/unit/belgium_spec.rb +26 -0
  219. data/spec/unit/belgium_wallonia_spec.rb +65 -0
  220. data/spec/unit/binomials_cache_spec.rb +1 -1
  221. data/spec/unit/catalonia_spec.rb +21 -29
  222. data/spec/unit/combinations_distribution_spec.rb +1 -1
  223. data/spec/unit/denmark_spec.rb +56 -0
  224. data/spec/unit/denmark_with_e_and_p_spec.rb +58 -0
  225. data/spec/unit/denmark_with_e_spec.rb +57 -0
  226. data/spec/unit/denmark_with_p_spec.rb +57 -0
  227. data/spec/unit/denominators_spec.rb +8 -2
  228. data/spec/unit/dichotomies_spec.rb +1 -1
  229. data/spec/unit/dichotomy_spec.rb +1 -1
  230. data/spec/unit/estonia_spec.rb +65 -0
  231. data/spec/unit/european_union_27_austria_spec.rb +61 -0
  232. data/spec/unit/european_union_27_croatia_spec.rb +60 -0
  233. data/spec/unit/european_union_27_denmark_spec.rb +62 -0
  234. data/spec/unit/european_union_27_estonia_spec.rb +94 -0
  235. data/spec/unit/european_union_27_finland_spec.rb +75 -0
  236. data/spec/unit/european_union_27_ireland_spec.rb +72 -0
  237. data/spec/unit/european_union_27_ireland_with_ia_spec.rb +74 -0
  238. data/spec/unit/european_union_27_italy_spec.rb +69 -0
  239. data/spec/unit/european_union_27_netherlands_spec.rb +81 -0
  240. data/spec/unit/european_union_27_poland_spec.rb +69 -0
  241. data/spec/unit/european_union_27_romania_spec.rb +67 -0
  242. data/spec/unit/european_union_27_slovakia_spec.rb +111 -0
  243. data/spec/unit/european_union_27_spain_spec.rb +130 -0
  244. data/spec/unit/european_union_27_sweden_spec.rb +89 -0
  245. data/spec/unit/european_union_austria_spec.rb +61 -0
  246. data/spec/unit/european_union_bulgaria_spec.rb +97 -0
  247. data/spec/unit/european_union_croatia_spec.rb +59 -0
  248. data/spec/unit/european_union_cyprus_spec.rb +65 -0
  249. data/spec/unit/european_union_czech_republic_spec.rb +125 -0
  250. data/spec/unit/european_union_denmark_spec.rb +61 -0
  251. data/spec/unit/european_union_estonia_spec.rb +93 -0
  252. data/spec/unit/european_union_finland_spec.rb +75 -0
  253. data/spec/unit/european_union_flanders_spec.rb +56 -0
  254. data/spec/unit/european_union_france_2019_spec.rb +73 -0
  255. data/spec/unit/european_union_france_spec.rb +73 -0
  256. data/spec/unit/european_union_french_community_of_belgium_spec.rb +61 -0
  257. data/spec/unit/european_union_germany_spec.rb +90 -0
  258. data/spec/unit/european_union_great_britain_spec.rb +87 -0
  259. data/spec/unit/european_union_greece_spec.rb +148 -0
  260. data/spec/unit/european_union_hungary_spec.rb +57 -0
  261. data/spec/unit/european_union_ireland_spec.rb +72 -0
  262. data/spec/unit/european_union_ireland_with_ia_spec.rb +74 -0
  263. data/spec/unit/european_union_italy_spec.rb +69 -0
  264. data/spec/unit/european_union_latvia_spec.rb +76 -0
  265. data/spec/unit/european_union_lithuania_spec.rb +68 -0
  266. data/spec/unit/european_union_luxembourg_spec.rb +63 -0
  267. data/spec/unit/european_union_malta_spec.rb +60 -0
  268. data/spec/unit/european_union_netherlands_spec.rb +81 -0
  269. data/spec/unit/european_union_northern_ireland_spec.rb +66 -0
  270. data/spec/unit/european_union_poland_spec.rb +69 -0
  271. data/spec/unit/european_union_portugal_spec.rb +77 -0
  272. data/spec/unit/european_union_romania_spec.rb +67 -0
  273. data/spec/unit/european_union_slovakia_spec.rb +111 -0
  274. data/spec/unit/european_union_slovenia_spec.rb +77 -0
  275. data/spec/unit/european_union_spain_spec.rb +129 -0
  276. data/spec/unit/european_union_sweden_spec.rb +89 -0
  277. data/spec/unit/finland_spec.rb +65 -0
  278. data/spec/unit/finland_with_sin_spec.rb +67 -0
  279. data/spec/unit/first_past_the_post_spec.rb +6 -5
  280. data/spec/unit/flanders_spec.rb +70 -0
  281. data/spec/unit/france_spec.rb +32 -0
  282. data/spec/unit/greece_spec.rb +118 -0
  283. data/spec/unit/hungary_spec.rb +132 -0
  284. data/spec/unit/iceland_spec.rb +57 -0
  285. data/spec/unit/largest_remainder_spec.rb +79 -0
  286. data/spec/unit/latvia_kpv_p_par_spec.rb +38 -0
  287. data/spec/unit/latvia_kpv_par_spec.rb +38 -0
  288. data/spec/unit/latvia_kpv_spec.rb +38 -0
  289. data/spec/unit/latvia_spec.rb +60 -0
  290. data/spec/unit/luxembourg_spec.rb +54 -0
  291. data/spec/unit/{leveled_proportional_spec.rb → multi_district_leveled_proportional_spec.rb} +12 -14
  292. data/spec/unit/{proportional_spec.rb → multi_district_proportional_spec.rb} +11 -16
  293. data/spec/unit/netherlands_spec.rb +107 -0
  294. data/spec/unit/norway_spec.rb +23 -6
  295. data/spec/unit/norwegian_municipality_spec.rb +89 -0
  296. data/spec/unit/number_formatter_spec.rb +1 -1
  297. data/spec/unit/poland_spec.rb +62 -0
  298. data/spec/unit/poland_with_ko_and_l_without_n_po_r_and_zl_spec.rb +60 -0
  299. data/spec/unit/poland_with_ko_konf_kp_l_and_zp_without_k_k15_n_pis_po_psl_r_and_zl_spec.rb +59 -0
  300. data/spec/unit/poland_with_ko_sld_and_wi_without_n_po_and_zl_spec.rb +62 -0
  301. data/spec/unit/poland_with_sld_and_wi_without_zl_spec.rb +63 -0
  302. data/spec/unit/poland_with_sld_without_zl_spec.rb +62 -0
  303. data/spec/unit/poll_spec.rb +8 -3
  304. data/spec/unit/portugal_spec.rb +66 -0
  305. data/spec/unit/portugal_with_a_and_ch_without_paf_spec.rb +68 -0
  306. data/spec/unit/portugal_with_a_and_il_without_paf_spec.rb +68 -0
  307. data/spec/unit/portugal_with_a_ch_and_il_without_paf_spec.rb +69 -0
  308. data/spec/unit/portugal_with_a_without_paf_spec.rb +67 -0
  309. data/spec/unit/portugal_with_ch_and_il_without_paf_spec.rb +68 -0
  310. data/spec/unit/portugal_without_paf_spec.rb +66 -0
  311. data/spec/unit/pseudorandom_multirange_enumerator_spec.rb +1 -1
  312. data/spec/unit/referendum_polychotomy_spec.rb +289 -0
  313. data/spec/unit/{polychotomy_spec.rb → representatives_polychotomy_spec.rb} +26 -26
  314. data/spec/unit/slovakia_spec.rb +99 -0
  315. data/spec/unit/slovenia_spec.rb +80 -0
  316. data/spec/unit/spain_spec.rb +101 -0
  317. data/spec/unit/sweden_20140914_spec.rb +112 -0
  318. data/spec/unit/sweden_spec.rb +113 -0
  319. data/spec/unit/united_kingdom_spec.rb +65 -0
  320. data/spec/unit/united_kingdom_with_brexit_and_chuk_spec.rb +67 -0
  321. data/spec/unit/united_kingdom_with_brexit_spec.rb +66 -0
  322. data/spec/unit/united_kingdom_with_tig_spec.rb +66 -0
  323. data/spec/unit/wallonia_spec.rb +130 -0
  324. metadata +381 -11
@@ -0,0 +1,403 @@
1
+ # Statistical Analysis of Polling Results (SAPoR)
2
+ # Copyright (C) 2016 Filip van Laenen <f.a.vanlaenen@ieee.org>
3
+ #
4
+ # This file is part of SAPoR.
5
+ #
6
+ # SAPoR is free software: you can redistribute it and/or modify it under the
7
+ # terms of the GNU General Public License as published by the Free Software
8
+ # Foundation, either version 3 of the License, or (at your option) any later
9
+ # version.
10
+ #
11
+ # SAPoR is distributed in the hope that it will be useful, but WITHOUT ANY
12
+ # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
13
+ # A PARTICULAR PURPOSE. See the GNU General Public License for more details.
14
+ #
15
+ # You can find a copy of the GNU General Public License in /doc/gpl.txt
16
+ #
17
+ Legnica | Prawo i Sprawiedliwość | 127370
18
+ Legnica | Platforma Obywatelska | 90060
19
+ Legnica | Lewica Razem | 13003
20
+ Legnica | KORWiN | 15427
21
+ Legnica | Polskie Stronnictwo Ludowe | 13886
22
+ Legnica | Zjednoczona Lewica | 37298
23
+ Legnica | Kukiz’15 | 34229
24
+ Legnica | .Nowoczesna | 25506
25
+ Wałbrzych | Prawo i Sprawiedliwość | 72929
26
+ Wałbrzych | Platforma Obywatelska | 76424
27
+ Wałbrzych | Lewica Razem | 7984
28
+ Wałbrzych | KORWiN | 10075
29
+ Wałbrzych | Polskie Stronnictwo Ludowe | 7448
30
+ Wałbrzych | Zjednoczona Lewica | 20517
31
+ Wałbrzych | Kukiz’15 | 20634
32
+ Wałbrzych | .Nowoczesna | 15544
33
+ Wałbrzych | JOW Bezpartyjni | 2540
34
+ Wrocław | Prawo i Sprawiedliwość | 163323
35
+ Wrocław | Platforma Obywatelska | 159582
36
+ Wrocław | Lewica Razem | 22059
37
+ Wrocław | KORWiN | 27341
38
+ Wrocław | Polskie Stronnictwo Ludowe | 13604
39
+ Wrocław | Zjednoczona Lewica | 31932
40
+ Wrocław | Kukiz’15 | 45726
41
+ Wrocław | .Nowoczesna | 55756
42
+ Wrocław | Stonoga Partia Polska | 2779
43
+ Wrocław | Grzegorz Braun „Szczęść Boże!” | 1269
44
+ Bydgoszcz | Prawo i Sprawiedliwość | 113024
45
+ Bydgoszcz | Platforma Obywatelska | 110948
46
+ Bydgoszcz | Lewica Razem | 14062
47
+ Bydgoszcz | KORWiN | 17002
48
+ Bydgoszcz | Polskie Stronnictwo Ludowe | 22701
49
+ Bydgoszcz | Zjednoczona Lewica | 37583
50
+ Bydgoszcz | Kukiz’15 | 29080
51
+ Bydgoszcz | .Nowoczesna | 27334
52
+ Bydgoszcz | Stonoga Partia Polska | 2543
53
+ Toruń | Prawo i Sprawiedliwość | 121703
54
+ Toruń | Platforma Obywatelska | 93432
55
+ Toruń | Lewica Razem | 13227
56
+ Toruń | KORWiN | 14134
57
+ Toruń | Polskie Stronnictwo Ludowe | 24476
58
+ Toruń | Zjednoczona Lewica | 39003
59
+ Toruń | Kukiz’15 | 30159
60
+ Toruń | .Nowoczesna | 23563
61
+ Toruń | Stonoga Partia Polska | 2041
62
+ Toruń | Samoobrona | 772
63
+ Lublin | Prawo i Sprawiedliwość | 232014
64
+ Lublin | Platforma Obywatelska | 80892
65
+ Lublin | Lewica Razem | 13395
66
+ Lublin | KORWiN | 24376
67
+ Lublin | Polskie Stronnictwo Ludowe | 37733
68
+ Lublin | Zjednoczona Lewica | 29172
69
+ Lublin | Kukiz’15 | 45448
70
+ Lublin | .Nowoczesna | 22158
71
+ Lublin | Ruch Społeczny Rzeczypospolitej Polskiej | 599
72
+ Lublin | Samoobrona | 580
73
+ Lublin | Grzegorz Braun „Szczęść Boże!” | 1353
74
+ Chełm | Prawo i Sprawiedliwość | 163122
75
+ Chełm | Platforma Obywatelska | 41823
76
+ Chełm | Lewica Razem | 8116
77
+ Chełm | KORWiN | 14835
78
+ Chełm | Polskie Stronnictwo Ludowe | 38689
79
+ Chełm | Zjednoczona Lewica | 24161
80
+ Chełm | Kukiz’15 | 35567
81
+ Chełm | .Nowoczesna | 12745
82
+ Chełm | Samoobrona | 628
83
+ Zielona Góra | Prawo i Sprawiedliwość | 97877
84
+ Zielona Góra | Platforma Obywatelska | 97676
85
+ Zielona Góra | Lewica Razem | 13825
86
+ Zielona Góra | KORWiN | 17274
87
+ Zielona Góra | Polskie Stronnictwo Ludowe | 17743
88
+ Zielona Góra | Zjednoczona Lewica | 34695
89
+ Zielona Góra | Kukiz’15 | 30284
90
+ Zielona Góra | .Nowoczesna | 34586
91
+ Zielona Góra | Stonoga Partia Polska | 2258
92
+ Łódź | Prawo i Sprawiedliwość | 107350
93
+ Łódź | Platforma Obywatelska | 112333
94
+ Łódź | Lewica Razem | 16627
95
+ Łódź | KORWiN | 17163
96
+ Łódź | Polskie Stronnictwo Ludowe | 9710
97
+ Łódź | Zjednoczona Lewica | 37615
98
+ Łódź | Kukiz’15 | 25992
99
+ Łódź | .Nowoczesna | 32274
100
+ Piotrków Trybunalski | Prawo i Sprawiedliwość | 134134
101
+ Piotrków Trybunalski | Platforma Obywatelska | 44173
102
+ Piotrków Trybunalski | Lewica Razem | 8747
103
+ Piotrków Trybunalski | KORWiN | 11160
104
+ Piotrków Trybunalski | Polskie Stronnictwo Ludowe | 21364
105
+ Piotrków Trybunalski | Zjednoczona Lewica | 21352
106
+ Piotrków Trybunalski | Kukiz’15 | 28808
107
+ Piotrków Trybunalski | .Nowoczesna | 15983
108
+ Sieradz | Prawo i Sprawiedliwość | 147623
109
+ Sieradz | Platforma Obywatelska | 78314
110
+ Sieradz | Lewica Razem | 13077
111
+ Sieradz | KORWiN | 15171
112
+ Sieradz | Polskie Stronnictwo Ludowe | 29044
113
+ Sieradz | Zjednoczona Lewica | 30256
114
+ Sieradz | Kukiz’15 | 32973
115
+ Sieradz | .Nowoczesna | 19681
116
+ Sieradz | Stonoga Partia Polska | 1905
117
+ Sieradz | Samoobrona | 712
118
+ Sieradz | Grzegorz Braun „Szczęść Boże!” | 989
119
+ Kraków I (południe) | Prawo i Sprawiedliwość | 133213
120
+ Kraków I (południe) | Platforma Obywatelska | 55454
121
+ Kraków I (południe) | Lewica Razem | 8840
122
+ Kraków I (południe) | KORWiN | 12089
123
+ Kraków I (południe) | Polskie Stronnictwo Ludowe | 8226
124
+ Kraków I (południe) | Zjednoczona Lewica | 14473
125
+ Kraków I (południe) | Kukiz’15 | 23551
126
+ Kraków I (południe) | .Nowoczesna | 15731
127
+ Kraków II (północ) | Prawo i Sprawiedliwość | 209607
128
+ Kraków II (północ) | Platforma Obywatelska | 133558
129
+ Kraków II (północ) | Lewica Razem | 21053
130
+ Kraków II (północ) | KORWiN | 34446
131
+ Kraków II (północ) | Polskie Stronnictwo Ludowe | 14644
132
+ Kraków II (północ) | Zjednoczona Lewica | 34643
133
+ Kraków II (północ) | Kukiz’15 | 39379
134
+ Kraków II (północ) | .Nowoczesna | 52822
135
+ Kraków II (północ) | Grzegorz Braun „Szczęść Boże!” | 1372
136
+ Kraków II (północ) | Kongres Nowej Prawicy | 1244
137
+ Nowy Sącz | Prawo i Sprawiedliwość | 188010
138
+ Nowy Sącz | Platforma Obywatelska | 43309
139
+ Nowy Sącz | Lewica Razem | 6627
140
+ Nowy Sącz | KORWiN | 13379
141
+ Nowy Sącz | Polskie Stronnictwo Ludowe | 12929
142
+ Nowy Sącz | Zjednoczona Lewica | 7924
143
+ Nowy Sącz | Kukiz’15 | 24318
144
+ Nowy Sącz | .Nowoczesna | 11468
145
+ Nowy Sącz | Stonoga Partia Polska | 1606
146
+ Nowy Sącz | Kongres Nowej Prawicy | 891
147
+ Tarnów | Prawo i Sprawiedliwość | 151623
148
+ Tarnów | Platforma Obywatelska | 42887
149
+ Tarnów | Lewica Razem | 7082
150
+ Tarnów | KORWiN | 13766
151
+ Tarnów | Polskie Stronnictwo Ludowe | 23552
152
+ Tarnów | Zjednoczona Lewica | 9933
153
+ Tarnów | Kukiz’15 | 28005
154
+ Tarnów | .Nowoczesna | 13233
155
+ Tarnów | Grzegorz Braun „Szczęść Boże!” | 906
156
+ Tarnów | Kongres Nowej Prawicy | 654
157
+ Płock | Prawo i Sprawiedliwość | 131431
158
+ Płock | Platforma Obywatelska | 49353
159
+ Płock | Lewica Razem | 10062
160
+ Płock | KORWiN | 12214
161
+ Płock | Polskie Stronnictwo Ludowe | 31994
162
+ Płock | Zjednoczona Lewica | 24440
163
+ Płock | Kukiz’15 | 25257
164
+ Płock | .Nowoczesna | 15451
165
+ Radom | Prawo i Sprawiedliwość | 130758
166
+ Radom | Platforma Obywatelska | 48332
167
+ Radom | Lewica Razem | 7203
168
+ Radom | KORWiN | 10770
169
+ Radom | Polskie Stronnictwo Ludowe | 25933
170
+ Radom | Zjednoczona Lewica | 13258
171
+ Radom | Kukiz’15 | 23149
172
+ Radom | .Nowoczesna | 13233
173
+ Radom | Stonoga Partia Polska | 2050
174
+ Radom | Kongres Nowej Prawicy | 656
175
+ Siedlce | Prawo i Sprawiedliwość | 191733
176
+ Siedlce | Platforma Obywatelska | 50858
177
+ Siedlce | Lewica Razem | 9964
178
+ Siedlce | KORWiN | 16332
179
+ Siedlce | Polskie Stronnictwo Ludowe | 38396
180
+ Siedlce | Zjednoczona Lewica | 16327
181
+ Siedlce | Kukiz’15 | 31378
182
+ Siedlce | .Nowoczesna | 17386
183
+ Siedlce | JOW Bezpartyjni | 1045
184
+ Siedlce | Ruch Społeczny Rzeczypospolitej Polskiej | 582
185
+ Siedlce | Grzegorz Braun „Szczęść Boże!” | 1239
186
+ Warszawa I (miasto) | Prawo i Sprawiedliwość | 327342
187
+ Warszawa I (miasto) | Platforma Obywatelska | 301672
188
+ Warszawa I (miasto) | Lewica Razem | 60663
189
+ Warszawa I (miasto) | KORWiN | 67700
190
+ Warszawa I (miasto) | Polskie Stronnictwo Ludowe | 7882
191
+ Warszawa I (miasto) | Zjednoczona Lewica | 93666
192
+ Warszawa I (miasto) | Kukiz’15 | 84937
193
+ Warszawa I (miasto) | .Nowoczesna | 146629
194
+ Warszawa I (miasto) | Ruch Społeczny Rzeczypospolitej Polskiej | 2760
195
+ Warszawa I (miasto) | Obywatele do Parlamentu | 1964
196
+ Warszawa II (okręg) | Prawo i Sprawiedliwość | 190355
197
+ Warszawa II (okręg) | Platforma Obywatelska | 123227
198
+ Warszawa II (okręg) | Lewica Razem | 18895
199
+ Warszawa II (okręg) | KORWiN | 23586
200
+ Warszawa II (okręg) | Polskie Stronnictwo Ludowe | 18666
201
+ Warszawa II (okręg) | Zjednoczona Lewica | 27774
202
+ Warszawa II (okręg) | Kukiz’15 | 35418
203
+ Warszawa II (okręg) | .Nowoczesna | 49098
204
+ Warszawa II (okręg) | Stonoga Partia Polska | 3597
205
+ Opole | Prawo i Sprawiedliwość | 93926
206
+ Opole | Platforma Obywatelska | 88731
207
+ Opole | Lewica Razem | 10202
208
+ Opole | KORWiN | 13346
209
+ Opole | Polskie Stronnictwo Ludowe | 12464
210
+ Opole | Zjednoczona Lewica | 22841
211
+ Opole | Kukiz’15 | 42533
212
+ Opole | .Nowoczesna | 24152
213
+ Opole | JOW Bezpartyjni | 1772
214
+ Opole | Grzegorz Braun „Szczęść Boże!” | 751
215
+ Opole | Mniejszość Niemiecka | 27530
216
+ Krosno | Prawo i Sprawiedliwość | 174900
217
+ Krosno | Platforma Obywatelska | 44971
218
+ Krosno | Lewica Razem | 7595
219
+ Krosno | KORWiN | 13984
220
+ Krosno | Polskie Stronnictwo Ludowe | 23805
221
+ Krosno | Zjednoczona Lewica | 14893
222
+ Krosno | Kukiz’15 | 29919
223
+ Krosno | .Nowoczesna | 12981
224
+ Krosno | JOW Bezpartyjni | 2289
225
+ Krosno | Stonoga Partia Polska | 1528
226
+ Rzeszów | Prawo i Sprawiedliwość | 284642
227
+ Rzeszów | Platforma Obywatelska | 66516
228
+ Rzeszów | Lewica Razem | 11623
229
+ Rzeszów | KORWiN | 25163
230
+ Rzeszów | Polskie Stronnictwo Ludowe | 23667
231
+ Rzeszów | Zjednoczona Lewica | 22409
232
+ Rzeszów | Kukiz’15 | 47071
233
+ Rzeszów | .Nowoczesna | 21106
234
+ Rzeszów | Stonoga Partia Polska | 2919
235
+ Rzeszów | Grzegorz Braun „Szczęść Boże!” | 1363
236
+ Rzeszów | Kongres Nowej Prawicy | 778
237
+ Białystok | Prawo i Sprawiedliwość | 197575
238
+ Białystok | Platforma Obywatelska | 72894
239
+ Białystok | Lewica Razem | 11258
240
+ Białystok | KORWiN | 20297
241
+ Białystok | Polskie Stronnictwo Ludowe | 35116
242
+ Białystok | Zjednoczona Lewica | 32015
243
+ Białystok | Kukiz’15 | 39509
244
+ Białystok | .Nowoczesna | 23361
245
+ Białystok | Stonoga Partia Polska | 2088
246
+ Białystok | Samoobrona | 626
247
+ Białystok | Kongres Nowej Prawicy | 629
248
+ Gdańsk | Prawo i Sprawiedliwość | 126466
249
+ Gdańsk | Platforma Obywatelska | 148305
250
+ Gdańsk | Lewica Razem | 16992
251
+ Gdańsk | KORWiN | 21366
252
+ Gdańsk | Polskie Stronnictwo Ludowe | 12904
253
+ Gdańsk | Zjednoczona Lewica | 28168
254
+ Gdańsk | Kukiz’15 | 30536
255
+ Gdańsk | .Nowoczesna | 39184
256
+ Gdańsk | Stonoga Partia Polska | 3210
257
+ Gdynia | Prawo i Sprawiedliwość | 145698
258
+ Gdynia | Platforma Obywatelska | 156147
259
+ Gdynia | Lewica Razem | 18918
260
+ Gdynia | KORWiN | 20677
261
+ Gdynia | Polskie Stronnictwo Ludowe | 15064
262
+ Gdynia | Zjednoczona Lewica | 30973
263
+ Gdynia | Kukiz’15 | 37410
264
+ Gdynia | .Nowoczesna | 38344
265
+ Gdynia | Stonoga Partia Polska | 3477
266
+ Bielsko-Biała | Prawo i Sprawiedliwość | 136330
267
+ Bielsko-Biała | Platforma Obywatelska | 79506
268
+ Bielsko-Biała | Lewica Razem | 12557
269
+ Bielsko-Biała | KORWiN | 15788
270
+ Bielsko-Biała | Polskie Stronnictwo Ludowe | 11533
271
+ Bielsko-Biała | Zjednoczona Lewica | 22122
272
+ Bielsko-Biała | Kukiz’15 | 31570
273
+ Bielsko-Biała | .Nowoczesna | 27882
274
+ Częstochowa | Prawo i Sprawiedliwość | 84773
275
+ Częstochowa | Platforma Obywatelska | 49580
276
+ Częstochowa | Lewica Razem | 8625
277
+ Częstochowa | KORWiN | 10111
278
+ Częstochowa | Polskie Stronnictwo Ludowe | 11799
279
+ Częstochowa | Zjednoczona Lewica | 26305
280
+ Częstochowa | Kukiz’15 | 27521
281
+ Częstochowa | .Nowoczesna | 15942
282
+ Częstochowa | Stonoga Partia Polska | 1378
283
+ Częstochowa | Grzegorz Braun „Szczęść Boże!” | 600
284
+ Gliwice | Prawo i Sprawiedliwość | 89584
285
+ Gliwice | Platforma Obywatelska | 85130
286
+ Gliwice | Lewica Razem | 12181
287
+ Gliwice | KORWiN | 14949
288
+ Gliwice | Polskie Stronnictwo Ludowe | 7342
289
+ Gliwice | Zjednoczona Lewica | 21163
290
+ Gliwice | Kukiz’15 | 35793
291
+ Gliwice | .Nowoczesna | 26122
292
+ Gliwice | Grzegorz Braun „Szczęść Boże!” | 1403
293
+ Rybnik | Prawo i Sprawiedliwość | 114799
294
+ Rybnik | Platforma Obywatelska | 70188
295
+ Rybnik | Lewica Razem | 9669
296
+ Rybnik | KORWiN | 13136
297
+ Rybnik | Polskie Stronnictwo Ludowe | 5197
298
+ Rybnik | Zjednoczona Lewica | 17201
299
+ Rybnik | Kukiz’15 | 32794
300
+ Rybnik | .Nowoczesna | 18341
301
+ Rybnik | Zjednoczeni dla Śląska | 7928
302
+ Rybnik | Grzegorz Braun „Szczęść Boże!” | 710
303
+ Katowice | Prawo i Sprawiedliwość | 135367
304
+ Katowice | Platforma Obywatelska | 116658
305
+ Katowice | Lewica Razem | 16786
306
+ Katowice | KORWiN | 22803
307
+ Katowice | Polskie Stronnictwo Ludowe | 4064
308
+ Katowice | Zjednoczona Lewica | 27837
309
+ Katowice | Kukiz’15 | 41344
310
+ Katowice | .Nowoczesna | 35591
311
+ Katowice | Zjednoczeni dla Śląska | 10740
312
+ Sosnowiec | Prawo i Sprawiedliwość | 84410
313
+ Sosnowiec | Platforma Obywatelska | 72755
314
+ Sosnowiec | Lewica Razem | 12652
315
+ Sosnowiec | KORWiN | 13682
316
+ Sosnowiec | Polskie Stronnictwo Ludowe | 6687
317
+ Sosnowiec | Zjednoczona Lewica | 39774
318
+ Sosnowiec | Kukiz’15 | 29161
319
+ Sosnowiec | .Nowoczesna | 25522
320
+ Kielce | Prawo i Sprawiedliwość | 200652
321
+ Kielce | Platforma Obywatelska | 80866
322
+ Kielce | Lewica Razem | 13106
323
+ Kielce | KORWiN | 19395
324
+ Kielce | Polskie Stronnictwo Ludowe | 44574
325
+ Kielce | Zjednoczona Lewica | 36880
326
+ Kielce | Kukiz’15 | 44115
327
+ Kielce | .Nowoczesna | 23360
328
+ Kielce | JOW Bezpartyjni | 2344
329
+ Kielce | Stonoga Partia Polska | 1792
330
+ Kielce | Samoobrona | 448
331
+ Kielce | Grzegorz Braun „Szczęść Boże!” | 1158
332
+ Elbląg | Prawo i Sprawiedliwość | 63236
333
+ Elbląg | Platforma Obywatelska | 60359
334
+ Elbląg | Lewica Razem | 7608
335
+ Elbląg | KORWiN | 9480
336
+ Elbląg | Polskie Stronnictwo Ludowe | 13411
337
+ Elbląg | Zjednoczona Lewica | 15407
338
+ Elbląg | Kukiz’15 | 16514
339
+ Elbląg | .Nowoczesna | 11668
340
+ Elbląg | JOW Bezpartyjni | 1426
341
+ Elbląg | Stonoga Partia Polska | 1253
342
+ Olsztyn | Prawo i Sprawiedliwość | 80970
343
+ Olsztyn | Platforma Obywatelska | 72055
344
+ Olsztyn | Lewica Razem | 9948
345
+ Olsztyn | KORWiN | 13584
346
+ Olsztyn | Polskie Stronnictwo Ludowe | 22458
347
+ Olsztyn | Zjednoczona Lewica | 23312
348
+ Olsztyn | Kukiz’15 | 23888
349
+ Olsztyn | .Nowoczesna | 18141
350
+ Olsztyn | Stonoga Partia Polska | 1810
351
+ Kalisz | Prawo i Sprawiedliwość | 115668
352
+ Kalisz | Platforma Obywatelska | 89668
353
+ Kalisz | Lewica Razem | 11497
354
+ Kalisz | KORWiN | 15422
355
+ Kalisz | Polskie Stronnictwo Ludowe | 39874
356
+ Kalisz | Zjednoczona Lewica | 32047
357
+ Kalisz | Kukiz’15 | 28996
358
+ Kalisz | .Nowoczesna | 25557
359
+ Kalisz | JOW Bezpartyjni | 1973
360
+ Kalisz | Stonoga Partia Polska | 1982
361
+ Kalisz | Samoobrona | 500
362
+ Konin | Prawo i Sprawiedliwość | 103781
363
+ Konin | Platforma Obywatelska | 56111
364
+ Konin | Lewica Razem | 11032
365
+ Konin | KORWiN | 11061
366
+ Konin | Polskie Stronnictwo Ludowe | 19027
367
+ Konin | Zjednoczona Lewica | 32649
368
+ Konin | Kukiz’15 | 24486
369
+ Konin | .Nowoczesna | 19237
370
+ Piła | Prawo i Sprawiedliwość | 73665
371
+ Piła | Platforma Obywatelska | 83845
372
+ Piła | Lewica Razem | 10591
373
+ Piła | KORWiN | 11004
374
+ Piła | Polskie Stronnictwo Ludowe | 20712
375
+ Piła | Zjednoczona Lewica | 24723
376
+ Piła | Kukiz’15 | 24359
377
+ Piła | .Nowoczesna | 18859
378
+ Piła | Stonoga Partia Polska | 2515
379
+ Poznań | Prawo i Sprawiedliwość | 97975
380
+ Poznań | Platforma Obywatelska | 146141
381
+ Poznań | Lewica Razem | 18854
382
+ Poznań | KORWiN | 19548
383
+ Poznań | Polskie Stronnictwo Ludowe | 7809
384
+ Poznań | Zjednoczona Lewica | 33080
385
+ Poznań | Kukiz’15 | 24825
386
+ Poznań | .Nowoczesna | 59387
387
+ Poznań | JOW Bezpartyjni | 2267
388
+ Koszalin | Prawo i Sprawiedliwość | 62032
389
+ Koszalin | Platforma Obywatelska | 65262
390
+ Koszalin | Lewica Razem | 8466
391
+ Koszalin | KORWiN | 9672
392
+ Koszalin | Polskie Stronnictwo Ludowe | 8972
393
+ Koszalin | Zjednoczona Lewica | 24697
394
+ Koszalin | Kukiz’15 | 20428
395
+ Koszalin | .Nowoczesna | 17488
396
+ Szczecin | Prawo i Sprawiedliwość | 110697
397
+ Szczecin | Platforma Obywatelska | 121479
398
+ Szczecin | Lewica Razem | 15678
399
+ Szczecin | KORWiN | 20291
400
+ Szczecin | Polskie Stronnictwo Ludowe | 14776
401
+ Szczecin | Zjednoczona Lewica | 32584
402
+ Szczecin | Kukiz’15 | 32030
403
+ Szczecin | .Nowoczesna | 32964
@@ -0,0 +1,125 @@
1
+ #
2
+ # Statistical Analysis of Polling Results (SAPoR)
3
+ # Copyright (C) 2016 Filip van Laenen <f.a.vanlaenen@ieee.org>
4
+ #
5
+ # This file is part of SAPoR.
6
+ #
7
+ # SAPoR is free software: you can redistribute it and/or modify it under the
8
+ # terms of the GNU General Public License as published by the Free Software
9
+ # Foundation, either version 3 of the License, or (at your option) any later
10
+ # version.
11
+ #
12
+ # SAPoR is distributed in the hope that it will be useful, but WITHOUT ANY
13
+ # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
14
+ # A PARTICULAR PURPOSE. See the GNU General Public License for more details.
15
+ #
16
+ # You can find a copy of the GNU General Public License in /doc/gpl.txt
17
+ #
18
+
19
+ module Sapor
20
+ #
21
+ # The regional data for Poland.
22
+ #
23
+ class Poland < Area
24
+ include Singleton
25
+
26
+ def area_code
27
+ 'PL'
28
+ end
29
+
30
+ def coalitions
31
+ COALITIONS
32
+ end
33
+
34
+ def no_of_seats
35
+ SEAT_DISTRIBUTION.values.inject(:+)
36
+ end
37
+
38
+ def overall_election_results_of_2015
39
+ if @overall_election_results_of_2015.nil?
40
+ @overall_election_results_of_2015 = \
41
+ summarize_election_results(election_results_of_2015)
42
+ end
43
+ @overall_election_results_of_2015
44
+ end
45
+
46
+ def population_size
47
+ POPULATION_SIZE
48
+ end
49
+
50
+ def seats(simulation)
51
+ electoral_system.project(simulation)
52
+ end
53
+
54
+ def threshold
55
+ PARTY_LIST_THRESHOLD
56
+ end
57
+
58
+ private
59
+
60
+ MN_PARTY = 'Mniejszość Niemiecka'.freeze
61
+ N_PARTY = '.Nowoczesna'.freeze
62
+ PIS_PARTY = 'Prawo i Sprawiedliwość'.freeze
63
+ PO_PARTY = 'Platforma Obywatelska'.freeze
64
+ PSL_PARTY = 'Polskie Stronnictwo Ludowe'.freeze
65
+ R_PARTY = 'Lewica Razem'.freeze
66
+ SLD_PARTY = 'Sojusz Lewicy Demokratycznej'.freeze
67
+ ZL_PARTY = 'Zjednoczona Lewica'.freeze
68
+
69
+ COALITIONS = [[N_PARTY, PO_PARTY],
70
+ [N_PARTY, PO_PARTY, PSL_PARTY],
71
+ [N_PARTY, PO_PARTY, PSL_PARTY, R_PARTY, SLD_PARTY],
72
+ [N_PARTY, PO_PARTY, PSL_PARTY, SLD_PARTY],
73
+ [N_PARTY, PO_PARTY, SLD_PARTY],
74
+ [PIS_PARTY],
75
+ [PO_PARTY]].freeze
76
+
77
+ # Voter turnout on 25 October 2015
78
+ # Source: Web page with the official results of the elections of 25 October
79
+ # 2015, downloaded on 17 July 2019,
80
+ # https://en.wikipedia.org/wiki/2015_Polish_parliamentary_election
81
+ POPULATION_SIZE = 15_200_671
82
+
83
+ SEAT_DISTRIBUTION = { 'Legnica' => 12, 'Wałbrzych' => 8, 'Wrocław' => 14,
84
+ 'Bydgoszcz' => 12, 'Toruń' => 13, 'Lublin' => 15,
85
+ 'Chełm' => 12, 'Zielona Góra' => 12, 'Łódź' => 10,
86
+ 'Piotrków Trybunalski' => 9, 'Sieradz' => 12,
87
+ 'Kraków I (południe)' => 8,
88
+ 'Kraków II (północ)' => 14, 'Nowy Sącz' => 10,
89
+ 'Tarnów' => 9, 'Płock' => 10, 'Radom' => 9,
90
+ 'Siedlce' => 12, 'Warszawa I (miasto)' => 20,
91
+ 'Warszawa II (okręg)' => 12, 'Opole' => 12,
92
+ 'Krosno' => 11, 'Rzeszów' => 15, 'Białystok' => 14,
93
+ 'Gdańsk' => 12, 'Gdynia' => 14, 'Bielsko-Biała' => 9,
94
+ 'Częstochowa' => 7, 'Gliwice' => 9, 'Rybnik' => 9,
95
+ 'Katowice' => 12, 'Sosnowiec' => 9, 'Kielce' => 16,
96
+ 'Elbląg' => 8, 'Olsztyn' => 10, 'Kalisz' => 12,
97
+ 'Konin' => 9, 'Piła' => 9, 'Poznań' => 10,
98
+ 'Koszalin' => 8, 'Szczecin' => 12 }.freeze
99
+
100
+ PARTY_LIST_THRESHOLD = 0.05
101
+ COALITION_LIST_THRESHOLD = 0.08
102
+ COALITION_LISTS = [ZL_PARTY].freeze
103
+ MINORITY_LISTS = [MN_PARTY].freeze
104
+
105
+ def election_results_of_2015
106
+ if @election_results_of_2015.nil?
107
+ @election_results_of_2015 = load_election_results(
108
+ 'poland-20151025.psv'
109
+ )
110
+ end
111
+ @election_results_of_2015
112
+ end
113
+
114
+ def electoral_system
115
+ if @electoral_system.nil?
116
+ @electoral_system = MultiDistrictVariableThresholdProportional.new( \
117
+ overall_election_results_of_2015, election_results_of_2015,
118
+ SEAT_DISTRIBUTION, DhondtDenominators, PARTY_LIST_THRESHOLD,
119
+ COALITION_LIST_THRESHOLD, COALITION_LISTS, MINORITY_LISTS
120
+ )
121
+ end
122
+ @electoral_system
123
+ end
124
+ end
125
+ end
@@ -0,0 +1,122 @@
1
+ #
2
+ # Statistical Analysis of Polling Results (SAPoR)
3
+ # Copyright (C) 2016 Filip van Laenen <f.a.vanlaenen@ieee.org>
4
+ #
5
+ # This file is part of SAPoR.
6
+ #
7
+ # SAPoR is free software: you can redistribute it and/or modify it under the
8
+ # terms of the GNU General Public License as published by the Free Software
9
+ # Foundation, either version 3 of the License, or (at your option) any later
10
+ # version.
11
+ #
12
+ # SAPoR is distributed in the hope that it will be useful, but WITHOUT ANY
13
+ # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
14
+ # A PARTICULAR PURPOSE. See the GNU General Public License for more details.
15
+ #
16
+ # You can find a copy of the GNU General Public License in /doc/gpl.txt
17
+ #
18
+
19
+ module Sapor
20
+ #
21
+ # The regional data for Poland, without .Nowoczesna, Platforma Obywatelska and
22
+ # Zjednoczona Lewica but with Koalicja Obywatelska and Lewica.
23
+ #
24
+ class PolandWithKoAndLWithoutNPoRAndZl < Area
25
+ include Singleton
26
+
27
+ def area_code
28
+ 'PL∪{KO,L}\{N,PO,R,ZL}'
29
+ end
30
+
31
+ def coalitions
32
+ COALITIONS
33
+ end
34
+
35
+ def no_of_seats
36
+ SEAT_DISTRIBUTION.values.inject(:+)
37
+ end
38
+
39
+ def overall_election_results_of_2015
40
+ if @overall_election_results_of_2015.nil?
41
+ @overall_election_results_of_2015 = \
42
+ summarize_election_results(election_results_of_2015)
43
+ end
44
+ @overall_election_results_of_2015
45
+ end
46
+
47
+ def population_size
48
+ POPULATION_SIZE
49
+ end
50
+
51
+ def seats(simulation)
52
+ electoral_system.project(simulation)
53
+ end
54
+
55
+ def threshold
56
+ PARTY_LIST_THRESHOLD
57
+ end
58
+
59
+ private
60
+
61
+ KO_PARTY = 'Koalicja Obywatelska'.freeze
62
+ L_PARTY = 'Lewica'.freeze
63
+ MN_PARTY = 'Mniejszość Niemiecka'.freeze
64
+ PIS_PARTY = 'Prawo i Sprawiedliwość'.freeze
65
+ PSL_PARTY = 'Polskie Stronnictwo Ludowe'.freeze
66
+ ZL_PARTY = 'Zjednoczona Lewica'.freeze
67
+
68
+ COALITIONS = [[KO_PARTY],
69
+ [KO_PARTY, PSL_PARTY],
70
+ [KO_PARTY, L_PARTY, PSL_PARTY],
71
+ [KO_PARTY, L_PARTY],
72
+ [PIS_PARTY]].freeze
73
+
74
+ # Voter turnout on 25 October 2015
75
+ # Source: Web page with the official results of the elections of 25 October
76
+ # 2015, downloaded on 17 July 2019,
77
+ # https://en.wikipedia.org/wiki/2015_Polish_parliamentary_election
78
+ POPULATION_SIZE = 15_200_671
79
+
80
+ SEAT_DISTRIBUTION = { 'Legnica' => 12, 'Wałbrzych' => 8, 'Wrocław' => 14,
81
+ 'Bydgoszcz' => 12, 'Toruń' => 13, 'Lublin' => 15,
82
+ 'Chełm' => 12, 'Zielona Góra' => 12, 'Łódź' => 10,
83
+ 'Piotrków Trybunalski' => 9, 'Sieradz' => 12,
84
+ 'Kraków I (południe)' => 8,
85
+ 'Kraków II (północ)' => 14, 'Nowy Sącz' => 10,
86
+ 'Tarnów' => 9, 'Płock' => 10, 'Radom' => 9,
87
+ 'Siedlce' => 12, 'Warszawa I (miasto)' => 20,
88
+ 'Warszawa II (okręg)' => 12, 'Opole' => 12,
89
+ 'Krosno' => 11, 'Rzeszów' => 15, 'Białystok' => 14,
90
+ 'Gdańsk' => 12, 'Gdynia' => 14, 'Bielsko-Biała' => 9,
91
+ 'Częstochowa' => 7, 'Gliwice' => 9, 'Rybnik' => 9,
92
+ 'Katowice' => 12, 'Sosnowiec' => 9, 'Kielce' => 16,
93
+ 'Elbląg' => 8, 'Olsztyn' => 10, 'Kalisz' => 12,
94
+ 'Konin' => 9, 'Piła' => 9, 'Poznań' => 10,
95
+ 'Koszalin' => 8, 'Szczecin' => 12 }.freeze
96
+
97
+ PARTY_LIST_THRESHOLD = 0.05
98
+ COALITION_LIST_THRESHOLD = 0.08
99
+ COALITION_LISTS = [KO_PARTY].freeze
100
+ MINORITY_LISTS = [MN_PARTY].freeze
101
+
102
+ def election_results_of_2015
103
+ if @election_results_of_2015.nil?
104
+ @election_results_of_2015 = load_election_results(
105
+ 'poland-20151025-with-ko-and-l-without-n-po-r-and-zl.psv'
106
+ )
107
+ end
108
+ @election_results_of_2015
109
+ end
110
+
111
+ def electoral_system
112
+ if @electoral_system.nil?
113
+ @electoral_system = MultiDistrictVariableThresholdProportional.new( \
114
+ overall_election_results_of_2015, election_results_of_2015,
115
+ SEAT_DISTRIBUTION, DhondtDenominators, PARTY_LIST_THRESHOLD,
116
+ COALITION_LIST_THRESHOLD, COALITION_LISTS, MINORITY_LISTS
117
+ )
118
+ end
119
+ @electoral_system
120
+ end
121
+ end
122
+ end