sapor 0.3.3

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 (332) hide show
  1. checksums.yaml +7 -0
  2. data/Area Class Diagram.dia +0 -0
  3. data/Area Class Diagram.png +0 -0
  4. data/Class Diagram.dia +0 -0
  5. data/Class Diagram.png +0 -0
  6. data/Example-Catalonia.md +361 -0
  7. data/Example-Flanders.md +486 -0
  8. data/Example-Greece.md +25 -0
  9. data/Example-Oslo.md +678 -0
  10. data/Example-UnitedKingdom-Referendum.md +132 -0
  11. data/Examples.md +15 -0
  12. data/LICENSE +674 -0
  13. data/README.md +103 -0
  14. data/Rakefile +18 -0
  15. data/Technical Documentation.md +14 -0
  16. data/bin/create_installation_package.sh +49 -0
  17. data/bin/install.sh +45 -0
  18. data/bin/sapor.rb +24 -0
  19. data/bin/sapor.sh +106 -0
  20. data/data/hu/hungary-2014.txt +1680 -0
  21. data/data/hu/hungary_2014_screen_scraper.rb +48 -0
  22. data/data/hu/hungary_2014_to_psv.rb +80 -0
  23. data/data/hu/index-2014.txt +106 -0
  24. data/data/pl/2015-gl-lis-okr.csv +42 -0
  25. data/data/pl/poland_2015_to_psv.rb +79 -0
  26. data/data/pl/poland_2015_to_psv_with_ko_and_rsw.rb +94 -0
  27. data/data/pl/poland_2015_to_psv_with_ko_konf_kp_l_and_zp.rb +100 -0
  28. data/data/pl/poland_2015_to_psv_with_ko_sld_and_wi.rb +92 -0
  29. data/data/pl/poland_2015_to_psv_with_sld.rb +84 -0
  30. data/data/pl/poland_2015_to_psv_with_sld_and_wi.rb +85 -0
  31. data/data/uk/inject_ukip_2015_as_brexit_2019_in_2017.rb +54 -0
  32. data/data/uk/united_kingdom_2015.txt +651 -0
  33. data/data/uk/united_kingdom_2015_to_psv.rb +104 -0
  34. data/data/uk/united_kingdom_2017.txt +651 -0
  35. data/data/uk/united_kingdom_2017_to_psv.rb +104 -0
  36. data/data/uk/united_kingdom_2017_to_psv_with_brexit_and_chuk.rb +113 -0
  37. data/data/uk/united_kingdom_2017_to_psv_with_tig.rb +111 -0
  38. data/lib/sapor.rb +150 -0
  39. data/lib/sapor/binomials_cache.rb +45 -0
  40. data/lib/sapor/combinations_distribution.rb +222 -0
  41. data/lib/sapor/denominators.rb +67 -0
  42. data/lib/sapor/dichotomies.rb +138 -0
  43. data/lib/sapor/dichotomy.rb +164 -0
  44. data/lib/sapor/first_past_the_post.rb +82 -0
  45. data/lib/sapor/largest_remainder.rb +118 -0
  46. data/lib/sapor/log4r_logger.rb +49 -0
  47. data/lib/sapor/log_facade.rb +40 -0
  48. data/lib/sapor/multi_district_leveled_proportional.rb +64 -0
  49. data/lib/sapor/multi_district_proportional.rb +123 -0
  50. data/lib/sapor/multi_district_variable_threshold_proportional.rb +128 -0
  51. data/lib/sapor/number_formatter.rb +45 -0
  52. data/lib/sapor/options.rb +73 -0
  53. data/lib/sapor/poll.rb +286 -0
  54. data/lib/sapor/polychotomy.rb +200 -0
  55. data/lib/sapor/pseudorandom_multirange_enumerator.rb +87 -0
  56. data/lib/sapor/referendum_polychotomy.rb +165 -0
  57. data/lib/sapor/regional_data/area.rb +82 -0
  58. data/lib/sapor/regional_data/austria.rb +84 -0
  59. data/lib/sapor/regional_data/belgium-brussels-2014.psv +46 -0
  60. data/lib/sapor/regional_data/belgium-brussels-20190526.psv +33 -0
  61. data/lib/sapor/regional_data/belgium-flanders-2014.psv +80 -0
  62. data/lib/sapor/regional_data/belgium-flanders-20190526.psv +74 -0
  63. data/lib/sapor/regional_data/belgium-wallonia-2014.psv +114 -0
  64. data/lib/sapor/regional_data/belgium-wallonia-20190526.psv +93 -0
  65. data/lib/sapor/regional_data/belgium.rb +97 -0
  66. data/lib/sapor/regional_data/belgium_brussels.rb +62 -0
  67. data/lib/sapor/regional_data/belgium_flanders.rb +64 -0
  68. data/lib/sapor/regional_data/belgium_wallonia.rb +63 -0
  69. data/lib/sapor/regional_data/catalonia-2012-2015.psv +100 -0
  70. data/lib/sapor/regional_data/catalonia-2012.psv +87 -0
  71. data/lib/sapor/regional_data/catalonia-2015-jxcat.psv +68 -0
  72. data/lib/sapor/regional_data/catalonia-2015-no-jxsi.psv +68 -0
  73. data/lib/sapor/regional_data/catalonia-2015.psv +63 -0
  74. data/lib/sapor/regional_data/catalonia-jxcat.rb +109 -0
  75. data/lib/sapor/regional_data/catalonia-no-jxsi.rb +96 -0
  76. data/lib/sapor/regional_data/catalonia.rb +96 -0
  77. data/lib/sapor/regional_data/denmark-20150618-with-e-and-p.psv +164 -0
  78. data/lib/sapor/regional_data/denmark-20150618-with-e.psv +153 -0
  79. data/lib/sapor/regional_data/denmark-20150618-with-p.psv +153 -0
  80. data/lib/sapor/regional_data/denmark-20150618.psv +142 -0
  81. data/lib/sapor/regional_data/denmark.rb +128 -0
  82. data/lib/sapor/regional_data/denmark_with_e.rb +128 -0
  83. data/lib/sapor/regional_data/denmark_with_e_and_p.rb +128 -0
  84. data/lib/sapor/regional_data/denmark_with_p.rb +128 -0
  85. data/lib/sapor/regional_data/estonia.rb +88 -0
  86. data/lib/sapor/regional_data/european-union-great-britain-20140522-brexit-chuk.psv +172 -0
  87. data/lib/sapor/regional_data/european-union-great-britain-20140522.psv +146 -0
  88. data/lib/sapor/regional_data/european-union-great-britain-20190523.psv +141 -0
  89. data/lib/sapor/regional_data/european-union-ireland-2014-ia-ri-sd.psv +64 -0
  90. data/lib/sapor/regional_data/european-union-ireland-2014-ia-sd.psv +60 -0
  91. data/lib/sapor/regional_data/european-union-ireland-2014-ia.psv +56 -0
  92. data/lib/sapor/regional_data/european-union-ireland-2014-sd.psv +56 -0
  93. data/lib/sapor/regional_data/european-union-ireland-2014.psv +50 -0
  94. data/lib/sapor/regional_data/european-union-ireland-20190524-ia.psv +58 -0
  95. data/lib/sapor/regional_data/european-union-ireland-20190524.psv +52 -0
  96. data/lib/sapor/regional_data/european_union_27_austria.rb +76 -0
  97. data/lib/sapor/regional_data/european_union_27_croatia.rb +81 -0
  98. data/lib/sapor/regional_data/european_union_27_denmark.rb +77 -0
  99. data/lib/sapor/regional_data/european_union_27_estonia.rb +74 -0
  100. data/lib/sapor/regional_data/european_union_27_finland.rb +74 -0
  101. data/lib/sapor/regional_data/european_union_27_ireland.rb +96 -0
  102. data/lib/sapor/regional_data/european_union_27_ireland_with_ia.rb +97 -0
  103. data/lib/sapor/regional_data/european_union_27_italy.rb +84 -0
  104. data/lib/sapor/regional_data/european_union_27_netherlands.rb +81 -0
  105. data/lib/sapor/regional_data/european_union_27_poland.rb +84 -0
  106. data/lib/sapor/regional_data/european_union_27_romania.rb +78 -0
  107. data/lib/sapor/regional_data/european_union_27_slovakia.rb +80 -0
  108. data/lib/sapor/regional_data/european_union_27_spain.rb +82 -0
  109. data/lib/sapor/regional_data/european_union_27_sweden.rb +76 -0
  110. data/lib/sapor/regional_data/european_union_austria.rb +76 -0
  111. data/lib/sapor/regional_data/european_union_bulgaria.rb +81 -0
  112. data/lib/sapor/regional_data/european_union_croatia.rb +81 -0
  113. data/lib/sapor/regional_data/european_union_cyprus.rb +72 -0
  114. data/lib/sapor/regional_data/european_union_czech_republic.rb +82 -0
  115. data/lib/sapor/regional_data/european_union_denmark.rb +77 -0
  116. data/lib/sapor/regional_data/european_union_estonia.rb +74 -0
  117. data/lib/sapor/regional_data/european_union_finland.rb +74 -0
  118. data/lib/sapor/regional_data/european_union_flanders.rb +74 -0
  119. data/lib/sapor/regional_data/european_union_france.rb +84 -0
  120. data/lib/sapor/regional_data/european_union_france_2019.rb +84 -0
  121. data/lib/sapor/regional_data/european_union_french_community_of_belgium.rb +73 -0
  122. data/lib/sapor/regional_data/european_union_germany.rb +86 -0
  123. data/lib/sapor/regional_data/european_union_great_britain.rb +98 -0
  124. data/lib/sapor/regional_data/european_union_greece.rb +77 -0
  125. data/lib/sapor/regional_data/european_union_hungary.rb +76 -0
  126. data/lib/sapor/regional_data/european_union_ireland.rb +96 -0
  127. data/lib/sapor/regional_data/european_union_ireland_with_ia.rb +97 -0
  128. data/lib/sapor/regional_data/european_union_italy.rb +84 -0
  129. data/lib/sapor/regional_data/european_union_latvia.rb +81 -0
  130. data/lib/sapor/regional_data/european_union_lithuania.rb +80 -0
  131. data/lib/sapor/regional_data/european_union_luxembourg.rb +75 -0
  132. data/lib/sapor/regional_data/european_union_malta.rb +71 -0
  133. data/lib/sapor/regional_data/european_union_netherlands.rb +81 -0
  134. data/lib/sapor/regional_data/european_union_northern_ireland.rb +75 -0
  135. data/lib/sapor/regional_data/european_union_poland.rb +84 -0
  136. data/lib/sapor/regional_data/european_union_portugal.rb +75 -0
  137. data/lib/sapor/regional_data/european_union_romania.rb +78 -0
  138. data/lib/sapor/regional_data/european_union_slovakia.rb +81 -0
  139. data/lib/sapor/regional_data/european_union_slovenia.rb +85 -0
  140. data/lib/sapor/regional_data/european_union_spain.rb +82 -0
  141. data/lib/sapor/regional_data/european_union_sweden.rb +76 -0
  142. data/lib/sapor/regional_data/finland-20150419-with-sin.psv +224 -0
  143. data/lib/sapor/regional_data/finland-20150419.psv +212 -0
  144. data/lib/sapor/regional_data/finland.rb +107 -0
  145. data/lib/sapor/regional_data/finland_with_sin.rb +107 -0
  146. data/lib/sapor/regional_data/flanders-2014.psv +96 -0
  147. data/lib/sapor/regional_data/flanders-20190526.psv +87 -0
  148. data/lib/sapor/regional_data/flanders.rb +115 -0
  149. data/lib/sapor/regional_data/france.rb +38 -0
  150. data/lib/sapor/regional_data/greece.rb +92 -0
  151. data/lib/sapor/regional_data/hungary-2014.psv +2104 -0
  152. data/lib/sapor/regional_data/hungary.rb +116 -0
  153. data/lib/sapor/regional_data/iceland-20161029-midflokkurinn.psv +94 -0
  154. data/lib/sapor/regional_data/iceland-20161029.psv +88 -0
  155. data/lib/sapor/regional_data/iceland-20171028.psv +85 -0
  156. data/lib/sapor/regional_data/iceland.rb +133 -0
  157. data/lib/sapor/regional_data/latvia-20141004-kpv-p-par.psv +109 -0
  158. data/lib/sapor/regional_data/latvia-20141004-kpv-par.psv +103 -0
  159. data/lib/sapor/regional_data/latvia-20141004-kpv.psv +97 -0
  160. data/lib/sapor/regional_data/latvia-20141004.psv +89 -0
  161. data/lib/sapor/regional_data/latvia.rb +112 -0
  162. data/lib/sapor/regional_data/latvia_kpv.rb +112 -0
  163. data/lib/sapor/regional_data/latvia_kpv_p_par.rb +112 -0
  164. data/lib/sapor/regional_data/latvia_kpv_par.rb +112 -0
  165. data/lib/sapor/regional_data/luxembourg-20131020.psv +76 -0
  166. data/lib/sapor/regional_data/luxembourg.rb +82 -0
  167. data/lib/sapor/regional_data/netherlands.rb +108 -0
  168. data/lib/sapor/regional_data/norway.rb +425 -0
  169. data/lib/sapor/regional_data/norwegian_municipality.rb +68 -0
  170. data/lib/sapor/regional_data/poland-20151025-with-ko-and-l-without-n-po-r-and-zl.psv +321 -0
  171. 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
  172. data/lib/sapor/regional_data/poland-20151025-with-ko-sld-and-wi-without-n-po-and-zl.psv +403 -0
  173. data/lib/sapor/regional_data/poland-20151025-with-sld-and-wi-without-zl.psv +444 -0
  174. data/lib/sapor/regional_data/poland-20151025-with-sld-without-zl.psv +403 -0
  175. data/lib/sapor/regional_data/poland-20151025.psv +403 -0
  176. data/lib/sapor/regional_data/poland.rb +125 -0
  177. data/lib/sapor/regional_data/poland_with_ko_and_l_without_n_po_r_and_zl.rb +122 -0
  178. 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
  179. data/lib/sapor/regional_data/poland_with_ko_sld_and_wi_without_n_po_and_zl.rb +125 -0
  180. data/lib/sapor/regional_data/poland_with_sld_and_wi_without_zl.rb +126 -0
  181. data/lib/sapor/regional_data/poland_with_sld_without_zl.rb +126 -0
  182. data/lib/sapor/regional_data/portugal-20151004-with-a-and-ch-without-paf.psv +438 -0
  183. data/lib/sapor/regional_data/portugal-20151004-with-a-and-il-without-paf.psv +438 -0
  184. data/lib/sapor/regional_data/portugal-20151004-with-a-ch-and-il-without-paf.psv +461 -0
  185. data/lib/sapor/regional_data/portugal-20151004-with-a-without-paf.psv +415 -0
  186. data/lib/sapor/regional_data/portugal-20151004-with-ch-and-il-without-paf.psv +438 -0
  187. data/lib/sapor/regional_data/portugal-20151004-without-paf.psv +392 -0
  188. data/lib/sapor/regional_data/portugal-20151004.psv +370 -0
  189. data/lib/sapor/regional_data/portugal.rb +101 -0
  190. data/lib/sapor/regional_data/portugal_with_a_and_ch_without_paf.rb +92 -0
  191. data/lib/sapor/regional_data/portugal_with_a_and_il_without_paf.rb +92 -0
  192. data/lib/sapor/regional_data/portugal_with_a_ch_and_il_without_paf.rb +92 -0
  193. data/lib/sapor/regional_data/portugal_with_a_without_paf.rb +92 -0
  194. data/lib/sapor/regional_data/portugal_with_ch_and_il_without_paf.rb +92 -0
  195. data/lib/sapor/regional_data/portugal_without_paf.rb +92 -0
  196. data/lib/sapor/regional_data/slovakia.rb +81 -0
  197. data/lib/sapor/regional_data/slovenia.rb +114 -0
  198. data/lib/sapor/regional_data/spain-20160626.psv +619 -0
  199. data/lib/sapor/regional_data/spain.rb +136 -0
  200. data/lib/sapor/regional_data/sweden.rb +92 -0
  201. data/lib/sapor/regional_data/sweden_20140914.rb +89 -0
  202. data/lib/sapor/regional_data/united_kingdom-2015.psv +4358 -0
  203. data/lib/sapor/regional_data/united_kingdom-20170608-brexit-chuk.psv +5154 -0
  204. data/lib/sapor/regional_data/united_kingdom-20170608-brexit.psv +4521 -0
  205. data/lib/sapor/regional_data/united_kingdom-20170608-tig.psv +4529 -0
  206. data/lib/sapor/regional_data/united_kingdom-20170608.psv +3894 -0
  207. data/lib/sapor/regional_data/united_kingdom.rb +94 -0
  208. data/lib/sapor/regional_data/united_kingdom_with_brexit.rb +110 -0
  209. data/lib/sapor/regional_data/united_kingdom_with_brexit_and_chuk.rb +111 -0
  210. data/lib/sapor/regional_data/united_kingdom_with_tig.rb +111 -0
  211. data/lib/sapor/regional_data/utopia.rb +66 -0
  212. data/lib/sapor/regional_data/wallonia-2014.psv +101 -0
  213. data/lib/sapor/regional_data/wallonia-20190526.psv +88 -0
  214. data/lib/sapor/regional_data/wallonia.rb +112 -0
  215. data/lib/sapor/representatives_polychotomy.rb +338 -0
  216. data/lib/sapor/single_district_proportional.rb +75 -0
  217. data/sapor.gemspec +35 -0
  218. data/spec/integration/area_spec.rb +28 -0
  219. data/spec/integration/poll_spec.rb +112 -0
  220. data/spec/integration/sample.poll +8 -0
  221. data/spec/spec_helper.rb +31 -0
  222. data/spec/unit/area_spec.rb +115 -0
  223. data/spec/unit/austria_spec.rb +76 -0
  224. data/spec/unit/belgium_brussels_spec.rb +58 -0
  225. data/spec/unit/belgium_flanders_spec.rb +62 -0
  226. data/spec/unit/belgium_spec.rb +26 -0
  227. data/spec/unit/belgium_wallonia_spec.rb +65 -0
  228. data/spec/unit/binomials_cache_spec.rb +34 -0
  229. data/spec/unit/catalonia_spec.rb +74 -0
  230. data/spec/unit/combinations_distribution_spec.rb +241 -0
  231. data/spec/unit/denmark_spec.rb +56 -0
  232. data/spec/unit/denmark_with_e_and_p_spec.rb +58 -0
  233. data/spec/unit/denmark_with_e_spec.rb +57 -0
  234. data/spec/unit/denmark_with_p_spec.rb +57 -0
  235. data/spec/unit/denominators_spec.rb +40 -0
  236. data/spec/unit/dichotomies_spec.rb +154 -0
  237. data/spec/unit/dichotomy_spec.rb +320 -0
  238. data/spec/unit/estonia_spec.rb +65 -0
  239. data/spec/unit/european_union_27_austria_spec.rb +61 -0
  240. data/spec/unit/european_union_27_croatia_spec.rb +60 -0
  241. data/spec/unit/european_union_27_denmark_spec.rb +62 -0
  242. data/spec/unit/european_union_27_estonia_spec.rb +94 -0
  243. data/spec/unit/european_union_27_finland_spec.rb +75 -0
  244. data/spec/unit/european_union_27_ireland_spec.rb +72 -0
  245. data/spec/unit/european_union_27_ireland_with_ia_spec.rb +74 -0
  246. data/spec/unit/european_union_27_italy_spec.rb +69 -0
  247. data/spec/unit/european_union_27_netherlands_spec.rb +81 -0
  248. data/spec/unit/european_union_27_poland_spec.rb +69 -0
  249. data/spec/unit/european_union_27_romania_spec.rb +67 -0
  250. data/spec/unit/european_union_27_slovakia_spec.rb +111 -0
  251. data/spec/unit/european_union_27_spain_spec.rb +130 -0
  252. data/spec/unit/european_union_27_sweden_spec.rb +89 -0
  253. data/spec/unit/european_union_austria_spec.rb +61 -0
  254. data/spec/unit/european_union_bulgaria_spec.rb +97 -0
  255. data/spec/unit/european_union_croatia_spec.rb +59 -0
  256. data/spec/unit/european_union_cyprus_spec.rb +65 -0
  257. data/spec/unit/european_union_czech_republic_spec.rb +125 -0
  258. data/spec/unit/european_union_denmark_spec.rb +61 -0
  259. data/spec/unit/european_union_estonia_spec.rb +93 -0
  260. data/spec/unit/european_union_finland_spec.rb +75 -0
  261. data/spec/unit/european_union_flanders_spec.rb +56 -0
  262. data/spec/unit/european_union_france_2019_spec.rb +73 -0
  263. data/spec/unit/european_union_france_spec.rb +73 -0
  264. data/spec/unit/european_union_french_community_of_belgium_spec.rb +61 -0
  265. data/spec/unit/european_union_germany_spec.rb +90 -0
  266. data/spec/unit/european_union_great_britain_spec.rb +87 -0
  267. data/spec/unit/european_union_greece_spec.rb +148 -0
  268. data/spec/unit/european_union_hungary_spec.rb +57 -0
  269. data/spec/unit/european_union_ireland_spec.rb +72 -0
  270. data/spec/unit/european_union_ireland_with_ia_spec.rb +74 -0
  271. data/spec/unit/european_union_italy_spec.rb +69 -0
  272. data/spec/unit/european_union_latvia_spec.rb +76 -0
  273. data/spec/unit/european_union_lithuania_spec.rb +68 -0
  274. data/spec/unit/european_union_luxembourg_spec.rb +63 -0
  275. data/spec/unit/european_union_malta_spec.rb +60 -0
  276. data/spec/unit/european_union_netherlands_spec.rb +81 -0
  277. data/spec/unit/european_union_northern_ireland_spec.rb +66 -0
  278. data/spec/unit/european_union_poland_spec.rb +69 -0
  279. data/spec/unit/european_union_portugal_spec.rb +77 -0
  280. data/spec/unit/european_union_romania_spec.rb +67 -0
  281. data/spec/unit/european_union_slovakia_spec.rb +111 -0
  282. data/spec/unit/european_union_slovenia_spec.rb +77 -0
  283. data/spec/unit/european_union_spain_spec.rb +129 -0
  284. data/spec/unit/european_union_sweden_spec.rb +89 -0
  285. data/spec/unit/finland_spec.rb +65 -0
  286. data/spec/unit/finland_with_sin_spec.rb +67 -0
  287. data/spec/unit/first_past_the_post_spec.rb +54 -0
  288. data/spec/unit/flanders_spec.rb +70 -0
  289. data/spec/unit/france_spec.rb +32 -0
  290. data/spec/unit/greece_spec.rb +118 -0
  291. data/spec/unit/hungary_spec.rb +132 -0
  292. data/spec/unit/iceland_spec.rb +57 -0
  293. data/spec/unit/largest_remainder_spec.rb +79 -0
  294. data/spec/unit/latvia_kpv_p_par_spec.rb +38 -0
  295. data/spec/unit/latvia_kpv_par_spec.rb +38 -0
  296. data/spec/unit/latvia_kpv_spec.rb +38 -0
  297. data/spec/unit/latvia_spec.rb +60 -0
  298. data/spec/unit/luxembourg_spec.rb +54 -0
  299. data/spec/unit/multi_district_leveled_proportional_spec.rb +49 -0
  300. data/spec/unit/multi_district_proportional_spec.rb +81 -0
  301. data/spec/unit/netherlands_spec.rb +107 -0
  302. data/spec/unit/norway_spec.rb +64 -0
  303. data/spec/unit/norwegian_municipality_spec.rb +89 -0
  304. data/spec/unit/number_formatter_spec.rb +173 -0
  305. data/spec/unit/poland_spec.rb +62 -0
  306. data/spec/unit/poland_with_ko_and_l_without_n_po_r_and_zl_spec.rb +60 -0
  307. 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
  308. data/spec/unit/poland_with_ko_sld_and_wi_without_n_po_and_zl_spec.rb +62 -0
  309. data/spec/unit/poland_with_sld_and_wi_without_zl_spec.rb +63 -0
  310. data/spec/unit/poland_with_sld_without_zl_spec.rb +62 -0
  311. data/spec/unit/poll_spec.rb +110 -0
  312. data/spec/unit/portugal_spec.rb +66 -0
  313. data/spec/unit/portugal_with_a_and_ch_without_paf_spec.rb +68 -0
  314. data/spec/unit/portugal_with_a_and_il_without_paf_spec.rb +68 -0
  315. data/spec/unit/portugal_with_a_ch_and_il_without_paf_spec.rb +69 -0
  316. data/spec/unit/portugal_with_a_without_paf_spec.rb +67 -0
  317. data/spec/unit/portugal_with_ch_and_il_without_paf_spec.rb +68 -0
  318. data/spec/unit/portugal_without_paf_spec.rb +66 -0
  319. data/spec/unit/pseudorandom_multirange_enumerator_spec.rb +82 -0
  320. data/spec/unit/referendum_polychotomy_spec.rb +289 -0
  321. data/spec/unit/representatives_polychotomy_spec.rb +332 -0
  322. data/spec/unit/slovakia_spec.rb +99 -0
  323. data/spec/unit/slovenia_spec.rb +80 -0
  324. data/spec/unit/spain_spec.rb +101 -0
  325. data/spec/unit/sweden_20140914_spec.rb +112 -0
  326. data/spec/unit/sweden_spec.rb +113 -0
  327. data/spec/unit/united_kingdom_spec.rb +65 -0
  328. data/spec/unit/united_kingdom_with_brexit_and_chuk_spec.rb +67 -0
  329. data/spec/unit/united_kingdom_with_brexit_spec.rb +66 -0
  330. data/spec/unit/united_kingdom_with_tig_spec.rb +66 -0
  331. data/spec/unit/wallonia_spec.rb +70 -0
  332. metadata +490 -0
