sapor 0.3.6

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 (343) 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/ie/2016-04-28_general-election-2016-candidate-details-csv_en.csv +552 -0
  25. data/data/ie/ireland_2016_to_psv.rb +138 -0
  26. data/data/no/2020-01-01_partifordeling_1_st_2017.csv +335 -0
  27. data/data/no/norway_2017_to_psv.rb +61 -0
  28. data/data/pl/2015-gl-lis-okr.csv +42 -0
  29. data/data/pl/poland_2015_to_psv.rb +79 -0
  30. data/data/pl/poland_2015_to_psv_with_ko_and_rsw.rb +94 -0
  31. data/data/pl/poland_2015_to_psv_with_ko_konf_kp_l_and_zp.rb +100 -0
  32. data/data/pl/poland_2015_to_psv_with_ko_sld_and_wi.rb +92 -0
  33. data/data/pl/poland_2015_to_psv_with_sld.rb +84 -0
  34. data/data/pl/poland_2015_to_psv_with_sld_and_wi.rb +85 -0
  35. data/data/uk/inject_ukip_2015_as_brexit_2019_in_2017.rb +54 -0
  36. data/data/uk/united_kingdom_2015.txt +651 -0
  37. data/data/uk/united_kingdom_2015_to_psv.rb +104 -0
  38. data/data/uk/united_kingdom_2017.txt +651 -0
  39. data/data/uk/united_kingdom_2017_to_psv.rb +104 -0
  40. data/data/uk/united_kingdom_2017_to_psv_with_brexit_and_chuk.rb +113 -0
  41. data/data/uk/united_kingdom_2017_to_psv_with_tig.rb +111 -0
  42. data/lib/sapor.rb +147 -0
  43. data/lib/sapor/binomials_cache.rb +45 -0
  44. data/lib/sapor/combinations_distribution.rb +222 -0
  45. data/lib/sapor/denominators.rb +67 -0
  46. data/lib/sapor/dichotomies.rb +138 -0
  47. data/lib/sapor/dichotomy.rb +164 -0
  48. data/lib/sapor/first_past_the_post.rb +82 -0
  49. data/lib/sapor/largest_remainder.rb +118 -0
  50. data/lib/sapor/log4r_logger.rb +49 -0
  51. data/lib/sapor/log_facade.rb +40 -0
  52. data/lib/sapor/many_past_the_post.rb +113 -0
  53. data/lib/sapor/multi_district_leveled_proportional.rb +64 -0
  54. data/lib/sapor/multi_district_proportional.rb +123 -0
  55. data/lib/sapor/multi_district_variable_threshold_proportional.rb +128 -0
  56. data/lib/sapor/number_formatter.rb +45 -0
  57. data/lib/sapor/options.rb +73 -0
  58. data/lib/sapor/poll.rb +282 -0
  59. data/lib/sapor/polychotomy.rb +200 -0
  60. data/lib/sapor/pseudorandom_multirange_enumerator.rb +87 -0
  61. data/lib/sapor/referendum_polychotomy.rb +165 -0
  62. data/lib/sapor/regional_data/area.rb +100 -0
  63. data/lib/sapor/regional_data/austria.rb +84 -0
  64. data/lib/sapor/regional_data/belgium-brussels-2014.psv +46 -0
  65. data/lib/sapor/regional_data/belgium-brussels-20190526.psv +33 -0
  66. data/lib/sapor/regional_data/belgium-flanders-2014.psv +80 -0
  67. data/lib/sapor/regional_data/belgium-flanders-20190526.psv +74 -0
  68. data/lib/sapor/regional_data/belgium-wallonia-2014.psv +114 -0
  69. data/lib/sapor/regional_data/belgium-wallonia-20190526.psv +93 -0
  70. data/lib/sapor/regional_data/belgium.rb +97 -0
  71. data/lib/sapor/regional_data/belgium_brussels.rb +62 -0
  72. data/lib/sapor/regional_data/belgium_flanders.rb +64 -0
  73. data/lib/sapor/regional_data/belgium_wallonia.rb +63 -0
  74. data/lib/sapor/regional_data/catalonia-2012-2015.psv +100 -0
  75. data/lib/sapor/regional_data/catalonia-2012.psv +87 -0
  76. data/lib/sapor/regional_data/catalonia-2015-jxcat.psv +68 -0
  77. data/lib/sapor/regional_data/catalonia-2015-no-jxsi.psv +68 -0
  78. data/lib/sapor/regional_data/catalonia-2015.psv +63 -0
  79. data/lib/sapor/regional_data/catalonia-20171221-with-vox.psv +67 -0
  80. data/lib/sapor/regional_data/catalonia-20171221.psv +61 -0
  81. data/lib/sapor/regional_data/catalonia.rb +124 -0
  82. data/lib/sapor/regional_data/denmark-20150618-with-e-and-p.psv +164 -0
  83. data/lib/sapor/regional_data/denmark-20150618-with-e.psv +153 -0
  84. data/lib/sapor/regional_data/denmark-20150618-with-p.psv +153 -0
  85. data/lib/sapor/regional_data/denmark-20150618.psv +142 -0
  86. data/lib/sapor/regional_data/denmark.rb +128 -0
  87. data/lib/sapor/regional_data/denmark_with_e.rb +128 -0
  88. data/lib/sapor/regional_data/denmark_with_e_and_p.rb +128 -0
  89. data/lib/sapor/regional_data/denmark_with_p.rb +128 -0
  90. data/lib/sapor/regional_data/estonia.rb +88 -0
  91. data/lib/sapor/regional_data/european-union-great-britain-20140522-brexit-chuk.psv +172 -0
  92. data/lib/sapor/regional_data/european-union-great-britain-20140522.psv +146 -0
  93. data/lib/sapor/regional_data/european-union-great-britain-20190523.psv +141 -0
  94. data/lib/sapor/regional_data/european-union-ireland-2014-ia-ri-sd.psv +64 -0
  95. data/lib/sapor/regional_data/european-union-ireland-2014-ia-sd.psv +60 -0
  96. data/lib/sapor/regional_data/european-union-ireland-2014-ia.psv +56 -0
  97. data/lib/sapor/regional_data/european-union-ireland-2014-sd.psv +56 -0
  98. data/lib/sapor/regional_data/european-union-ireland-2014.psv +50 -0
  99. data/lib/sapor/regional_data/european-union-ireland-20190524-ia.psv +58 -0
  100. data/lib/sapor/regional_data/european-union-ireland-20190524.psv +52 -0
  101. data/lib/sapor/regional_data/european_union_27_austria.rb +76 -0
  102. data/lib/sapor/regional_data/european_union_27_croatia.rb +83 -0
  103. data/lib/sapor/regional_data/european_union_27_denmark.rb +77 -0
  104. data/lib/sapor/regional_data/european_union_27_estonia.rb +74 -0
  105. data/lib/sapor/regional_data/european_union_27_finland.rb +74 -0
  106. data/lib/sapor/regional_data/european_union_27_france.rb +84 -0
  107. data/lib/sapor/regional_data/european_union_27_ireland.rb +96 -0
  108. data/lib/sapor/regional_data/european_union_27_ireland_with_ia.rb +97 -0
  109. data/lib/sapor/regional_data/european_union_27_italy.rb +84 -0
  110. data/lib/sapor/regional_data/european_union_27_netherlands.rb +81 -0
  111. data/lib/sapor/regional_data/european_union_27_poland.rb +84 -0
  112. data/lib/sapor/regional_data/european_union_27_romania.rb +78 -0
  113. data/lib/sapor/regional_data/european_union_27_slovakia.rb +80 -0
  114. data/lib/sapor/regional_data/european_union_27_spain.rb +82 -0
  115. data/lib/sapor/regional_data/european_union_27_sweden.rb +76 -0
  116. data/lib/sapor/regional_data/european_union_austria.rb +76 -0
  117. data/lib/sapor/regional_data/european_union_bulgaria.rb +82 -0
  118. data/lib/sapor/regional_data/european_union_croatia.rb +83 -0
  119. data/lib/sapor/regional_data/european_union_cyprus.rb +72 -0
  120. data/lib/sapor/regional_data/european_union_czech_republic.rb +82 -0
  121. data/lib/sapor/regional_data/european_union_denmark.rb +77 -0
  122. data/lib/sapor/regional_data/european_union_estonia.rb +74 -0
  123. data/lib/sapor/regional_data/european_union_finland.rb +74 -0
  124. data/lib/sapor/regional_data/european_union_flanders.rb +74 -0
  125. data/lib/sapor/regional_data/european_union_france.rb +84 -0
  126. data/lib/sapor/regional_data/european_union_french_community_of_belgium.rb +73 -0
  127. data/lib/sapor/regional_data/european_union_germany.rb +86 -0
  128. data/lib/sapor/regional_data/european_union_great_britain.rb +98 -0
  129. data/lib/sapor/regional_data/european_union_greece.rb +77 -0
  130. data/lib/sapor/regional_data/european_union_hungary.rb +76 -0
  131. data/lib/sapor/regional_data/european_union_ireland.rb +96 -0
  132. data/lib/sapor/regional_data/european_union_ireland_with_ia.rb +97 -0
  133. data/lib/sapor/regional_data/european_union_italy.rb +84 -0
  134. data/lib/sapor/regional_data/european_union_latvia.rb +81 -0
  135. data/lib/sapor/regional_data/european_union_lithuania.rb +80 -0
  136. data/lib/sapor/regional_data/european_union_luxembourg.rb +75 -0
  137. data/lib/sapor/regional_data/european_union_malta.rb +71 -0
  138. data/lib/sapor/regional_data/european_union_netherlands.rb +81 -0
  139. data/lib/sapor/regional_data/european_union_northern_ireland.rb +75 -0
  140. data/lib/sapor/regional_data/european_union_poland.rb +84 -0
  141. data/lib/sapor/regional_data/european_union_portugal.rb +75 -0
  142. data/lib/sapor/regional_data/european_union_romania.rb +78 -0
  143. data/lib/sapor/regional_data/european_union_slovakia.rb +81 -0
  144. data/lib/sapor/regional_data/european_union_slovenia.rb +85 -0
  145. data/lib/sapor/regional_data/european_union_spain.rb +82 -0
  146. data/lib/sapor/regional_data/european_union_sweden.rb +76 -0
  147. data/lib/sapor/regional_data/finland-20150419-with-sin.psv +224 -0
  148. data/lib/sapor/regional_data/finland-20150419.psv +212 -0
  149. data/lib/sapor/regional_data/finland.rb +107 -0
  150. data/lib/sapor/regional_data/finland_with_sin.rb +107 -0
  151. data/lib/sapor/regional_data/flanders-2014.psv +96 -0
  152. data/lib/sapor/regional_data/flanders-20190526.psv +87 -0
  153. data/lib/sapor/regional_data/flanders.rb +115 -0
  154. data/lib/sapor/regional_data/france.rb +38 -0
  155. data/lib/sapor/regional_data/greece.rb +92 -0
  156. data/lib/sapor/regional_data/hungary-2014.psv +2104 -0
  157. data/lib/sapor/regional_data/hungary.rb +116 -0
  158. data/lib/sapor/regional_data/iceland-20161029-midflokkurinn.psv +94 -0
  159. data/lib/sapor/regional_data/iceland-20161029.psv +88 -0
  160. data/lib/sapor/regional_data/iceland-20171028-with-j.psv +94 -0
  161. data/lib/sapor/regional_data/iceland-20171028.psv +85 -0
  162. data/lib/sapor/regional_data/iceland.rb +149 -0
  163. data/lib/sapor/regional_data/ireland-20160226-2020-candidates.psv +322 -0
  164. data/lib/sapor/regional_data/ireland-20160226-2020.psv +344 -0
  165. data/lib/sapor/regional_data/ireland-20160226.psv +348 -0
  166. data/lib/sapor/regional_data/ireland.rb +165 -0
  167. data/lib/sapor/regional_data/latvia-20141004-kpv-p-par.psv +109 -0
  168. data/lib/sapor/regional_data/latvia-20141004-kpv-par.psv +103 -0
  169. data/lib/sapor/regional_data/latvia-20141004-kpv.psv +97 -0
  170. data/lib/sapor/regional_data/latvia-20141004.psv +89 -0
  171. data/lib/sapor/regional_data/latvia-20181006.psv +104 -0
  172. data/lib/sapor/regional_data/latvia.rb +111 -0
  173. data/lib/sapor/regional_data/luxembourg-20131020.psv +60 -0
  174. data/lib/sapor/regional_data/luxembourg-20181014.psv +59 -0
  175. data/lib/sapor/regional_data/luxembourg.rb +88 -0
  176. data/lib/sapor/regional_data/netherlands.rb +108 -0
  177. data/lib/sapor/regional_data/norway-20170911.psv +331 -0
  178. data/lib/sapor/regional_data/norway.rb +130 -0
  179. data/lib/sapor/regional_data/norwegian_municipality.rb +68 -0
  180. data/lib/sapor/regional_data/poland-20151025-with-ko-and-l-without-n-po-r-and-zl.psv +321 -0
  181. 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
  182. data/lib/sapor/regional_data/poland-20151025-with-ko-sld-and-wi-without-n-po-and-zl.psv +403 -0
  183. data/lib/sapor/regional_data/poland-20151025-with-sld-and-wi-without-zl.psv +444 -0
  184. data/lib/sapor/regional_data/poland-20151025-with-sld-without-zl.psv +403 -0
  185. data/lib/sapor/regional_data/poland-20151025.psv +403 -0
  186. data/lib/sapor/regional_data/poland.rb +125 -0
  187. data/lib/sapor/regional_data/poland_with_ko_and_l_without_n_po_r_and_zl.rb +122 -0
  188. 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
  189. data/lib/sapor/regional_data/poland_with_ko_sld_and_wi_without_n_po_and_zl.rb +125 -0
  190. data/lib/sapor/regional_data/poland_with_sld_and_wi_without_zl.rb +126 -0
  191. data/lib/sapor/regional_data/poland_with_sld_without_zl.rb +126 -0
  192. data/lib/sapor/regional_data/portugal-20151004-with-a-and-ch-without-paf.psv +438 -0
  193. data/lib/sapor/regional_data/portugal-20151004-with-a-and-il-without-paf.psv +438 -0
  194. data/lib/sapor/regional_data/portugal-20151004-with-a-ch-and-il-without-paf.psv +461 -0
  195. data/lib/sapor/regional_data/portugal-20151004-with-a-without-paf.psv +415 -0
  196. data/lib/sapor/regional_data/portugal-20151004-with-ch-and-il-without-paf.psv +438 -0
  197. data/lib/sapor/regional_data/portugal-20151004-without-paf.psv +392 -0
  198. data/lib/sapor/regional_data/portugal-20151004.psv +370 -0
  199. data/lib/sapor/regional_data/portugal.rb +101 -0
  200. data/lib/sapor/regional_data/portugal_with_a_and_ch_without_paf.rb +92 -0
  201. data/lib/sapor/regional_data/portugal_with_a_and_il_without_paf.rb +92 -0
  202. data/lib/sapor/regional_data/portugal_with_a_ch_and_il_without_paf.rb +92 -0
  203. data/lib/sapor/regional_data/portugal_with_a_without_paf.rb +92 -0
  204. data/lib/sapor/regional_data/portugal_with_ch_and_il_without_paf.rb +92 -0
  205. data/lib/sapor/regional_data/portugal_without_paf.rb +92 -0
  206. data/lib/sapor/regional_data/slovakia.rb +81 -0
  207. data/lib/sapor/regional_data/slovenia.rb +114 -0
  208. data/lib/sapor/regional_data/spain-20160626.psv +619 -0
  209. data/lib/sapor/regional_data/spain.rb +136 -0
  210. data/lib/sapor/regional_data/sweden.rb +92 -0
  211. data/lib/sapor/regional_data/sweden_20140914.rb +89 -0
  212. data/lib/sapor/regional_data/united_kingdom-2015.psv +4358 -0
  213. data/lib/sapor/regional_data/united_kingdom-20170608-brexit-chuk.psv +5154 -0
  214. data/lib/sapor/regional_data/united_kingdom-20170608-brexit.psv +4521 -0
  215. data/lib/sapor/regional_data/united_kingdom-20170608-tig.psv +4529 -0
  216. data/lib/sapor/regional_data/united_kingdom-20170608.psv +3894 -0
  217. data/lib/sapor/regional_data/united_kingdom.rb +94 -0
  218. data/lib/sapor/regional_data/united_kingdom_with_brexit.rb +110 -0
  219. data/lib/sapor/regional_data/united_kingdom_with_brexit_and_chuk.rb +111 -0
  220. data/lib/sapor/regional_data/united_kingdom_with_tig.rb +111 -0
  221. data/lib/sapor/regional_data/utopia.rb +66 -0
  222. data/lib/sapor/regional_data/wallonia-2014.psv +101 -0
  223. data/lib/sapor/regional_data/wallonia-20190526.psv +88 -0
  224. data/lib/sapor/regional_data/wallonia.rb +112 -0
  225. data/lib/sapor/representatives_polychotomy.rb +338 -0
  226. data/lib/sapor/single_district_proportional.rb +75 -0
  227. data/sapor.gemspec +35 -0
  228. data/spec/integration/area_spec.rb +28 -0
  229. data/spec/integration/poll_spec.rb +112 -0
  230. data/spec/integration/sample.poll +8 -0
  231. data/spec/spec_helper.rb +31 -0
  232. data/spec/unit/area_spec.rb +115 -0
  233. data/spec/unit/austria_spec.rb +76 -0
  234. data/spec/unit/belgium_brussels_spec.rb +58 -0
  235. data/spec/unit/belgium_flanders_spec.rb +62 -0
  236. data/spec/unit/belgium_spec.rb +26 -0
  237. data/spec/unit/belgium_wallonia_spec.rb +65 -0
  238. data/spec/unit/binomials_cache_spec.rb +34 -0
  239. data/spec/unit/catalonia_spec.rb +61 -0
  240. data/spec/unit/catalonia_with_vox_spec.rb +62 -0
  241. data/spec/unit/combinations_distribution_spec.rb +241 -0
  242. data/spec/unit/denmark_spec.rb +56 -0
  243. data/spec/unit/denmark_with_e_and_p_spec.rb +58 -0
  244. data/spec/unit/denmark_with_e_spec.rb +57 -0
  245. data/spec/unit/denmark_with_p_spec.rb +57 -0
  246. data/spec/unit/denominators_spec.rb +40 -0
  247. data/spec/unit/dichotomies_spec.rb +154 -0
  248. data/spec/unit/dichotomy_spec.rb +320 -0
  249. data/spec/unit/estonia_spec.rb +65 -0
  250. data/spec/unit/european_union_27_austria_spec.rb +61 -0
  251. data/spec/unit/european_union_27_croatia_spec.rb +60 -0
  252. data/spec/unit/european_union_27_denmark_spec.rb +62 -0
  253. data/spec/unit/european_union_27_estonia_spec.rb +94 -0
  254. data/spec/unit/european_union_27_finland_spec.rb +75 -0
  255. data/spec/unit/european_union_27_france_spec.rb +73 -0
  256. data/spec/unit/european_union_27_ireland_spec.rb +72 -0
  257. data/spec/unit/european_union_27_ireland_with_ia_spec.rb +74 -0
  258. data/spec/unit/european_union_27_italy_spec.rb +69 -0
  259. data/spec/unit/european_union_27_netherlands_spec.rb +81 -0
  260. data/spec/unit/european_union_27_poland_spec.rb +69 -0
  261. data/spec/unit/european_union_27_romania_spec.rb +67 -0
  262. data/spec/unit/european_union_27_slovakia_spec.rb +111 -0
  263. data/spec/unit/european_union_27_spain_spec.rb +130 -0
  264. data/spec/unit/european_union_27_sweden_spec.rb +89 -0
  265. data/spec/unit/european_union_austria_spec.rb +61 -0
  266. data/spec/unit/european_union_bulgaria_spec.rb +97 -0
  267. data/spec/unit/european_union_croatia_spec.rb +59 -0
  268. data/spec/unit/european_union_cyprus_spec.rb +65 -0
  269. data/spec/unit/european_union_czech_republic_spec.rb +125 -0
  270. data/spec/unit/european_union_denmark_spec.rb +61 -0
  271. data/spec/unit/european_union_estonia_spec.rb +93 -0
  272. data/spec/unit/european_union_finland_spec.rb +75 -0
  273. data/spec/unit/european_union_flanders_spec.rb +56 -0
  274. data/spec/unit/european_union_france_spec.rb +73 -0
  275. data/spec/unit/european_union_french_community_of_belgium_spec.rb +61 -0
  276. data/spec/unit/european_union_germany_spec.rb +90 -0
  277. data/spec/unit/european_union_great_britain_spec.rb +87 -0
  278. data/spec/unit/european_union_greece_spec.rb +148 -0
  279. data/spec/unit/european_union_hungary_spec.rb +57 -0
  280. data/spec/unit/european_union_ireland_spec.rb +72 -0
  281. data/spec/unit/european_union_ireland_with_ia_spec.rb +74 -0
  282. data/spec/unit/european_union_italy_spec.rb +69 -0
  283. data/spec/unit/european_union_latvia_spec.rb +76 -0
  284. data/spec/unit/european_union_lithuania_spec.rb +68 -0
  285. data/spec/unit/european_union_luxembourg_spec.rb +63 -0
  286. data/spec/unit/european_union_malta_spec.rb +60 -0
  287. data/spec/unit/european_union_netherlands_spec.rb +81 -0
  288. data/spec/unit/european_union_northern_ireland_spec.rb +66 -0
  289. data/spec/unit/european_union_poland_spec.rb +69 -0
  290. data/spec/unit/european_union_portugal_spec.rb +77 -0
  291. data/spec/unit/european_union_romania_spec.rb +67 -0
  292. data/spec/unit/european_union_slovakia_spec.rb +111 -0
  293. data/spec/unit/european_union_slovenia_spec.rb +77 -0
  294. data/spec/unit/european_union_spain_spec.rb +129 -0
  295. data/spec/unit/european_union_sweden_spec.rb +89 -0
  296. data/spec/unit/finland_spec.rb +65 -0
  297. data/spec/unit/finland_with_sin_spec.rb +67 -0
  298. data/spec/unit/first_past_the_post_spec.rb +54 -0
  299. data/spec/unit/flanders_spec.rb +70 -0
  300. data/spec/unit/france_spec.rb +32 -0
  301. data/spec/unit/greece_spec.rb +118 -0
  302. data/spec/unit/hungary_spec.rb +132 -0
  303. data/spec/unit/iceland_spec.rb +57 -0
  304. data/spec/unit/iceland_with_j_spec.rb +58 -0
  305. data/spec/unit/ireland_2016_spec.rb +62 -0
  306. data/spec/unit/ireland_spec.rb +62 -0
  307. data/spec/unit/largest_remainder_spec.rb +79 -0
  308. data/spec/unit/latvia_spec.rb +62 -0
  309. data/spec/unit/luxembourg_spec.rb +55 -0
  310. data/spec/unit/multi_district_leveled_proportional_spec.rb +49 -0
  311. data/spec/unit/multi_district_proportional_spec.rb +81 -0
  312. data/spec/unit/netherlands_spec.rb +107 -0
  313. data/spec/unit/norway_spec.rb +69 -0
  314. data/spec/unit/norwegian_municipality_spec.rb +89 -0
  315. data/spec/unit/number_formatter_spec.rb +173 -0
  316. data/spec/unit/poland_spec.rb +62 -0
  317. data/spec/unit/poland_with_ko_and_l_without_n_po_r_and_zl_spec.rb +60 -0
  318. 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
  319. data/spec/unit/poland_with_ko_sld_and_wi_without_n_po_and_zl_spec.rb +62 -0
  320. data/spec/unit/poland_with_sld_and_wi_without_zl_spec.rb +63 -0
  321. data/spec/unit/poland_with_sld_without_zl_spec.rb +62 -0
  322. data/spec/unit/poll_spec.rb +110 -0
  323. data/spec/unit/portugal_spec.rb +66 -0
  324. data/spec/unit/portugal_with_a_and_ch_without_paf_spec.rb +68 -0
  325. data/spec/unit/portugal_with_a_and_il_without_paf_spec.rb +68 -0
  326. data/spec/unit/portugal_with_a_ch_and_il_without_paf_spec.rb +69 -0
  327. data/spec/unit/portugal_with_a_without_paf_spec.rb +67 -0
  328. data/spec/unit/portugal_with_ch_and_il_without_paf_spec.rb +68 -0
  329. data/spec/unit/portugal_without_paf_spec.rb +66 -0
  330. data/spec/unit/pseudorandom_multirange_enumerator_spec.rb +82 -0
  331. data/spec/unit/referendum_polychotomy_spec.rb +289 -0
  332. data/spec/unit/representatives_polychotomy_spec.rb +332 -0
  333. data/spec/unit/slovakia_spec.rb +99 -0
  334. data/spec/unit/slovenia_spec.rb +80 -0
  335. data/spec/unit/spain_spec.rb +101 -0
  336. data/spec/unit/sweden_20140914_spec.rb +112 -0
  337. data/spec/unit/sweden_spec.rb +113 -0
  338. data/spec/unit/united_kingdom_spec.rb +65 -0
  339. data/spec/unit/united_kingdom_with_brexit_and_chuk_spec.rb +67 -0
  340. data/spec/unit/united_kingdom_with_brexit_spec.rb +66 -0
  341. data/spec/unit/united_kingdom_with_tig_spec.rb +66 -0
  342. data/spec/unit/wallonia_spec.rb +70 -0
  343. metadata +502 -0
