sapor 0.3.4
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 +82 -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,116 @@
|
|
|
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 Hungary.
|
|
23
|
+
#
|
|
24
|
+
class Hungary < Area
|
|
25
|
+
include Singleton
|
|
26
|
+
|
|
27
|
+
def area_code
|
|
28
|
+
'HU'
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def coalitions
|
|
32
|
+
COALITIONS
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def individual_constituencies_seats(simulation)
|
|
36
|
+
individual_constituencies_electoral_system.project(simulation)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def no_of_seats
|
|
40
|
+
NO_OF_PROPORTIONAL_SEATS + \
|
|
41
|
+
individual_constituencies_election_results_of_2014.size
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def overall_individual_constituencies_election_results_of_2014
|
|
45
|
+
if @overall_individual_constituencies_election_results_of_2014.nil?
|
|
46
|
+
@overall_individual_constituencies_election_results_of_2014 = \
|
|
47
|
+
summarize_election_results( \
|
|
48
|
+
individual_constituencies_election_results_of_2014
|
|
49
|
+
)
|
|
50
|
+
end
|
|
51
|
+
@overall_individual_constituencies_election_results_of_2014
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def party_list_seats(simulation)
|
|
55
|
+
PARTY_LIST_ELECTORAL_SYSTEM.project(simulation)
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def population_size
|
|
59
|
+
# Voter turnout on 6 April 2014
|
|
60
|
+
# Source: Wikipedia, Hungarian parliamentary election, 2014, downloaded
|
|
61
|
+
# on 10 November 2017,
|
|
62
|
+
# https://en.wikipedia.org/wiki/Hungarian_parliamentary_election,_2014
|
|
63
|
+
5_047_363
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def seats(simulation)
|
|
67
|
+
individual_seats = individual_constituencies_seats(simulation)
|
|
68
|
+
party_seats = party_list_seats(simulation)
|
|
69
|
+
join_seats(individual_seats, party_seats)
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def threshold
|
|
73
|
+
THRESHOLD
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
private
|
|
77
|
+
|
|
78
|
+
NO_OF_PROPORTIONAL_SEATS = 93
|
|
79
|
+
THRESHOLD = 0.05
|
|
80
|
+
PARTY_LIST_ELECTORAL_SYSTEM = SingleDistrictProportional.new(\
|
|
81
|
+
NO_OF_PROPORTIONAL_SEATS, DhondtDenominators, THRESHOLD
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
COALITIONS = [%w(DK Együtt MLP MSZP Párbeszéd), ['Fidesz–KDNP']].freeze
|
|
85
|
+
|
|
86
|
+
def individual_constituencies_election_results_of_2014
|
|
87
|
+
if @individual_constituencies_election_results_of_2014.nil?
|
|
88
|
+
@individual_constituencies_election_results_of_2014 = \
|
|
89
|
+
load_election_results('hungary-2014.psv')
|
|
90
|
+
end
|
|
91
|
+
@individual_constituencies_election_results_of_2014
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
def individual_constituencies_electoral_system
|
|
95
|
+
if @individual_constituencies_electoral_system.nil?
|
|
96
|
+
@individual_constituencies_electoral_system = FirstPastThePost.new(
|
|
97
|
+
overall_individual_constituencies_election_results_of_2014,
|
|
98
|
+
individual_constituencies_election_results_of_2014
|
|
99
|
+
)
|
|
100
|
+
end
|
|
101
|
+
@individual_constituencies_electoral_system
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
def join_seats(seats1, seats2)
|
|
105
|
+
results = seats1.dup
|
|
106
|
+
seats2.each_pair do |party, result|
|
|
107
|
+
if results.key?(party)
|
|
108
|
+
results[party] += result
|
|
109
|
+
else
|
|
110
|
+
results[party] = result
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
results
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
end
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Statistical Analysis of Polling Results (SAPoR)
|
|
2
|
+
# Copyright (C) 2016 Filip van Laenen <f.a.vanlaenen@ieee.org>
|
|
3
|
+
#
|
|
4
|
+
# This file is part of SAPoR.
|
|
5
|
+
#
|
|
6
|
+
# SAPoR is free software: you can redistribute it and/or modify it under the
|
|
7
|
+
# terms of the GNU General Public License as published by the Free Software
|
|
8
|
+
# Foundation, either version 3 of the License, or (at your option) any later
|
|
9
|
+
# version.
|
|
10
|
+
#
|
|
11
|
+
# SAPoR is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
12
|
+
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
13
|
+
# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
14
|
+
#
|
|
15
|
+
# You can find a copy of the GNU General Public License in /doc/gpl.txt
|
|
16
|
+
#
|
|
17
|
+
|
|
18
|
+
# Source: Web page with the official results of the elections of 29 October
|
|
19
|
+
# 2016, downloaded on 17 September 2017,
|
|
20
|
+
# URL: http://icelandmonitor.mbl.is/elections2016/
|
|
21
|
+
|
|
22
|
+
Norðaustur | Sjálfstæðisflokkurinn | 6,014
|
|
23
|
+
Norðaustur | Framsóknarflokkurinn | 2,271
|
|
24
|
+
Norðaustur | Miðflokkurinn | 2,271
|
|
25
|
+
Norðaustur | Vinstrihreyfingin – grænt framboð | 4,539
|
|
26
|
+
Norðaustur | Píratar | 2,265
|
|
27
|
+
Norðaustur | Samfylkingin | 1,816
|
|
28
|
+
Norðaustur | Viðreisn | 1,482
|
|
29
|
+
Norðaustur | Björt framtíð | 774
|
|
30
|
+
Norðaustur | Flokkur fólksins | 645
|
|
31
|
+
Norðaustur | Dögun | 415
|
|
32
|
+
Norðaustur | Alþýðufylkingin | 211
|
|
33
|
+
|
|
34
|
+
Norðvestur | Sjálfstæðisflokkurinn | 4,951
|
|
35
|
+
Norðvestur | Framsóknarflokkurinn | 1,741
|
|
36
|
+
Norðvestur | Miðflokkurinn | 1,741
|
|
37
|
+
Norðvestur | Vinstrihreyfingin – grænt framboð | 3,032
|
|
38
|
+
Norðvestur | Píratar | 1,823
|
|
39
|
+
Norðvestur | Samfylkingin | 1,054
|
|
40
|
+
Norðvestur | Viðreisn | 1,044
|
|
41
|
+
Norðvestur | Björt framtíð | 590
|
|
42
|
+
Norðvestur | Flokkur fólksins | 412
|
|
43
|
+
Norðvestur | Dögun | 282
|
|
44
|
+
Norðvestur | Íslenska þjóðfylkingin | 90
|
|
45
|
+
|
|
46
|
+
Reykjavík norður | Sjálfstæðisflokkurinn | 8,538
|
|
47
|
+
Reykjavík norður | Vinstrihreyfingin – grænt framboð | 7,318
|
|
48
|
+
Reykjavík norður | Píratar | 6,655
|
|
49
|
+
Reykjavík norður | Viðreisn | 4,064
|
|
50
|
+
Reykjavík norður | Björt framtíð | 2,673
|
|
51
|
+
Reykjavík norður | Framsóknarflokkurinn | 994
|
|
52
|
+
Reykjavík norður | Miðflokkurinn | 993
|
|
53
|
+
Reykjavík norður | Samfylkingin | 1,822
|
|
54
|
+
Reykjavík norður | Flokkur fólksins | 1,321
|
|
55
|
+
Reykjavík norður | Dögun | 496
|
|
56
|
+
Reykjavík norður | Alþýðufylkingin | 104
|
|
57
|
+
|
|
58
|
+
Reykjavík suður | Sjálfstæðisflokkurinn | 8,929
|
|
59
|
+
Reykjavík suður | Vinstrihreyfingin – grænt framboð | 6,148
|
|
60
|
+
Reykjavík suður | Píratar | 6,021
|
|
61
|
+
Reykjavík suður | Viðreisn | 4,440
|
|
62
|
+
Reykjavík suður | Framsóknarflokkurinn | 1,282
|
|
63
|
+
Reykjavík suður | Miðflokkurinn | 1,282
|
|
64
|
+
Reykjavík suður | Björt framtíð | 2,518
|
|
65
|
+
Reykjavík suður | Samfylkingin | 1,944
|
|
66
|
+
Reykjavík suður | Flokkur fólksins | 1,614
|
|
67
|
+
Reykjavík suður | Dögun | 578
|
|
68
|
+
Reykjavík suður | Alþýðufylkingin | 79
|
|
69
|
+
Reykjavík suður | Húmanistaflokkurinn | 33
|
|
70
|
+
|
|
71
|
+
Suðvestur | Sjálfstæðisflokkurinn | 18,049
|
|
72
|
+
Suðvestur | Píratar | 7,227
|
|
73
|
+
Suðvestur | Viðreisn | 6,857
|
|
74
|
+
Suðvestur | Vinstrihreyfingin – grænt framboð | 6,378
|
|
75
|
+
Suðvestur | Björt framtíð | 5,458
|
|
76
|
+
Suðvestur | Framsóknarflokkurinn | 2,031
|
|
77
|
+
Suðvestur | Miðflokkurinn | 2,031
|
|
78
|
+
Suðvestur | Samfylkingin | 2,532
|
|
79
|
+
Suðvestur | Flokkur fólksins | 1,742
|
|
80
|
+
Suðvestur | Dögun | 893
|
|
81
|
+
Suðvestur | Alþýðufylkingin | 103
|
|
82
|
+
|
|
83
|
+
Suður | Sjálfstæðisflokkurinn | 8,509
|
|
84
|
+
Suður | Framsóknarflokkurinn | 2,577
|
|
85
|
+
Suður | Miðflokkurinn | 2,577
|
|
86
|
+
Suður | Píratar | 3,458
|
|
87
|
+
Suður | Vinstrihreyfingin – grænt framboð | 2,751
|
|
88
|
+
Suður | Viðreisn | 1,983
|
|
89
|
+
Suður | Samfylkingin | 1,725
|
|
90
|
+
Suður | Björt framtíð | 1,565
|
|
91
|
+
Suður | Flokkur fólksins | 973
|
|
92
|
+
Suður | Dögun | 611
|
|
93
|
+
Suður | Íslenska þjóðfylkingin | 213
|
|
94
|
+
Suður | Alþýðufylkingin | 78
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# Statistical Analysis of Polling Results (SAPoR)
|
|
2
|
+
# Copyright (C) 2016 Filip van Laenen <f.a.vanlaenen@ieee.org>
|
|
3
|
+
#
|
|
4
|
+
# This file is part of SAPoR.
|
|
5
|
+
#
|
|
6
|
+
# SAPoR is free software: you can redistribute it and/or modify it under the
|
|
7
|
+
# terms of the GNU General Public License as published by the Free Software
|
|
8
|
+
# Foundation, either version 3 of the License, or (at your option) any later
|
|
9
|
+
# version.
|
|
10
|
+
#
|
|
11
|
+
# SAPoR is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
12
|
+
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
13
|
+
# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
14
|
+
#
|
|
15
|
+
# You can find a copy of the GNU General Public License in /doc/gpl.txt
|
|
16
|
+
#
|
|
17
|
+
|
|
18
|
+
# Source: Web page with the official results of the elections of 29 October
|
|
19
|
+
# 2016, downloaded on 17 September 2017,
|
|
20
|
+
# URL: http://icelandmonitor.mbl.is/elections2016/
|
|
21
|
+
|
|
22
|
+
Norðaustur | Sjálfstæðisflokkurinn | 6,014
|
|
23
|
+
Norðaustur | Framsóknarflokkurinn | 4,542
|
|
24
|
+
Norðaustur | Vinstrihreyfingin – grænt framboð | 4,539
|
|
25
|
+
Norðaustur | Píratar | 2,265
|
|
26
|
+
Norðaustur | Samfylkingin | 1,816
|
|
27
|
+
Norðaustur | Viðreisn | 1,482
|
|
28
|
+
Norðaustur | Björt framtíð | 774
|
|
29
|
+
Norðaustur | Flokkur fólksins | 645
|
|
30
|
+
Norðaustur | Dögun | 415
|
|
31
|
+
Norðaustur | Alþýðufylkingin | 211
|
|
32
|
+
|
|
33
|
+
Norðvestur | Sjálfstæðisflokkurinn | 4,951
|
|
34
|
+
Norðvestur | Framsóknarflokkurinn | 3,482
|
|
35
|
+
Norðvestur | Vinstrihreyfingin – grænt framboð | 3,032
|
|
36
|
+
Norðvestur | Píratar | 1,823
|
|
37
|
+
Norðvestur | Samfylkingin | 1,054
|
|
38
|
+
Norðvestur | Viðreisn | 1,044
|
|
39
|
+
Norðvestur | Björt framtíð | 590
|
|
40
|
+
Norðvestur | Flokkur fólksins | 412
|
|
41
|
+
Norðvestur | Dögun | 282
|
|
42
|
+
Norðvestur | Íslenska þjóðfylkingin | 90
|
|
43
|
+
|
|
44
|
+
Reykjavík norður | Sjálfstæðisflokkurinn | 8,538
|
|
45
|
+
Reykjavík norður | Vinstrihreyfingin – grænt framboð | 7,318
|
|
46
|
+
Reykjavík norður | Píratar | 6,655
|
|
47
|
+
Reykjavík norður | Viðreisn | 4,064
|
|
48
|
+
Reykjavík norður | Björt framtíð | 2,673
|
|
49
|
+
Reykjavík norður | Framsóknarflokkurinn | 1,987
|
|
50
|
+
Reykjavík norður | Samfylkingin | 1,822
|
|
51
|
+
Reykjavík norður | Flokkur fólksins | 1,321
|
|
52
|
+
Reykjavík norður | Dögun | 496
|
|
53
|
+
Reykjavík norður | Alþýðufylkingin | 104
|
|
54
|
+
|
|
55
|
+
Reykjavík suður | Sjálfstæðisflokkurinn | 8,929
|
|
56
|
+
Reykjavík suður | Vinstrihreyfingin – grænt framboð | 6,148
|
|
57
|
+
Reykjavík suður | Píratar | 6,021
|
|
58
|
+
Reykjavík suður | Viðreisn | 4,440
|
|
59
|
+
Reykjavík suður | Framsóknarflokkurinn | 2,564
|
|
60
|
+
Reykjavík suður | Björt framtíð | 2,518
|
|
61
|
+
Reykjavík suður | Samfylkingin | 1,944
|
|
62
|
+
Reykjavík suður | Flokkur fólksins | 1,614
|
|
63
|
+
Reykjavík suður | Dögun | 578
|
|
64
|
+
Reykjavík suður | Alþýðufylkingin | 79
|
|
65
|
+
Reykjavík suður | Húmanistaflokkurinn | 33
|
|
66
|
+
|
|
67
|
+
Suðvestur | Sjálfstæðisflokkurinn | 18,049
|
|
68
|
+
Suðvestur | Píratar | 7,227
|
|
69
|
+
Suðvestur | Viðreisn | 6,857
|
|
70
|
+
Suðvestur | Vinstrihreyfingin – grænt framboð | 6,378
|
|
71
|
+
Suðvestur | Björt framtíð | 5,458
|
|
72
|
+
Suðvestur | Framsóknarflokkurinn | 4,062
|
|
73
|
+
Suðvestur | Samfylkingin | 2,532
|
|
74
|
+
Suðvestur | Flokkur fólksins | 1,742
|
|
75
|
+
Suðvestur | Dögun | 893
|
|
76
|
+
Suðvestur | Alþýðufylkingin | 103
|
|
77
|
+
|
|
78
|
+
Suður | Sjálfstæðisflokkurinn | 8,509
|
|
79
|
+
Suður | Framsóknarflokkurinn | 5,154
|
|
80
|
+
Suður | Píratar | 3,458
|
|
81
|
+
Suður | Vinstrihreyfingin – grænt framboð | 2,751
|
|
82
|
+
Suður | Viðreisn | 1,983
|
|
83
|
+
Suður | Samfylkingin | 1,725
|
|
84
|
+
Suður | Björt framtíð | 1,565
|
|
85
|
+
Suður | Flokkur fólksins | 973
|
|
86
|
+
Suður | Dögun | 611
|
|
87
|
+
Suður | Íslenska þjóðfylkingin | 213
|
|
88
|
+
Suður | Alþýðufylkingin | 78
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Statistical Analysis of Polling Results (SAPoR)
|
|
2
|
+
# Copyright (C) 2016 Filip van Laenen <f.a.vanlaenen@ieee.org>
|
|
3
|
+
#
|
|
4
|
+
# This file is part of SAPoR.
|
|
5
|
+
#
|
|
6
|
+
# SAPoR is free software: you can redistribute it and/or modify it under the
|
|
7
|
+
# terms of the GNU General Public License as published by the Free Software
|
|
8
|
+
# Foundation, either version 3 of the License, or (at your option) any later
|
|
9
|
+
# version.
|
|
10
|
+
#
|
|
11
|
+
# SAPoR is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
12
|
+
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
13
|
+
# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
14
|
+
#
|
|
15
|
+
# You can find a copy of the GNU General Public License in /doc/gpl.txt
|
|
16
|
+
#
|
|
17
|
+
|
|
18
|
+
# Source: Web page with the official results of the elections of 28 October
|
|
19
|
+
# 2017, downloaded on 20 November 2017,
|
|
20
|
+
# URL: http://icelandmonitor.mbl.is/elections2017/
|
|
21
|
+
|
|
22
|
+
Norðaustur | Sjálfstæðisflokkurinn | 4,787
|
|
23
|
+
Norðaustur | Vinstrihreyfingin – grænt framboð | 4,699
|
|
24
|
+
Norðaustur | Miðflokkurinn | 4,388
|
|
25
|
+
Norðaustur | Framsóknarflokkurinn | 3,386
|
|
26
|
+
Norðaustur | Samfylkingin | 3,275
|
|
27
|
+
Norðaustur | Píratar | 1,295
|
|
28
|
+
Norðaustur | Flokkur fólksins | 1,005
|
|
29
|
+
Norðaustur | Viðreisn | 495
|
|
30
|
+
Norðaustur | Björt framtíð | 169
|
|
31
|
+
Norðaustur | Alþýðufylkingin | 110
|
|
32
|
+
|
|
33
|
+
Norðvestur | Sjálfstæðisflokkurinn | 4,233
|
|
34
|
+
Norðvestur | Framsóknarflokkurinn | 3,177
|
|
35
|
+
Norðvestur | Vinstrihreyfingin – grænt framboð | 3,067
|
|
36
|
+
Norðvestur | Miðflokkurinn | 2,456
|
|
37
|
+
Norðvestur | Samfylkingin | 1,681
|
|
38
|
+
Norðvestur | Píratar | 1,169
|
|
39
|
+
Norðvestur | Flokkur fólksins | 911
|
|
40
|
+
Norðvestur | Viðreisn | 423
|
|
41
|
+
Norðvestur | Björt framtíð | 135
|
|
42
|
+
|
|
43
|
+
Reykjavík norður | Sjálfstæðisflokkurinn | 8,108
|
|
44
|
+
Reykjavík norður | Vinstrihreyfingin – grænt framboð | 7,727
|
|
45
|
+
Reykjavík norður | Píratar | 4,885
|
|
46
|
+
Reykjavík norður | Samfylkingin | 4,575
|
|
47
|
+
Reykjavík norður | Viðreisn | 3,013
|
|
48
|
+
Reykjavík norður | Flokkur fólksins | 2,547
|
|
49
|
+
Reykjavík norður | Miðflokkurinn | 2,509
|
|
50
|
+
Reykjavík norður | Framsóknarflokkurinn | 1,901
|
|
51
|
+
Reykjavík norður | Björt framtíð | 506
|
|
52
|
+
Reykjavík norður | Alþýðufylkingin | 105
|
|
53
|
+
|
|
54
|
+
Reykjavík suður | Sjálfstæðisflokkurinn | 8,143
|
|
55
|
+
Reykjavík suður | Vinstrihreyfingin – grænt framboð | 6,750
|
|
56
|
+
Reykjavík suður | Samfylkingin | 4,661
|
|
57
|
+
Reykjavík suður | Píratar | 4,076
|
|
58
|
+
Reykjavík suður | Viðreisn | 3,043
|
|
59
|
+
Reykjavík suður | Flokkur fólksins | 2,914
|
|
60
|
+
Reykjavík suður | Framsóknarflokkurinn | 2,897
|
|
61
|
+
Reykjavík suður | Miðflokkurinn | 2,701
|
|
62
|
+
Reykjavík suður | Björt framtíð | 449
|
|
63
|
+
Reykjavík suður | Alþýðufylkingin | 85
|
|
64
|
+
|
|
65
|
+
Suður | Sjálfstæðisflokkurinn | 7,056
|
|
66
|
+
Suður | Framsóknarflokkurinn | 5,230
|
|
67
|
+
Suður | Miðflokkurinn | 3,999
|
|
68
|
+
Suður | Vinstrihreyfingin – grænt framboð | 3,321
|
|
69
|
+
Suður | Samfylkingin | 2,689
|
|
70
|
+
Suður | Flokkur fólksins | 2,509
|
|
71
|
+
Suður | Píratar | 1,985
|
|
72
|
+
Suður | Viðreisn | 871
|
|
73
|
+
Suður | Björt framtíð | 289
|
|
74
|
+
Suður | Dögun | 101
|
|
75
|
+
|
|
76
|
+
Suðvestur | Sjálfstæðisflokkurinn | 17,216
|
|
77
|
+
Suðvestur | Vinstrihreyfingin – grænt framboð | 7,591
|
|
78
|
+
Suðvestur | Samfylkingin | 6,771
|
|
79
|
+
Suðvestur | Miðflokkurinn | 5,282
|
|
80
|
+
Suðvestur | Viðreisn | 5,277
|
|
81
|
+
Suðvestur | Píratar | 4,641
|
|
82
|
+
Suðvestur | Framsóknarflokkurinn | 4,425
|
|
83
|
+
Suðvestur | Flokkur fólksins | 3,616
|
|
84
|
+
Suðvestur | Björt framtíð | 846
|
|
85
|
+
Suðvestur | Alþýðufylkingin | 75
|
|
@@ -0,0 +1,133 @@
|
|
|
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 Iceland.
|
|
23
|
+
#
|
|
24
|
+
class Iceland < Area
|
|
25
|
+
include Singleton
|
|
26
|
+
|
|
27
|
+
def area_code
|
|
28
|
+
'IS'
|
|
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 overall_election_results_of_2017
|
|
40
|
+
if @overall_election_results_of_2017.nil?
|
|
41
|
+
@overall_election_results_of_2017 = \
|
|
42
|
+
summarize_election_results(election_results_of_2017)
|
|
43
|
+
end
|
|
44
|
+
@overall_election_results_of_2017
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def population_size
|
|
48
|
+
# Voter turnout on 28 October 2017
|
|
49
|
+
# Source: Wikipedia, Icelandic parliamentary election, 2017, downloaded
|
|
50
|
+
# on 20 November 2017,
|
|
51
|
+
# https://en.wikipedia.org/wiki/Icelandic_parliamentary_election,_2017
|
|
52
|
+
196_246
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def seat_distribution
|
|
56
|
+
SEAT_DISTRIBUTION
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def seats(simulation)
|
|
60
|
+
electoral_system.project(simulation)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def threshold
|
|
64
|
+
LEVELING_THRESHOLD
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
private
|
|
68
|
+
|
|
69
|
+
COALITIONS = [['Björt framtíð', 'Píratar', 'Samfylkingin', 'Viðreisn',
|
|
70
|
+
'Vinstrihreyfingin – grænt framboð'],
|
|
71
|
+
['Björt framtíð', 'Píratar', 'Samfylkingin',
|
|
72
|
+
'Vinstrihreyfingin – grænt framboð'],
|
|
73
|
+
['Björt framtíð', 'Sjálfstæðisflokkurinn'],
|
|
74
|
+
['Björt framtíð', 'Sjálfstæðisflokkurinn', 'Viðreisn'],
|
|
75
|
+
['Framsóknarflokkurinn', 'Miðflokkurinn', 'Samfylkingin',
|
|
76
|
+
'Vinstrihreyfingin – grænt framboð'],
|
|
77
|
+
%w(Framsóknarflokkurinn Miðflokkurinn Sjálfstæðisflokkurinn),
|
|
78
|
+
['Framsóknarflokkurinn', 'Miðflokkurinn',
|
|
79
|
+
'Vinstrihreyfingin – grænt framboð'],
|
|
80
|
+
['Framsóknarflokkurinn', 'Samfylkingin',
|
|
81
|
+
'Vinstrihreyfingin – grænt framboð'],
|
|
82
|
+
%w(Framsóknarflokkurinn Sjálfstæðisflokkurinn),
|
|
83
|
+
['Framsóknarflokkurinn', 'Sjálfstæðisflokkurinn',
|
|
84
|
+
'Vinstrihreyfingin – grænt framboð'],
|
|
85
|
+
['Framsóknarflokkurinn', 'Vinstrihreyfingin – grænt framboð'],
|
|
86
|
+
['Miðflokkurinn', 'Samfylkingin',
|
|
87
|
+
'Vinstrihreyfingin – grænt framboð'],
|
|
88
|
+
%w(Miðflokkurinn Sjálfstæðisflokkurinn),
|
|
89
|
+
['Miðflokkurinn', 'Vinstrihreyfingin – grænt framboð'],
|
|
90
|
+
%w(Samfylkingin Sjálfstæðisflokkurinn),
|
|
91
|
+
['Píratar', 'Samfylkingin', 'Viðreisn',
|
|
92
|
+
'Vinstrihreyfingin – grænt framboð'],
|
|
93
|
+
['Píratar', 'Samfylkingin',
|
|
94
|
+
'Vinstrihreyfingin – grænt framboð'],
|
|
95
|
+
['Píratar', 'Vinstrihreyfingin – grænt framboð'],
|
|
96
|
+
['Samfylkingin', 'Vinstrihreyfingin – grænt framboð'],
|
|
97
|
+
%w(Sjálfstæðisflokkurinn Viðreisn),
|
|
98
|
+
['Sjálfstæðisflokkurinn',
|
|
99
|
+
'Vinstrihreyfingin – grænt framboð']].freeze
|
|
100
|
+
|
|
101
|
+
DIRECT_SEAT_DISTRIBUTION = { 'Norðaustur' => 9, 'Norðvestur' => 9,
|
|
102
|
+
'Reykjavík norður' => 9,
|
|
103
|
+
'Reykjavík suður' => 9, 'Suðvestur' => 9,
|
|
104
|
+
'Suður' => 9 }.freeze
|
|
105
|
+
|
|
106
|
+
NO_OF_LEVELING_SEATS = 9
|
|
107
|
+
|
|
108
|
+
LEVELING_THRESHOLD = 0.05
|
|
109
|
+
|
|
110
|
+
NO_OF_SEATS = NO_OF_LEVELING_SEATS + \
|
|
111
|
+
DIRECT_SEAT_DISTRIBUTION.values.inject(:+)
|
|
112
|
+
|
|
113
|
+
def election_results_of_2017
|
|
114
|
+
if @election_results_of_2017.nil?
|
|
115
|
+
@election_results_of_2017 = load_election_results(
|
|
116
|
+
'iceland-20171028.psv'
|
|
117
|
+
)
|
|
118
|
+
end
|
|
119
|
+
@election_results_of_2017
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
def electoral_system
|
|
123
|
+
if @electoral_system.nil?
|
|
124
|
+
@electoral_system = MultiDistrictLeveledProportional.new(
|
|
125
|
+
overall_election_results_of_2017, election_results_of_2017,
|
|
126
|
+
DIRECT_SEAT_DISTRIBUTION, NO_OF_LEVELING_SEATS, LEVELING_THRESHOLD,
|
|
127
|
+
DhondtDenominators
|
|
128
|
+
)
|
|
129
|
+
end
|
|
130
|
+
@electoral_system
|
|
131
|
+
end
|
|
132
|
+
end
|
|
133
|
+
end
|