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.
- 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/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 +150 -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/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 +286 -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 +82 -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-jxcat.rb +109 -0
- data/lib/sapor/regional_data/catalonia-no-jxsi.rb +96 -0
- data/lib/sapor/regional_data/catalonia.rb +96 -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 +81 -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_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 +81 -0
- data/lib/sapor/regional_data/european_union_croatia.rb +81 -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_france_2019.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.psv +85 -0
- data/lib/sapor/regional_data/iceland.rb +133 -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.rb +112 -0
- data/lib/sapor/regional_data/latvia_kpv.rb +112 -0
- data/lib/sapor/regional_data/latvia_kpv_p_par.rb +112 -0
- data/lib/sapor/regional_data/latvia_kpv_par.rb +112 -0
- data/lib/sapor/regional_data/luxembourg-20131020.psv +76 -0
- data/lib/sapor/regional_data/luxembourg.rb +82 -0
- data/lib/sapor/regional_data/netherlands.rb +108 -0
- data/lib/sapor/regional_data/norway.rb +425 -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 +74 -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_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_2019_spec.rb +73 -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/largest_remainder_spec.rb +79 -0
- data/spec/unit/latvia_kpv_p_par_spec.rb +38 -0
- data/spec/unit/latvia_kpv_par_spec.rb +38 -0
- data/spec/unit/latvia_kpv_spec.rb +38 -0
- data/spec/unit/latvia_spec.rb +60 -0
- data/spec/unit/luxembourg_spec.rb +54 -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 +64 -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 +490 -0
|
@@ -0,0 +1,84 @@
|
|
|
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 the European Union: France.
|
|
23
|
+
#
|
|
24
|
+
class EuropeanUnionFrance2019 < Area
|
|
25
|
+
include Singleton
|
|
26
|
+
|
|
27
|
+
def area_code
|
|
28
|
+
'EU[FR]@2019'
|
|
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
|
+
electoral_system.project(simulation)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
private
|
|
48
|
+
|
|
49
|
+
COALITIONS = [['Agir, la droite constructive–Union des démocrates et' \
|
|
50
|
+
' indépendants (RE)',
|
|
51
|
+
'La République en marche–Mouvement démocrate (RE)'],
|
|
52
|
+
['Debout la France (ECR)'],
|
|
53
|
+
['Europe Écologie Les Verts (Greens/EFA)'],
|
|
54
|
+
['Rassemblement national (ID)'],
|
|
55
|
+
['Génération·s, le mouvement (S&D)',
|
|
56
|
+
'Parti socialiste (S&D)'],
|
|
57
|
+
['La France insoumise (GUE/NGL)',
|
|
58
|
+
'Nouveau Parti anticapitaliste (GUE/NGL)',
|
|
59
|
+
'Parti communiste français (GUE/NGL)'],
|
|
60
|
+
['Les Patriotes (EFDD)'],
|
|
61
|
+
['Les Républicains (EPP)'],
|
|
62
|
+
['Lutte Ouvrière (*)', 'Mouvement des gilets jaunes (*)',
|
|
63
|
+
'Résistons! (*)', 'Union populaire républicaine (*)']].freeze
|
|
64
|
+
|
|
65
|
+
NO_OF_SEATS = 79
|
|
66
|
+
|
|
67
|
+
# Voter turnout on 25 May 2014
|
|
68
|
+
# Source: Web page with the official results of the elections of 25 May
|
|
69
|
+
# 2014, downloaded on 8 February 2018,
|
|
70
|
+
# https://en.wikipedia.org/wiki/European_Parliament_election,_2014_(France)
|
|
71
|
+
POPULATION_SIZE = 18_955_636
|
|
72
|
+
|
|
73
|
+
THRESHOLD = 0.05
|
|
74
|
+
|
|
75
|
+
def electoral_system
|
|
76
|
+
if @electoral_system.nil?
|
|
77
|
+
@electoral_system = SingleDistrictProportional.new(NO_OF_SEATS,
|
|
78
|
+
DhondtDenominators,
|
|
79
|
+
THRESHOLD)
|
|
80
|
+
end
|
|
81
|
+
@electoral_system
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
@@ -0,0 +1,73 @@
|
|
|
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 the European Union: the French-speaking part.
|
|
22
|
+
#
|
|
23
|
+
class EuropeanUnionFrenchCommunityOfBelgium < Area
|
|
24
|
+
include Singleton
|
|
25
|
+
|
|
26
|
+
def area_code
|
|
27
|
+
'EU[BE-FRC]'
|
|
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
|
+
private
|
|
47
|
+
|
|
48
|
+
COALITIONS = [['Centre démocrate humaniste (EPP)'],
|
|
49
|
+
['Debout les Belges (*)', 'La Droite (*)', 'FW (*)',
|
|
50
|
+
'ISLAM (*)', 'Parti Populaire (*)', 'R.W.F. (*)',
|
|
51
|
+
'Wallonie d’Abord (*)'],
|
|
52
|
+
['DéFI (RE)', 'Mouvement Réformateur (RE)'],
|
|
53
|
+
['Ecolo (Greens/EFA)', 'PIRATE (Greens/EFA)'],
|
|
54
|
+
['Parti Socialiste (S&D)'],
|
|
55
|
+
['Parti du Travail de Belgique (GUE/NGL)']].freeze
|
|
56
|
+
|
|
57
|
+
NO_OF_SEATS = 8
|
|
58
|
+
|
|
59
|
+
# Voter turnout on 26 May 2019
|
|
60
|
+
# Source: Web page with the official results of the elections of 26 May
|
|
61
|
+
# 2019, downloaded on 24 September 2019,
|
|
62
|
+
# https://verkiezingen2019.belgium.be/nl/resultaten-cijfers?el=EU&id=EUL92094
|
|
63
|
+
POPULATION_SIZE = 2_439_775
|
|
64
|
+
|
|
65
|
+
def electoral_system
|
|
66
|
+
if @electoral_system.nil?
|
|
67
|
+
@electoral_system = SingleDistrictProportional.new(NO_OF_SEATS, \
|
|
68
|
+
DhondtDenominators)
|
|
69
|
+
end
|
|
70
|
+
@electoral_system
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
@@ -0,0 +1,86 @@
|
|
|
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 the European Union: Germany.
|
|
23
|
+
#
|
|
24
|
+
class EuropeanUnionGermany < Area
|
|
25
|
+
include Singleton
|
|
26
|
+
|
|
27
|
+
def area_code
|
|
28
|
+
'EU[DE]'
|
|
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
|
+
electoral_system.project(simulation)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
private
|
|
48
|
+
|
|
49
|
+
COALITIONS = [['Alternative für Deutschland (ID)'],
|
|
50
|
+
['AUF (ECR)', 'Familienpartei Deutschlands (ECR)',
|
|
51
|
+
'Partei Bibeltreuer Christen (ECR)'],
|
|
52
|
+
['Bayernpartei (Greens/EFA)',
|
|
53
|
+
'Bündnis 90/Die Grünen (Greens/EFA)',
|
|
54
|
+
'Die PARTEI (Greens/EFA)',
|
|
55
|
+
'Ökologisch-Demokratische Partei (Greens/EFA)',
|
|
56
|
+
'Piratenpartei Deutschland (Greens/EFA)',
|
|
57
|
+
'Volt Europa (Greens/EFA)'],
|
|
58
|
+
['Bürgerbewegung pro NRW (*)', 'BüSo (*)',
|
|
59
|
+
'Christliche Mitte (*)', 'Die Republikaner (*)', 'MLPD (*)',
|
|
60
|
+
'NPD (*)', 'Sozialistische Gleichheitspartei (*)',
|
|
61
|
+
'Volksabstimmung (*)'],
|
|
62
|
+
['Christlich Demokratische Union Deutschlands (EPP)',
|
|
63
|
+
'Christlich-Soziale Union in Bayern (EPP)'],
|
|
64
|
+
['Die Linke (GUE/NGL)', 'DKP (GUE/NGL)',
|
|
65
|
+
'Partei Mensch Umwelt Tierschutz (GUE/NGL)'],
|
|
66
|
+
['Freie Demokratische Partei (RE)', 'Freie Wähler (RE)'],
|
|
67
|
+
['Sozialdemokratische Partei Deutschlands (S&D)']].freeze
|
|
68
|
+
|
|
69
|
+
NO_OF_SEATS = 96
|
|
70
|
+
|
|
71
|
+
# Voter turnout on 26 May 2019
|
|
72
|
+
# Source: Wikipedia page with the results of the elections of 26 May 2019,
|
|
73
|
+
# downloaded on 9 June 2019,
|
|
74
|
+
# https://en.wikipedia.org/wiki/2019_European_Parliament_election_in_Germany
|
|
75
|
+
POPULATION_SIZE = 37_389_231
|
|
76
|
+
|
|
77
|
+
def electoral_system
|
|
78
|
+
if @electoral_system.nil?
|
|
79
|
+
@electoral_system = SingleDistrictProportional.new(
|
|
80
|
+
NO_OF_SEATS, SainteLagueDenominators
|
|
81
|
+
)
|
|
82
|
+
end
|
|
83
|
+
@electoral_system
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
@@ -0,0 +1,98 @@
|
|
|
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 the European Union: Great-Britain.
|
|
23
|
+
#
|
|
24
|
+
class EuropeanUnionGreatBritain < Area
|
|
25
|
+
include Singleton
|
|
26
|
+
|
|
27
|
+
def area_code
|
|
28
|
+
'EU[GB-GBN]'
|
|
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 population_size
|
|
40
|
+
POPULATION_SIZE
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def seats(simulation)
|
|
44
|
+
electoral_system.project(simulation)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def overall_election_results_of_2019
|
|
48
|
+
if @overall_election_results_of_2019.nil?
|
|
49
|
+
@overall_election_results_of_2019 = \
|
|
50
|
+
summarize_election_results(election_results_of_2019)
|
|
51
|
+
end
|
|
52
|
+
@overall_election_results_of_2019
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
private
|
|
56
|
+
|
|
57
|
+
COALITIONS = [['Brexit Party (NI)'],
|
|
58
|
+
['Change UK (RE)', 'Liberal Democrats (RE)'],
|
|
59
|
+
['Conservative Party (ECR)'],
|
|
60
|
+
['Green Party (Greens/EFA)',
|
|
61
|
+
'Plaid Cymru (Greens/EFA)',
|
|
62
|
+
'Scottish National Party (Greens/EFA)'],
|
|
63
|
+
['Labour Party (S&D)'],
|
|
64
|
+
['UK Independence Party (ID)']].freeze
|
|
65
|
+
|
|
66
|
+
# Voter turnout on 23 May 2019
|
|
67
|
+
# Source: Web page with the official results of the elections of 23 May
|
|
68
|
+
# 2019, downloaded on 7 July 2019,
|
|
69
|
+
# https://en.wikipedia.org/wiki/2019_European_Parliament_election_in_the_United_Kingdom
|
|
70
|
+
POPULATION_SIZE = 16_627_254
|
|
71
|
+
|
|
72
|
+
SEAT_DISTRIBUTION = { 'East Midlands' => 5, 'East of England' => 7,
|
|
73
|
+
'London' => 8, 'North East England' => 3,
|
|
74
|
+
'North West England' => 8, 'South East England' => 10,
|
|
75
|
+
'South West England' => 6, 'West Midlands' => 7,
|
|
76
|
+
'Yorkshire and the Humber' => 6, 'Scotland' => 6,
|
|
77
|
+
'Wales' => 4}
|
|
78
|
+
|
|
79
|
+
def election_results_of_2019
|
|
80
|
+
if @election_results_of_2019.nil?
|
|
81
|
+
@election_results_of_2019 = load_election_results( \
|
|
82
|
+
'european-union-great-britain-20190523.psv')
|
|
83
|
+
end
|
|
84
|
+
@election_results_of_2019
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def electoral_system
|
|
88
|
+
if @electoral_system.nil?
|
|
89
|
+
@electoral_system = MultiDistrictProportional.new( \
|
|
90
|
+
overall_election_results_of_2019,
|
|
91
|
+
election_results_of_2019,
|
|
92
|
+
SEAT_DISTRIBUTION,
|
|
93
|
+
DhondtDenominators)
|
|
94
|
+
end
|
|
95
|
+
@electoral_system
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
end
|
|
@@ -0,0 +1,77 @@
|
|
|
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 the European Union: Greece.
|
|
23
|
+
#
|
|
24
|
+
class EuropeanUnionGreece < Area
|
|
25
|
+
include Singleton
|
|
26
|
+
|
|
27
|
+
def area_code
|
|
28
|
+
'EU[GR]'
|
|
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
|
+
electoral_system.project(simulation)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
private
|
|
48
|
+
|
|
49
|
+
COALITIONS = [['Ανεξάρτητοι Έλληνες (ECR)', 'Ελληνική Λύση (ECR)'],
|
|
50
|
+
['Ένωση Κεντρώων (RE)'],
|
|
51
|
+
['Κίνημα Αλλαγής (S&D)', 'Το Ποτάμι (S&D)'],
|
|
52
|
+
['Κομμουνιστικό Κόμμα Ελλάδας (NI)', 'Χρυσή Αυγή (NI)'],
|
|
53
|
+
['Νέα Δημοκρατία (EPP)'],
|
|
54
|
+
['Λαϊκή Ενότητα (GUE/NGL)',
|
|
55
|
+
'Μέτωπο Ευρωπαϊκής Ρεαλιστικής Ανυπακοής (GUE/NGL)',
|
|
56
|
+
'Πλεύση Ελευθερίας (GUE/NGL)',
|
|
57
|
+
'Συνασπισμός Ριζοσπαστικής Αριστεράς (GUE/NGL)']].freeze
|
|
58
|
+
|
|
59
|
+
NO_OF_SEATS = 21
|
|
60
|
+
|
|
61
|
+
# Voter turnout on 26 May 2019
|
|
62
|
+
# Source: Web page with the official results of the elections of 26 May
|
|
63
|
+
# 2019, downloaded on 12 June 2019,
|
|
64
|
+
# https://en.wikipedia.org/wiki/2019_European_Parliament_election_in_Greece
|
|
65
|
+
POPULATION_SIZE = 5_656_122
|
|
66
|
+
|
|
67
|
+
THRESHOLD = 0.03
|
|
68
|
+
|
|
69
|
+
def electoral_system
|
|
70
|
+
if @electoral_system.nil?
|
|
71
|
+
@electoral_system = LargestRemainder.new(NO_OF_SEATS, DroopQuota,
|
|
72
|
+
THRESHOLD, true)
|
|
73
|
+
end
|
|
74
|
+
@electoral_system
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
@@ -0,0 +1,76 @@
|
|
|
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 the European Union: Hungary.
|
|
23
|
+
#
|
|
24
|
+
class EuropeanUnionHungary < Area
|
|
25
|
+
include Singleton
|
|
26
|
+
|
|
27
|
+
def area_code
|
|
28
|
+
'EU[HU]'
|
|
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
|
+
electoral_system.project(simulation)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
private
|
|
48
|
+
|
|
49
|
+
COALITIONS = [['Demokratikus Koalíció (S&D)',
|
|
50
|
+
'Magyar Szocialista Párt (S&D)',
|
|
51
|
+
'Magyar Szocialista Párt–Párbeszéd (S&D)'],
|
|
52
|
+
['Együtt (Greens/EFA)', 'Lehet Más a Politika (Greens/EFA)',
|
|
53
|
+
'Párbeszéd (Greens/EFA)'],
|
|
54
|
+
['Fidesz–Kereszténydemokrata Néppárt (EPP)'],
|
|
55
|
+
['HNEM (*)', 'SMS (*)'],
|
|
56
|
+
['Jobbik (NI)', 'Mi Hazánk Mozgalom (NI)',
|
|
57
|
+
'Magyar Kétfarkú Kutya Párt (NI)'],
|
|
58
|
+
['MLP (RE)', 'Momentum Mozgalom (RE)']].freeze
|
|
59
|
+
|
|
60
|
+
NO_OF_SEATS = 21
|
|
61
|
+
|
|
62
|
+
# Voter turnout on 26 May 2019
|
|
63
|
+
# Source: Web page with the official results of the elections of 26 May
|
|
64
|
+
# 2019, downloaded on 22 June 2019,
|
|
65
|
+
# https://en.wikipedia.org/wiki/2019_European_Parliament_election_in_Hungary
|
|
66
|
+
POPULATION_SIZE = 3_470_257
|
|
67
|
+
|
|
68
|
+
def electoral_system
|
|
69
|
+
if @electoral_system.nil?
|
|
70
|
+
@electoral_system = SingleDistrictProportional.new(NO_OF_SEATS, \
|
|
71
|
+
DhondtDenominators)
|
|
72
|
+
end
|
|
73
|
+
@electoral_system
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|