@@ -0,0 +1,62 @@
1
+ # encoding: utf-8
2
+ #
3
+ # Statistical Analysis of Polling Results (SAPoR)
4
+ # Copyright (C) 2020 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 Belgium: the Brussels part.
23
+ #
24
+ class BelgiumBrussels < Belgium
25
+ def area_code
26
+ 'BE[BRU]'
27
+ end
28
+
29
+ def overall_election_results_of_2019
30
+ if @overall_election_results_of_2019.nil?
31
+ @overall_election_results_of_2019 = \
32
+ summarize_election_results(election_results_of_2019)
33
+ end
34
+ @overall_election_results_of_2019
35
+ end
36
+
37
+ # Voter turnout on 26 May 2019
38
+ # Source: Web page with the official results of the elections of 26 May
39
+ # 2019, downloaded on 6 August 2019,
40
+ # https://verkiezingen2019.belgium.be/nl/resultaten-cijfers?el=CK&id=CKC21004
41
+ def population_size
42
+ 501_459
43
+ end
44
+
45
+ def seat_distribution
46
+ SEAT_DISTRIBUTION
47
+ end
48
+
49
+ private
50
+
51
+ SEAT_DISTRIBUTION = { 'Bruxelles-Capitale / Brussel-Hoofdstad' => 15 }.freeze
52
+
53
+ def election_results_of_2019
54
+ if @election_results_of_2019.nil?
55
+ @election_results_of_2019 = load_election_results(
56
+ 'belgium-brussels-20190526.psv'
57
+ )
58
+ end
59
+ @election_results_of_2019
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,64 @@
1
+ # encoding: utf-8
2
+ #
3
+ # Statistical Analysis of Polling Results (SAPoR)
4
+ # Copyright (C) 2020 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 Belgium: the Flemish part.
23
+ #
24
+ class BelgiumFlanders < Belgium
25
+ def area_code
26
+ 'BE[VLG]'
27
+ end
28
+
29
+ def overall_election_results_of_2019
30
+ if @overall_election_results_of_2019.nil?
31
+ @overall_election_results_of_2019 = \
32
+ summarize_election_results(election_results_of_2019)
33
+ end
34
+ @overall_election_results_of_2019
35
+ end
36
+
37
+ def population_size
38
+ # Voter turnout on 26 May 2019
39
+ # Source: Web page with the official results of the elections of 26 May
40
+ # 2019, downloaded on 6 August 2019,
41
+ # https://verkiezingen2019.belgium.be/nl/verkiezingen?el=CK
42
+ 1_156_127 + 554_838 + 998_917 + 690_028 + 806_395
43
+ end
44
+
45
+ def seat_distribution
46
+ SEAT_DISTRIBUTION
47
+ end
48
+
49
+ private
50
+
51
+ SEAT_DISTRIBUTION = { 'Antwerpen' => 24, 'Limburg' => 12,
52
+ 'Oost-Vlaanderen' => 20, 'Vlaams-Brabant' => 15,
53
+ 'West-Vlaanderen' => 16 }.freeze
54
+
55
+ def election_results_of_2019
56
+ if @election_results_of_2019.nil?
57
+ @election_results_of_2019 = load_election_results(
58
+ 'belgium-flanders-20190526.psv'
59
+ )
60
+ end
61
+ @election_results_of_2019
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,63 @@
1
+ # encoding: utf-8
2
+ #
3
+ # Statistical Analysis of Polling Results (SAPoR)
4
+ # Copyright (C) 2020 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 Belgium: the Walloon part.
23
+ #
24
+ class BelgiumWallonia < Belgium
25
+ def area_code
26
+ 'BE[WAL]'
27
+ end
28
+
29
+ def overall_election_results_of_2019
30
+ if @overall_election_results_of_2019.nil?
31
+ @overall_election_results_of_2019 = \
32
+ summarize_election_results(election_results_of_2019)
33
+ end
34
+ @overall_election_results_of_2019
35
+ end
36
+
37
+ # Voter turnout on 26 May 2019
38
+ # Source: Web page with the official results of the elections of 26 May
39
+ # 2019, downloaded on 7 August 2019,
40
+ # https://verkiezingen2019.belgium.be/nl/verkiezingen?el=CK
41
+ def population_size
42
+ 730_662 + 619_185 + 170_823 + 304_877 + 247_227
43
+ end
44
+
45
+ def seat_distribution
46
+ SEAT_DISTRIBUTION
47
+ end
48
+
49
+ private
50
+
51
+ SEAT_DISTRIBUTION = { 'Brabant wallon' => 5, 'Hainaut' => 18, 'Liège' => 15,
52
+ 'Luxembourg' => 4, 'Namur' => 6 }.freeze
53
+
54
+ def election_results_of_2019
55
+ if @election_results_of_2019.nil?
56
+ @election_results_of_2019 = load_election_results(
57
+ 'belgium-wallonia-20190526.psv'
58
+ )
59
+ end
60
+ @election_results_of_2019
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,100 @@
1
+ # Statistical Analysis of Polling Results (SAPoR)
2
+ # Copyright (C) 2020 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: Argos, Archivo historico electoral, retrieved on 23 May 2015.
19
+ # URL: http://www.argos.gva.es/ahe/index.html
20
+
21
+ # Adapted from catalonia-2012.psv for the 2015 elections using the following
22
+ # transformation rules:
23
+ # c = Junts pel Sí / (Convergència i Unió + Esquerra Republicana de Catalunya – Catalunya Sí)
24
+ # = 39.2% / (30.7% + 13.7%)
25
+ # = 0.882882883
26
+ # Junts pel Sí = c × (Convergència i Unió
27
+ # + Esquerra Republicana de Catalunya – Catalunya Sí)
28
+ # Unió Democràtica de Catalunya = (1 - c) × (Convergència i Unió
29
+ # + Esquerra Republicana de Catalunya
30
+ # – Catalunya Sí)
31
+ # Catalunya Sí que es Pot = Iniciativa per Catalunya Verds – Esquerra Unida i
32
+ # Alternativa
33
+
34
+ Barcelona | Junts pel Sí | 979,373
35
+ Barcelona | Partit dels Socialistes de Catalunya | 418,847
36
+ Barcelona | Partit Popular de Catalunya | 361,656
37
+ Barcelona | Catalunya Sí que es Pot | 303,625
38
+ Barcelona | Ciutadans-Partido de la Ciudadanía | 229,746
39
+ Barcelona | Unió Democràtica de Catalunya | 129,917
40
+ Barcelona | Candidatura d'Unitat Popular – Alternativa d'Esquerres | 92,794
41
+ Barcelona | Plataforma per Catalunya | 51,403
42
+ Barcelona | Solidaritat Catalana per la Independència | 32,296
43
+ Barcelona | Escons en Blanc | 22,817
44
+ Barcelona | Partido Animalista Contra el Maltrato Animal | 16,479
45
+ Barcelona | Pirates de Catalunya | 15,241
46
+ Barcelona | Unió, Progrés i Democràcia | 12,147
47
+ Barcelona | Farts.cat | 9,185
48
+ Barcelona | Via Democràtica | 5,984
49
+ Barcelona | Unificació Comunista d'Espanya | 1,998
50
+
51
+ Girona | Junts pel Sí | 185,048
52
+ Girona | Partit dels Socialistes de Catalunya | 34,688
53
+ Girona | Partit Popular de Catalunya | 33,096
54
+ Girona | Unió Democràtica de Catalunya | 24,547
55
+ Girona | Catalunya Sí que es Pot | 20,397
56
+ Girona | Candidatura d'Unitat Popular – Alternativa d'Esquerres | 14,499
57
+ Girona | Ciutadans-Partido de la Ciudadanía | 12,341
58
+ Girona | Solidaritat Catalana per la Independència | 6,011
59
+ Girona | Plataforma per Catalunya | 3,377
60
+ Girona | Escons en Blanc | 1,946
61
+ Girona | Partido Animalista Contra el Maltrato Animal | 1,565
62
+ Girona | Pirates de Catalunya | 1,137
63
+ Girona | Farts.cat | 718
64
+ Girona | Unió, Progrés i Democràcia | 701
65
+ Girona | Partit Republicà d'Esquerra – Izquierda Republicana | 525
66
+ Girona | Unificació Comunista d'Espanya | 201
67
+
68
+ Lleida | Junts pel Sí | 110,401
69
+ Lleida | Partit Popular de Catalunya | 23,338
70
+ Lleida | Partit dels Socialistes de Catalunya | 21,598
71
+ Lleida | Unió Democràtica de Catalunya | 14,645
72
+ Lleida | Catalunya Sí que es Pot | 11,145
73
+ Lleida | Ciutadans-Partido de la Ciudadanía | 6,881
74
+ Lleida | Candidatura d'Unitat Popular – Alternativa d'Esquerres | 6,302
75
+ Lleida | Solidaritat Catalana per la Independència | 3,038
76
+ Lleida | Escons en Blanc | 1,417
77
+ Lleida | Plataforma per Catalunya | 1,224
78
+ Lleida | Partido Animalista Contra el Maltrato Animal | 752
79
+ Lleida | Pirates de Catalunya | 642
80
+ Lleida | Farts.cat | 476
81
+ Lleida | Unió, Progrés i Democràcia | 392
82
+ Lleida | Partit Republicà d'Esquerra – Izquierda Republicana | 301
83
+ Lleida | Unificació Comunista d'Espanya | 90
84
+
85
+ Tarragona | Junts pel Sí | 148,104
86
+ Tarragona | Partit Popular de Catalunya | 53,591
87
+ Tarragona | Partit dels Socialistes de Catalunya | 48,642
88
+ Tarragona | Ciutadans-Partido de la Ciudadanía | 26,039
89
+ Tarragona | Catalunya Sí que es Pot | 24,538
90
+ Tarragona | Unió Democràtica de Catalunya | 19,646
91
+ Tarragona | Candidatura d'Unitat Popular – Alternativa d'Esquerres | 12,840
92
+ Tarragona | Solidaritat Catalana per la Independència | 5,493
93
+ Tarragona | Plataforma per Catalunya | 4,103
94
+ Tarragona | Escons en Blanc | 2,108
95
+ Tarragona | Partido Animalista Contra el Maltrato Animal | 2,065
96
+ Tarragona | Unió, Progrés i Democràcia | 1,373
97
+ Tarragona | Farts.cat | 1,323
98
+ Tarragona | Pirates de Catalunya | 1,199
99
+ Tarragona | Socialistes i Republicans | 333
100
+ Tarragona | Unificació Comunista d'Espanya | 287
@@ -0,0 +1,87 @@
1
+ # Statistical Analysis of Polling Results (SAPoR)
2
+ # Copyright (C) 2020 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: Argos, Archivo historico electoral, retrieved on 23 May 2015.
19
+ # URL: http://www.argos.gva.es/ahe/index.html
20
+
21
+ Barcelona | Convergència i Unió | 762,628
22
+ Barcelona | Partit dels Socialistes de Catalunya | 418,847
23
+ Barcelona | Partit Popular de Catalunya | 361,656
24
+ Barcelona | Esquerra Republicana de Catalunya – Catalunya Sí | 346,662
25
+ Barcelona | Iniciativa per Catalunya Verds – Esquerra Unida i Alternativa | 303,625
26
+ Barcelona | Ciutadans-Partido de la Ciudadanía | 229,746
27
+ Barcelona | Candidatura d'Unitat Popular – Alternativa d'Esquerres | 92,794
28
+ Barcelona | Plataforma per Catalunya | 51,403
29
+ Barcelona | Solidaritat Catalana per la Independència | 32,296
30
+ Barcelona | Escons en Blanc | 22,817
31
+ Barcelona | Partido Animalista Contra el Maltrato Animal | 16,479
32
+ Barcelona | Pirates de Catalunya | 15,241
33
+ Barcelona | Unió, Progrés i Democràcia | 12,147
34
+ Barcelona | Farts.cat | 9,185
35
+ Barcelona | Via Democràtica | 5,984
36
+ Barcelona | Unificació Comunista d'Espanya | 1,998
37
+
38
+ Girona | Convergència i Unió | 148,237
39
+ Girona | Esquerra Republicana de Catalunya – Catalunya Sí | 61,358
40
+ Girona | Partit dels Socialistes de Catalunya | 34,688
41
+ Girona | Partit Popular de Catalunya | 33,096
42
+ Girona | Iniciativa per Catalunya Verds – Esquerra Unida i Alternativa | 20,397
43
+ Girona | Candidatura d'Unitat Popular – Alternativa d'Esquerres | 14,499
44
+ Girona | Ciutadans-Partido de la Ciudadanía | 12,341
45
+ Girona | Solidaritat Catalana per la Independència | 6,011
46
+ Girona | Plataforma per Catalunya | 3,377
47
+ Girona | Escons en Blanc | 1,946
48
+ Girona | Partido Animalista Contra el Maltrato Animal | 1,565
49
+ Girona | Pirates de Catalunya | 1,137
50
+ Girona | Farts.cat | 718
51
+ Girona | Unió, Progrés i Democràcia | 701
52
+ Girona | Partit Republicà d'Esquerra – Izquierda Republicana | 525
53
+ Girona | Unificació Comunista d'Espanya | 201
54
+
55
+ Lleida | Convergència i Unió | 89,035
56
+ Lleida | Esquerra Republicana de Catalunya – Catalunya Sí | 36,011
57
+ Lleida | Partit Popular de Catalunya | 23,338
58
+ Lleida | Partit dels Socialistes de Catalunya | 21,598
59
+ Lleida | Iniciativa per Catalunya Verds – Esquerra Unida i Alternativa | 11,145
60
+ Lleida | Ciutadans-Partido de la Ciudadanía | 6,881
61
+ Lleida | Candidatura d'Unitat Popular – Alternativa d'Esquerres | 6,302
62
+ Lleida | Solidaritat Catalana per la Independència | 3,038
63
+ Lleida | Escons en Blanc | 1,417
64
+ Lleida | Plataforma per Catalunya | 1,224
65
+ Lleida | Partido Animalista Contra el Maltrato Animal | 752
66
+ Lleida | Pirates de Catalunya | 642
67
+ Lleida | Farts.cat | 476
68
+ Lleida | Unió, Progrés i Democràcia | 392
69
+ Lleida | Partit Republicà d'Esquerra – Izquierda Republicana | 301
70
+ Lleida | Unificació Comunista d'Espanya | 90
71
+
72
+ Tarragona | Convergència i Unió | 113,657
73
+ Tarragona | Esquerra Republicana de Catalunya – Catalunya Sí | 54,093
74
+ Tarragona | Partit Popular de Catalunya | 53,591
75
+ Tarragona | Partit dels Socialistes de Catalunya | 48,642
76
+ Tarragona | Ciutadans-Partido de la Ciudadanía | 26,039
77
+ Tarragona | Iniciativa per Catalunya Verds – Esquerra Unida i Alternativa | 24,538
78
+ Tarragona | Candidatura d'Unitat Popular – Alternativa d'Esquerres | 12,840
79
+ Tarragona | Solidaritat Catalana per la Independència | 5,493
80
+ Tarragona | Plataforma per Catalunya | 4,103
81
+ Tarragona | Escons en Blanc | 2,108
82
+ Tarragona | Partido Animalista Contra el Maltrato Animal | 2,065
83
+ Tarragona | Unió, Progrés i Democràcia | 1,373
84
+ Tarragona | Farts.cat | 1,323
85
+ Tarragona | Pirates de Catalunya | 1,199
86
+ Tarragona | Socialistes i Republicans | 333
87
+ Tarragona | Unificació Comunista d'Espanya | 287
@@ -0,0 +1,68 @@
1
+ # Statistical Analysis of Polling Results (SAPoR)
2
+ # Copyright (C) 2020 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: "Parliament of Catalonia election results, 27 September 2015". Central
19
+ # Electoral Commission. 6 November 2015. Retrieved on 21 October 2017.
20
+ # URL: http://www.juntaelectoralcentral.es/cs/jec/documentos/CATALU%C3%91A_2015_Resultados.pdf
21
+
22
+ # Adjustments:
23
+ # Catalunya Sí que es Pot + Recortes Cero–Els Verds → Catalunya en Comú
24
+ # Junts pel Sí → Partit Demòcrata Europeu Català + Esquerra Republicana de Catalunya–Catalunya Sí
25
+
26
+ Barcelona | Junts per Catalunya | 556,461
27
+ Barcelona | Esquerra Republicana de Catalunya–Catalunya Sí | 556,461
28
+ Barcelona | Ciutadans–Partido de la Ciudadanía | 581,032
29
+ Barcelona | Partit dels Socialistes de Catalunya (PSC-PSOE) | 421,487
30
+ Barcelona | Catalunya en Comú | 324,856
31
+ Barcelona | Partit Popular | 272,804
32
+ Barcelona | Candidatura d’Unitat Popular | 255,328
33
+ Barcelona | Unió Democràtica de Catalunya | 75,700
34
+ Barcelona | Partit Animalista contra el Maltractament Animal | 24,426
35
+
36
+ Girona | Junts per Catalunya | 108,167
37
+ Girona | Esquerra Republicana de Catalunya–Catalunya Sí | 108,167
38
+ Girona | Ciutadans–Partido de la Ciudadanía | 48,346
39
+ Girona | Partit dels Socialistes de Catalunya (PSC-PSOE) | 33,416
40
+ Girona | Candidatura d’Unitat Popular | 33,117
41
+ Girona | Partit Popular | 22,660
42
+ Girona | Catalunya en Comú | 19,158
43
+ Girona | Unió Democràtica de Catalunya | 8,295
44
+ Girona | Partit Animalista contra el Maltractament Animal | 1,823
45
+ Girona | Pirates de Catalunya–Per decidir-ho tot | 327
46
+ Girona | Guanyem Catalunya | 320
47
+
48
+ Lleida | Junts per Catalunya | 63,461
49
+ Lleida | Esquerra Republicana de Catalunya–Catalunya Sí | 63,461
50
+ Lleida | Ciutadans–Partido de la Ciudadanía | 26,612
51
+ Lleida | Partit dels Socialistes de Catalunya (PSC-PSOE) | 19,364
52
+ Lleida | Candidatura d’Unitat Popular | 18,736
53
+ Lleida | Partit Popular | 16,761
54
+ Lleida | Catalunya en Comú | 10,290
55
+ Lleida | Unió Democràtica de Catalunya | 8,178
56
+ Lleida | Partit Animalista contra el Maltractament Animal | 1,046
57
+ Lleida | Guanyem Catalunya | 221
58
+
59
+ Tarragona | Junts per Catalunya | 86,269
60
+ Tarragona | Esquerra Republicana de Catalunya–Catalunya Sí | 86,269
61
+ Tarragona | Ciutadans–Partido de la Ciudadanía | 80,374
62
+ Tarragona | Partit dels Socialistes de Catalunya (PSC-PSOE) | 49,016
63
+ Tarragona | Partit Popular | 36,968
64
+ Tarragona | Candidatura d’Unitat Popular | 30,613
65
+ Tarragona | Catalunya en Comú | 27,773
66
+ Tarragona | Unió Democràtica de Catalunya | 11,120
67
+ Tarragona | Partit Animalista contra el Maltractament Animal | 2,862
68
+ Tarragona | Guanyem Catalunya | 626