@@ -0,0 +1,96 @@
1
+ # encoding: utf-8
2
+ #
3
+ # Statistical Analysis of Polling Results (SAPoR)
4
+ # Copyright (C) 2016 Filip van Laenen <f.a.vanlaenen@ieee.org>
5
+ #
6
+ # This file is part of SAPoR.
7
+ #
8
+ # SAPoR is free software: you can redistribute it and/or modify it under the
9
+ # terms of the GNU General Public License as published by the Free Software
10
+ # Foundation, either version 3 of the License, or (at your option) any later
11
+ # version.
12
+ #
13
+ # SAPoR is distributed in the hope that it will be useful, but WITHOUT ANY
14
+ # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
15
+ # A PARTICULAR PURPOSE. See the GNU General Public License for more details.
16
+ #
17
+ # You can find a copy of the GNU General Public License in /doc/gpl.txt
18
+ #
19
+
20
+ module Sapor
21
+ #
22
+ # The regional data for Catalonia.
23
+ #
24
+ class Catalonia < Area
25
+ include Singleton
26
+ def area_code
27
+ 'ES-CT'
28
+ end
29
+
30
+ def coalitions
31
+ [['Junts pel Sí'],
32
+ ['Junts pel Sí', 'Candidatura d’Unitat Popular'],
33
+ ['Junts pel Sí', 'Catalunya en Comú'],
34
+ ['Ciutadans–Partido de la Ciudadanía',
35
+ 'Partit dels Socialistes de Catalunya (PSC-PSOE)',
36
+ 'Catalunya en Comú', 'Partit Popular'],
37
+ ['Ciutadans–Partido de la Ciudadanía',
38
+ 'Partit dels Socialistes de Catalunya (PSC-PSOE)', 'Partit Popular']]
39
+ end
40
+
41
+ def no_of_seats
42
+ SEAT_DISTRIBUTION.values.inject(:+)
43
+ end
44
+
45
+ def overall_election_results_of_2015
46
+ if @overall_election_results_of_2015.nil?
47
+ @overall_election_results_of_2015 = \
48
+ summarize_election_results(election_results_of_2015)
49
+ end
50
+ @overall_election_results_of_2015
51
+ end
52
+
53
+ def population_size
54
+ # Voter turnout in 2015
55
+ # Source: "Election Results. Parliament of Catalonia Election 2015".
56
+ # Generalitat of Catalonia. Retrieved 21 October 2017.
57
+ # URL: http://governacio.gencat.cat/ca/pgov_ambits_d_actuacio/pgov_eleccions/pgov_dades_electorals/resultats-2?id_eleccions=A20151&id_territori=CA09
58
+ 5_510_853
59
+ end
60
+
61
+ def seats(simulation)
62
+ electoral_system.project(simulation)
63
+ end
64
+
65
+ def threshold
66
+ THRESHOLD
67
+ end
68
+
69
+ private
70
+
71
+ SEAT_DISTRIBUTION = { 'Barcelona' => 85, 'Girona' => 17, 'Lleida' => 15,
72
+ 'Tarragona' => 18 }
73
+
74
+ THRESHOLD = 0.03
75
+
76
+ def election_results_of_2015
77
+ if @election_results_of_2015.nil?
78
+ @election_results_of_2015 = load_election_results( \
79
+ 'catalonia-2015.psv')
80
+ end
81
+ @election_results_of_2015
82
+ end
83
+
84
+ def electoral_system
85
+ if @electoral_system.nil?
86
+ @electoral_system = MultiDistrictProportional.new( \
87
+ overall_election_results_of_2015,
88
+ election_results_of_2015,
89
+ SEAT_DISTRIBUTION,
90
+ DhondtDenominators,
91
+ THRESHOLD)
92
+ end
93
+ @electoral_system
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,164 @@
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
+
18
+ # Source: "Resultater - Hele landet - Folketingsvalg torsdag 18. juni 2015 -
19
+ # Danmarks Statistik". Retrieved on 28 December 2018.
20
+ # URL: http://www.dst.dk/valg/Valg1487635/valgopg/valgopgHL.htm
21
+
22
+ # Extended with Nye Borgerlige equal to Det Konservative Folkeparti
23
+ # Extended with Klaus Riskær Pedersen equal to Venstre
24
+ # Extended with Stram Kurs equal to Nye Borgerlige
25
+
26
+ Københavns Storkreds | Socialdemokraterne | 96,753
27
+ Københavns Storkreds | Radikale Venstre | 40578
28
+ Københavns Storkreds | Det Konservative Folkeparti | 13471
29
+ Københavns Storkreds | Nye Borgerlige | 13471
30
+ Københavns Storkreds | Stram Kurs | 13471
31
+ Københavns Storkreds | Socialistisk Folkeparti | 28260
32
+ Københavns Storkreds | Liberal Alliance | 37935
33
+ Københavns Storkreds | Kristendemokraterne | 1599
34
+ Københavns Storkreds | Dansk Folkeparti | 49575
35
+ Københavns Storkreds | Venstre | 44721
36
+ Københavns Storkreds | Klaus Riskær Pedersen | 44721
37
+ Københavns Storkreds | Enhedslisten–De Rød-Grønne | 71140
38
+ Københavns Storkreds | Alternativet | 48475
39
+
40
+ Københavns Omegns Storkreds | Socialdemokraterne | 90361
41
+ Københavns Omegns Storkreds | Radikale Venstre | 16710
42
+ Københavns Omegns Storkreds | Det Konservative Folkeparti | 13840
43
+ Københavns Omegns Storkreds | Nye Borgerlige | 13840
44
+ Københavns Omegns Storkreds | Stram Kurs | 13840
45
+ Københavns Omegns Storkreds | Socialistisk Folkeparti | 14619
46
+ Københavns Omegns Storkreds | Liberal Alliance | 25982
47
+ Københavns Omegns Storkreds | Kristendemokraterne | 1365
48
+ Københavns Omegns Storkreds | Dansk Folkeparti | 62419
49
+ Københavns Omegns Storkreds | Venstre | 46092
50
+ Københavns Omegns Storkreds | Klaus Riskær Pedersen | 46092
51
+ Københavns Omegns Storkreds | Enhedslisten–De Rød-Grønne | 25364
52
+ Københavns Omegns Storkreds | Alternativet | 13575
53
+
54
+ Nordsjællands Storkreds | Socialdemokraterne | 64822
55
+ Nordsjællands Storkreds | Radikale Venstre | 17515
56
+ Nordsjællands Storkreds | Det Konservative Folkeparti | 15123
57
+ Nordsjællands Storkreds | Nye Borgerlige | 15123
58
+ Nordsjællands Storkreds | Stram Kurs | 15123
59
+ Nordsjællands Storkreds | Socialistisk Folkeparti | 11182
60
+ Nordsjællands Storkreds | Liberal Alliance | 32744
61
+ Nordsjællands Storkreds | Kristendemokraterne | 1680
62
+ Nordsjællands Storkreds | Dansk Folkeparti | 53980
63
+ Nordsjællands Storkreds | Venstre | 59155
64
+ Nordsjællands Storkreds | Klaus Riskær Pedersen | 59155
65
+ Nordsjællands Storkreds | Enhedslisten–De Rød-Grønne | 18171
66
+ Nordsjællands Storkreds | Alternativet | 12957
67
+
68
+ Bornholms Storkreds | Socialdemokraterne | 8683
69
+ Bornholms Storkreds | Radikale Venstre | 427
70
+ Bornholms Storkreds | Det Konservative Folkeparti | 441
71
+ Bornholms Storkreds | Nye Borgerlige | 441
72
+ Bornholms Storkreds | Stram Kurs | 441
73
+ Bornholms Storkreds | Socialistisk Folkeparti | 716
74
+ Bornholms Storkreds | Liberal Alliance | 1037
75
+ Bornholms Storkreds | Kristendemokraterne | 749
76
+ Bornholms Storkreds | Dansk Folkeparti | 5168
77
+ Bornholms Storkreds | Venstre | 5257
78
+ Bornholms Storkreds | Klaus Riskær Pedersen | 5257
79
+ Bornholms Storkreds | Enhedslisten–De Rød-Grønne | 2175
80
+ Bornholms Storkreds | Alternativet | 1299
81
+
82
+ Sjællands Storkreds | Socialdemokraterne | 146464
83
+ Sjællands Storkreds | Radikale Venstre | 16906
84
+ Sjællands Storkreds | Det Konservative Folkeparti | 15083
85
+ Sjællands Storkreds | Nye Borgerlige | 15083
86
+ Sjællands Storkreds | Stram Kurs | 15083
87
+ Sjællands Storkreds | Socialistisk Folkeparti | 20575
88
+ Sjællands Storkreds | Liberal Alliance | 32598
89
+ Sjællands Storkreds | Kristendemokraterne | 1996
90
+ Sjællands Storkreds | Dansk Folkeparti | 134195
91
+ Sjællands Storkreds | Venstre | 102818
92
+ Sjællands Storkreds | Klaus Riskær Pedersen | 102818
93
+ Sjællands Storkreds | Enhedslisten–De Rød-Grønne | 35374
94
+ Sjællands Storkreds | Alternativet | 18202
95
+
96
+ Fyns Storkreds | Socialdemokraterne | 90061
97
+ Fyns Storkreds | Radikale Venstre | 10513
98
+ Fyns Storkreds | Det Konservative Folkeparti | 10849
99
+ Fyns Storkreds | Nye Borgerlige | 10849
100
+ Fyns Storkreds | Stram Kurs | 10849
101
+ Fyns Storkreds | Socialistisk Folkeparti | 13790
102
+ Fyns Storkreds | Liberal Alliance | 20271
103
+ Fyns Storkreds | Kristendemokraterne | 1293
104
+ Fyns Storkreds | Dansk Folkeparti | 67913
105
+ Fyns Storkreds | Venstre | 56673
106
+ Fyns Storkreds | Klaus Riskær Pedersen | 56673
107
+ Fyns Storkreds | Enhedslisten–De Rød-Grønne | 26575
108
+ Fyns Storkreds | Alternativet | 14165
109
+
110
+ Sydjyllands Storkreds | Socialdemokraterne | 104391
111
+ Sydjyllands Storkreds | Radikale Venstre | 13962
112
+ Sydjyllands Storkreds | Det Konservative Folkeparti | 9625
113
+ Sydjyllands Storkreds | Nye Borgerlige | 9625
114
+ Sydjyllands Storkreds | Stram Kurs | 9625
115
+ Sydjyllands Storkreds | Socialistisk Folkeparti | 13508
116
+ Sydjyllands Storkreds | Liberal Alliance | 33277
117
+ Sydjyllands Storkreds | Kristendemokraterne | 4792
118
+ Sydjyllands Storkreds | Dansk Folkeparti | 126058
119
+ Sydjyllands Storkreds | Venstre | 104483
120
+ Sydjyllands Storkreds | Klaus Riskær Pedersen | 104483
121
+ Sydjyllands Storkreds | Enhedslisten–De Rød-Grønne | 22614
122
+ Sydjyllands Storkreds | Alternativet | 11551
123
+
124
+ Østjyllands Storkreds | Socialdemokraterne | 132320
125
+ Østjyllands Storkreds | Radikale Venstre | 23876
126
+ Østjyllands Storkreds | Det Konservative Folkeparti | 13490
127
+ Østjyllands Storkreds | Nye Borgerlige | 13490
128
+ Østjyllands Storkreds | Stram Kurs | 13490
129
+ Østjyllands Storkreds | Socialistisk Folkeparti | 21100
130
+ Østjyllands Storkreds | Liberal Alliance | 40101
131
+ Østjyllands Storkreds | Kristendemokraterne | 4627
132
+ Østjyllands Storkreds | Dansk Folkeparti | 91621
133
+ Østjyllands Storkreds | Venstre | 90528
134
+ Østjyllands Storkreds | Klaus Riskær Pedersen | 90528
135
+ Østjyllands Storkreds | Enhedslisten–De Rød-Grønne | 35960
136
+ Østjyllands Storkreds | Alternativet | 29587
137
+
138
+ Vestjyllands Storkreds | Socialdemokraterne | 80122
139
+ Vestjyllands Storkreds | Radikale Venstre | 9183
140
+ Vestjyllands Storkreds | Det Konservative Folkeparti | 15928
141
+ Vestjyllands Storkreds | Nye Borgerlige | 15928
142
+ Vestjyllands Storkreds | Stram Kurs | 15928
143
+ Vestjyllands Storkreds | Socialistisk Folkeparti | 11720
144
+ Vestjyllands Storkreds | Liberal Alliance | 19377
145
+ Vestjyllands Storkreds | Kristendemokraterne | 7646
146
+ Vestjyllands Storkreds | Dansk Folkeparti | 69657
147
+ Vestjyllands Storkreds | Venstre | 89537
148
+ Vestjyllands Storkreds | Klaus Riskær Pedersen | 89537
149
+ Vestjyllands Storkreds | Enhedslisten–De Rød-Grønne | 14531
150
+ Vestjyllands Storkreds | Alternativet | 8642
151
+
152
+ Nordjyllands Storkreds | Socialdemokraterne | 110963
153
+ Nordjyllands Storkreds | Radikale Venstre | 11339
154
+ Nordjyllands Storkreds | Det Konservative Folkeparti | 10153
155
+ Nordjyllands Storkreds | Nye Borgerlige | 10153
156
+ Nordjyllands Storkreds | Stram Kurs | 10153
157
+ Nordjyllands Storkreds | Socialistisk Folkeparti | 12108
158
+ Nordjyllands Storkreds | Liberal Alliance | 21807
159
+ Nordjyllands Storkreds | Kristendemokraterne | 3330
160
+ Nordjyllands Storkreds | Dansk Folkeparti | 81160
161
+ Nordjyllands Storkreds | Venstre | 85924
162
+ Nordjyllands Storkreds | Klaus Riskær Pedersen | 85924
163
+ Nordjyllands Storkreds | Enhedslisten–De Rød-Grønne | 22559
164
+ Nordjyllands Storkreds | Alternativet | 10335
@@ -0,0 +1,153 @@
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
+
18
+ # Source: "Resultater - Hele landet - Folketingsvalg torsdag 18. juni 2015 -
19
+ # Danmarks Statistik". Retrieved on 28 December 2018.
20
+ # URL: http://www.dst.dk/valg/Valg1487635/valgopg/valgopgHL.htm
21
+
22
+ # Extended with Nye Borgerlige equal to Det Konservative Folkeparti
23
+ # Extended with Klaus Riskær Pedersen equal to Venstre
24
+
25
+ Københavns Storkreds | Socialdemokraterne | 96,753
26
+ Københavns Storkreds | Radikale Venstre | 40578
27
+ Københavns Storkreds | Det Konservative Folkeparti | 13471
28
+ Københavns Storkreds | Nye Borgerlige | 13471
29
+ Københavns Storkreds | Socialistisk Folkeparti | 28260
30
+ Københavns Storkreds | Liberal Alliance | 37935
31
+ Københavns Storkreds | Kristendemokraterne | 1599
32
+ Københavns Storkreds | Dansk Folkeparti | 49575
33
+ Københavns Storkreds | Venstre | 44721
34
+ Københavns Storkreds | Klaus Riskær Pedersen | 44721
35
+ Københavns Storkreds | Enhedslisten–De Rød-Grønne | 71140
36
+ Københavns Storkreds | Alternativet | 48475
37
+
38
+ Københavns Omegns Storkreds | Socialdemokraterne | 90361
39
+ Københavns Omegns Storkreds | Radikale Venstre | 16710
40
+ Københavns Omegns Storkreds | Det Konservative Folkeparti | 13840
41
+ Københavns Omegns Storkreds | Nye Borgerlige | 13840
42
+ Københavns Omegns Storkreds | Socialistisk Folkeparti | 14619
43
+ Københavns Omegns Storkreds | Liberal Alliance | 25982
44
+ Københavns Omegns Storkreds | Kristendemokraterne | 1365
45
+ Københavns Omegns Storkreds | Dansk Folkeparti | 62419
46
+ Københavns Omegns Storkreds | Venstre | 46092
47
+ Københavns Omegns Storkreds | Klaus Riskær Pedersen | 46092
48
+ Københavns Omegns Storkreds | Enhedslisten–De Rød-Grønne | 25364
49
+ Københavns Omegns Storkreds | Alternativet | 13575
50
+
51
+ Nordsjællands Storkreds | Socialdemokraterne | 64822
52
+ Nordsjællands Storkreds | Radikale Venstre | 17515
53
+ Nordsjællands Storkreds | Det Konservative Folkeparti | 15123
54
+ Nordsjællands Storkreds | Nye Borgerlige | 15123
55
+ Nordsjællands Storkreds | Socialistisk Folkeparti | 11182
56
+ Nordsjællands Storkreds | Liberal Alliance | 32744
57
+ Nordsjællands Storkreds | Kristendemokraterne | 1680
58
+ Nordsjællands Storkreds | Dansk Folkeparti | 53980
59
+ Nordsjællands Storkreds | Venstre | 59155
60
+ Nordsjællands Storkreds | Klaus Riskær Pedersen | 59155
61
+ Nordsjællands Storkreds | Enhedslisten–De Rød-Grønne | 18171
62
+ Nordsjællands Storkreds | Alternativet | 12957
63
+
64
+ Bornholms Storkreds | Socialdemokraterne | 8683
65
+ Bornholms Storkreds | Radikale Venstre | 427
66
+ Bornholms Storkreds | Det Konservative Folkeparti | 441
67
+ Bornholms Storkreds | Nye Borgerlige | 441
68
+ Bornholms Storkreds | Socialistisk Folkeparti | 716
69
+ Bornholms Storkreds | Liberal Alliance | 1037
70
+ Bornholms Storkreds | Kristendemokraterne | 749
71
+ Bornholms Storkreds | Dansk Folkeparti | 5168
72
+ Bornholms Storkreds | Venstre | 5257
73
+ Bornholms Storkreds | Klaus Riskær Pedersen | 5257
74
+ Bornholms Storkreds | Enhedslisten–De Rød-Grønne | 2175
75
+ Bornholms Storkreds | Alternativet | 1299
76
+
77
+ Sjællands Storkreds | Socialdemokraterne | 146464
78
+ Sjællands Storkreds | Radikale Venstre | 16906
79
+ Sjællands Storkreds | Det Konservative Folkeparti | 15083
80
+ Sjællands Storkreds | Nye Borgerlige | 15083
81
+ Sjællands Storkreds | Socialistisk Folkeparti | 20575
82
+ Sjællands Storkreds | Liberal Alliance | 32598
83
+ Sjællands Storkreds | Kristendemokraterne | 1996
84
+ Sjællands Storkreds | Dansk Folkeparti | 134195
85
+ Sjællands Storkreds | Venstre | 102818
86
+ Sjællands Storkreds | Klaus Riskær Pedersen | 102818
87
+ Sjællands Storkreds | Enhedslisten–De Rød-Grønne | 35374
88
+ Sjællands Storkreds | Alternativet | 18202
89
+
90
+ Fyns Storkreds | Socialdemokraterne | 90061
91
+ Fyns Storkreds | Radikale Venstre | 10513
92
+ Fyns Storkreds | Det Konservative Folkeparti | 10849
93
+ Fyns Storkreds | Nye Borgerlige | 10849
94
+ Fyns Storkreds | Socialistisk Folkeparti | 13790
95
+ Fyns Storkreds | Liberal Alliance | 20271
96
+ Fyns Storkreds | Kristendemokraterne | 1293
97
+ Fyns Storkreds | Dansk Folkeparti | 67913
98
+ Fyns Storkreds | Venstre | 56673
99
+ Fyns Storkreds | Klaus Riskær Pedersen | 56673
100
+ Fyns Storkreds | Enhedslisten–De Rød-Grønne | 26575
101
+ Fyns Storkreds | Alternativet | 14165
102
+
103
+ Sydjyllands Storkreds | Socialdemokraterne | 104391
104
+ Sydjyllands Storkreds | Radikale Venstre | 13962
105
+ Sydjyllands Storkreds | Det Konservative Folkeparti | 9625
106
+ Sydjyllands Storkreds | Nye Borgerlige | 9625
107
+ Sydjyllands Storkreds | Socialistisk Folkeparti | 13508
108
+ Sydjyllands Storkreds | Liberal Alliance | 33277
109
+ Sydjyllands Storkreds | Kristendemokraterne | 4792
110
+ Sydjyllands Storkreds | Dansk Folkeparti | 126058
111
+ Sydjyllands Storkreds | Venstre | 104483
112
+ Sydjyllands Storkreds | Klaus Riskær Pedersen | 104483
113
+ Sydjyllands Storkreds | Enhedslisten–De Rød-Grønne | 22614
114
+ Sydjyllands Storkreds | Alternativet | 11551
115
+
116
+ Østjyllands Storkreds | Socialdemokraterne | 132320
117
+ Østjyllands Storkreds | Radikale Venstre | 23876
118
+ Østjyllands Storkreds | Det Konservative Folkeparti | 13490
119
+ Østjyllands Storkreds | Nye Borgerlige | 13490
120
+ Østjyllands Storkreds | Socialistisk Folkeparti | 21100
121
+ Østjyllands Storkreds | Liberal Alliance | 40101
122
+ Østjyllands Storkreds | Kristendemokraterne | 4627
123
+ Østjyllands Storkreds | Dansk Folkeparti | 91621
124
+ Østjyllands Storkreds | Venstre | 90528
125
+ Østjyllands Storkreds | Klaus Riskær Pedersen | 90528
126
+ Østjyllands Storkreds | Enhedslisten–De Rød-Grønne | 35960
127
+ Østjyllands Storkreds | Alternativet | 29587
128
+
129
+ Vestjyllands Storkreds | Socialdemokraterne | 80122
130
+ Vestjyllands Storkreds | Radikale Venstre | 9183
131
+ Vestjyllands Storkreds | Det Konservative Folkeparti | 15928
132
+ Vestjyllands Storkreds | Nye Borgerlige | 15928
133
+ Vestjyllands Storkreds | Socialistisk Folkeparti | 11720
134
+ Vestjyllands Storkreds | Liberal Alliance | 19377
135
+ Vestjyllands Storkreds | Kristendemokraterne | 7646
136
+ Vestjyllands Storkreds | Dansk Folkeparti | 69657
137
+ Vestjyllands Storkreds | Venstre | 89537
138
+ Vestjyllands Storkreds | Klaus Riskær Pedersen | 89537
139
+ Vestjyllands Storkreds | Enhedslisten–De Rød-Grønne | 14531
140
+ Vestjyllands Storkreds | Alternativet | 8642
141
+
142
+ Nordjyllands Storkreds | Socialdemokraterne | 110963
143
+ Nordjyllands Storkreds | Radikale Venstre | 11339
144
+ Nordjyllands Storkreds | Det Konservative Folkeparti | 10153
145
+ Nordjyllands Storkreds | Nye Borgerlige | 10153
146
+ Nordjyllands Storkreds | Socialistisk Folkeparti | 12108
147
+ Nordjyllands Storkreds | Liberal Alliance | 21807
148
+ Nordjyllands Storkreds | Kristendemokraterne | 3330
149
+ Nordjyllands Storkreds | Dansk Folkeparti | 81160
150
+ Nordjyllands Storkreds | Venstre | 85924
151
+ Nordjyllands Storkreds | Klaus Riskær Pedersen | 85924
152
+ Nordjyllands Storkreds | Enhedslisten–De Rød-Grønne | 22559
153
+ Nordjyllands Storkreds | Alternativet | 10335
@@ -0,0 +1,153 @@
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
+
18
+ # Source: "Resultater - Hele landet - Folketingsvalg torsdag 18. juni 2015 -
19
+ # Danmarks Statistik". Retrieved on 28 December 2018.
20
+ # URL: http://www.dst.dk/valg/Valg1487635/valgopg/valgopgHL.htm
21
+
22
+ # Extended with Nye Borgerlige equal to Det Konservative Folkeparti
23
+ # Extended with Stram Kurs equal to Nye Borgerlige
24
+
25
+ Københavns Storkreds | Socialdemokraterne | 96,753
26
+ Københavns Storkreds | Radikale Venstre | 40578
27
+ Københavns Storkreds | Det Konservative Folkeparti | 13471
28
+ Københavns Storkreds | Nye Borgerlige | 13471
29
+ Københavns Storkreds | Stram Kurs | 13471
30
+ Københavns Storkreds | Socialistisk Folkeparti | 28260
31
+ Københavns Storkreds | Liberal Alliance | 37935
32
+ Københavns Storkreds | Kristendemokraterne | 1599
33
+ Københavns Storkreds | Dansk Folkeparti | 49575
34
+ Københavns Storkreds | Venstre | 44721
35
+ Københavns Storkreds | Enhedslisten–De Rød-Grønne | 71140
36
+ Københavns Storkreds | Alternativet | 48475
37
+
38
+ Københavns Omegns Storkreds | Socialdemokraterne | 90361
39
+ Københavns Omegns Storkreds | Radikale Venstre | 16710
40
+ Københavns Omegns Storkreds | Det Konservative Folkeparti | 13840
41
+ Københavns Omegns Storkreds | Nye Borgerlige | 13840
42
+ Københavns Omegns Storkreds | Stram Kurs | 13840
43
+ Københavns Omegns Storkreds | Socialistisk Folkeparti | 14619
44
+ Københavns Omegns Storkreds | Liberal Alliance | 25982
45
+ Københavns Omegns Storkreds | Kristendemokraterne | 1365
46
+ Københavns Omegns Storkreds | Dansk Folkeparti | 62419
47
+ Københavns Omegns Storkreds | Venstre | 46092
48
+ Københavns Omegns Storkreds | Enhedslisten–De Rød-Grønne | 25364
49
+ Københavns Omegns Storkreds | Alternativet | 13575
50
+
51
+ Nordsjællands Storkreds | Socialdemokraterne | 64822
52
+ Nordsjællands Storkreds | Radikale Venstre | 17515
53
+ Nordsjællands Storkreds | Det Konservative Folkeparti | 15123
54
+ Nordsjællands Storkreds | Nye Borgerlige | 15123
55
+ Nordsjællands Storkreds | Stram Kurs | 15123
56
+ Nordsjællands Storkreds | Socialistisk Folkeparti | 11182
57
+ Nordsjællands Storkreds | Liberal Alliance | 32744
58
+ Nordsjællands Storkreds | Kristendemokraterne | 1680
59
+ Nordsjællands Storkreds | Dansk Folkeparti | 53980
60
+ Nordsjællands Storkreds | Venstre | 59155
61
+ Nordsjællands Storkreds | Enhedslisten–De Rød-Grønne | 18171
62
+ Nordsjællands Storkreds | Alternativet | 12957
63
+
64
+ Bornholms Storkreds | Socialdemokraterne | 8683
65
+ Bornholms Storkreds | Radikale Venstre | 427
66
+ Bornholms Storkreds | Det Konservative Folkeparti | 441
67
+ Bornholms Storkreds | Nye Borgerlige | 441
68
+ Bornholms Storkreds | Stram Kurs | 441
69
+ Bornholms Storkreds | Socialistisk Folkeparti | 716
70
+ Bornholms Storkreds | Liberal Alliance | 1037
71
+ Bornholms Storkreds | Kristendemokraterne | 749
72
+ Bornholms Storkreds | Dansk Folkeparti | 5168
73
+ Bornholms Storkreds | Venstre | 5257
74
+ Bornholms Storkreds | Enhedslisten–De Rød-Grønne | 2175
75
+ Bornholms Storkreds | Alternativet | 1299
76
+
77
+ Sjællands Storkreds | Socialdemokraterne | 146464
78
+ Sjællands Storkreds | Radikale Venstre | 16906
79
+ Sjællands Storkreds | Det Konservative Folkeparti | 15083
80
+ Sjællands Storkreds | Nye Borgerlige | 15083
81
+ Sjællands Storkreds | Stram Kurs | 15083
82
+ Sjællands Storkreds | Socialistisk Folkeparti | 20575
83
+ Sjællands Storkreds | Liberal Alliance | 32598
84
+ Sjællands Storkreds | Kristendemokraterne | 1996
85
+ Sjællands Storkreds | Dansk Folkeparti | 134195
86
+ Sjællands Storkreds | Venstre | 102818
87
+ Sjællands Storkreds | Enhedslisten–De Rød-Grønne | 35374
88
+ Sjællands Storkreds | Alternativet | 18202
89
+
90
+ Fyns Storkreds | Socialdemokraterne | 90061
91
+ Fyns Storkreds | Radikale Venstre | 10513
92
+ Fyns Storkreds | Det Konservative Folkeparti | 10849
93
+ Fyns Storkreds | Nye Borgerlige | 10849
94
+ Fyns Storkreds | Stram Kurs | 10849
95
+ Fyns Storkreds | Socialistisk Folkeparti | 13790
96
+ Fyns Storkreds | Liberal Alliance | 20271
97
+ Fyns Storkreds | Kristendemokraterne | 1293
98
+ Fyns Storkreds | Dansk Folkeparti | 67913
99
+ Fyns Storkreds | Venstre | 56673
100
+ Fyns Storkreds | Enhedslisten–De Rød-Grønne | 26575
101
+ Fyns Storkreds | Alternativet | 14165
102
+
103
+ Sydjyllands Storkreds | Socialdemokraterne | 104391
104
+ Sydjyllands Storkreds | Radikale Venstre | 13962
105
+ Sydjyllands Storkreds | Det Konservative Folkeparti | 9625
106
+ Sydjyllands Storkreds | Nye Borgerlige | 9625
107
+ Sydjyllands Storkreds | Stram Kurs | 9625
108
+ Sydjyllands Storkreds | Socialistisk Folkeparti | 13508
109
+ Sydjyllands Storkreds | Liberal Alliance | 33277
110
+ Sydjyllands Storkreds | Kristendemokraterne | 4792
111
+ Sydjyllands Storkreds | Dansk Folkeparti | 126058
112
+ Sydjyllands Storkreds | Venstre | 104483
113
+ Sydjyllands Storkreds | Enhedslisten–De Rød-Grønne | 22614
114
+ Sydjyllands Storkreds | Alternativet | 11551
115
+
116
+ Østjyllands Storkreds | Socialdemokraterne | 132320
117
+ Østjyllands Storkreds | Radikale Venstre | 23876
118
+ Østjyllands Storkreds | Det Konservative Folkeparti | 13490
119
+ Østjyllands Storkreds | Nye Borgerlige | 13490
120
+ Østjyllands Storkreds | Stram Kurs | 13490
121
+ Østjyllands Storkreds | Socialistisk Folkeparti | 21100
122
+ Østjyllands Storkreds | Liberal Alliance | 40101
123
+ Østjyllands Storkreds | Kristendemokraterne | 4627
124
+ Østjyllands Storkreds | Dansk Folkeparti | 91621
125
+ Østjyllands Storkreds | Venstre | 90528
126
+ Østjyllands Storkreds | Enhedslisten–De Rød-Grønne | 35960
127
+ Østjyllands Storkreds | Alternativet | 29587
128
+
129
+ Vestjyllands Storkreds | Socialdemokraterne | 80122
130
+ Vestjyllands Storkreds | Radikale Venstre | 9183
131
+ Vestjyllands Storkreds | Det Konservative Folkeparti | 15928
132
+ Vestjyllands Storkreds | Nye Borgerlige | 15928
133
+ Vestjyllands Storkreds | Stram Kurs | 15928
134
+ Vestjyllands Storkreds | Socialistisk Folkeparti | 11720
135
+ Vestjyllands Storkreds | Liberal Alliance | 19377
136
+ Vestjyllands Storkreds | Kristendemokraterne | 7646
137
+ Vestjyllands Storkreds | Dansk Folkeparti | 69657
138
+ Vestjyllands Storkreds | Venstre | 89537
139
+ Vestjyllands Storkreds | Enhedslisten–De Rød-Grønne | 14531
140
+ Vestjyllands Storkreds | Alternativet | 8642
141
+
142
+ Nordjyllands Storkreds | Socialdemokraterne | 110963
143
+ Nordjyllands Storkreds | Radikale Venstre | 11339
144
+ Nordjyllands Storkreds | Det Konservative Folkeparti | 10153
145
+ Nordjyllands Storkreds | Nye Borgerlige | 10153
146
+ Nordjyllands Storkreds | Stram Kurs | 10153
147
+ Nordjyllands Storkreds | Socialistisk Folkeparti | 12108
148
+ Nordjyllands Storkreds | Liberal Alliance | 21807
149
+ Nordjyllands Storkreds | Kristendemokraterne | 3330
150
+ Nordjyllands Storkreds | Dansk Folkeparti | 81160
151
+ Nordjyllands Storkreds | Venstre | 85924
152
+ Nordjyllands Storkreds | Enhedslisten–De Rød-Grønne | 22559
153
+ Nordjyllands Storkreds | Alternativet | 10335