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,97 @@
|
|
|
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 (27): Ireland, with Independent
|
|
23
|
+
# Alliance (IA).
|
|
24
|
+
#
|
|
25
|
+
class EuropeanUnion27IrelandWithIa < Area
|
|
26
|
+
include Singleton
|
|
27
|
+
|
|
28
|
+
def area_code
|
|
29
|
+
'EU27[IE]∪{IA}'
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def coalitions
|
|
33
|
+
COALITIONS
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def no_of_seats
|
|
37
|
+
SEAT_DISTRIBUTION.values.inject(:+)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def population_size
|
|
41
|
+
POPULATION_SIZE
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def seats(simulation)
|
|
45
|
+
electoral_system.project(simulation)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
private
|
|
49
|
+
|
|
50
|
+
COALITIONS = [['Catholic Democrats (*)', 'Direct Democracy Ireland (*)',
|
|
51
|
+
'Fís Nua (*)', 'Independent Alliance (*)',
|
|
52
|
+
'Independents (*)', 'Renua Ireland (*)'],
|
|
53
|
+
['Fianna Fáil (RE)'],
|
|
54
|
+
['Fine Gael (EPP)'],
|
|
55
|
+
['Green Party (Greens/EFA)'],
|
|
56
|
+
['Independents 4 Change (GUE/NGL)', 'Sinn Féin (GUE/NGL)',
|
|
57
|
+
'Socialist Party (GUE/NGL)',
|
|
58
|
+
'Solidarity–People Before Profit (GUE/NGL)'],
|
|
59
|
+
['Labour Party (S&D)', 'Social Democrats (S&D)']].freeze
|
|
60
|
+
|
|
61
|
+
# Voter turnout on 24 May 2019
|
|
62
|
+
# Source: Web page with the official results of the elections of 24 May
|
|
63
|
+
# 2019, downloaded on 23 June 2019,
|
|
64
|
+
# https://en.wikipedia.org/wiki/2019_European_Parliament_election_in_Ireland
|
|
65
|
+
POPULATION_SIZE = 1_678_003
|
|
66
|
+
|
|
67
|
+
SEAT_DISTRIBUTION = { 'Dublin' => 4, 'Midlands–North-West' => 4,
|
|
68
|
+
'South' => 5 }
|
|
69
|
+
|
|
70
|
+
def election_results_of_2019
|
|
71
|
+
if @election_results_of_2019.nil?
|
|
72
|
+
@election_results_of_2019 = load_election_results( \
|
|
73
|
+
'european-union-ireland-20190524-ia.psv')
|
|
74
|
+
end
|
|
75
|
+
@election_results_of_2019
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def electoral_system
|
|
79
|
+
if @electoral_system.nil?
|
|
80
|
+
@electoral_system = MultiDistrictProportional.new( \
|
|
81
|
+
overall_election_results_of_2019,
|
|
82
|
+
election_results_of_2019,
|
|
83
|
+
SEAT_DISTRIBUTION,
|
|
84
|
+
DhondtDenominators)
|
|
85
|
+
end
|
|
86
|
+
@electoral_system
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def overall_election_results_of_2019
|
|
90
|
+
if @overall_election_results_of_2019.nil?
|
|
91
|
+
@overall_election_results_of_2019 = \
|
|
92
|
+
summarize_election_results(election_results_of_2019)
|
|
93
|
+
end
|
|
94
|
+
@overall_election_results_of_2019
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|
|
@@ -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 (27): Italy.
|
|
23
|
+
#
|
|
24
|
+
class EuropeanUnion27Italy < Area
|
|
25
|
+
include Singleton
|
|
26
|
+
|
|
27
|
+
def area_code
|
|
28
|
+
'EU27[IT]'
|
|
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['Südtiroler Volkspartei (EPP)'] = NO_OF_SVP_SEATS
|
|
46
|
+
seats['Partito Democratico (S&D)'] -= NO_OF_SVP_SEATS
|
|
47
|
+
seats
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
private
|
|
51
|
+
|
|
52
|
+
COALITIONS = [['Azione (S&D)', 'Liberi e Uguali (S&D)',
|
|
53
|
+
'Partito Democratico (S&D)'],
|
|
54
|
+
['Cambiamo! (*)', 'Insieme (*)'],
|
|
55
|
+
['CasaPound Italia (NI)', 'Movimento 5 Stelle (NI)'],
|
|
56
|
+
['Civica Popolare (RE)', 'Italia Viva (RE)',
|
|
57
|
+
'Più Europa (RE)'],
|
|
58
|
+
['Europa Verde (Greens/EFA)'],
|
|
59
|
+
['Forza Italia (EPP)', 'Südtiroler Volkspartei (EPP)'],
|
|
60
|
+
['Fratelli d’Italia (ECR)', 'Noi con l’Italia (ECR)'],
|
|
61
|
+
['Lega Nord (ID)'],
|
|
62
|
+
['Potere al Popolo (GUE/NGL)']].freeze
|
|
63
|
+
|
|
64
|
+
NO_OF_SEATS = 76
|
|
65
|
+
|
|
66
|
+
NO_OF_SVP_SEATS = 1
|
|
67
|
+
|
|
68
|
+
# Voter turnout on 26 May 2019
|
|
69
|
+
# Source: Web page with the official results of the elections of 26 May
|
|
70
|
+
# 2019, downloaded on 12 June 2019,
|
|
71
|
+
# https://en.wikipedia.org/wiki/2019_European_Parliament_election_in_Italy
|
|
72
|
+
POPULATION_SIZE = 26_783_732
|
|
73
|
+
|
|
74
|
+
THRESHOLD = 0.04
|
|
75
|
+
|
|
76
|
+
def electoral_system
|
|
77
|
+
if @electoral_system.nil?
|
|
78
|
+
@electoral_system = LargestRemainder.new(NO_OF_SEATS, HareQuota,
|
|
79
|
+
THRESHOLD)
|
|
80
|
+
end
|
|
81
|
+
@electoral_system
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
@@ -0,0 +1,81 @@
|
|
|
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 (27): the Netherlands.
|
|
23
|
+
#
|
|
24
|
+
class EuropeanUnion27Netherlands < Area
|
|
25
|
+
include Singleton
|
|
26
|
+
|
|
27
|
+
def area_code
|
|
28
|
+
'EU27[NL]'
|
|
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 = [['50Plus (EPP)', 'Christen-Democratisch Appèl (EPP)',
|
|
50
|
+
'ChristenUnie (EPP)'],
|
|
51
|
+
['Bij1 (*)', 'DENK (*)', 'Piratenpartij (*)'],
|
|
52
|
+
['Democraten 66 (RE)',
|
|
53
|
+
'Volkspartij voor Vrijheid en Democratie (RE)'],
|
|
54
|
+
['Staatkundig Gereformeerde Partij (ECR)',
|
|
55
|
+
'Forum voor Democratie (ECR)'],
|
|
56
|
+
['GroenLinks (Greens/EFA)'],
|
|
57
|
+
['Partij van de Arbeid (S&D)'],
|
|
58
|
+
['Partij voor de Dieren (GUE/NGL)',
|
|
59
|
+
'Socialistische Partij (GUE/NGL)'],
|
|
60
|
+
['Partij voor de Vrijheid (ID)']].freeze
|
|
61
|
+
|
|
62
|
+
NO_OF_SEATS = 29
|
|
63
|
+
|
|
64
|
+
# Voter turnout on 23 May 2019
|
|
65
|
+
# Source: Web page with the official results of the elections of 23 May
|
|
66
|
+
# 2019, downloaded on 13 June 2019,
|
|
67
|
+
# https://en.wikipedia.org/wiki/2019_European_Parliament_election_in_the_Netherlands
|
|
68
|
+
POPULATION_SIZE = 5_497_813
|
|
69
|
+
|
|
70
|
+
THRESHOLD = 1 / NO_OF_SEATS.to_f
|
|
71
|
+
|
|
72
|
+
def electoral_system
|
|
73
|
+
if @electoral_system.nil?
|
|
74
|
+
@electoral_system = SingleDistrictProportional.new(NO_OF_SEATS,
|
|
75
|
+
DhondtDenominators,
|
|
76
|
+
THRESHOLD)
|
|
77
|
+
end
|
|
78
|
+
@electoral_system
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
@@ -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 (27): Poland.
|
|
23
|
+
#
|
|
24
|
+
class EuropeanUnion27Poland < Area
|
|
25
|
+
include Singleton
|
|
26
|
+
|
|
27
|
+
def area_code
|
|
28
|
+
'EU27[PL]'
|
|
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 = [['Konfederacja (NI)', 'KORWiN (NI)', 'Kukiz’15 (NI)'],
|
|
50
|
+
['Koalicja Europejska (EPP)',
|
|
51
|
+
'Koalicja Obywatelska (EPP)',
|
|
52
|
+
'Koalicja Polska (EPP)',
|
|
53
|
+
'Platforma Obywatelska (EPP)',
|
|
54
|
+
'Polskie Stronnictwo Ludowe (EPP)'],
|
|
55
|
+
['Lewica (S&D)',
|
|
56
|
+
'Lewica Razem (S&D)',
|
|
57
|
+
'Sojusz Lewicy Demokratycznej (S&D)',
|
|
58
|
+
'Wiosna (S&D)',
|
|
59
|
+
'Wiosna–Partia Razem (S&D)'],
|
|
60
|
+
['.Nowoczesna (RE)'],
|
|
61
|
+
['Bezpartyjni Samorządowcy (*)'],
|
|
62
|
+
['Prawo i Sprawiedliwość (ECR)',
|
|
63
|
+
'Zjednoczona Prawica (ECR)']].freeze
|
|
64
|
+
|
|
65
|
+
NO_OF_SEATS = 52
|
|
66
|
+
|
|
67
|
+
# Voter turnout on 26 May 2019
|
|
68
|
+
# Source: Web page with the official results of the elections of 26 May
|
|
69
|
+
# 2019, downloaded on 25 June 2019,
|
|
70
|
+
# https://en.wikipedia.org/wiki/2019_European_Parliament_election_in_Poland
|
|
71
|
+
POPULATION_SIZE = 13_647_311
|
|
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,78 @@
|
|
|
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 27: Poland.
|
|
23
|
+
#
|
|
24
|
+
class EuropeanUnion27Romania < Area
|
|
25
|
+
include Singleton
|
|
26
|
+
|
|
27
|
+
def area_code
|
|
28
|
+
'EU27[RO]'
|
|
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 = [['Alianța 2020 USR-PLUS (RE)',
|
|
50
|
+
'Partidul Libertății, Unității și Solidarității (RE)',
|
|
51
|
+
'Uniunea Salvați România (RE)'],
|
|
52
|
+
['Partidul Alianța Liberalilor și Democraților (*)'],
|
|
53
|
+
['Partidul Mișcarea Populară (EPP)',
|
|
54
|
+
'Partidul Național Liberal (EPP)',
|
|
55
|
+
'Uniunea Democrată Maghiară din România (EPP)'],
|
|
56
|
+
['Partidul Social Democrat (S&D)',
|
|
57
|
+
'PRO România (S&D)']].freeze
|
|
58
|
+
|
|
59
|
+
NO_OF_SEATS = 33
|
|
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 28 July 2019,
|
|
64
|
+
# https://en.wikipedia.org/wiki/2019_European_Parliament_election_in_Romania
|
|
65
|
+
POPULATION_SIZE = 9_352_472
|
|
66
|
+
|
|
67
|
+
THRESHOLD = 0.05
|
|
68
|
+
|
|
69
|
+
def electoral_system
|
|
70
|
+
if @electoral_system.nil?
|
|
71
|
+
@electoral_system = SingleDistrictProportional.new(NO_OF_SEATS,
|
|
72
|
+
DhondtDenominators,
|
|
73
|
+
THRESHOLD)
|
|
74
|
+
end
|
|
75
|
+
@electoral_system
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
@@ -0,0 +1,80 @@
|
|
|
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 (27): Slovakia.
|
|
23
|
+
#
|
|
24
|
+
class EuropeanUnion27Slovakia < Area
|
|
25
|
+
include Singleton
|
|
26
|
+
|
|
27
|
+
def area_code
|
|
28
|
+
'EU27[SK]'
|
|
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 = [['Dobrá voľba (*)', 'VLASŤ (*)'],
|
|
50
|
+
['Kotleba–Ľudová strana Naše Slovensko (NI)'],
|
|
51
|
+
['Kresťanskodemokratické hnutie (EPP)', 'MOST–HÍD (EPP)',
|
|
52
|
+
'OBYČAJNÍ ĽUDIA a nezávislé osobnosti (EPP)',
|
|
53
|
+
'Strana maďarskej koalície–Magyar Koalíció Pártja (EPP)',
|
|
54
|
+
'Za ľudí (EPP)'],
|
|
55
|
+
['NOVA (ECR)', 'Sloboda a Solidarita (ECR)',
|
|
56
|
+
'Slovenská národná strana (ECR)'],
|
|
57
|
+
['Progresívne Slovensko–SPOLU–Občianska Demokracia (RE)'],
|
|
58
|
+
['SME RODINA (ID)'],
|
|
59
|
+
['SMER–sociálna demokracia (S&D)']].freeze
|
|
60
|
+
|
|
61
|
+
NO_OF_SEATS = 14
|
|
62
|
+
|
|
63
|
+
# Voter turnout on 25 May 2019
|
|
64
|
+
# Source: Web page with the official results of the elections of 25 May
|
|
65
|
+
# 2019, downloaded on 24 June 2019,
|
|
66
|
+
# https://en.wikipedia.org/wiki/2019_European_Parliament_election_in_Slovakia
|
|
67
|
+
POPULATION_SIZE = 1_007_398
|
|
68
|
+
|
|
69
|
+
THRESHOLD = 0.05
|
|
70
|
+
|
|
71
|
+
def electoral_system
|
|
72
|
+
if @electoral_system.nil?
|
|
73
|
+
@electoral_system = LargestRemainder.new(NO_OF_SEATS,
|
|
74
|
+
HagenbachBischoffQuota,
|
|
75
|
+
THRESHOLD)
|
|
76
|
+
end
|
|
77
|
+
@electoral_system
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|