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,112 @@
|
|
|
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 Latvia, extended for KPV.
|
|
22
|
+
#
|
|
23
|
+
class LatviaKpv < Area
|
|
24
|
+
include Singleton
|
|
25
|
+
def area_code
|
|
26
|
+
'LV∪{KPV}'
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def coalitions
|
|
30
|
+
[['KPV LV', 'Sociāldemokrātiskā Partija “Saskaņa”'],
|
|
31
|
+
['KPV LV', 'Sociāldemokrātiskā Partija “Saskaņa”',
|
|
32
|
+
'Zaļo un Zemnieku savienība'],
|
|
33
|
+
['Kustība Par!',
|
|
34
|
+
'Nacionālā apvienība „Visu Latvijai!”–„Tēvzemei un Brīvībai/LNNK”',
|
|
35
|
+
'Vienotība', 'Zaļo un Zemnieku savienība'],
|
|
36
|
+
['Kustība Par!',
|
|
37
|
+
'Nacionālā apvienība „Visu Latvijai!”–„Tēvzemei un Brīvībai/LNNK”',
|
|
38
|
+
'Zaļo un Zemnieku savienība'],
|
|
39
|
+
['Kustība Par!', 'Jaunā konservatīvā partija',
|
|
40
|
+
'Nacionālā apvienība „Visu Latvijai!”–„Tēvzemei un Brīvībai/LNNK”',
|
|
41
|
+
'Vienotība'],
|
|
42
|
+
['Kustība Par!', 'Jaunā konservatīvā partija',
|
|
43
|
+
'Nacionālā apvienība „Visu Latvijai!”–„Tēvzemei un Brīvībai/LNNK”',
|
|
44
|
+
'Vienotība', 'Zaļo un Zemnieku savienība'],
|
|
45
|
+
['Kustība Par!', 'Jaunā konservatīvā partija',
|
|
46
|
+
'Nacionālā apvienība „Visu Latvijai!”–„Tēvzemei un Brīvībai/LNNK”',
|
|
47
|
+
'Zaļo un Zemnieku savienība'],
|
|
48
|
+
['Kustība Par!', 'Jaunā konservatīvā partija',
|
|
49
|
+
'Sociāldemokrātiskā Partija “Saskaņa”'],
|
|
50
|
+
['Kustība Par!', 'Sociāldemokrātiskā Partija “Saskaņa”'],
|
|
51
|
+
['Jaunā konservatīvā partija',
|
|
52
|
+
'Nacionālā apvienība „Visu Latvijai!”–„Tēvzemei un Brīvībai/LNNK”',
|
|
53
|
+
'Vienotība', 'Zaļo un Zemnieku savienība'],
|
|
54
|
+
['Jaunā konservatīvā partija',
|
|
55
|
+
'Nacionālā apvienība „Visu Latvijai!”–„Tēvzemei un Brīvībai/LNNK”',
|
|
56
|
+
'Zaļo un Zemnieku savienība'],
|
|
57
|
+
['Nacionālā apvienība „Visu Latvijai!”–„Tēvzemei un Brīvībai/LNNK”',
|
|
58
|
+
'Vienotība', 'Zaļo un Zemnieku savienība']]
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def no_of_seats
|
|
62
|
+
SEAT_DISTRIBUTION.values.inject(:+)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def overall_election_results_of_2014
|
|
66
|
+
if @overall_election_results_of_2014.nil?
|
|
67
|
+
@overall_election_results_of_2014 = \
|
|
68
|
+
summarize_election_results(election_results_of_2014)
|
|
69
|
+
end
|
|
70
|
+
@overall_election_results_of_2014
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def population_size
|
|
74
|
+
# Voter turnout on 4 October 2014
|
|
75
|
+
913_491
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def seats(simulation)
|
|
79
|
+
electoral_system.project(simulation)
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def threshold
|
|
83
|
+
THRESHOLD
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
private
|
|
87
|
+
|
|
88
|
+
SEAT_DISTRIBUTION = { 'Kurzeme' => 13, 'Latgale' => 15, 'Rīga' => 32,
|
|
89
|
+
'Vidzeme' => 26, 'Zemgale' => 14 }.freeze
|
|
90
|
+
|
|
91
|
+
THRESHOLD = 0.05
|
|
92
|
+
|
|
93
|
+
def election_results_of_2014
|
|
94
|
+
if @election_results_of_2014.nil?
|
|
95
|
+
@election_results_of_2014 = load_election_results(
|
|
96
|
+
'latvia-20141004-kpv.psv'
|
|
97
|
+
)
|
|
98
|
+
end
|
|
99
|
+
@election_results_of_2014
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def electoral_system
|
|
103
|
+
if @electoral_system.nil?
|
|
104
|
+
@electoral_system = MultiDistrictProportional.new( \
|
|
105
|
+
overall_election_results_of_2014, election_results_of_2014,
|
|
106
|
+
SEAT_DISTRIBUTION, SainteLagueDenominators, 0, THRESHOLD
|
|
107
|
+
)
|
|
108
|
+
end
|
|
109
|
+
@electoral_system
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
end
|
|
@@ -0,0 +1,112 @@
|
|
|
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 Latvia, extended for KPV, P and PAR.
|
|
22
|
+
#
|
|
23
|
+
class LatviaKpvPPar < Area
|
|
24
|
+
include Singleton
|
|
25
|
+
def area_code
|
|
26
|
+
'LV∪{KPV,P,PAR}'
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def coalitions
|
|
30
|
+
[['KPV LV', 'Sociāldemokrātiskā Partija “Saskaņa”'],
|
|
31
|
+
['KPV LV', 'Sociāldemokrātiskā Partija “Saskaņa”',
|
|
32
|
+
'Zaļo un Zemnieku savienība'],
|
|
33
|
+
['Kustība Par!',
|
|
34
|
+
'Nacionālā apvienība „Visu Latvijai!”–„Tēvzemei un Brīvībai/LNNK”',
|
|
35
|
+
'Vienotība', 'Zaļo un Zemnieku savienība'],
|
|
36
|
+
['Kustība Par!',
|
|
37
|
+
'Nacionālā apvienība „Visu Latvijai!”–„Tēvzemei un Brīvībai/LNNK”',
|
|
38
|
+
'Zaļo un Zemnieku savienība'],
|
|
39
|
+
['Kustība Par!', 'Jaunā konservatīvā partija',
|
|
40
|
+
'Nacionālā apvienība „Visu Latvijai!”–„Tēvzemei un Brīvībai/LNNK”',
|
|
41
|
+
'Vienotība'],
|
|
42
|
+
['Kustība Par!', 'Jaunā konservatīvā partija',
|
|
43
|
+
'Nacionālā apvienība „Visu Latvijai!”–„Tēvzemei un Brīvībai/LNNK”',
|
|
44
|
+
'Vienotība', 'Zaļo un Zemnieku savienība'],
|
|
45
|
+
['Kustība Par!', 'Jaunā konservatīvā partija',
|
|
46
|
+
'Nacionālā apvienība „Visu Latvijai!”–„Tēvzemei un Brīvībai/LNNK”',
|
|
47
|
+
'Zaļo un Zemnieku savienība'],
|
|
48
|
+
['Kustība Par!', 'Jaunā konservatīvā partija',
|
|
49
|
+
'Sociāldemokrātiskā Partija “Saskaņa”'],
|
|
50
|
+
['Kustība Par!', 'Sociāldemokrātiskā Partija “Saskaņa”'],
|
|
51
|
+
['Jaunā konservatīvā partija',
|
|
52
|
+
'Nacionālā apvienība „Visu Latvijai!”–„Tēvzemei un Brīvībai/LNNK”',
|
|
53
|
+
'Vienotība', 'Zaļo un Zemnieku savienība'],
|
|
54
|
+
['Jaunā konservatīvā partija',
|
|
55
|
+
'Nacionālā apvienība „Visu Latvijai!”–„Tēvzemei un Brīvībai/LNNK”',
|
|
56
|
+
'Zaļo un Zemnieku savienība'],
|
|
57
|
+
['Nacionālā apvienība „Visu Latvijai!”–„Tēvzemei un Brīvībai/LNNK”',
|
|
58
|
+
'Vienotība', 'Zaļo un Zemnieku savienība']]
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def no_of_seats
|
|
62
|
+
SEAT_DISTRIBUTION.values.inject(:+)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def overall_election_results_of_2014
|
|
66
|
+
if @overall_election_results_of_2014.nil?
|
|
67
|
+
@overall_election_results_of_2014 = \
|
|
68
|
+
summarize_election_results(election_results_of_2014)
|
|
69
|
+
end
|
|
70
|
+
@overall_election_results_of_2014
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def population_size
|
|
74
|
+
# Voter turnout on 4 October 2014
|
|
75
|
+
913_491
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def seats(simulation)
|
|
79
|
+
electoral_system.project(simulation)
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def threshold
|
|
83
|
+
THRESHOLD
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
private
|
|
87
|
+
|
|
88
|
+
SEAT_DISTRIBUTION = { 'Kurzeme' => 13, 'Latgale' => 15, 'Rīga' => 32,
|
|
89
|
+
'Vidzeme' => 26, 'Zemgale' => 14 }.freeze
|
|
90
|
+
|
|
91
|
+
THRESHOLD = 0.05
|
|
92
|
+
|
|
93
|
+
def election_results_of_2014
|
|
94
|
+
if @election_results_of_2014.nil?
|
|
95
|
+
@election_results_of_2014 = load_election_results(
|
|
96
|
+
'latvia-20141004-kpv-p-par.psv'
|
|
97
|
+
)
|
|
98
|
+
end
|
|
99
|
+
@election_results_of_2014
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def electoral_system
|
|
103
|
+
if @electoral_system.nil?
|
|
104
|
+
@electoral_system = MultiDistrictProportional.new( \
|
|
105
|
+
overall_election_results_of_2014, election_results_of_2014,
|
|
106
|
+
SEAT_DISTRIBUTION, SainteLagueDenominators, 0, THRESHOLD
|
|
107
|
+
)
|
|
108
|
+
end
|
|
109
|
+
@electoral_system
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
end
|
|
@@ -0,0 +1,112 @@
|
|
|
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 Latvia, extended for KPV and PAR.
|
|
22
|
+
#
|
|
23
|
+
class LatviaKpvPar < Area
|
|
24
|
+
include Singleton
|
|
25
|
+
def area_code
|
|
26
|
+
'LV∪{KPV,PAR}'
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def coalitions
|
|
30
|
+
[['KPV LV', 'Sociāldemokrātiskā Partija “Saskaņa”'],
|
|
31
|
+
['KPV LV', 'Sociāldemokrātiskā Partija “Saskaņa”',
|
|
32
|
+
'Zaļo un Zemnieku savienība'],
|
|
33
|
+
['Kustība Par!',
|
|
34
|
+
'Nacionālā apvienība „Visu Latvijai!”–„Tēvzemei un Brīvībai/LNNK”',
|
|
35
|
+
'Vienotība', 'Zaļo un Zemnieku savienība'],
|
|
36
|
+
['Kustība Par!',
|
|
37
|
+
'Nacionālā apvienība „Visu Latvijai!”–„Tēvzemei un Brīvībai/LNNK”',
|
|
38
|
+
'Zaļo un Zemnieku savienība'],
|
|
39
|
+
['Kustība Par!', 'Jaunā konservatīvā partija',
|
|
40
|
+
'Nacionālā apvienība „Visu Latvijai!”–„Tēvzemei un Brīvībai/LNNK”',
|
|
41
|
+
'Vienotība'],
|
|
42
|
+
['Kustība Par!', 'Jaunā konservatīvā partija',
|
|
43
|
+
'Nacionālā apvienība „Visu Latvijai!”–„Tēvzemei un Brīvībai/LNNK”',
|
|
44
|
+
'Vienotība', 'Zaļo un Zemnieku savienība'],
|
|
45
|
+
['Kustība Par!', 'Jaunā konservatīvā partija',
|
|
46
|
+
'Nacionālā apvienība „Visu Latvijai!”–„Tēvzemei un Brīvībai/LNNK”',
|
|
47
|
+
'Zaļo un Zemnieku savienība'],
|
|
48
|
+
['Kustība Par!', 'Jaunā konservatīvā partija',
|
|
49
|
+
'Sociāldemokrātiskā Partija “Saskaņa”'],
|
|
50
|
+
['Kustība Par!', 'Sociāldemokrātiskā Partija “Saskaņa”'],
|
|
51
|
+
['Jaunā konservatīvā partija',
|
|
52
|
+
'Nacionālā apvienība „Visu Latvijai!”–„Tēvzemei un Brīvībai/LNNK”',
|
|
53
|
+
'Vienotība', 'Zaļo un Zemnieku savienība'],
|
|
54
|
+
['Jaunā konservatīvā partija',
|
|
55
|
+
'Nacionālā apvienība „Visu Latvijai!”–„Tēvzemei un Brīvībai/LNNK”',
|
|
56
|
+
'Zaļo un Zemnieku savienība'],
|
|
57
|
+
['Nacionālā apvienība „Visu Latvijai!”–„Tēvzemei un Brīvībai/LNNK”',
|
|
58
|
+
'Vienotība', 'Zaļo un Zemnieku savienība']]
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def no_of_seats
|
|
62
|
+
SEAT_DISTRIBUTION.values.inject(:+)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def overall_election_results_of_2014
|
|
66
|
+
if @overall_election_results_of_2014.nil?
|
|
67
|
+
@overall_election_results_of_2014 = \
|
|
68
|
+
summarize_election_results(election_results_of_2014)
|
|
69
|
+
end
|
|
70
|
+
@overall_election_results_of_2014
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def population_size
|
|
74
|
+
# Voter turnout on 4 October 2014
|
|
75
|
+
913_491
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def seats(simulation)
|
|
79
|
+
electoral_system.project(simulation)
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def threshold
|
|
83
|
+
THRESHOLD
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
private
|
|
87
|
+
|
|
88
|
+
SEAT_DISTRIBUTION = { 'Kurzeme' => 13, 'Latgale' => 15, 'Rīga' => 32,
|
|
89
|
+
'Vidzeme' => 26, 'Zemgale' => 14 }.freeze
|
|
90
|
+
|
|
91
|
+
THRESHOLD = 0.05
|
|
92
|
+
|
|
93
|
+
def election_results_of_2014
|
|
94
|
+
if @election_results_of_2014.nil?
|
|
95
|
+
@election_results_of_2014 = load_election_results(
|
|
96
|
+
'latvia-20141004-kpv-par.psv'
|
|
97
|
+
)
|
|
98
|
+
end
|
|
99
|
+
@election_results_of_2014
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def electoral_system
|
|
103
|
+
if @electoral_system.nil?
|
|
104
|
+
@electoral_system = MultiDistrictProportional.new( \
|
|
105
|
+
overall_election_results_of_2014, election_results_of_2014,
|
|
106
|
+
SEAT_DISTRIBUTION, SainteLagueDenominators, 0, THRESHOLD
|
|
107
|
+
)
|
|
108
|
+
end
|
|
109
|
+
@electoral_system
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
end
|
|
@@ -0,0 +1,76 @@
|
|
|
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: "Résultats officieux — Site officiel des élections // Grand-Duché de
|
|
19
|
+
# Luxembourg". Retrieved on 20 September 2018.
|
|
20
|
+
# URL: https://elections.public.lu/fr/elections-legislatives/2013/resultats.html
|
|
21
|
+
|
|
22
|
+
Centre | Chrëschtlech-Sozial Vollekspartei | 385,390
|
|
23
|
+
Centre | Demokratesch Partei | 273,069
|
|
24
|
+
Centre | Lëtzebuerger Sozialistesch Aarbechterpartei | 159,905
|
|
25
|
+
Centre | déi gréng | 114,145
|
|
26
|
+
Centre | Alternativ Demokratesch Reformpartei | 54,709
|
|
27
|
+
Centre | Déi Lénk | 51,851
|
|
28
|
+
Centre | Piratepartei Lëtzebuerg | 29,633
|
|
29
|
+
Centre | Partei fir Integral Demokratie | 13,318
|
|
30
|
+
Centre | Kommunistesch Partei Lëtzebuerg | 9,425
|
|
31
|
+
|
|
32
|
+
Est | Chrëschtlech-Sozial Vollekspartei | 71,786
|
|
33
|
+
Est | Demokratesch Partei | 36,237
|
|
34
|
+
Est | Lëtzebuerger Sozialistesch Aarbechterpartei | 28,386
|
|
35
|
+
Est | déi gréng | 25,486
|
|
36
|
+
Est | Alternativ Demokratesch Reformpartei | 16,901
|
|
37
|
+
Est | Déi Lénk | 5,941
|
|
38
|
+
Est | Piratepartei Lëtzebuerg | 5,226
|
|
39
|
+
Est | Partei fir Integral Demokratie | 3,018
|
|
40
|
+
Est | Kommunistesch Partei Lëtzebuerg | 1,537
|
|
41
|
+
|
|
42
|
+
Nord | Chrëschtlech-Sozial Vollekspartei | 107,163
|
|
43
|
+
Nord | Demokratesch Partei | 75,426
|
|
44
|
+
Nord | Lëtzebuerger Sozialistesch Aarbechterpartei | 54,788
|
|
45
|
+
Nord | déi gréng | 28,646
|
|
46
|
+
Nord | Alternativ Demokratesch Reformpartei | 20,246
|
|
47
|
+
Nord | Piratepartei Lëtzebuerg | 10,733
|
|
48
|
+
Nord | Partei fir Integral Demokratie | 10,384
|
|
49
|
+
Nord | Déi Lénk | 8,138
|
|
50
|
+
Nord | Kommunistesch Partei Lëtzebuerg | 2,575
|
|
51
|
+
|
|
52
|
+
Sud | Chrëschtlech-Sozial Vollekspartei | 539,297
|
|
53
|
+
Sud | Lëtzebuerger Sozialistesch Aarbechterpartei | 421,507
|
|
54
|
+
Sud | Demokratesch Partei | 213,147
|
|
55
|
+
Sud | déi gréng | 163,643
|
|
56
|
+
Sud | Alternativ Demokratesch Reformpartei | 125,827
|
|
57
|
+
Sud | Déi Lénk | 95,829
|
|
58
|
+
Sud | Piratepartei Lëtzebuerg | 50,678
|
|
59
|
+
Sud | Kommunistesch Partei Lëtzebuerg | 40,132
|
|
60
|
+
Sud | Partei fir Integral Demokratie | 22,570
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
|
|
@@ -0,0 +1,82 @@
|
|
|
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 Luxembourg.
|
|
22
|
+
#
|
|
23
|
+
class Luxembourg < Area
|
|
24
|
+
include Singleton
|
|
25
|
+
def area_code
|
|
26
|
+
'LU'
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def coalitions
|
|
30
|
+
[['Chrëschtlech-Sozial Vollekspartei'],
|
|
31
|
+
['Chrëschtlech-Sozial Vollekspartei',
|
|
32
|
+
'Lëtzebuerger Sozialistesch Aarbechterpartei'],
|
|
33
|
+
['Chrëschtlech-Sozial Vollekspartei', 'Demokratesch Partei'],
|
|
34
|
+
['déi gréng', 'Demokratesch Partei',
|
|
35
|
+
'Lëtzebuerger Sozialistesch Aarbechterpartei']]
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def no_of_seats
|
|
39
|
+
SEAT_DISTRIBUTION.values.inject(:+)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def overall_election_results_of_2013
|
|
43
|
+
if @overall_election_results_of_2013.nil?
|
|
44
|
+
@overall_election_results_of_2013 = \
|
|
45
|
+
summarize_election_results(election_results_of_2013)
|
|
46
|
+
end
|
|
47
|
+
@overall_election_results_of_2013
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def population_size
|
|
51
|
+
# Voter turnout on 20 October 2013 (note: multiple votes per voter)
|
|
52
|
+
3_276_692
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def seats(simulation)
|
|
56
|
+
electoral_system.project(simulation)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
private
|
|
60
|
+
|
|
61
|
+
SEAT_DISTRIBUTION = { 'Centre' => 21, 'Est' => 7, 'Nord' => 9, 'Sud' => 23 }.freeze
|
|
62
|
+
|
|
63
|
+
def election_results_of_2013
|
|
64
|
+
if @election_results_of_2013.nil?
|
|
65
|
+
@election_results_of_2013 = load_election_results(
|
|
66
|
+
'luxembourg-20131020.psv'
|
|
67
|
+
)
|
|
68
|
+
end
|
|
69
|
+
@election_results_of_2013
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def electoral_system
|
|
73
|
+
if @electoral_system.nil?
|
|
74
|
+
@electoral_system = MultiDistrictProportional.new( \
|
|
75
|
+
overall_election_results_of_2013, election_results_of_2013,
|
|
76
|
+
SEAT_DISTRIBUTION, DhondtDenominators
|
|
77
|
+
)
|
|
78
|
+
end
|
|
79
|
+
@electoral_system
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|