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,92 @@
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 Portugal, with Portugal à Frente replaced with Partido
22
+ # Social Democrata and CDS–Partido Popular, and Aliança added.
23
+ #
24
+ class PortugalWithChAndIlWithoutPaf < Area
25
+ include Singleton
26
+
27
+ def area_code
28
+ 'PT∪{CH,IL}\{PàF}'
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
+ private
56
+
57
+ COALITIONS = Portugal.instance.coalitions
58
+
59
+ # Voter turnout on 4 October 2015
60
+ # https://en.wikipedia.org/wiki/2015_Portuguese_legislative_election
61
+ POPULATION_SIZE = 5_206_113
62
+
63
+ SEAT_DISTRIBUTION = { 'Açores' => 5, 'Aveiro' => 16, 'Beja' => 3,
64
+ 'Braga' => 19, 'Bragança' => 3, 'Castelo Branco' => 4,
65
+ 'Coimbra' => 9, 'Évora' => 3, 'Faro' => 9,
66
+ 'Guarda' => 3, 'Leiria' => 10, 'Lisboa' => 48,
67
+ 'Madeira' => 6, 'Portalegre' => 2, 'Porto' => 40,
68
+ 'Santarém' => 9, 'Setúbal' => 18,
69
+ 'Viana do Castelo' => 6, 'Vila Real' => 5,
70
+ 'Viseu' => 8, 'Europa' => 2,
71
+ 'Fora da Europa' => 2 }.freeze
72
+
73
+ def election_results_of_2015
74
+ if @election_results_of_2015.nil?
75
+ @election_results_of_2015 = load_election_results(
76
+ 'portugal-20151004-with-ch-and-il-without-paf.psv'
77
+ )
78
+ end
79
+ @election_results_of_2015
80
+ end
81
+
82
+ def electoral_system
83
+ if @electoral_system.nil?
84
+ @electoral_system = MultiDistrictProportional.new( \
85
+ overall_election_results_of_2015, election_results_of_2015,
86
+ SEAT_DISTRIBUTION, DhondtDenominators
87
+ )
88
+ end
89
+ @electoral_system
90
+ end
91
+ end
92
+ end
@@ -0,0 +1,92 @@
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 Portugal, with Portugal à Frente replaced with Partido
22
+ # Social Democrata and CDS–Partido Popular.
23
+ #
24
+ class PortugalWithoutPaf < Area
25
+ include Singleton
26
+
27
+ def area_code
28
+ 'PT\{PàF}'
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
+ private
56
+
57
+ COALITIONS = Portugal.instance.coalitions
58
+
59
+ # Voter turnout on 4 October 2015
60
+ # https://en.wikipedia.org/wiki/2015_Portuguese_legislative_election
61
+ POPULATION_SIZE = 5_206_113
62
+
63
+ SEAT_DISTRIBUTION = { 'Açores' => 5, 'Aveiro' => 16, 'Beja' => 3,
64
+ 'Braga' => 19, 'Bragança' => 3, 'Castelo Branco' => 4,
65
+ 'Coimbra' => 9, 'Évora' => 3, 'Faro' => 9,
66
+ 'Guarda' => 3, 'Leiria' => 10, 'Lisboa' => 48,
67
+ 'Madeira' => 6, 'Portalegre' => 2, 'Porto' => 40,
68
+ 'Santarém' => 9, 'Setúbal' => 18,
69
+ 'Viana do Castelo' => 6, 'Vila Real' => 5,
70
+ 'Viseu' => 8, 'Europa' => 2,
71
+ 'Fora da Europa' => 2 }.freeze
72
+
73
+ def election_results_of_2015
74
+ if @election_results_of_2015.nil?
75
+ @election_results_of_2015 = load_election_results(
76
+ 'portugal-20151004-without-paf.psv'
77
+ )
78
+ end
79
+ @election_results_of_2015
80
+ end
81
+
82
+ def electoral_system
83
+ if @electoral_system.nil?
84
+ @electoral_system = MultiDistrictProportional.new( \
85
+ overall_election_results_of_2015, election_results_of_2015,
86
+ SEAT_DISTRIBUTION, DhondtDenominators
87
+ )
88
+ end
89
+ @electoral_system
90
+ end
91
+ end
92
+ end
@@ -0,0 +1,81 @@
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 Slovakia.
22
+ #
23
+ class Slovakia < Area
24
+ include Singleton
25
+
26
+ def area_code
27
+ 'SK'
28
+ end
29
+
30
+ def coalitions
31
+ COALITIONS
32
+ end
33
+
34
+ def no_of_seats
35
+ NO_OF_SEATS
36
+ end
37
+
38
+ def population_size
39
+ POPULATION_SIZE
40
+ end
41
+
42
+ def seats(simulation)
43
+ electoral_system.project(simulation)
44
+ end
45
+
46
+ def threshold
47
+ PARTY_LIST_THRESHOLD
48
+ end
49
+
50
+ private
51
+
52
+ KDH_PARTY = 'Kresťanskodemokratické hnutie'.freeze
53
+ MH_PARTY = 'MOST–HÍD'.freeze
54
+ SMER_SD_PARTY = 'SMER–sociálna demokracia'.freeze
55
+ SNS_PARTY = 'Slovenská národná strana'.freeze
56
+
57
+ COALITIONS = [[MH_PARTY, SMER_SD_PARTY, SNS_PARTY],
58
+ [SMER_SD_PARTY]].freeze
59
+
60
+ NO_OF_SEATS = 150
61
+
62
+ # Voter turnout on 5 March 2016
63
+ # Source: Web page with the official results of the elections of 5 March
64
+ # 2916, downloaded on 12 october 2019,
65
+ # https://en.wikipedia.org/wiki/2016_Slovak_parliamentary_election
66
+ POPULATION_SIZE = 2_627_386
67
+
68
+ PARTY_LIST_THRESHOLD = 0.05
69
+ COALITION_LIST_THRESHOLD = 0.07
70
+
71
+ def electoral_system
72
+ if @electoral_system.nil?
73
+ @electoral_system = LargestRemainder.new(NO_OF_SEATS,
74
+ HagenbachBischoffQuota,
75
+ PARTY_LIST_THRESHOLD,
76
+ false, 0, false)
77
+ end
78
+ @electoral_system
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,114 @@
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 Slovenia.
23
+ #
24
+ class Slovenia < Area
25
+ include Singleton
26
+
27
+ def area_code
28
+ 'SI'
29
+ end
30
+
31
+ def coalitions
32
+ COALITIONS
33
+ end
34
+
35
+ def no_of_seats
36
+ NO_OF_SEATS
37
+ end
38
+
39
+ def population_size
40
+ POPULATION_SIZE
41
+ end
42
+
43
+ def seats(simulation)
44
+ seats = electoral_system.project(simulation)
45
+ seats['Hungarian and Italian minorities'] = \
46
+ NO_OF_HUNGARIAN_AND_ITALIAN_SEATS
47
+ seats
48
+ end
49
+
50
+ private
51
+
52
+ COALITIONS = [['Demokratična stranka upokojencev Slovenije',
53
+ 'Državljanska lista', 'Nova Slovenija–Krščanski demokrati',
54
+ 'Slovenska demokratska stranka',
55
+ 'Slovenska ljudska stranka'],
56
+ ['Demokratična stranka upokojencev Slovenije',
57
+ 'Državljanska lista', 'Pozitivna Slovenija',
58
+ 'Socialni demokrati'],
59
+ ['Demokratična stranka upokojencev Slovenije',
60
+ 'Lista Marjana Šarca', 'Slovenska demokratska stranka'],
61
+ ['Demokratična stranka upokojencev Slovenije',
62
+ 'Lista Marjana Šarca', 'Socialni demokrati'],
63
+ ['Demokratična stranka upokojencev Slovenije',
64
+ 'Lista Marjana Šarca', 'Nova Slovenija–Krščanski demokrati',
65
+ 'Socialni demokrati'],
66
+ ['Demokratična stranka upokojencev Slovenije',
67
+ 'Lista Marjana Šarca', 'Nova Slovenija–Krščanski demokrati',
68
+ 'Socialni demokrati', 'Stranka Alenke Bratušek',
69
+ 'Stranka modernega centra'],
70
+ ['Demokratična stranka upokojencev Slovenije',
71
+ 'Lista Marjana Šarca', 'Nova Slovenija–Krščanski demokrati',
72
+ 'Socialni demokrati', 'Stranka modernega centra'],
73
+ ['Demokratična stranka upokojencev Slovenije',
74
+ 'Lista Marjana Šarca', 'Socialni demokrati',
75
+ 'Stranka Alenke Bratušek', 'Stranka modernega centra'],
76
+ ['Demokratična stranka upokojencev Slovenije',
77
+ 'Lista Marjana Šarca', 'Socialni demokrati',
78
+ 'Stranka modernega centra'],
79
+ ['Demokratična stranka upokojencev Slovenije',
80
+ 'Socialni demokrati', 'Stranka modernega centra'],
81
+ ['Pozitivna Slovenija', 'Socialni demokrati',
82
+ 'Stranka modernega centra'],
83
+ ['Lista Marjana Šarca', 'Nova Slovenija–Krščanski demokrati',
84
+ 'Socialni demokrati'],
85
+ ['Lista Marjana Šarca', 'Nova Slovenija–Krščanski demokrati',
86
+ 'Socialni demokrati', 'Stranka modernega centra'],
87
+ ['Lista Marjana Šarca', 'Slovenska demokratska stranka'],
88
+ ['Lista Marjana Šarca', 'Socialni demokrati'],
89
+ ['Lista Marjana Šarca', 'Socialni demokrati',
90
+ 'Stranka modernega centra']].freeze
91
+
92
+ NO_OF_SEATS = 90
93
+ NO_OF_HUNGARIAN_AND_ITALIAN_SEATS = 2
94
+
95
+ # Voter turnout on 13 July 2014
96
+ # Source: Web page with the official results of the elections of 13 July
97
+ # 2014, downloaded on 28 April 2018,
98
+ # https://en.wikipedia.org/wiki/Slovenian_parliamentary_election,_2014
99
+ POPULATION_SIZE = 874_291
100
+
101
+ THRESHOLD = 0.04
102
+
103
+ def electoral_system
104
+ if @electoral_system.nil?
105
+ @electoral_system = SingleDistrictProportional.new(
106
+ NO_OF_SEATS - NO_OF_HUNGARIAN_AND_ITALIAN_SEATS,
107
+ DhondtDenominators,
108
+ THRESHOLD
109
+ )
110
+ end
111
+ @electoral_system
112
+ end
113
+ end
114
+ end
@@ -0,0 +1,619 @@
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: "Consulta de resultados electorales. Ministerio del Interior". Retrieved on 14 February 2019.
19
+ # URL: http://www.infoelectoral.mir.es/infoelectoral/min/
20
+
21
+ # Changes to the original results:
22
+ # Partit Demòcrata Europeu Català → Partit Demòcrata Europeu Català
23
+
24
+ A Coruña | Partido Popular | 257,855
25
+ A Coruña | Unidos Podemos | 148,566
26
+ A Coruña | Partido Socialista Obrero Español | 139,973
27
+ A Coruña | Ciudadanos–Partido de la Ciudadanía | 60,347
28
+ A Coruña | Bloque Nacionalista Galego–Nós Candidatura Galega | 19,343
29
+ A Coruña | Partido Animalista Contra el Maltrato Animal | 6,857
30
+ A Coruña | Recortes Cero–Grupo Verde | 1,583
31
+ A Coruña | Vox | 1,026
32
+ A Coruña | Partido Comunista de los Pueblos de España | 754
33
+ A Coruña | Solidaridad y Autogestión Internacionalista | 392
34
+
35
+ Albacete | Partido Popular | 89,717
36
+ Albacete | Partido Socialista Obrero Español | 59,617
37
+ Albacete | Unidos Podemos | 33,509
38
+ Albacete | Ciudadanos–Partido de la Ciudadanía | 31,976
39
+ Albacete | Partido Animalista Contra el Maltrato Animal | 1,985
40
+ Albacete | Unión Progreso y Democracia | 430
41
+ Albacete | Recortes Cero–Grupo Verde | 321
42
+ Albacete | Falange Española de las JONS | 255
43
+ Albacete | Partido Comunista de los Pueblos de España | 233
44
+
45
+ Alicante/Alacant | Partido Popular | 329,628
46
+ Alicante/Alacant | Unidos Podemos | 193,263
47
+ Alicante/Alacant | Partido Socialista Obrero Español | 187,484
48
+ Alicante/Alacant | Ciudadanos–Partido de la Ciudadanía | 138,517
49
+ Alicante/Alacant | Partido Animalista Contra el Maltrato Animal | 10,632
50
+ Alicante/Alacant | Los Verdes Ecopacifistas | 3,011
51
+ Alicante/Alacant | Vox | 2,003
52
+ Alicante/Alacant | Unión Progreso y Democracia | 1,961
53
+ Alicante/Alacant | Partido Comunista de los Pueblos de España | 1,582
54
+ Alicante/Alacant | Recortes Cero–Grupo Verde | 1,293
55
+ Alicante/Alacant | Som Valencians | 554
56
+ Alicante/Alacant | Partido Libertario | 403
57
+
58
+ Almería | Partido Popular | 131,801
59
+ Almería | Partido Socialista Obrero Español | 84,988
60
+ Almería | Ciudadanos–Partido de la Ciudadanía | 41,897
61
+ Almería | Unidos Podemos | 40,578
62
+ Almería | Partido Animalista Contra el Maltrato Animal | 2,689
63
+ Almería | Unión Progreso y Democracia | 684
64
+ Almería | Vox | 435
65
+ Almería | Escaños en Blanco | 347
66
+ Almería | Recortes Cero–Grupo Verde | 334
67
+ Almería | Falange Española de las JONS | 323
68
+ Almería | Partido Comunista de los Pueblos de España | 280
69
+ Almería | Izquierda Anticapitalista Revolucionaria | 105
70
+
71
+ Araba | Unidos Podemos | 51,827
72
+ Araba | Partido Popular | 34,276
73
+ Araba | Euzko Alderdi Jeltzalea/Partido Nacionalista Vasco | 26,703
74
+ Araba | Partido Socialista Obrero Español | 26,381
75
+ Araba | Euskal Herria Bildu | 15,858
76
+ Araba | Ciudadanos–Partido de la Ciudadanía | 8,372
77
+ Araba | Partido Animalista Contra el Maltrato Animal | 1,657
78
+ Araba | Recortes Cero–Grupo Verde | 599
79
+ Araba | Vox | 306
80
+ Araba | Unión Progreso y Democracia | 298
81
+ Araba | Partido Comunista de los Pueblos de España | 211
82
+ Araba | Libertate Nafarra | 74
83
+
84
+ Asturias | Partido Popular | 209,632
85
+ Asturias | Partido Socialista Obrero Español | 147,920
86
+ Asturias | Unidos Podemos | 141,845
87
+ Asturias | Ciudadanos–Partido de la Ciudadanía | 74,961
88
+ Asturias | Partido Animalista Contra el Maltrato Animal | 6,398
89
+ Asturias | Escaños en Blanco | 2,517
90
+ Asturias | Vox | 1,442
91
+ Asturias | Unión Progreso y Democracia | 1,391
92
+ Asturias | Partido Comunista de los Pueblos de España | 1,383
93
+ Asturias | Recortes Cero–Grupo Verde | 1,086
94
+ Asturias | Partido Humanista | 414
95
+ Asturias | Partido Unionista Estado de España | 336
96
+
97
+ Ávila | Partido Popular | 50,931
98
+ Ávila | Partido Socialista Obrero Español | 19,277
99
+ Ávila | Ciudadanos–Partido de la Ciudadanía | 14,096
100
+ Ávila | Unidos Podemos | 12,527
101
+ Ávila | Partido Animalista Contra el Maltrato Animal | 610
102
+ Ávila | Unión Progreso y Democracia | 357
103
+ Ávila | Falange Española de las JONS | 261
104
+ Ávila | Recortes Cero–Grupo Verde | 141
105
+
106
+ Badajoz | Partido Popular | 149,603
107
+ Badajoz | Partido Socialista Obrero Español | 133,392
108
+ Badajoz | Unidos Podemos | 47,182
109
+ Badajoz | Ciudadanos–Partido de la Ciudadanía | 40,417
110
+ Badajoz | Partido Animalista Contra el Maltrato Animal | 2,766
111
+ Badajoz | Unión Progreso y Democracia | 639
112
+ Badajoz | Vox | 617
113
+ Badajoz | Recortes Cero–Grupo Verde | 614
114
+
115
+ Barcelona | Unidos Podemos | 694,315
116
+ Barcelona | Partido Socialista Obrero Español | 444,812
117
+ Barcelona | Esquerra Republicana de Catalunya–Catalunya Sí | 438,126
118
+ Barcelona | Partido Popular | 357,759
119
+ Barcelona | Partit Demòcrata Europeu Català | 323,824
120
+ Barcelona | Ciudadanos–Partido de la Ciudadanía | 305,075
121
+ Barcelona | Partido Animalista Contra el Maltrato Animal | 47,660
122
+ Barcelona | Recortes Cero–Grupo Verde | 8,006
123
+ Barcelona | Partit Comunista del Poble de Catalunya | 3,275
124
+
125
+ Bizkaia | Unidos Podemos | 179,347
126
+ Bizkaia | Euzko Alderdi Jeltzalea/Partido Nacionalista Vasco | 175,296
127
+ Bizkaia | Partido Socialista Obrero Español | 86,425
128
+ Bizkaia | Partido Popular | 78,965
129
+ Bizkaia | Euskal Herria Bildu | 67,653
130
+ Bizkaia | Ciudadanos–Partido de la Ciudadanía | 20,685
131
+ Bizkaia | Partido Animalista Contra el Maltrato Animal | 4,865
132
+ Bizkaia | Recortes Cero–Grupo Verde | 1,176
133
+ Bizkaia | Escaños en Blanco | 1,026
134
+ Bizkaia | Unión Progreso y Democracia | 766
135
+ Bizkaia | Vox | 641
136
+ Bizkaia | Partido Comunista de los Pueblos de España | 467
137
+
138
+ Burgos | Partido Popular | 88,785
139
+ Burgos | Partido Socialista Obrero Español | 45,724
140
+ Burgos | Unidos Podemos | 35,705
141
+ Burgos | Ciudadanos–Partido de la Ciudadanía | 30,361
142
+ Burgos | Partido Animalista Contra el Maltrato Animal | 1,782
143
+ Burgos | Unión Progreso y Democracia | 788
144
+ Burgos | Vox | 647
145
+ Burgos | Recortes Cero–Grupo Verde | 456
146
+ Burgos | Iniciativa Merindades de Castilla | 356
147
+ Burgos | Partido Comunista de los Pueblos de España | 287
148
+ Burgos | Solidaridad y Autogestión Internacionalista | 278
149
+
150
+ Cáceres | Partido Popular | 95,419
151
+ Cáceres | Partido Socialista Obrero Español | 78,767
152
+ Cáceres | Unidos Podemos | 33,164
153
+ Cáceres | Ciudadanos–Partido de la Ciudadanía | 24,343
154
+ Cáceres | Partido Animalista Contra el Maltrato Animal | 1,690
155
+ Cáceres | Recortes Cero–Grupo Verde | 459
156
+ Cáceres | Unión Progreso y Democracia | 415
157
+ Cáceres | Vox | 409
158
+
159
+ Cádiz | Partido Popular | 198,876
160
+ Cádiz | Partido Socialista Obrero Español | 175,498
161
+ Cádiz | Unidos Podemos | 130,643
162
+ Cádiz | Ciudadanos–Partido de la Ciudadanía | 88,029
163
+ Cádiz | Partido Animalista Contra el Maltrato Animal | 9,719
164
+ Cádiz | Unión Progreso y Democracia | 1,750
165
+ Cádiz | Recortes Cero–Grupo Verde | 1,417
166
+ Cádiz | Vox | 1,253
167
+ Cádiz | Partido Comunista de los Pueblos de España | 767
168
+ Cádiz | Falange Española de las JONS | 472
169
+ Cádiz | Partido Libertario | 393
170
+
171
+ Cantabria | Partido Popular | 140,252
172
+ Cantabria | Partido Socialista Obrero Español | 79,407
173
+ Cantabria | Unidos Podemos | 59,845
174
+ Cantabria | Ciudadanos–Partido de la Ciudadanía | 48,626
175
+ Cantabria | Partido Animalista Contra el Maltrato Animal | 3,369
176
+ Cantabria | Unión Progreso y Democracia | 1,051
177
+ Cantabria | Vox | 713
178
+ Cantabria | Escaños en Blanco | 596
179
+ Cantabria | Recortes Cero–Grupo Verde | 483
180
+ Cantabria | Partido Comunista de los Pueblos de España | 468
181
+ Cantabria | Solidaridad y Autogestión Internacionalista | 156
182
+ Cantabria | Partido Libertario | 147
183
+
184
+ Castellón/Castelló | Partido Popular | 106,746
185
+ Castellón/Castelló | Unidos Podemos | 72,281
186
+ Castellón/Castelló | Partido Socialista Obrero Español | 66,062
187
+ Castellón/Castelló | Ciudadanos–Partido de la Ciudadanía | 44,121
188
+ Castellón/Castelló | Partido Animalista Contra el Maltrato Animal | 2,985
189
+ Castellón/Castelló | Ciudadanos de Centro Democrático | 1,712
190
+ Castellón/Castelló | Vox | 711
191
+ Castellón/Castelló | Unión Progreso y Democracia | 662
192
+ Castellón/Castelló | Recortes Cero–Grupo Verde | 561
193
+ Castellón/Castelló | Falange Española de las JONS | 476
194
+ Castellón/Castelló | Som Valencians | 415
195
+ Castellón/Castelló | Partido Comunista de los Pueblos de España | 403
196
+
197
+ Ceuta | Partido Popular | 15,991
198
+ Ceuta | Partido Socialista Obrero Español | 6,974
199
+ Ceuta | Ciudadanos–Partido de la Ciudadanía | 3,549
200
+ Ceuta | Unidos Podemos | 3,345
201
+ Ceuta | Partido Animalista Contra el Maltrato Animal | 333
202
+ Ceuta | Vox | 139
203
+ Ceuta | Recortes Cero–Grupo Verde | 118
204
+ Ceuta | Unión Progreso y Democracia | 72
205
+
206
+ Ciudad Real | Partido Popular | 121,622
207
+ Ciudad Real | Partido Socialista Obrero Español | 81,728
208
+ Ciudad Real | Unidos Podemos | 37,510
209
+ Ciudad Real | Ciudadanos–Partido de la Ciudadanía | 33,126
210
+ Ciudad Real | Partido Animalista Contra el Maltrato Animal | 2,334
211
+ Ciudad Real | Unión Progreso y Democracia | 679
212
+ Ciudad Real | Recortes Cero–Grupo Verde | 458
213
+
214
+ Córdoba | Partido Popular | 153,750
215
+ Córdoba | Partido Socialista Obrero Español | 139,281
216
+ Córdoba | Unidos Podemos | 85,058
217
+ Córdoba | Ciudadanos–Partido de la Ciudadanía | 55,248
218
+ Córdoba | Partido Animalista Contra el Maltrato Animal | 4,234
219
+ Córdoba | Unión Progreso y Democracia | 743
220
+ Córdoba | Vox | 708
221
+ Córdoba | Partido Comunista de los Pueblos de España | 663
222
+ Córdoba | Partido Comunista Obrero Español | 627
223
+ Córdoba | Escaños en Blanco | 614
224
+ Córdoba | Partido Somos Andaluces por Andalucía y los Pueblos | 606
225
+ Córdoba | Recortes Cero–Grupo Verde | 467
226
+ Córdoba | Falange Española de las JONS | 330
227
+
228
+ Cuenca | Partido Popular | 53,004
229
+ Cuenca | Partido Socialista Obrero Español | 34,426
230
+ Cuenca | Unidos Podemos | 15,263
231
+ Cuenca | Ciudadanos–Partido de la Ciudadanía | 10,868
232
+ Cuenca | Partido Animalista Contra el Maltrato Animal | 785
233
+ Cuenca | Vox | 274
234
+ Cuenca | Unión Progreso y Democracia | 195
235
+ Cuenca | Recortes Cero–Grupo Verde | 130
236
+ Cuenca | Partido Comunista de los Pueblos de España | 81
237
+
238
+ Gipuzkoa | Unidos Podemos | 104,566
239
+ Gipuzkoa | Euzko Alderdi Jeltzalea/Partido Nacionalista Vasco | 85,015
240
+ Gipuzkoa | Euskal Herria Bildu | 69,828
241
+ Gipuzkoa | Partido Socialista Obrero Español | 51,449
242
+ Gipuzkoa | Partido Popular | 35,312
243
+ Gipuzkoa | Ciudadanos–Partido de la Ciudadanía | 11,683
244
+ Gipuzkoa | Partido Animalista Contra el Maltrato Animal | 2,788
245
+ Gipuzkoa | Recortes Cero–Grupo Verde | 1,172
246
+ Gipuzkoa | Unión Progreso y Democracia | 478
247
+ Gipuzkoa | Partido Comunista de los Pueblos de España | 284
248
+ Gipuzkoa | Partido Libertario | 207
249
+
250
+ Girona | Esquerra Republicana de Catalunya–Catalunya Sí | 80,824
251
+ Girona | Partit Demòcrata Europeu Català | 71,453
252
+ Girona | Unidos Podemos | 53,277
253
+ Girona | Partido Socialista Obrero Español | 38,558
254
+ Girona | Partido Popular | 31,035
255
+ Girona | Ciudadanos–Partido de la Ciudadanía | 23,748
256
+ Girona | Partido Animalista Contra el Maltrato Animal | 4,627
257
+ Girona | Plataforma per Catalunya | 724
258
+ Girona | Recortes Cero–Grupo Verde | 583
259
+ Girona | Partit Comunista del Poble de Catalunya | 382
260
+
261
+ Granada | Partido Popular | 172,721
262
+ Granada | Partido Socialista Obrero Español | 151,445
263
+ Granada | Unidos Podemos | 86,975
264
+ Granada | Ciudadanos–Partido de la Ciudadanía | 66,000
265
+ Granada | Partido Animalista Contra el Maltrato Animal | 5,228
266
+ Granada | Unión Progreso y Democracia | 1,158
267
+ Granada | Vox | 993
268
+ Granada | Recortes Cero–Grupo Verde | 763
269
+ Granada | Partido Comunista de los Pueblos de España | 641
270
+ Granada | Izquierda Anticapitalista Revolucionaria | 192
271
+
272
+ Guadalajara | Partido Popular | 52,047
273
+ Guadalajara | Partido Socialista Obrero Español | 30,282
274
+ Guadalajara | Unidos Podemos | 23,884
275
+ Guadalajara | Ciudadanos–Partido de la Ciudadanía | 21,586
276
+ Guadalajara | Partido Animalista Contra el Maltrato Animal | 1,349
277
+ Guadalajara | Vox | 541
278
+ Guadalajara | Unión Progreso y Democracia | 413
279
+ Guadalajara | Recortes Cero–Grupo Verde | 245
280
+ Guadalajara | Falange Española de las JONS | 206
281
+ Guadalajara | Partido Comunista Obrero Español | 126
282
+ Guadalajara | Solidaridad y Autogestión Internacionalista | 37
283
+
284
+ Huelva | Partido Socialista Obrero Español | 88,100
285
+ Huelva | Partido Popular | 81,959
286
+ Huelva | Unidos Podemos | 40,023
287
+ Huelva | Ciudadanos–Partido de la Ciudadanía | 28,685
288
+ Huelva | Partido Animalista Contra el Maltrato Animal | 2,850
289
+ Huelva | Recortes Cero–Grupo Verde | 470
290
+ Huelva | Unión Progreso y Democracia | 464
291
+ Huelva | Vox | 398
292
+ Huelva | Partido Comunista de los Pueblos de España | 344
293
+
294
+ Huesca | Partido Popular | 42,332
295
+ Huesca | Partido Socialista Obrero Español | 29,915
296
+ Huesca | Unidos Podemos | 22,430
297
+ Huesca | Ciudadanos–Partido de la Ciudadanía | 17,934
298
+ Huesca | Partido Animalista Contra el Maltrato Animal | 909
299
+ Huesca | Escaños en Blanco | 487
300
+ Huesca | Vox | 399
301
+ Huesca | ENTABAN | 377
302
+ Huesca | Partido Comunista de los Pueblos de España | 349
303
+ Huesca | Unión Progreso y Democracia | 239
304
+ Huesca | Recortes Cero–Grupo Verde | 216
305
+ Huesca | Movimiento Aragonés Social | 93
306
+
307
+ Illes Balears | Partido Popular | 163,045
308
+ Illes Balears | Unidos Podemos | 118,082
309
+ Illes Balears | Partido Socialista Obrero Español | 93,363
310
+ Illes Balears | Ciudadanos–Partido de la Ciudadanía | 67,700
311
+ Illes Balears | Sobirania per a les Illes | 7,418
312
+ Illes Balears | Partido Animalista Contra el Maltrato Animal | 7,266
313
+ Illes Balears | Recortes Cero–Grupo Verde | 1,644
314
+ Illes Balears | Unión Progreso y Democracia | 1,197
315
+ Illes Balears | Partido Familia y Vida | 846
316
+
317
+ Jaén | Partido Socialista Obrero Español | 138,612
318
+ Jaén | Partido Popular | 131,234
319
+ Jaén | Unidos Podemos | 53,239
320
+ Jaén | Ciudadanos–Partido de la Ciudadanía | 38,884
321
+ Jaén | Partido Animalista Contra el Maltrato Animal | 3,238
322
+ Jaén | Ciudadanos Libres Unidos | 830
323
+ Jaén | Vox | 638
324
+ Jaén | Unión Progreso y Democracia | 589
325
+ Jaén | Partido Comunista de los Pueblos de España | 498
326
+ Jaén | Recortes Cero–Grupo Verde | 455
327
+
328
+ La Rioja | Partido Popular | 73,708
329
+ La Rioja | Partido Socialista Obrero Español | 42,010
330
+ La Rioja | Unidos Podemos | 28,772
331
+ La Rioja | Ciudadanos–Partido de la Ciudadanía | 24,180
332
+ La Rioja | Partido Animalista Contra el Maltrato Animal | 1,350
333
+ La Rioja | Unión Progreso y Democracia | 425
334
+ La Rioja | Vox | 366
335
+ La Rioja | Recortes Cero–Grupo Verde | 312
336
+ La Rioja | Escaños en Blanco | 304
337
+ La Rioja | Partido Comunista de los Pueblos de España | 250
338
+ La Rioja | Hegoalde Rioja–Libertad Navarra | 80
339
+
340
+ Las Palmas | Partido Popular | 170,316
341
+ Las Palmas | Partido Socialista Obrero Español | 119,351
342
+ Las Palmas | Unidos Podemos | 113,256
343
+ Las Palmas | Ciudadanos–Partido de la Ciudadanía | 65,172
344
+ Las Palmas | Coalición Canaria–Partido Nacionalista Canario | 17,982
345
+ Las Palmas | Partido Animalista Contra el Maltrato Animal | 6,730
346
+ Las Palmas | Recortes Cero–Grupo Verde | 1,552
347
+ Las Palmas | Unión Progreso y Democracia | 978
348
+ Las Palmas | Partido Comunista de los Pueblos de España | 900
349
+ Las Palmas | Vox | 882
350
+ Las Palmas | Unidad del Pueblo | 686
351
+ Las Palmas | Juntos por Canarias | 537
352
+ Las Palmas | Partido Humanista | 450
353
+ Las Palmas | Solidaridad y Autogestión Internacionalista | 212
354
+
355
+ Léon | Partido Popular | 112,723
356
+ Léon | Partido Socialista Obrero Español | 73,681
357
+ Léon | Unidos Podemos | 49,484
358
+ Léon | Ciudadanos–Partido de la Ciudadanía | 35,870
359
+ Léon | Partido Animalista Contra el Maltrato Animal | 2,184
360
+ Léon | Unión del Pueblo Leonés | 2,094
361
+ Léon | Vox | 620
362
+ Léon | Unión Progreso y Democracia | 618
363
+ Léon | Recortes Cero–Grupo Verde | 430
364
+ Léon | Partido Comunista de los Pueblos de España | 381
365
+ Léon | Partido Regionalista del País Leonés | 277
366
+ Léon | Alianza de Centro Democrático | 99
367
+
368
+ Lleida | Esquerra Republicana de Catalunya–Catalunya Sí | 45,525
369
+ Lleida | Partit Demòcrata Europeu Català | 40,985
370
+ Lleida | Unidos Podemos | 30,182
371
+ Lleida | Partido Popular | 24,503
372
+ Lleida | Partido Socialista Obrero Español | 22,533
373
+ Lleida | Ciudadanos–Partido de la Ciudadanía | 12,592
374
+ Lleida | Partido Animalista Contra el Maltrato Animal | 1,930
375
+ Lleida | Recortes Cero–Grupo Verde | 288
376
+ Lleida | Partit Comunista del Poble de Catalunya | 267
377
+ Lleida | Vox | 198
378
+
379
+ Lugo | Partido Popular | 91,516
380
+ Lugo | Partido Socialista Obrero Español | 45,796
381
+ Lugo | Unidos Podemos | 32,752
382
+ Lugo | Ciudadanos–Partido de la Ciudadanía | 13,343
383
+ Lugo | Bloque Nacionalista Galego–Nós Candidatura Galega | 5,009
384
+ Lugo | Partido Animalista Contra el Maltrato Animal | 1,939
385
+ Lugo | Recortes Cero–Grupo Verde | 514
386
+
387
+ Madrid | Partido Popular | 1,325,665
388
+ Madrid | Unidos Podemos | 737,885
389
+ Madrid | Partido Socialista Obrero Español | 678,340
390
+ Madrid | Ciudadanos–Partido de la Ciudadanía | 616,503
391
+ Madrid | Partido Animalista Contra el Maltrato Animal | 39,117
392
+ Madrid | Vox | 16,803
393
+ Madrid | Unión Progreso y Democracia | 14,659
394
+ Madrid | Recortes Cero–Grupo Verde | 7,377
395
+ Madrid | Falange Española de las JONS | 3,946
396
+ Madrid | Partido Comunista de los Pueblos de España | 3,110
397
+ Madrid | Partido Humanista | 2,148
398
+ Madrid | Partido Libertario | 1,111
399
+ Madrid | Solidaridad y Autogestión Internacionalista | 994
400
+
401
+ Málaga | Partido Popular | 256,033
402
+ Málaga | Partido Socialista Obrero Español | 201,444
403
+ Málaga | Unidos Podemos | 140,829
404
+ Málaga | Ciudadanos–Partido de la Ciudadanía | 121,294
405
+ Málaga | Partido Animalista Contra el Maltrato Animal | 11,523
406
+ Málaga | Unión Progreso y Democracia | 1,832
407
+ Málaga | Vox | 1,770
408
+ Málaga | Recortes Cero–Grupo Verde | 1,461
409
+ Málaga | Partido Somos Andaluces por Andalucía y los Pueblos | 1,121
410
+ Málaga | Partido Comunista de los Pueblos de España | 983
411
+ Málaga | Izquierda Anticapitalista Revolucionaria | 390
412
+
413
+ Melilla | Partido Popular | 13,522
414
+ Melilla | Partido Socialista Obrero Español | 6,805
415
+ Melilla | Ciudadanos–Partido de la Ciudadanía | 3,352
416
+ Melilla | Unidos Podemos | 2,667
417
+ Melilla | Partido Animalista Contra el Maltrato Animal | 317
418
+ Melilla | Unión Progreso y Democracia | 146
419
+ Melilla | Recortes Cero–Grupo Verde | 44
420
+
421
+ Murcia | Partido Popular | 333,109
422
+ Murcia | Partido Socialista Obrero Español | 144,937
423
+ Murcia | Ciudadanos–Partido de la Ciudadanía | 111,961
424
+ Murcia | Unidos Podemos | 103,522
425
+ Murcia | Partido Animalista Contra el Maltrato Animal | 8,209
426
+ Murcia | Vox | 2,622
427
+ Murcia | Unión Progreso y Democracia | 2,083
428
+ Murcia | Recortes Cero–Grupo Verde | 1,305
429
+ Murcia | Escaños en Blanco | 1,069
430
+ Murcia | Partido Comunista de los Pueblos de España | 627
431
+ Murcia | Solidaridad y Autogestión Internacionalista | 235
432
+ Murcia | La Fuerza de los Mayores de España | 200
433
+
434
+ Navarra | Partido Popular | 106,976
435
+ Navarra | Unidos Podemos | 94,972
436
+ Navarra | Partido Socialista Obrero Español | 58,173
437
+ Navarra | Euskal Herria Bildu | 31,374
438
+ Navarra | Ciudadanos–Partido de la Ciudadanía | 20,505
439
+ Navarra | Geroa Bai | 14,343
440
+ Navarra | Partido Animalista Contra el Maltrato Animal | 2,757
441
+ Navarra | Recortes Cero–Grupo Verde | 1,089
442
+ Navarra | Unión Progreso y Democracia | 591
443
+ Navarra | Libertate Nafarra | 548
444
+ Navarra | Solidaridad y Autogestión Internacionalista | 539
445
+
446
+ Ourense | Partido Popular | 92,539
447
+ Ourense | Partido Socialista Obrero Español | 43,429
448
+ Ourense | Unidos Podemos | 29,136
449
+ Ourense | Ciudadanos–Partido de la Ciudadanía | 13,133
450
+ Ourense | Bloque Nacionalista Galego–Nós Candidatura Galega | 4,107
451
+ Ourense | Partido Animalista Contra el Maltrato Animal | 1,671
452
+ Ourense | Recortes Cero–Grupo Verde | 417
453
+ Ourense | Partido Comunista de los Pueblos de España | 218
454
+
455
+ Palencia | Partido Popular | 45,965
456
+ Palencia | Partido Socialista Obrero Español | 24,751
457
+ Palencia | Unidos Podemos | 15,077
458
+ Palencia | Ciudadanos–Partido de la Ciudadanía | 12,428
459
+ Palencia | Partido Animalista Contra el Maltrato Animal | 761
460
+ Palencia | Unión Progreso y Democracia | 273
461
+ Palencia | Recortes Cero–Grupo Verde | 202
462
+ Palencia | Falange Española de las JONS | 184
463
+ Palencia | Partido Comunista de los Pueblos de España | 90
464
+ Palencia | Solidaridad y Autogestión Internacionalista | 57
465
+
466
+ Pontevedra | Partido Popular | 208,921
467
+ Pontevedra | Unidos Podemos | 137,088
468
+ Pontevedra | Partido Socialista Obrero Español | 118,816
469
+ Pontevedra | Ciudadanos–Partido de la Ciudadanía | 48,302
470
+ Pontevedra | Bloque Nacionalista Galego–Nós Candidatura Galega | 16,793
471
+ Pontevedra | Partido Animalista Contra el Maltrato Animal | 6,497
472
+ Pontevedra | Recortes Cero–Grupo Verde | 1,360
473
+ Pontevedra | Unión Progreso y Democracia | 975
474
+ Pontevedra | Escaños en Blanco | 785
475
+ Pontevedra | Partido Comunista de los Pueblos de España | 718
476
+
477
+ Salamanca | Partido Popular | 97,672
478
+ Salamanca | Partido Socialista Obrero Español | 43,252
479
+ Salamanca | Ciudadanos–Partido de la Ciudadanía | 31,878
480
+ Salamanca | Unidos Podemos | 25,441
481
+ Salamanca | Partido Animalista Contra el Maltrato Animal | 1,359
482
+ Salamanca | Unión Progreso y Democracia | 683
483
+ Salamanca | Recortes Cero–Grupo Verde | 326
484
+ Salamanca | Partido Regionalista del País Leonés | 233
485
+ Salamanca | Partido Comunista de los Pueblos de España | 196
486
+
487
+ Santa Cruz de Tenerife | Partido Popular | 163,129
488
+ Santa Cruz de Tenerife | Partido Socialista Obrero Español | 101,120
489
+ Santa Cruz de Tenerife | Unidos Podemos | 85,178
490
+ Santa Cruz de Tenerife | Coalición Canaria–Partido Nacionalista Canario | 60,271
491
+ Santa Cruz de Tenerife | Ciudadanos–Partido de la Ciudadanía | 52,576
492
+ Santa Cruz de Tenerife | Partido Animalista Contra el Maltrato Animal | 8,243
493
+ Santa Cruz de Tenerife | Recortes Cero–Grupo Verde | 1,417
494
+ Santa Cruz de Tenerife | Juntos por Canarias | 653
495
+ Santa Cruz de Tenerife | Partido Comunista de los Pueblos de España | 649
496
+ Santa Cruz de Tenerife | Escaños en Blanco | 647
497
+
498
+ Segovia | Partido Popular | 40,172
499
+ Segovia | Partido Socialista Obrero Español | 19,014
500
+ Segovia | Ciudadanos–Partido de la Ciudadanía | 13,595
501
+ Segovia | Unidos Podemos | 13,440
502
+ Segovia | Partido Animalista Contra el Maltrato Animal | 612
503
+ Segovia | Unión Progreso y Democracia | 352
504
+ Segovia | Vox | 277
505
+ Segovia | Recortes Cero–Grupo Verde | 202
506
+ Segovia | Falange Española de las JONS | 129
507
+ Segovia | Partido Comunista de los Pueblos de España | 117
508
+
509
+ Sevilla | Partido Socialista Obrero Español | 347,470
510
+ Sevilla | Partido Popular | 299,884
511
+ Sevilla | Unidos Podemos | 214,663
512
+ Sevilla | Ciudadanos–Partido de la Ciudadanía | 138,086
513
+ Sevilla | Partido Animalista Contra el Maltrato Animal | 13,389
514
+ Sevilla | Unión Progreso y Democracia | 2,712
515
+ Sevilla | Vox | 2,146
516
+ Sevilla | Recortes Cero–Grupo Verde | 1,950
517
+ Sevilla | Partido Comunista de los Pueblos de España | 1,306
518
+ Sevilla | Partido Comunista Obrero Español | 1,069
519
+ Sevilla | Falange Española de las JONS | 855
520
+
521
+ Soria | Partido Popular | 22,264
522
+ Soria | Partido Socialista Obrero Español | 12,762
523
+ Soria | Unidos Podemos | 7,599
524
+ Soria | Ciudadanos–Partido de la Ciudadanía | 5,679
525
+ Soria | Partido Animalista Contra el Maltrato Animal | 260
526
+ Soria | Unión Progreso y Democracia | 125
527
+ Soria | Vox | 119
528
+ Soria | Recortes Cero–Grupo Verde | 90
529
+ Soria | Falange Española de las JONS | 63
530
+ Soria | Partido Comunista de los Pueblos de España | 57
531
+
532
+ Tarragona | Unidos Podemos | 75,328
533
+ Tarragona | Esquerra Republicana de Catalunya–Catalunya Sí | 67,759
534
+ Tarragona | Partido Socialista Obrero Español | 53,967
535
+ Tarragona | Partido Popular | 51,241
536
+ Tarragona | Partit Demòcrata Europeu Català | 47,226
537
+ Tarragona | Ciudadanos–Partido de la Ciudadanía | 39,082
538
+ Tarragona | Partido Animalista Contra el Maltrato Animal | 5,680
539
+ Tarragona | Recortes Cero–Grupo Verde | 853
540
+ Tarragona | Partit Comunista del Poble de Catalunya | 424
541
+
542
+ Teruel | Partido Popular | 30,913
543
+ Teruel | Partido Socialista Obrero Español | 19,724
544
+ Teruel | Unidos Podemos | 12,558
545
+ Teruel | Ciudadanos–Partido de la Ciudadanía | 9,871
546
+ Teruel | Partido Animalista Contra el Maltrato Animal | 402
547
+ Teruel | Escaños en Blanco | 245
548
+ Teruel | Falange Española de las JONS | 160
549
+ Teruel | Recortes Cero–Grupo Verde | 125
550
+ Teruel | Partido Comunista de los Pueblos de España | 71
551
+ Teruel | Movimiento Aragonés Social | 62
552
+ Teruel | Unión de Todos | 48
553
+ Teruel | Independientes por Aragón | 39
554
+
555
+ Toledo | Partido Popular | 159,521
556
+ Toledo | Partido Socialista Obrero Español | 97,733
557
+ Toledo | Unidos Podemos | 53,994
558
+ Toledo | Ciudadanos–Partido de la Ciudadanía | 47,705
559
+ Toledo | Partido Animalista Contra el Maltrato Animal | 3,386
560
+ Toledo | Vox | 1,013
561
+ Toledo | Unión Progreso y Democracia | 695
562
+ Toledo | Recortes Cero–Grupo Verde | 564
563
+ Toledo | Partido Comunista de los Pueblos de España | 334
564
+ Toledo | Falange Española de las JONS | 330
565
+ Toledo | La Falange | 254
566
+
567
+ Valencia/València | Partido Popular | 482,855
568
+ Valencia/València | Unidos Podemos | 394,227
569
+ Valencia/València | Partido Socialista Obrero Español | 285,732
570
+ Valencia/València | Ciudadanos–Partido de la Ciudadanía | 205,489
571
+ Valencia/València | Partido Animalista Contra el Maltrato Animal | 18,994
572
+ Valencia/València | Som Valencians | 5,678
573
+ Valencia/València | Ciudadanos de Centro Democrático | 4,561
574
+ Valencia/València | Vox | 3,381
575
+ Valencia/València | Unión Progreso y Democracia | 2,962
576
+ Valencia/València | Recortes Cero–Grupo Verde | 2,944
577
+ Valencia/València | Partido Comunista de los Pueblos de España | 1,566
578
+ Valencia/València | Falange Española de las JONS | 1,465
579
+ Valencia/València | Partido Libertario | 589
580
+ Valencia/València | Renovació Política | 570
581
+
582
+ Valladolid | Partido Popular | 132,026
583
+ Valladolid | Partido Socialista Obrero Español | 71,780
584
+ Valladolid | Unidos Podemos | 51,637
585
+ Valladolid | Ciudadanos–Partido de la Ciudadanía | 49,283
586
+ Valladolid | Ciudadanos de Centro Democrático–Candidatura Independiente | 2,672
587
+ Valladolid | Partido Animalista Contra el Maltrato Animal | 2,225
588
+ Valladolid | Vox | 1,078
589
+ Valladolid | Unión Progreso y Democracia | 1,068
590
+ Valladolid | Recortes Cero–Grupo Verde | 524
591
+ Valladolid | Falange Española de las JONS | 454
592
+ Valladolid | Partido Comunista de los Pueblos de España | 316
593
+ Valladolid | Solidaridad y Autogestión Internacionalista | 210
594
+ Valladolid | Partido Libertario | 146
595
+ Valladolid | Alianza de Centro Democrático | 115
596
+
597
+ Zamora | Partido Popular | 52,555
598
+ Zamora | Partido Socialista Obrero Español | 26,045
599
+ Zamora | Unidos Podemos | 15,403
600
+ Zamora | Ciudadanos–Partido de la Ciudadanía | 12,423
601
+ Zamora | Partido Animalista Contra el Maltrato Animal | 537
602
+ Zamora | Unión Progreso y Democracia | 256
603
+ Zamora | Unión del Pueblo Leonés | 201
604
+ Zamora | Recortes Cero–Grupo Verde | 174
605
+ Zamora | Partido Regionalista del País Leonés | 158
606
+ Zamora | Partido Comunista de los Pueblos de España | 131
607
+
608
+ Zaragoza | Partido Popular | 179,211
609
+ Zaragoza | Partido Socialista Obrero Español | 125,321
610
+ Zaragoza | Unidos Podemos | 104,199
611
+ Zaragoza | Ciudadanos–Partido de la Ciudadanía | 86,434
612
+ Zaragoza | Partido Animalista Contra el Maltrato Animal | 5,025
613
+ Zaragoza | Escaños en Blanco | 3,032
614
+ Zaragoza | Vox | 1,614
615
+ Zaragoza | Unión Progreso y Democracia | 1,395
616
+ Zaragoza | Recortes Cero–Grupo Verde | 1,137
617
+ Zaragoza | Movimiento Aragonés Social | 568
618
+ Zaragoza | Partido Comunista de los Pueblos de España | 564
619
+ Zaragoza | Independientes por Aragón | 511