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.
- checksums.yaml +7 -0
- data/Area Class Diagram.dia +0 -0
- data/Area Class Diagram.png +0 -0
- data/Class Diagram.dia +0 -0
- data/Class Diagram.png +0 -0
- data/Example-Catalonia.md +361 -0
- data/Example-Flanders.md +486 -0
- data/Example-Greece.md +25 -0
- data/Example-Oslo.md +678 -0
- data/Example-UnitedKingdom-Referendum.md +132 -0
- data/Examples.md +15 -0
- data/LICENSE +674 -0
- data/README.md +103 -0
- data/Rakefile +18 -0
- data/Technical Documentation.md +14 -0
- data/bin/create_installation_package.sh +49 -0
- data/bin/install.sh +45 -0
- data/bin/sapor.rb +24 -0
- data/bin/sapor.sh +106 -0
- data/data/hu/hungary-2014.txt +1680 -0
- data/data/hu/hungary_2014_screen_scraper.rb +48 -0
- data/data/hu/hungary_2014_to_psv.rb +80 -0
- data/data/hu/index-2014.txt +106 -0
- data/data/ie/2016-04-28_general-election-2016-candidate-details-csv_en.csv +552 -0
- data/data/ie/ireland_2016_to_psv.rb +138 -0
- data/data/no/2020-01-01_partifordeling_1_st_2017.csv +335 -0
- data/data/no/norway_2017_to_psv.rb +61 -0
- data/data/pl/2015-gl-lis-okr.csv +42 -0
- data/data/pl/poland_2015_to_psv.rb +79 -0
- data/data/pl/poland_2015_to_psv_with_ko_and_rsw.rb +94 -0
- data/data/pl/poland_2015_to_psv_with_ko_konf_kp_l_and_zp.rb +100 -0
- data/data/pl/poland_2015_to_psv_with_ko_sld_and_wi.rb +92 -0
- data/data/pl/poland_2015_to_psv_with_sld.rb +84 -0
- data/data/pl/poland_2015_to_psv_with_sld_and_wi.rb +85 -0
- data/data/uk/inject_ukip_2015_as_brexit_2019_in_2017.rb +54 -0
- data/data/uk/united_kingdom_2015.txt +651 -0
- data/data/uk/united_kingdom_2015_to_psv.rb +104 -0
- data/data/uk/united_kingdom_2017.txt +651 -0
- data/data/uk/united_kingdom_2017_to_psv.rb +104 -0
- data/data/uk/united_kingdom_2017_to_psv_with_brexit_and_chuk.rb +113 -0
- data/data/uk/united_kingdom_2017_to_psv_with_tig.rb +111 -0
- data/lib/sapor.rb +147 -0
- data/lib/sapor/binomials_cache.rb +45 -0
- data/lib/sapor/combinations_distribution.rb +222 -0
- data/lib/sapor/denominators.rb +67 -0
- data/lib/sapor/dichotomies.rb +138 -0
- data/lib/sapor/dichotomy.rb +164 -0
- data/lib/sapor/first_past_the_post.rb +82 -0
- data/lib/sapor/largest_remainder.rb +118 -0
- data/lib/sapor/log4r_logger.rb +49 -0
- data/lib/sapor/log_facade.rb +40 -0
- data/lib/sapor/many_past_the_post.rb +113 -0
- data/lib/sapor/multi_district_leveled_proportional.rb +64 -0
- data/lib/sapor/multi_district_proportional.rb +123 -0
- data/lib/sapor/multi_district_variable_threshold_proportional.rb +128 -0
- data/lib/sapor/number_formatter.rb +45 -0
- data/lib/sapor/options.rb +73 -0
- data/lib/sapor/poll.rb +282 -0
- data/lib/sapor/polychotomy.rb +200 -0
- data/lib/sapor/pseudorandom_multirange_enumerator.rb +87 -0
- data/lib/sapor/referendum_polychotomy.rb +165 -0
- data/lib/sapor/regional_data/area.rb +100 -0
- data/lib/sapor/regional_data/austria.rb +84 -0
- data/lib/sapor/regional_data/belgium-brussels-2014.psv +46 -0
- data/lib/sapor/regional_data/belgium-brussels-20190526.psv +33 -0
- data/lib/sapor/regional_data/belgium-flanders-2014.psv +80 -0
- data/lib/sapor/regional_data/belgium-flanders-20190526.psv +74 -0
- data/lib/sapor/regional_data/belgium-wallonia-2014.psv +114 -0
- data/lib/sapor/regional_data/belgium-wallonia-20190526.psv +93 -0
- data/lib/sapor/regional_data/belgium.rb +97 -0
- data/lib/sapor/regional_data/belgium_brussels.rb +62 -0
- data/lib/sapor/regional_data/belgium_flanders.rb +64 -0
- data/lib/sapor/regional_data/belgium_wallonia.rb +63 -0
- data/lib/sapor/regional_data/catalonia-2012-2015.psv +100 -0
- data/lib/sapor/regional_data/catalonia-2012.psv +87 -0
- data/lib/sapor/regional_data/catalonia-2015-jxcat.psv +68 -0
- data/lib/sapor/regional_data/catalonia-2015-no-jxsi.psv +68 -0
- data/lib/sapor/regional_data/catalonia-2015.psv +63 -0
- data/lib/sapor/regional_data/catalonia-20171221-with-vox.psv +67 -0
- data/lib/sapor/regional_data/catalonia-20171221.psv +61 -0
- data/lib/sapor/regional_data/catalonia.rb +124 -0
- data/lib/sapor/regional_data/denmark-20150618-with-e-and-p.psv +164 -0
- data/lib/sapor/regional_data/denmark-20150618-with-e.psv +153 -0
- data/lib/sapor/regional_data/denmark-20150618-with-p.psv +153 -0
- data/lib/sapor/regional_data/denmark-20150618.psv +142 -0
- data/lib/sapor/regional_data/denmark.rb +128 -0
- data/lib/sapor/regional_data/denmark_with_e.rb +128 -0
- data/lib/sapor/regional_data/denmark_with_e_and_p.rb +128 -0
- data/lib/sapor/regional_data/denmark_with_p.rb +128 -0
- data/lib/sapor/regional_data/estonia.rb +88 -0
- data/lib/sapor/regional_data/european-union-great-britain-20140522-brexit-chuk.psv +172 -0
- data/lib/sapor/regional_data/european-union-great-britain-20140522.psv +146 -0
- data/lib/sapor/regional_data/european-union-great-britain-20190523.psv +141 -0
- data/lib/sapor/regional_data/european-union-ireland-2014-ia-ri-sd.psv +64 -0
- data/lib/sapor/regional_data/european-union-ireland-2014-ia-sd.psv +60 -0
- data/lib/sapor/regional_data/european-union-ireland-2014-ia.psv +56 -0
- data/lib/sapor/regional_data/european-union-ireland-2014-sd.psv +56 -0
- data/lib/sapor/regional_data/european-union-ireland-2014.psv +50 -0
- data/lib/sapor/regional_data/european-union-ireland-20190524-ia.psv +58 -0
- data/lib/sapor/regional_data/european-union-ireland-20190524.psv +52 -0
- data/lib/sapor/regional_data/european_union_27_austria.rb +76 -0
- data/lib/sapor/regional_data/european_union_27_croatia.rb +83 -0
- data/lib/sapor/regional_data/european_union_27_denmark.rb +77 -0
- data/lib/sapor/regional_data/european_union_27_estonia.rb +74 -0
- data/lib/sapor/regional_data/european_union_27_finland.rb +74 -0
- data/lib/sapor/regional_data/european_union_27_france.rb +84 -0
- data/lib/sapor/regional_data/european_union_27_ireland.rb +96 -0
- data/lib/sapor/regional_data/european_union_27_ireland_with_ia.rb +97 -0
- data/lib/sapor/regional_data/european_union_27_italy.rb +84 -0
- data/lib/sapor/regional_data/european_union_27_netherlands.rb +81 -0
- data/lib/sapor/regional_data/european_union_27_poland.rb +84 -0
- data/lib/sapor/regional_data/european_union_27_romania.rb +78 -0
- data/lib/sapor/regional_data/european_union_27_slovakia.rb +80 -0
- data/lib/sapor/regional_data/european_union_27_spain.rb +82 -0
- data/lib/sapor/regional_data/european_union_27_sweden.rb +76 -0
- data/lib/sapor/regional_data/european_union_austria.rb +76 -0
- data/lib/sapor/regional_data/european_union_bulgaria.rb +82 -0
- data/lib/sapor/regional_data/european_union_croatia.rb +83 -0
- data/lib/sapor/regional_data/european_union_cyprus.rb +72 -0
- data/lib/sapor/regional_data/european_union_czech_republic.rb +82 -0
- data/lib/sapor/regional_data/european_union_denmark.rb +77 -0
- data/lib/sapor/regional_data/european_union_estonia.rb +74 -0
- data/lib/sapor/regional_data/european_union_finland.rb +74 -0
- data/lib/sapor/regional_data/european_union_flanders.rb +74 -0
- data/lib/sapor/regional_data/european_union_france.rb +84 -0
- data/lib/sapor/regional_data/european_union_french_community_of_belgium.rb +73 -0
- data/lib/sapor/regional_data/european_union_germany.rb +86 -0
- data/lib/sapor/regional_data/european_union_great_britain.rb +98 -0
- data/lib/sapor/regional_data/european_union_greece.rb +77 -0
- data/lib/sapor/regional_data/european_union_hungary.rb +76 -0
- data/lib/sapor/regional_data/european_union_ireland.rb +96 -0
- data/lib/sapor/regional_data/european_union_ireland_with_ia.rb +97 -0
- data/lib/sapor/regional_data/european_union_italy.rb +84 -0
- data/lib/sapor/regional_data/european_union_latvia.rb +81 -0
- data/lib/sapor/regional_data/european_union_lithuania.rb +80 -0
- data/lib/sapor/regional_data/european_union_luxembourg.rb +75 -0
- data/lib/sapor/regional_data/european_union_malta.rb +71 -0
- data/lib/sapor/regional_data/european_union_netherlands.rb +81 -0
- data/lib/sapor/regional_data/european_union_northern_ireland.rb +75 -0
- data/lib/sapor/regional_data/european_union_poland.rb +84 -0
- data/lib/sapor/regional_data/european_union_portugal.rb +75 -0
- data/lib/sapor/regional_data/european_union_romania.rb +78 -0
- data/lib/sapor/regional_data/european_union_slovakia.rb +81 -0
- data/lib/sapor/regional_data/european_union_slovenia.rb +85 -0
- data/lib/sapor/regional_data/european_union_spain.rb +82 -0
- data/lib/sapor/regional_data/european_union_sweden.rb +76 -0
- data/lib/sapor/regional_data/finland-20150419-with-sin.psv +224 -0
- data/lib/sapor/regional_data/finland-20150419.psv +212 -0
- data/lib/sapor/regional_data/finland.rb +107 -0
- data/lib/sapor/regional_data/finland_with_sin.rb +107 -0
- data/lib/sapor/regional_data/flanders-2014.psv +96 -0
- data/lib/sapor/regional_data/flanders-20190526.psv +87 -0
- data/lib/sapor/regional_data/flanders.rb +115 -0
- data/lib/sapor/regional_data/france.rb +38 -0
- data/lib/sapor/regional_data/greece.rb +92 -0
- data/lib/sapor/regional_data/hungary-2014.psv +2104 -0
- data/lib/sapor/regional_data/hungary.rb +116 -0
- data/lib/sapor/regional_data/iceland-20161029-midflokkurinn.psv +94 -0
- data/lib/sapor/regional_data/iceland-20161029.psv +88 -0
- data/lib/sapor/regional_data/iceland-20171028-with-j.psv +94 -0
- data/lib/sapor/regional_data/iceland-20171028.psv +85 -0
- data/lib/sapor/regional_data/iceland.rb +149 -0
- data/lib/sapor/regional_data/ireland-20160226-2020-candidates.psv +322 -0
- data/lib/sapor/regional_data/ireland-20160226-2020.psv +344 -0
- data/lib/sapor/regional_data/ireland-20160226.psv +348 -0
- data/lib/sapor/regional_data/ireland.rb +165 -0
- data/lib/sapor/regional_data/latvia-20141004-kpv-p-par.psv +109 -0
- data/lib/sapor/regional_data/latvia-20141004-kpv-par.psv +103 -0
- data/lib/sapor/regional_data/latvia-20141004-kpv.psv +97 -0
- data/lib/sapor/regional_data/latvia-20141004.psv +89 -0
- data/lib/sapor/regional_data/latvia-20181006.psv +104 -0
- data/lib/sapor/regional_data/latvia.rb +111 -0
- data/lib/sapor/regional_data/luxembourg-20131020.psv +60 -0
- data/lib/sapor/regional_data/luxembourg-20181014.psv +59 -0
- data/lib/sapor/regional_data/luxembourg.rb +88 -0
- data/lib/sapor/regional_data/netherlands.rb +108 -0
- data/lib/sapor/regional_data/norway-20170911.psv +331 -0
- data/lib/sapor/regional_data/norway.rb +130 -0
- data/lib/sapor/regional_data/norwegian_municipality.rb +68 -0
- data/lib/sapor/regional_data/poland-20151025-with-ko-and-l-without-n-po-r-and-zl.psv +321 -0
- 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
- data/lib/sapor/regional_data/poland-20151025-with-ko-sld-and-wi-without-n-po-and-zl.psv +403 -0
- data/lib/sapor/regional_data/poland-20151025-with-sld-and-wi-without-zl.psv +444 -0
- data/lib/sapor/regional_data/poland-20151025-with-sld-without-zl.psv +403 -0
- data/lib/sapor/regional_data/poland-20151025.psv +403 -0
- data/lib/sapor/regional_data/poland.rb +125 -0
- data/lib/sapor/regional_data/poland_with_ko_and_l_without_n_po_r_and_zl.rb +122 -0
- 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
- data/lib/sapor/regional_data/poland_with_ko_sld_and_wi_without_n_po_and_zl.rb +125 -0
- data/lib/sapor/regional_data/poland_with_sld_and_wi_without_zl.rb +126 -0
- data/lib/sapor/regional_data/poland_with_sld_without_zl.rb +126 -0
- data/lib/sapor/regional_data/portugal-20151004-with-a-and-ch-without-paf.psv +438 -0
- data/lib/sapor/regional_data/portugal-20151004-with-a-and-il-without-paf.psv +438 -0
- data/lib/sapor/regional_data/portugal-20151004-with-a-ch-and-il-without-paf.psv +461 -0
- data/lib/sapor/regional_data/portugal-20151004-with-a-without-paf.psv +415 -0
- data/lib/sapor/regional_data/portugal-20151004-with-ch-and-il-without-paf.psv +438 -0
- data/lib/sapor/regional_data/portugal-20151004-without-paf.psv +392 -0
- data/lib/sapor/regional_data/portugal-20151004.psv +370 -0
- data/lib/sapor/regional_data/portugal.rb +101 -0
- data/lib/sapor/regional_data/portugal_with_a_and_ch_without_paf.rb +92 -0
- data/lib/sapor/regional_data/portugal_with_a_and_il_without_paf.rb +92 -0
- data/lib/sapor/regional_data/portugal_with_a_ch_and_il_without_paf.rb +92 -0
- data/lib/sapor/regional_data/portugal_with_a_without_paf.rb +92 -0
- data/lib/sapor/regional_data/portugal_with_ch_and_il_without_paf.rb +92 -0
- data/lib/sapor/regional_data/portugal_without_paf.rb +92 -0
- data/lib/sapor/regional_data/slovakia.rb +81 -0
- data/lib/sapor/regional_data/slovenia.rb +114 -0
- data/lib/sapor/regional_data/spain-20160626.psv +619 -0
- data/lib/sapor/regional_data/spain.rb +136 -0
- data/lib/sapor/regional_data/sweden.rb +92 -0
- data/lib/sapor/regional_data/sweden_20140914.rb +89 -0
- data/lib/sapor/regional_data/united_kingdom-2015.psv +4358 -0
- data/lib/sapor/regional_data/united_kingdom-20170608-brexit-chuk.psv +5154 -0
- data/lib/sapor/regional_data/united_kingdom-20170608-brexit.psv +4521 -0
- data/lib/sapor/regional_data/united_kingdom-20170608-tig.psv +4529 -0
- data/lib/sapor/regional_data/united_kingdom-20170608.psv +3894 -0
- data/lib/sapor/regional_data/united_kingdom.rb +94 -0
- data/lib/sapor/regional_data/united_kingdom_with_brexit.rb +110 -0
- data/lib/sapor/regional_data/united_kingdom_with_brexit_and_chuk.rb +111 -0
- data/lib/sapor/regional_data/united_kingdom_with_tig.rb +111 -0
- data/lib/sapor/regional_data/utopia.rb +66 -0
- data/lib/sapor/regional_data/wallonia-2014.psv +101 -0
- data/lib/sapor/regional_data/wallonia-20190526.psv +88 -0
- data/lib/sapor/regional_data/wallonia.rb +112 -0
- data/lib/sapor/representatives_polychotomy.rb +338 -0
- data/lib/sapor/single_district_proportional.rb +75 -0
- data/sapor.gemspec +35 -0
- data/spec/integration/area_spec.rb +28 -0
- data/spec/integration/poll_spec.rb +112 -0
- data/spec/integration/sample.poll +8 -0
- data/spec/spec_helper.rb +31 -0
- data/spec/unit/area_spec.rb +115 -0
- data/spec/unit/austria_spec.rb +76 -0
- data/spec/unit/belgium_brussels_spec.rb +58 -0
- data/spec/unit/belgium_flanders_spec.rb +62 -0
- data/spec/unit/belgium_spec.rb +26 -0
- data/spec/unit/belgium_wallonia_spec.rb +65 -0
- data/spec/unit/binomials_cache_spec.rb +34 -0
- data/spec/unit/catalonia_spec.rb +61 -0
- data/spec/unit/catalonia_with_vox_spec.rb +62 -0
- data/spec/unit/combinations_distribution_spec.rb +241 -0
- data/spec/unit/denmark_spec.rb +56 -0
- data/spec/unit/denmark_with_e_and_p_spec.rb +58 -0
- data/spec/unit/denmark_with_e_spec.rb +57 -0
- data/spec/unit/denmark_with_p_spec.rb +57 -0
- data/spec/unit/denominators_spec.rb +40 -0
- data/spec/unit/dichotomies_spec.rb +154 -0
- data/spec/unit/dichotomy_spec.rb +320 -0
- data/spec/unit/estonia_spec.rb +65 -0
- data/spec/unit/european_union_27_austria_spec.rb +61 -0
- data/spec/unit/european_union_27_croatia_spec.rb +60 -0
- data/spec/unit/european_union_27_denmark_spec.rb +62 -0
- data/spec/unit/european_union_27_estonia_spec.rb +94 -0
- data/spec/unit/european_union_27_finland_spec.rb +75 -0
- data/spec/unit/european_union_27_france_spec.rb +73 -0
- data/spec/unit/european_union_27_ireland_spec.rb +72 -0
- data/spec/unit/european_union_27_ireland_with_ia_spec.rb +74 -0
- data/spec/unit/european_union_27_italy_spec.rb +69 -0
- data/spec/unit/european_union_27_netherlands_spec.rb +81 -0
- data/spec/unit/european_union_27_poland_spec.rb +69 -0
- data/spec/unit/european_union_27_romania_spec.rb +67 -0
- data/spec/unit/european_union_27_slovakia_spec.rb +111 -0
- data/spec/unit/european_union_27_spain_spec.rb +130 -0
- data/spec/unit/european_union_27_sweden_spec.rb +89 -0
- data/spec/unit/european_union_austria_spec.rb +61 -0
- data/spec/unit/european_union_bulgaria_spec.rb +97 -0
- data/spec/unit/european_union_croatia_spec.rb +59 -0
- data/spec/unit/european_union_cyprus_spec.rb +65 -0
- data/spec/unit/european_union_czech_republic_spec.rb +125 -0
- data/spec/unit/european_union_denmark_spec.rb +61 -0
- data/spec/unit/european_union_estonia_spec.rb +93 -0
- data/spec/unit/european_union_finland_spec.rb +75 -0
- data/spec/unit/european_union_flanders_spec.rb +56 -0
- data/spec/unit/european_union_france_spec.rb +73 -0
- data/spec/unit/european_union_french_community_of_belgium_spec.rb +61 -0
- data/spec/unit/european_union_germany_spec.rb +90 -0
- data/spec/unit/european_union_great_britain_spec.rb +87 -0
- data/spec/unit/european_union_greece_spec.rb +148 -0
- data/spec/unit/european_union_hungary_spec.rb +57 -0
- data/spec/unit/european_union_ireland_spec.rb +72 -0
- data/spec/unit/european_union_ireland_with_ia_spec.rb +74 -0
- data/spec/unit/european_union_italy_spec.rb +69 -0
- data/spec/unit/european_union_latvia_spec.rb +76 -0
- data/spec/unit/european_union_lithuania_spec.rb +68 -0
- data/spec/unit/european_union_luxembourg_spec.rb +63 -0
- data/spec/unit/european_union_malta_spec.rb +60 -0
- data/spec/unit/european_union_netherlands_spec.rb +81 -0
- data/spec/unit/european_union_northern_ireland_spec.rb +66 -0
- data/spec/unit/european_union_poland_spec.rb +69 -0
- data/spec/unit/european_union_portugal_spec.rb +77 -0
- data/spec/unit/european_union_romania_spec.rb +67 -0
- data/spec/unit/european_union_slovakia_spec.rb +111 -0
- data/spec/unit/european_union_slovenia_spec.rb +77 -0
- data/spec/unit/european_union_spain_spec.rb +129 -0
- data/spec/unit/european_union_sweden_spec.rb +89 -0
- data/spec/unit/finland_spec.rb +65 -0
- data/spec/unit/finland_with_sin_spec.rb +67 -0
- data/spec/unit/first_past_the_post_spec.rb +54 -0
- data/spec/unit/flanders_spec.rb +70 -0
- data/spec/unit/france_spec.rb +32 -0
- data/spec/unit/greece_spec.rb +118 -0
- data/spec/unit/hungary_spec.rb +132 -0
- data/spec/unit/iceland_spec.rb +57 -0
- data/spec/unit/iceland_with_j_spec.rb +58 -0
- data/spec/unit/ireland_2016_spec.rb +62 -0
- data/spec/unit/ireland_spec.rb +62 -0
- data/spec/unit/largest_remainder_spec.rb +79 -0
- data/spec/unit/latvia_spec.rb +62 -0
- data/spec/unit/luxembourg_spec.rb +55 -0
- data/spec/unit/multi_district_leveled_proportional_spec.rb +49 -0
- data/spec/unit/multi_district_proportional_spec.rb +81 -0
- data/spec/unit/netherlands_spec.rb +107 -0
- data/spec/unit/norway_spec.rb +69 -0
- data/spec/unit/norwegian_municipality_spec.rb +89 -0
- data/spec/unit/number_formatter_spec.rb +173 -0
- data/spec/unit/poland_spec.rb +62 -0
- data/spec/unit/poland_with_ko_and_l_without_n_po_r_and_zl_spec.rb +60 -0
- 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
- data/spec/unit/poland_with_ko_sld_and_wi_without_n_po_and_zl_spec.rb +62 -0
- data/spec/unit/poland_with_sld_and_wi_without_zl_spec.rb +63 -0
- data/spec/unit/poland_with_sld_without_zl_spec.rb +62 -0
- data/spec/unit/poll_spec.rb +110 -0
- data/spec/unit/portugal_spec.rb +66 -0
- data/spec/unit/portugal_with_a_and_ch_without_paf_spec.rb +68 -0
- data/spec/unit/portugal_with_a_and_il_without_paf_spec.rb +68 -0
- data/spec/unit/portugal_with_a_ch_and_il_without_paf_spec.rb +69 -0
- data/spec/unit/portugal_with_a_without_paf_spec.rb +67 -0
- data/spec/unit/portugal_with_ch_and_il_without_paf_spec.rb +68 -0
- data/spec/unit/portugal_without_paf_spec.rb +66 -0
- data/spec/unit/pseudorandom_multirange_enumerator_spec.rb +82 -0
- data/spec/unit/referendum_polychotomy_spec.rb +289 -0
- data/spec/unit/representatives_polychotomy_spec.rb +332 -0
- data/spec/unit/slovakia_spec.rb +99 -0
- data/spec/unit/slovenia_spec.rb +80 -0
- data/spec/unit/spain_spec.rb +101 -0
- data/spec/unit/sweden_20140914_spec.rb +112 -0
- data/spec/unit/sweden_spec.rb +113 -0
- data/spec/unit/united_kingdom_spec.rb +65 -0
- data/spec/unit/united_kingdom_with_brexit_and_chuk_spec.rb +67 -0
- data/spec/unit/united_kingdom_with_brexit_spec.rb +66 -0
- data/spec/unit/united_kingdom_with_tig_spec.rb +66 -0
- data/spec/unit/wallonia_spec.rb +70 -0
- metadata +502 -0
|
@@ -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 | Partit Demòcrata Europeu Català | 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 | Partit Demòcrata Europeu Català | 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 | Partit Demòcrata Europeu Català | 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 | Partit Demòcrata Europeu Català | 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
|
|
@@ -0,0 +1,63 @@
|
|
|
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
|
+
|
|
25
|
+
Barcelona | Junts pel Sí | 1,112,922
|
|
26
|
+
Barcelona | Ciutadans–Partido de la Ciudadanía | 581,032
|
|
27
|
+
Barcelona | Partit dels Socialistes de Catalunya (PSC-PSOE) | 421,487
|
|
28
|
+
Barcelona | Catalunya en Comú | 324,856
|
|
29
|
+
Barcelona | Partit Popular | 272,804
|
|
30
|
+
Barcelona | Candidatura d’Unitat Popular | 255,328
|
|
31
|
+
Barcelona | Unió Democràtica de Catalunya | 75,700
|
|
32
|
+
Barcelona | Partit Animalista contra el Maltractament Animal | 24,426
|
|
33
|
+
|
|
34
|
+
Girona | Junts pel Sí | 216,333
|
|
35
|
+
Girona | Ciutadans–Partido de la Ciudadanía | 48,346
|
|
36
|
+
Girona | Partit dels Socialistes de Catalunya (PSC-PSOE) | 33,416
|
|
37
|
+
Girona | Candidatura d’Unitat Popular | 33,117
|
|
38
|
+
Girona | Partit Popular | 22,660
|
|
39
|
+
Girona | Catalunya en Comú | 19,158
|
|
40
|
+
Girona | Unió Democràtica de Catalunya | 8,295
|
|
41
|
+
Girona | Partit Animalista contra el Maltractament Animal | 1,823
|
|
42
|
+
Girona | Pirates de Catalunya–Per decidir-ho tot | 327
|
|
43
|
+
Girona | Guanyem Catalunya | 320
|
|
44
|
+
|
|
45
|
+
Lleida | Junts pel Sí | 126,922
|
|
46
|
+
Lleida | Ciutadans–Partido de la Ciudadanía | 26,612
|
|
47
|
+
Lleida | Partit dels Socialistes de Catalunya (PSC-PSOE) | 19,364
|
|
48
|
+
Lleida | Candidatura d’Unitat Popular | 18,736
|
|
49
|
+
Lleida | Partit Popular | 16,761
|
|
50
|
+
Lleida | Catalunya en Comú | 10,290
|
|
51
|
+
Lleida | Unió Democràtica de Catalunya | 8,178
|
|
52
|
+
Lleida | Partit Animalista contra el Maltractament Animal | 1,046
|
|
53
|
+
Lleida | Guanyem Catalunya | 221
|
|
54
|
+
|
|
55
|
+
Tarragona | Junts pel Sí | 172,537
|
|
56
|
+
Tarragona | Ciutadans–Partido de la Ciudadanía | 80,374
|
|
57
|
+
Tarragona | Partit dels Socialistes de Catalunya (PSC-PSOE) | 49,016
|
|
58
|
+
Tarragona | Partit Popular | 36,968
|
|
59
|
+
Tarragona | Candidatura d’Unitat Popular | 30,613
|
|
60
|
+
Tarragona | Catalunya en Comú | 27,773
|
|
61
|
+
Tarragona | Unió Democràtica de Catalunya | 11,120
|
|
62
|
+
Tarragona | Partit Animalista contra el Maltractament Animal | 2,862
|
|
63
|
+
Tarragona | Guanyem Catalunya | 626
|
|
@@ -0,0 +1,67 @@
|
|
|
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: "Disposición 426 del BOE núm. 11 de 2018" Retrieved on 3 January 2020.
|
|
19
|
+
# URL: http://www.juntaelectoralcentral.es/cs/jec/documentos/CATALU%C3%91A_2017_Resultados.pdf
|
|
20
|
+
|
|
21
|
+
# Added Vox with the same distribution as Partit Popular.
|
|
22
|
+
|
|
23
|
+
Barcelona | Ciutadans–Partido de la Ciudadanía | 868,032
|
|
24
|
+
Barcelona | Junts pel Catalunya | 624,261
|
|
25
|
+
Barcelona | Esquerra Republicana–Catalunya Sí | 678,030
|
|
26
|
+
Barcelona | Partit dels Socialistes de Catalunya (PSC-PSOE) | 497,650
|
|
27
|
+
Barcelona | Catalunya en Comú–Podem | 276,810
|
|
28
|
+
Barcelona | Candidatura d’Unitat Popular | 143,711
|
|
29
|
+
Barcelona | Partit Popular | 142,934
|
|
30
|
+
Barcelona | Vox | 142,934
|
|
31
|
+
Barcelona | Partit Animalista contra el Maltractament Animal | 31,330
|
|
32
|
+
Barcelona | Recortes Cero–Grupo Verde | 8,621
|
|
33
|
+
|
|
34
|
+
Girona | Ciutadans–Partido de la Ciudadanía | 79,634
|
|
35
|
+
Girona | Junts pel Catalunya | 149,638
|
|
36
|
+
Girona | Esquerra Republicana–Catalunya Sí | 88,582
|
|
37
|
+
Girona | Partit dels Socialistes de Catalunya (PSC-PSOE) | 35,197
|
|
38
|
+
Girona | Catalunya en Comú–Podem | 16,482
|
|
39
|
+
Girona | Candidatura d’Unitat Popular | 21,708
|
|
40
|
+
Girona | Partit Popular | 11,646
|
|
41
|
+
Girona | Vox | 11,646
|
|
42
|
+
Girona | Partit Animalista contra el Maltractament Animal | 2,582
|
|
43
|
+
Girona | Recortes Cero–Grupo Verde | 560
|
|
44
|
+
Girona | Per un Món Més Just | 241
|
|
45
|
+
|
|
46
|
+
Lleida | Ciutadans–Partido de la Ciudadanía | 40,908
|
|
47
|
+
Lleida | Junts pel Catalunya | 78,303
|
|
48
|
+
Lleida | Esquerra Republicana–Catalunya Sí | 64,417
|
|
49
|
+
Lleida | Partit dels Socialistes de Catalunya (PSC-PSOE) | 21,795
|
|
50
|
+
Lleida | Catalunya en Comú–Podem | 9,415
|
|
51
|
+
Lleida | Candidatura d’Unitat Popular | 12,140
|
|
52
|
+
Lleida | Partit Popular | 10,902
|
|
53
|
+
Lleida | Vox | 10,902
|
|
54
|
+
Lleida | Partit Animalista contra el Maltractament Animal | 1,186
|
|
55
|
+
Lleida | Recortes Cero–Grupo Verde | 312
|
|
56
|
+
Lleida | Per un Món Més Just | 336
|
|
57
|
+
|
|
58
|
+
Tarragona | Ciutadans–Partido de la Ciudadanía | 120,825
|
|
59
|
+
Tarragona | Junts pel Catalunya | 96,031
|
|
60
|
+
Tarragona | Esquerra Republicana–Catalunya Sí | 104,832
|
|
61
|
+
Tarragona | Partit dels Socialistes de Catalunya (PSC-PSOE) | 52,017
|
|
62
|
+
Tarragona | Catalunya en Comú–Podem | 23,653
|
|
63
|
+
Tarragona | Candidatura d’Unitat Popular | 17,687
|
|
64
|
+
Tarragona | Partit Popular | 20,188
|
|
65
|
+
Tarragona | Vox | 20,188
|
|
66
|
+
Tarragona | Partit Animalista contra el Maltractament Animal | 3,645
|
|
67
|
+
Tarragona | Recortes Cero–Grupo Verde | 794
|
|
@@ -0,0 +1,61 @@
|
|
|
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: "Disposición 426 del BOE núm. 11 de 2018" Retrieved on 3 January 2020.
|
|
19
|
+
# URL: http://www.juntaelectoralcentral.es/cs/jec/documentos/CATALU%C3%91A_2017_Resultados.pdf
|
|
20
|
+
|
|
21
|
+
Barcelona | Ciutadans–Partido de la Ciudadanía | 868,032
|
|
22
|
+
Barcelona | Junts pel Catalunya | 624,261
|
|
23
|
+
Barcelona | Esquerra Republicana–Catalunya Sí | 678,030
|
|
24
|
+
Barcelona | Partit dels Socialistes de Catalunya (PSC-PSOE) | 497,650
|
|
25
|
+
Barcelona | Catalunya en Comú–Podem | 276,810
|
|
26
|
+
Barcelona | Candidatura d’Unitat Popular | 143,711
|
|
27
|
+
Barcelona | Partit Popular | 142,934
|
|
28
|
+
Barcelona | Partit Animalista contra el Maltractament Animal | 31,330
|
|
29
|
+
Barcelona | Recortes Cero–Grupo Verde | 8,621
|
|
30
|
+
|
|
31
|
+
Girona | Ciutadans–Partido de la Ciudadanía | 79,634
|
|
32
|
+
Girona | Junts pel Catalunya | 149,638
|
|
33
|
+
Girona | Esquerra Republicana–Catalunya Sí | 88,582
|
|
34
|
+
Girona | Partit dels Socialistes de Catalunya (PSC-PSOE) | 35,197
|
|
35
|
+
Girona | Catalunya en Comú–Podem | 16,482
|
|
36
|
+
Girona | Candidatura d’Unitat Popular | 21,708
|
|
37
|
+
Girona | Partit Popular | 11,646
|
|
38
|
+
Girona | Partit Animalista contra el Maltractament Animal | 2,582
|
|
39
|
+
Girona | Recortes Cero–Grupo Verde | 560
|
|
40
|
+
Girona | Per un Món Més Just | 241
|
|
41
|
+
|
|
42
|
+
Lleida | Ciutadans–Partido de la Ciudadanía | 40,908
|
|
43
|
+
Lleida | Junts pel Catalunya | 78,303
|
|
44
|
+
Lleida | Esquerra Republicana–Catalunya Sí | 64,417
|
|
45
|
+
Lleida | Partit dels Socialistes de Catalunya (PSC-PSOE) | 21,795
|
|
46
|
+
Lleida | Catalunya en Comú–Podem | 9,415
|
|
47
|
+
Lleida | Candidatura d’Unitat Popular | 12,140
|
|
48
|
+
Lleida | Partit Popular | 10,902
|
|
49
|
+
Lleida | Partit Animalista contra el Maltractament Animal | 1,186
|
|
50
|
+
Lleida | Recortes Cero–Grupo Verde | 312
|
|
51
|
+
Lleida | Per un Món Més Just | 336
|
|
52
|
+
|
|
53
|
+
Tarragona | Ciutadans–Partido de la Ciudadanía | 120,825
|
|
54
|
+
Tarragona | Junts pel Catalunya | 96,031
|
|
55
|
+
Tarragona | Esquerra Republicana–Catalunya Sí | 104,832
|
|
56
|
+
Tarragona | Partit dels Socialistes de Catalunya (PSC-PSOE) | 52,017
|
|
57
|
+
Tarragona | Catalunya en Comú–Podem | 23,653
|
|
58
|
+
Tarragona | Candidatura d’Unitat Popular | 17,687
|
|
59
|
+
Tarragona | Partit Popular | 20,188
|
|
60
|
+
Tarragona | Partit Animalista contra el Maltractament Animal | 3,645
|
|
61
|
+
Tarragona | Recortes Cero–Grupo Verde | 794
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Statistical Analysis of Polling Results (SAPoR)
|
|
3
|
+
# Copyright (C) 2020 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 Catalonia.
|
|
22
|
+
#
|
|
23
|
+
class Catalonia < Area
|
|
24
|
+
include Singleton
|
|
25
|
+
def area_code
|
|
26
|
+
'ES-CT'
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def coalitions
|
|
30
|
+
COALITIONS
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def no_of_seats
|
|
34
|
+
SEAT_DISTRIBUTION.values.inject(:+)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def overall_election_results_of_2017
|
|
38
|
+
if @overall_election_results_of_2017.nil?
|
|
39
|
+
@overall_election_results_of_2017 = \
|
|
40
|
+
summarize_election_results(election_results_of_2017)
|
|
41
|
+
end
|
|
42
|
+
@overall_election_results_of_2017
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def population_size
|
|
46
|
+
# Voter turnout in 2017
|
|
47
|
+
# Source: "Disposición 426 del BOE núm. 11 de 2018" Retrieved on 3 January
|
|
48
|
+
# 2020.
|
|
49
|
+
# URL: http://www.juntaelectoralcentral.es/cs/jec/documentos/CATALU%C3%91A_2017_Resultados.pdf
|
|
50
|
+
4_357_368
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def seats(simulation)
|
|
54
|
+
electoral_system.project(simulation)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def threshold
|
|
58
|
+
THRESHOLD
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
private
|
|
62
|
+
|
|
63
|
+
CEC_PARTY = 'Catalunya en Comú–Podem'.freeze
|
|
64
|
+
CS_PARTY = 'Ciutadans–Partido de la Ciudadanía'.freeze
|
|
65
|
+
CUP_PARTY = 'Candidatura d’Unitat Popular'.freeze
|
|
66
|
+
ERC_PARTY = 'Esquerra Republicana–Catalunya Sí'.freeze
|
|
67
|
+
JXCAT_PARTY = 'Junts pel Catalunya'.freeze
|
|
68
|
+
PP_PARTY = 'Partit Popular'.freeze
|
|
69
|
+
PSC_PARTY = 'Partit dels Socialistes de Catalunya (PSC-PSOE)'.freeze
|
|
70
|
+
VOX_PARTY = 'Vox'.freeze
|
|
71
|
+
|
|
72
|
+
COALITIONS = [[CEC_PARTY, CS_PARTY, PSC_PARTY, PP_PARTY],
|
|
73
|
+
[CEC_PARTY, ERC_PARTY],
|
|
74
|
+
[CEC_PARTY, ERC_PARTY, JXCAT_PARTY],
|
|
75
|
+
[CEC_PARTY, ERC_PARTY, PSC_PARTY],
|
|
76
|
+
[CS_PARTY, PSC_PARTY, PP_PARTY],
|
|
77
|
+
[CS_PARTY, PSC_PARTY, PP_PARTY, VOX_PARTY],
|
|
78
|
+
[CUP_PARTY, ERC_PARTY, JXCAT_PARTY],
|
|
79
|
+
[ERC_PARTY, JXCAT_PARTY]].freeze
|
|
80
|
+
|
|
81
|
+
SEAT_DISTRIBUTION = { 'Barcelona' => 85, 'Girona' => 17, 'Lleida' => 15,
|
|
82
|
+
'Tarragona' => 18 }.freeze
|
|
83
|
+
|
|
84
|
+
THRESHOLD = 0.03
|
|
85
|
+
|
|
86
|
+
def election_results_of_2017
|
|
87
|
+
if @election_results_of_2017.nil?
|
|
88
|
+
@election_results_of_2017 = load_election_results( \
|
|
89
|
+
'catalonia-20171221.psv'
|
|
90
|
+
)
|
|
91
|
+
end
|
|
92
|
+
@election_results_of_2017
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def electoral_system
|
|
96
|
+
if @electoral_system.nil?
|
|
97
|
+
@electoral_system = MultiDistrictProportional.new( \
|
|
98
|
+
overall_election_results_of_2017,
|
|
99
|
+
election_results_of_2017,
|
|
100
|
+
SEAT_DISTRIBUTION,
|
|
101
|
+
DhondtDenominators,
|
|
102
|
+
THRESHOLD
|
|
103
|
+
)
|
|
104
|
+
end
|
|
105
|
+
@electoral_system
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
# Extension of Catalonia with Vox
|
|
110
|
+
class CataloniaWithVox < Catalonia
|
|
111
|
+
def area_code
|
|
112
|
+
'ES-CT∪{Vox}'
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
def election_results_of_2017
|
|
116
|
+
if @election_results_of_2017.nil?
|
|
117
|
+
@election_results_of_2017 = load_election_results(
|
|
118
|
+
'catalonia-20171221-with-vox.psv'
|
|
119
|
+
)
|
|
120
|
+
end
|
|
121
|
+
@election_results_of_2017
|
|
122
|
+
end
|
|
123
|
+
end
|
|
124
|
+
end
|
|
@@ -0,0 +1,164 @@
|
|
|
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: "Resultater - Hele landet - Folketingsvalg torsdag 18. juni 2015 -
|
|
19
|
+
# Danmarks Statistik". Retrieved on 28 December 2018.
|
|
20
|
+
# URL: http://www.dst.dk/valg/Valg1487635/valgopg/valgopgHL.htm
|
|
21
|
+
|
|
22
|
+
# Extended with Nye Borgerlige equal to Det Konservative Folkeparti
|
|
23
|
+
# Extended with Klaus Riskær Pedersen equal to Venstre
|
|
24
|
+
# Extended with Stram Kurs equal to Nye Borgerlige
|
|
25
|
+
|
|
26
|
+
Københavns Storkreds | Socialdemokraterne | 96,753
|
|
27
|
+
Københavns Storkreds | Radikale Venstre | 40578
|
|
28
|
+
Københavns Storkreds | Det Konservative Folkeparti | 13471
|
|
29
|
+
Københavns Storkreds | Nye Borgerlige | 13471
|
|
30
|
+
Københavns Storkreds | Stram Kurs | 13471
|
|
31
|
+
Københavns Storkreds | Socialistisk Folkeparti | 28260
|
|
32
|
+
Københavns Storkreds | Liberal Alliance | 37935
|
|
33
|
+
Københavns Storkreds | Kristendemokraterne | 1599
|
|
34
|
+
Københavns Storkreds | Dansk Folkeparti | 49575
|
|
35
|
+
Københavns Storkreds | Venstre | 44721
|
|
36
|
+
Københavns Storkreds | Klaus Riskær Pedersen | 44721
|
|
37
|
+
Københavns Storkreds | Enhedslisten–De Rød-Grønne | 71140
|
|
38
|
+
Københavns Storkreds | Alternativet | 48475
|
|
39
|
+
|
|
40
|
+
Københavns Omegns Storkreds | Socialdemokraterne | 90361
|
|
41
|
+
Københavns Omegns Storkreds | Radikale Venstre | 16710
|
|
42
|
+
Københavns Omegns Storkreds | Det Konservative Folkeparti | 13840
|
|
43
|
+
Københavns Omegns Storkreds | Nye Borgerlige | 13840
|
|
44
|
+
Københavns Omegns Storkreds | Stram Kurs | 13840
|
|
45
|
+
Københavns Omegns Storkreds | Socialistisk Folkeparti | 14619
|
|
46
|
+
Københavns Omegns Storkreds | Liberal Alliance | 25982
|
|
47
|
+
Københavns Omegns Storkreds | Kristendemokraterne | 1365
|
|
48
|
+
Københavns Omegns Storkreds | Dansk Folkeparti | 62419
|
|
49
|
+
Københavns Omegns Storkreds | Venstre | 46092
|
|
50
|
+
Københavns Omegns Storkreds | Klaus Riskær Pedersen | 46092
|
|
51
|
+
Københavns Omegns Storkreds | Enhedslisten–De Rød-Grønne | 25364
|
|
52
|
+
Københavns Omegns Storkreds | Alternativet | 13575
|
|
53
|
+
|
|
54
|
+
Nordsjællands Storkreds | Socialdemokraterne | 64822
|
|
55
|
+
Nordsjællands Storkreds | Radikale Venstre | 17515
|
|
56
|
+
Nordsjællands Storkreds | Det Konservative Folkeparti | 15123
|
|
57
|
+
Nordsjællands Storkreds | Nye Borgerlige | 15123
|
|
58
|
+
Nordsjællands Storkreds | Stram Kurs | 15123
|
|
59
|
+
Nordsjællands Storkreds | Socialistisk Folkeparti | 11182
|
|
60
|
+
Nordsjællands Storkreds | Liberal Alliance | 32744
|
|
61
|
+
Nordsjællands Storkreds | Kristendemokraterne | 1680
|
|
62
|
+
Nordsjællands Storkreds | Dansk Folkeparti | 53980
|
|
63
|
+
Nordsjællands Storkreds | Venstre | 59155
|
|
64
|
+
Nordsjællands Storkreds | Klaus Riskær Pedersen | 59155
|
|
65
|
+
Nordsjællands Storkreds | Enhedslisten–De Rød-Grønne | 18171
|
|
66
|
+
Nordsjællands Storkreds | Alternativet | 12957
|
|
67
|
+
|
|
68
|
+
Bornholms Storkreds | Socialdemokraterne | 8683
|
|
69
|
+
Bornholms Storkreds | Radikale Venstre | 427
|
|
70
|
+
Bornholms Storkreds | Det Konservative Folkeparti | 441
|
|
71
|
+
Bornholms Storkreds | Nye Borgerlige | 441
|
|
72
|
+
Bornholms Storkreds | Stram Kurs | 441
|
|
73
|
+
Bornholms Storkreds | Socialistisk Folkeparti | 716
|
|
74
|
+
Bornholms Storkreds | Liberal Alliance | 1037
|
|
75
|
+
Bornholms Storkreds | Kristendemokraterne | 749
|
|
76
|
+
Bornholms Storkreds | Dansk Folkeparti | 5168
|
|
77
|
+
Bornholms Storkreds | Venstre | 5257
|
|
78
|
+
Bornholms Storkreds | Klaus Riskær Pedersen | 5257
|
|
79
|
+
Bornholms Storkreds | Enhedslisten–De Rød-Grønne | 2175
|
|
80
|
+
Bornholms Storkreds | Alternativet | 1299
|
|
81
|
+
|
|
82
|
+
Sjællands Storkreds | Socialdemokraterne | 146464
|
|
83
|
+
Sjællands Storkreds | Radikale Venstre | 16906
|
|
84
|
+
Sjællands Storkreds | Det Konservative Folkeparti | 15083
|
|
85
|
+
Sjællands Storkreds | Nye Borgerlige | 15083
|
|
86
|
+
Sjællands Storkreds | Stram Kurs | 15083
|
|
87
|
+
Sjællands Storkreds | Socialistisk Folkeparti | 20575
|
|
88
|
+
Sjællands Storkreds | Liberal Alliance | 32598
|
|
89
|
+
Sjællands Storkreds | Kristendemokraterne | 1996
|
|
90
|
+
Sjællands Storkreds | Dansk Folkeparti | 134195
|
|
91
|
+
Sjællands Storkreds | Venstre | 102818
|
|
92
|
+
Sjællands Storkreds | Klaus Riskær Pedersen | 102818
|
|
93
|
+
Sjællands Storkreds | Enhedslisten–De Rød-Grønne | 35374
|
|
94
|
+
Sjællands Storkreds | Alternativet | 18202
|
|
95
|
+
|
|
96
|
+
Fyns Storkreds | Socialdemokraterne | 90061
|
|
97
|
+
Fyns Storkreds | Radikale Venstre | 10513
|
|
98
|
+
Fyns Storkreds | Det Konservative Folkeparti | 10849
|
|
99
|
+
Fyns Storkreds | Nye Borgerlige | 10849
|
|
100
|
+
Fyns Storkreds | Stram Kurs | 10849
|
|
101
|
+
Fyns Storkreds | Socialistisk Folkeparti | 13790
|
|
102
|
+
Fyns Storkreds | Liberal Alliance | 20271
|
|
103
|
+
Fyns Storkreds | Kristendemokraterne | 1293
|
|
104
|
+
Fyns Storkreds | Dansk Folkeparti | 67913
|
|
105
|
+
Fyns Storkreds | Venstre | 56673
|
|
106
|
+
Fyns Storkreds | Klaus Riskær Pedersen | 56673
|
|
107
|
+
Fyns Storkreds | Enhedslisten–De Rød-Grønne | 26575
|
|
108
|
+
Fyns Storkreds | Alternativet | 14165
|
|
109
|
+
|
|
110
|
+
Sydjyllands Storkreds | Socialdemokraterne | 104391
|
|
111
|
+
Sydjyllands Storkreds | Radikale Venstre | 13962
|
|
112
|
+
Sydjyllands Storkreds | Det Konservative Folkeparti | 9625
|
|
113
|
+
Sydjyllands Storkreds | Nye Borgerlige | 9625
|
|
114
|
+
Sydjyllands Storkreds | Stram Kurs | 9625
|
|
115
|
+
Sydjyllands Storkreds | Socialistisk Folkeparti | 13508
|
|
116
|
+
Sydjyllands Storkreds | Liberal Alliance | 33277
|
|
117
|
+
Sydjyllands Storkreds | Kristendemokraterne | 4792
|
|
118
|
+
Sydjyllands Storkreds | Dansk Folkeparti | 126058
|
|
119
|
+
Sydjyllands Storkreds | Venstre | 104483
|
|
120
|
+
Sydjyllands Storkreds | Klaus Riskær Pedersen | 104483
|
|
121
|
+
Sydjyllands Storkreds | Enhedslisten–De Rød-Grønne | 22614
|
|
122
|
+
Sydjyllands Storkreds | Alternativet | 11551
|
|
123
|
+
|
|
124
|
+
Østjyllands Storkreds | Socialdemokraterne | 132320
|
|
125
|
+
Østjyllands Storkreds | Radikale Venstre | 23876
|
|
126
|
+
Østjyllands Storkreds | Det Konservative Folkeparti | 13490
|
|
127
|
+
Østjyllands Storkreds | Nye Borgerlige | 13490
|
|
128
|
+
Østjyllands Storkreds | Stram Kurs | 13490
|
|
129
|
+
Østjyllands Storkreds | Socialistisk Folkeparti | 21100
|
|
130
|
+
Østjyllands Storkreds | Liberal Alliance | 40101
|
|
131
|
+
Østjyllands Storkreds | Kristendemokraterne | 4627
|
|
132
|
+
Østjyllands Storkreds | Dansk Folkeparti | 91621
|
|
133
|
+
Østjyllands Storkreds | Venstre | 90528
|
|
134
|
+
Østjyllands Storkreds | Klaus Riskær Pedersen | 90528
|
|
135
|
+
Østjyllands Storkreds | Enhedslisten–De Rød-Grønne | 35960
|
|
136
|
+
Østjyllands Storkreds | Alternativet | 29587
|
|
137
|
+
|
|
138
|
+
Vestjyllands Storkreds | Socialdemokraterne | 80122
|
|
139
|
+
Vestjyllands Storkreds | Radikale Venstre | 9183
|
|
140
|
+
Vestjyllands Storkreds | Det Konservative Folkeparti | 15928
|
|
141
|
+
Vestjyllands Storkreds | Nye Borgerlige | 15928
|
|
142
|
+
Vestjyllands Storkreds | Stram Kurs | 15928
|
|
143
|
+
Vestjyllands Storkreds | Socialistisk Folkeparti | 11720
|
|
144
|
+
Vestjyllands Storkreds | Liberal Alliance | 19377
|
|
145
|
+
Vestjyllands Storkreds | Kristendemokraterne | 7646
|
|
146
|
+
Vestjyllands Storkreds | Dansk Folkeparti | 69657
|
|
147
|
+
Vestjyllands Storkreds | Venstre | 89537
|
|
148
|
+
Vestjyllands Storkreds | Klaus Riskær Pedersen | 89537
|
|
149
|
+
Vestjyllands Storkreds | Enhedslisten–De Rød-Grønne | 14531
|
|
150
|
+
Vestjyllands Storkreds | Alternativet | 8642
|
|
151
|
+
|
|
152
|
+
Nordjyllands Storkreds | Socialdemokraterne | 110963
|
|
153
|
+
Nordjyllands Storkreds | Radikale Venstre | 11339
|
|
154
|
+
Nordjyllands Storkreds | Det Konservative Folkeparti | 10153
|
|
155
|
+
Nordjyllands Storkreds | Nye Borgerlige | 10153
|
|
156
|
+
Nordjyllands Storkreds | Stram Kurs | 10153
|
|
157
|
+
Nordjyllands Storkreds | Socialistisk Folkeparti | 12108
|
|
158
|
+
Nordjyllands Storkreds | Liberal Alliance | 21807
|
|
159
|
+
Nordjyllands Storkreds | Kristendemokraterne | 3330
|
|
160
|
+
Nordjyllands Storkreds | Dansk Folkeparti | 81160
|
|
161
|
+
Nordjyllands Storkreds | Venstre | 85924
|
|
162
|
+
Nordjyllands Storkreds | Klaus Riskær Pedersen | 85924
|
|
163
|
+
Nordjyllands Storkreds | Enhedslisten–De Rød-Grønne | 22559
|
|
164
|
+
Nordjyllands Storkreds | Alternativet | 10335
|