sapor 0.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/Area Class Diagram.dia +0 -0
- data/Area Class Diagram.png +0 -0
- data/Class Diagram.dia +0 -0
- data/Class Diagram.png +0 -0
- data/Example-Catalonia.md +361 -0
- data/Example-Flanders.md +486 -0
- data/Example-Greece.md +25 -0
- data/Example-Oslo.md +678 -0
- data/Example-UnitedKingdom-Referendum.md +132 -0
- data/Examples.md +15 -0
- data/LICENSE +674 -0
- data/README.md +103 -0
- data/Rakefile +18 -0
- data/Technical Documentation.md +14 -0
- data/bin/create_installation_package.sh +49 -0
- data/bin/install.sh +45 -0
- data/bin/sapor.rb +24 -0
- data/bin/sapor.sh +106 -0
- data/data/hu/hungary-2014.txt +1680 -0
- data/data/hu/hungary_2014_screen_scraper.rb +48 -0
- data/data/hu/hungary_2014_to_psv.rb +80 -0
- data/data/hu/index-2014.txt +106 -0
- data/data/ie/2016-04-28_general-election-2016-candidate-details-csv_en.csv +552 -0
- data/data/ie/ireland_2016_to_psv.rb +138 -0
- data/data/no/2020-01-01_partifordeling_1_st_2017.csv +335 -0
- data/data/no/norway_2017_to_psv.rb +61 -0
- data/data/pl/2015-gl-lis-okr.csv +42 -0
- data/data/pl/poland_2015_to_psv.rb +79 -0
- data/data/pl/poland_2015_to_psv_with_ko_and_rsw.rb +94 -0
- data/data/pl/poland_2015_to_psv_with_ko_konf_kp_l_and_zp.rb +100 -0
- data/data/pl/poland_2015_to_psv_with_ko_sld_and_wi.rb +92 -0
- data/data/pl/poland_2015_to_psv_with_sld.rb +84 -0
- data/data/pl/poland_2015_to_psv_with_sld_and_wi.rb +85 -0
- data/data/uk/inject_ukip_2015_as_brexit_2019_in_2017.rb +54 -0
- data/data/uk/united_kingdom_2015.txt +651 -0
- data/data/uk/united_kingdom_2015_to_psv.rb +104 -0
- data/data/uk/united_kingdom_2017.txt +651 -0
- data/data/uk/united_kingdom_2017_to_psv.rb +104 -0
- data/data/uk/united_kingdom_2017_to_psv_with_brexit_and_chuk.rb +113 -0
- data/data/uk/united_kingdom_2017_to_psv_with_tig.rb +111 -0
- data/lib/sapor.rb +147 -0
- data/lib/sapor/binomials_cache.rb +45 -0
- data/lib/sapor/combinations_distribution.rb +222 -0
- data/lib/sapor/denominators.rb +67 -0
- data/lib/sapor/dichotomies.rb +138 -0
- data/lib/sapor/dichotomy.rb +164 -0
- data/lib/sapor/first_past_the_post.rb +82 -0
- data/lib/sapor/largest_remainder.rb +118 -0
- data/lib/sapor/log4r_logger.rb +49 -0
- data/lib/sapor/log_facade.rb +40 -0
- data/lib/sapor/many_past_the_post.rb +113 -0
- data/lib/sapor/multi_district_leveled_proportional.rb +64 -0
- data/lib/sapor/multi_district_proportional.rb +123 -0
- data/lib/sapor/multi_district_variable_threshold_proportional.rb +128 -0
- data/lib/sapor/number_formatter.rb +45 -0
- data/lib/sapor/options.rb +73 -0
- data/lib/sapor/poll.rb +282 -0
- data/lib/sapor/polychotomy.rb +200 -0
- data/lib/sapor/pseudorandom_multirange_enumerator.rb +87 -0
- data/lib/sapor/referendum_polychotomy.rb +165 -0
- data/lib/sapor/regional_data/area.rb +100 -0
- data/lib/sapor/regional_data/austria.rb +84 -0
- data/lib/sapor/regional_data/belgium-brussels-2014.psv +46 -0
- data/lib/sapor/regional_data/belgium-brussels-20190526.psv +33 -0
- data/lib/sapor/regional_data/belgium-flanders-2014.psv +80 -0
- data/lib/sapor/regional_data/belgium-flanders-20190526.psv +74 -0
- data/lib/sapor/regional_data/belgium-wallonia-2014.psv +114 -0
- data/lib/sapor/regional_data/belgium-wallonia-20190526.psv +93 -0
- data/lib/sapor/regional_data/belgium.rb +97 -0
- data/lib/sapor/regional_data/belgium_brussels.rb +62 -0
- data/lib/sapor/regional_data/belgium_flanders.rb +64 -0
- data/lib/sapor/regional_data/belgium_wallonia.rb +63 -0
- data/lib/sapor/regional_data/catalonia-2012-2015.psv +100 -0
- data/lib/sapor/regional_data/catalonia-2012.psv +87 -0
- data/lib/sapor/regional_data/catalonia-2015-jxcat.psv +68 -0
- data/lib/sapor/regional_data/catalonia-2015-no-jxsi.psv +68 -0
- data/lib/sapor/regional_data/catalonia-2015.psv +63 -0
- data/lib/sapor/regional_data/catalonia-20171221-with-vox.psv +67 -0
- data/lib/sapor/regional_data/catalonia-20171221.psv +61 -0
- data/lib/sapor/regional_data/catalonia.rb +124 -0
- data/lib/sapor/regional_data/denmark-20150618-with-e-and-p.psv +164 -0
- data/lib/sapor/regional_data/denmark-20150618-with-e.psv +153 -0
- data/lib/sapor/regional_data/denmark-20150618-with-p.psv +153 -0
- data/lib/sapor/regional_data/denmark-20150618.psv +142 -0
- data/lib/sapor/regional_data/denmark.rb +128 -0
- data/lib/sapor/regional_data/denmark_with_e.rb +128 -0
- data/lib/sapor/regional_data/denmark_with_e_and_p.rb +128 -0
- data/lib/sapor/regional_data/denmark_with_p.rb +128 -0
- data/lib/sapor/regional_data/estonia.rb +88 -0
- data/lib/sapor/regional_data/european-union-great-britain-20140522-brexit-chuk.psv +172 -0
- data/lib/sapor/regional_data/european-union-great-britain-20140522.psv +146 -0
- data/lib/sapor/regional_data/european-union-great-britain-20190523.psv +141 -0
- data/lib/sapor/regional_data/european-union-ireland-2014-ia-ri-sd.psv +64 -0
- data/lib/sapor/regional_data/european-union-ireland-2014-ia-sd.psv +60 -0
- data/lib/sapor/regional_data/european-union-ireland-2014-ia.psv +56 -0
- data/lib/sapor/regional_data/european-union-ireland-2014-sd.psv +56 -0
- data/lib/sapor/regional_data/european-union-ireland-2014.psv +50 -0
- data/lib/sapor/regional_data/european-union-ireland-20190524-ia.psv +58 -0
- data/lib/sapor/regional_data/european-union-ireland-20190524.psv +52 -0
- data/lib/sapor/regional_data/european_union_27_austria.rb +76 -0
- data/lib/sapor/regional_data/european_union_27_croatia.rb +83 -0
- data/lib/sapor/regional_data/european_union_27_denmark.rb +77 -0
- data/lib/sapor/regional_data/european_union_27_estonia.rb +74 -0
- data/lib/sapor/regional_data/european_union_27_finland.rb +74 -0
- data/lib/sapor/regional_data/european_union_27_france.rb +84 -0
- data/lib/sapor/regional_data/european_union_27_ireland.rb +96 -0
- data/lib/sapor/regional_data/european_union_27_ireland_with_ia.rb +97 -0
- data/lib/sapor/regional_data/european_union_27_italy.rb +84 -0
- data/lib/sapor/regional_data/european_union_27_netherlands.rb +81 -0
- data/lib/sapor/regional_data/european_union_27_poland.rb +84 -0
- data/lib/sapor/regional_data/european_union_27_romania.rb +78 -0
- data/lib/sapor/regional_data/european_union_27_slovakia.rb +80 -0
- data/lib/sapor/regional_data/european_union_27_spain.rb +82 -0
- data/lib/sapor/regional_data/european_union_27_sweden.rb +76 -0
- data/lib/sapor/regional_data/european_union_austria.rb +76 -0
- data/lib/sapor/regional_data/european_union_bulgaria.rb +82 -0
- data/lib/sapor/regional_data/european_union_croatia.rb +83 -0
- data/lib/sapor/regional_data/european_union_cyprus.rb +72 -0
- data/lib/sapor/regional_data/european_union_czech_republic.rb +82 -0
- data/lib/sapor/regional_data/european_union_denmark.rb +77 -0
- data/lib/sapor/regional_data/european_union_estonia.rb +74 -0
- data/lib/sapor/regional_data/european_union_finland.rb +74 -0
- data/lib/sapor/regional_data/european_union_flanders.rb +74 -0
- data/lib/sapor/regional_data/european_union_france.rb +84 -0
- data/lib/sapor/regional_data/european_union_french_community_of_belgium.rb +73 -0
- data/lib/sapor/regional_data/european_union_germany.rb +86 -0
- data/lib/sapor/regional_data/european_union_great_britain.rb +98 -0
- data/lib/sapor/regional_data/european_union_greece.rb +77 -0
- data/lib/sapor/regional_data/european_union_hungary.rb +76 -0
- data/lib/sapor/regional_data/european_union_ireland.rb +96 -0
- data/lib/sapor/regional_data/european_union_ireland_with_ia.rb +97 -0
- data/lib/sapor/regional_data/european_union_italy.rb +84 -0
- data/lib/sapor/regional_data/european_union_latvia.rb +81 -0
- data/lib/sapor/regional_data/european_union_lithuania.rb +80 -0
- data/lib/sapor/regional_data/european_union_luxembourg.rb +75 -0
- data/lib/sapor/regional_data/european_union_malta.rb +71 -0
- data/lib/sapor/regional_data/european_union_netherlands.rb +81 -0
- data/lib/sapor/regional_data/european_union_northern_ireland.rb +75 -0
- data/lib/sapor/regional_data/european_union_poland.rb +84 -0
- data/lib/sapor/regional_data/european_union_portugal.rb +75 -0
- data/lib/sapor/regional_data/european_union_romania.rb +78 -0
- data/lib/sapor/regional_data/european_union_slovakia.rb +81 -0
- data/lib/sapor/regional_data/european_union_slovenia.rb +85 -0
- data/lib/sapor/regional_data/european_union_spain.rb +82 -0
- data/lib/sapor/regional_data/european_union_sweden.rb +76 -0
- data/lib/sapor/regional_data/finland-20150419-with-sin.psv +224 -0
- data/lib/sapor/regional_data/finland-20150419.psv +212 -0
- data/lib/sapor/regional_data/finland.rb +107 -0
- data/lib/sapor/regional_data/finland_with_sin.rb +107 -0
- data/lib/sapor/regional_data/flanders-2014.psv +96 -0
- data/lib/sapor/regional_data/flanders-20190526.psv +87 -0
- data/lib/sapor/regional_data/flanders.rb +115 -0
- data/lib/sapor/regional_data/france.rb +38 -0
- data/lib/sapor/regional_data/greece.rb +92 -0
- data/lib/sapor/regional_data/hungary-2014.psv +2104 -0
- data/lib/sapor/regional_data/hungary.rb +116 -0
- data/lib/sapor/regional_data/iceland-20161029-midflokkurinn.psv +94 -0
- data/lib/sapor/regional_data/iceland-20161029.psv +88 -0
- data/lib/sapor/regional_data/iceland-20171028-with-j.psv +94 -0
- data/lib/sapor/regional_data/iceland-20171028.psv +85 -0
- data/lib/sapor/regional_data/iceland.rb +149 -0
- data/lib/sapor/regional_data/ireland-20160226-2020-candidates.psv +322 -0
- data/lib/sapor/regional_data/ireland-20160226-2020.psv +344 -0
- data/lib/sapor/regional_data/ireland-20160226.psv +348 -0
- data/lib/sapor/regional_data/ireland.rb +165 -0
- data/lib/sapor/regional_data/latvia-20141004-kpv-p-par.psv +109 -0
- data/lib/sapor/regional_data/latvia-20141004-kpv-par.psv +103 -0
- data/lib/sapor/regional_data/latvia-20141004-kpv.psv +97 -0
- data/lib/sapor/regional_data/latvia-20141004.psv +89 -0
- data/lib/sapor/regional_data/latvia-20181006.psv +104 -0
- data/lib/sapor/regional_data/latvia.rb +111 -0
- data/lib/sapor/regional_data/luxembourg-20131020.psv +60 -0
- data/lib/sapor/regional_data/luxembourg-20181014.psv +59 -0
- data/lib/sapor/regional_data/luxembourg.rb +88 -0
- data/lib/sapor/regional_data/netherlands.rb +108 -0
- data/lib/sapor/regional_data/norway-20170911.psv +331 -0
- data/lib/sapor/regional_data/norway.rb +130 -0
- data/lib/sapor/regional_data/norwegian_municipality.rb +68 -0
- data/lib/sapor/regional_data/poland-20151025-with-ko-and-l-without-n-po-r-and-zl.psv +321 -0
- data/lib/sapor/regional_data/poland-20151025-with-ko-konf-kp-l-and-zp-without-k-k15-n-pis-po-psl-r-and-zl.psv +280 -0
- data/lib/sapor/regional_data/poland-20151025-with-ko-sld-and-wi-without-n-po-and-zl.psv +403 -0
- data/lib/sapor/regional_data/poland-20151025-with-sld-and-wi-without-zl.psv +444 -0
- data/lib/sapor/regional_data/poland-20151025-with-sld-without-zl.psv +403 -0
- data/lib/sapor/regional_data/poland-20151025.psv +403 -0
- data/lib/sapor/regional_data/poland.rb +125 -0
- data/lib/sapor/regional_data/poland_with_ko_and_l_without_n_po_r_and_zl.rb +122 -0
- data/lib/sapor/regional_data/poland_with_ko_konf_kp_l_and_zp_without_k_k15_n_pis_po_psl_r_and_zl.rb +123 -0
- data/lib/sapor/regional_data/poland_with_ko_sld_and_wi_without_n_po_and_zl.rb +125 -0
- data/lib/sapor/regional_data/poland_with_sld_and_wi_without_zl.rb +126 -0
- data/lib/sapor/regional_data/poland_with_sld_without_zl.rb +126 -0
- data/lib/sapor/regional_data/portugal-20151004-with-a-and-ch-without-paf.psv +438 -0
- data/lib/sapor/regional_data/portugal-20151004-with-a-and-il-without-paf.psv +438 -0
- data/lib/sapor/regional_data/portugal-20151004-with-a-ch-and-il-without-paf.psv +461 -0
- data/lib/sapor/regional_data/portugal-20151004-with-a-without-paf.psv +415 -0
- data/lib/sapor/regional_data/portugal-20151004-with-ch-and-il-without-paf.psv +438 -0
- data/lib/sapor/regional_data/portugal-20151004-without-paf.psv +392 -0
- data/lib/sapor/regional_data/portugal-20151004.psv +370 -0
- data/lib/sapor/regional_data/portugal.rb +101 -0
- data/lib/sapor/regional_data/portugal_with_a_and_ch_without_paf.rb +92 -0
- data/lib/sapor/regional_data/portugal_with_a_and_il_without_paf.rb +92 -0
- data/lib/sapor/regional_data/portugal_with_a_ch_and_il_without_paf.rb +92 -0
- data/lib/sapor/regional_data/portugal_with_a_without_paf.rb +92 -0
- data/lib/sapor/regional_data/portugal_with_ch_and_il_without_paf.rb +92 -0
- data/lib/sapor/regional_data/portugal_without_paf.rb +92 -0
- data/lib/sapor/regional_data/slovakia.rb +81 -0
- data/lib/sapor/regional_data/slovenia.rb +114 -0
- data/lib/sapor/regional_data/spain-20160626.psv +619 -0
- data/lib/sapor/regional_data/spain.rb +136 -0
- data/lib/sapor/regional_data/sweden.rb +92 -0
- data/lib/sapor/regional_data/sweden_20140914.rb +89 -0
- data/lib/sapor/regional_data/united_kingdom-2015.psv +4358 -0
- data/lib/sapor/regional_data/united_kingdom-20170608-brexit-chuk.psv +5154 -0
- data/lib/sapor/regional_data/united_kingdom-20170608-brexit.psv +4521 -0
- data/lib/sapor/regional_data/united_kingdom-20170608-tig.psv +4529 -0
- data/lib/sapor/regional_data/united_kingdom-20170608.psv +3894 -0
- data/lib/sapor/regional_data/united_kingdom.rb +94 -0
- data/lib/sapor/regional_data/united_kingdom_with_brexit.rb +110 -0
- data/lib/sapor/regional_data/united_kingdom_with_brexit_and_chuk.rb +111 -0
- data/lib/sapor/regional_data/united_kingdom_with_tig.rb +111 -0
- data/lib/sapor/regional_data/utopia.rb +66 -0
- data/lib/sapor/regional_data/wallonia-2014.psv +101 -0
- data/lib/sapor/regional_data/wallonia-20190526.psv +88 -0
- data/lib/sapor/regional_data/wallonia.rb +112 -0
- data/lib/sapor/representatives_polychotomy.rb +338 -0
- data/lib/sapor/single_district_proportional.rb +75 -0
- data/sapor.gemspec +35 -0
- data/spec/integration/area_spec.rb +28 -0
- data/spec/integration/poll_spec.rb +112 -0
- data/spec/integration/sample.poll +8 -0
- data/spec/spec_helper.rb +31 -0
- data/spec/unit/area_spec.rb +115 -0
- data/spec/unit/austria_spec.rb +76 -0
- data/spec/unit/belgium_brussels_spec.rb +58 -0
- data/spec/unit/belgium_flanders_spec.rb +62 -0
- data/spec/unit/belgium_spec.rb +26 -0
- data/spec/unit/belgium_wallonia_spec.rb +65 -0
- data/spec/unit/binomials_cache_spec.rb +34 -0
- data/spec/unit/catalonia_spec.rb +61 -0
- data/spec/unit/catalonia_with_vox_spec.rb +62 -0
- data/spec/unit/combinations_distribution_spec.rb +241 -0
- data/spec/unit/denmark_spec.rb +56 -0
- data/spec/unit/denmark_with_e_and_p_spec.rb +58 -0
- data/spec/unit/denmark_with_e_spec.rb +57 -0
- data/spec/unit/denmark_with_p_spec.rb +57 -0
- data/spec/unit/denominators_spec.rb +40 -0
- data/spec/unit/dichotomies_spec.rb +154 -0
- data/spec/unit/dichotomy_spec.rb +320 -0
- data/spec/unit/estonia_spec.rb +65 -0
- data/spec/unit/european_union_27_austria_spec.rb +61 -0
- data/spec/unit/european_union_27_croatia_spec.rb +60 -0
- data/spec/unit/european_union_27_denmark_spec.rb +62 -0
- data/spec/unit/european_union_27_estonia_spec.rb +94 -0
- data/spec/unit/european_union_27_finland_spec.rb +75 -0
- data/spec/unit/european_union_27_france_spec.rb +73 -0
- data/spec/unit/european_union_27_ireland_spec.rb +72 -0
- data/spec/unit/european_union_27_ireland_with_ia_spec.rb +74 -0
- data/spec/unit/european_union_27_italy_spec.rb +69 -0
- data/spec/unit/european_union_27_netherlands_spec.rb +81 -0
- data/spec/unit/european_union_27_poland_spec.rb +69 -0
- data/spec/unit/european_union_27_romania_spec.rb +67 -0
- data/spec/unit/european_union_27_slovakia_spec.rb +111 -0
- data/spec/unit/european_union_27_spain_spec.rb +130 -0
- data/spec/unit/european_union_27_sweden_spec.rb +89 -0
- data/spec/unit/european_union_austria_spec.rb +61 -0
- data/spec/unit/european_union_bulgaria_spec.rb +97 -0
- data/spec/unit/european_union_croatia_spec.rb +59 -0
- data/spec/unit/european_union_cyprus_spec.rb +65 -0
- data/spec/unit/european_union_czech_republic_spec.rb +125 -0
- data/spec/unit/european_union_denmark_spec.rb +61 -0
- data/spec/unit/european_union_estonia_spec.rb +93 -0
- data/spec/unit/european_union_finland_spec.rb +75 -0
- data/spec/unit/european_union_flanders_spec.rb +56 -0
- data/spec/unit/european_union_france_spec.rb +73 -0
- data/spec/unit/european_union_french_community_of_belgium_spec.rb +61 -0
- data/spec/unit/european_union_germany_spec.rb +90 -0
- data/spec/unit/european_union_great_britain_spec.rb +87 -0
- data/spec/unit/european_union_greece_spec.rb +148 -0
- data/spec/unit/european_union_hungary_spec.rb +57 -0
- data/spec/unit/european_union_ireland_spec.rb +72 -0
- data/spec/unit/european_union_ireland_with_ia_spec.rb +74 -0
- data/spec/unit/european_union_italy_spec.rb +69 -0
- data/spec/unit/european_union_latvia_spec.rb +76 -0
- data/spec/unit/european_union_lithuania_spec.rb +68 -0
- data/spec/unit/european_union_luxembourg_spec.rb +63 -0
- data/spec/unit/european_union_malta_spec.rb +60 -0
- data/spec/unit/european_union_netherlands_spec.rb +81 -0
- data/spec/unit/european_union_northern_ireland_spec.rb +66 -0
- data/spec/unit/european_union_poland_spec.rb +69 -0
- data/spec/unit/european_union_portugal_spec.rb +77 -0
- data/spec/unit/european_union_romania_spec.rb +67 -0
- data/spec/unit/european_union_slovakia_spec.rb +111 -0
- data/spec/unit/european_union_slovenia_spec.rb +77 -0
- data/spec/unit/european_union_spain_spec.rb +129 -0
- data/spec/unit/european_union_sweden_spec.rb +89 -0
- data/spec/unit/finland_spec.rb +65 -0
- data/spec/unit/finland_with_sin_spec.rb +67 -0
- data/spec/unit/first_past_the_post_spec.rb +54 -0
- data/spec/unit/flanders_spec.rb +70 -0
- data/spec/unit/france_spec.rb +32 -0
- data/spec/unit/greece_spec.rb +118 -0
- data/spec/unit/hungary_spec.rb +132 -0
- data/spec/unit/iceland_spec.rb +57 -0
- data/spec/unit/iceland_with_j_spec.rb +58 -0
- data/spec/unit/ireland_2016_spec.rb +62 -0
- data/spec/unit/ireland_spec.rb +62 -0
- data/spec/unit/largest_remainder_spec.rb +79 -0
- data/spec/unit/latvia_spec.rb +62 -0
- data/spec/unit/luxembourg_spec.rb +55 -0
- data/spec/unit/multi_district_leveled_proportional_spec.rb +49 -0
- data/spec/unit/multi_district_proportional_spec.rb +81 -0
- data/spec/unit/netherlands_spec.rb +107 -0
- data/spec/unit/norway_spec.rb +69 -0
- data/spec/unit/norwegian_municipality_spec.rb +89 -0
- data/spec/unit/number_formatter_spec.rb +173 -0
- data/spec/unit/poland_spec.rb +62 -0
- data/spec/unit/poland_with_ko_and_l_without_n_po_r_and_zl_spec.rb +60 -0
- data/spec/unit/poland_with_ko_konf_kp_l_and_zp_without_k_k15_n_pis_po_psl_r_and_zl_spec.rb +59 -0
- data/spec/unit/poland_with_ko_sld_and_wi_without_n_po_and_zl_spec.rb +62 -0
- data/spec/unit/poland_with_sld_and_wi_without_zl_spec.rb +63 -0
- data/spec/unit/poland_with_sld_without_zl_spec.rb +62 -0
- data/spec/unit/poll_spec.rb +110 -0
- data/spec/unit/portugal_spec.rb +66 -0
- data/spec/unit/portugal_with_a_and_ch_without_paf_spec.rb +68 -0
- data/spec/unit/portugal_with_a_and_il_without_paf_spec.rb +68 -0
- data/spec/unit/portugal_with_a_ch_and_il_without_paf_spec.rb +69 -0
- data/spec/unit/portugal_with_a_without_paf_spec.rb +67 -0
- data/spec/unit/portugal_with_ch_and_il_without_paf_spec.rb +68 -0
- data/spec/unit/portugal_without_paf_spec.rb +66 -0
- data/spec/unit/pseudorandom_multirange_enumerator_spec.rb +82 -0
- data/spec/unit/referendum_polychotomy_spec.rb +289 -0
- data/spec/unit/representatives_polychotomy_spec.rb +332 -0
- data/spec/unit/slovakia_spec.rb +99 -0
- data/spec/unit/slovenia_spec.rb +80 -0
- data/spec/unit/spain_spec.rb +101 -0
- data/spec/unit/sweden_20140914_spec.rb +112 -0
- data/spec/unit/sweden_spec.rb +113 -0
- data/spec/unit/united_kingdom_spec.rb +65 -0
- data/spec/unit/united_kingdom_with_brexit_and_chuk_spec.rb +67 -0
- data/spec/unit/united_kingdom_with_brexit_spec.rb +66 -0
- data/spec/unit/united_kingdom_with_tig_spec.rb +66 -0
- data/spec/unit/wallonia_spec.rb +70 -0
- metadata +502 -0
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Statistical Analysis of Polling Results (SAPoR)
|
|
3
|
+
# Copyright (C) 2020 Filip van Laenen <f.a.vanlaenen@ieee.org>
|
|
4
|
+
#
|
|
5
|
+
# This file is part of SAPoR.
|
|
6
|
+
#
|
|
7
|
+
# SAPoR is free software: you can redistribute it and/or modify it under the
|
|
8
|
+
# terms of the GNU General Public License as published by the Free Software
|
|
9
|
+
# Foundation, either version 3 of the License, or (at your option) any later
|
|
10
|
+
# version.
|
|
11
|
+
#
|
|
12
|
+
# SAPoR is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
13
|
+
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
14
|
+
# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
15
|
+
#
|
|
16
|
+
# You can find a copy of the GNU General Public License in /doc/gpl.txt
|
|
17
|
+
#
|
|
18
|
+
|
|
19
|
+
module Sapor
|
|
20
|
+
#
|
|
21
|
+
# The regional data for Netherlands.
|
|
22
|
+
#
|
|
23
|
+
class Netherlands < Area
|
|
24
|
+
include Singleton
|
|
25
|
+
|
|
26
|
+
def area_code
|
|
27
|
+
'NL'
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def coalitions
|
|
31
|
+
COALITIONS
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def no_of_seats
|
|
35
|
+
NO_OF_SEATS
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def population_size
|
|
39
|
+
POPULATION_SIZE
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def seats(simulation)
|
|
43
|
+
electoral_system.project(simulation)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def threshold
|
|
47
|
+
THRESHOLD
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
private
|
|
51
|
+
|
|
52
|
+
CDA_PARTY = 'Christen-Democratisch Appèl'.freeze
|
|
53
|
+
CU_PARTY = 'ChristenUnie'.freeze
|
|
54
|
+
D66_PARTY = 'Democraten 66'.freeze
|
|
55
|
+
FIFTY_PARTY = '50Plus'.freeze
|
|
56
|
+
FVD_PARTY = 'Forum voor Democratie'.freeze
|
|
57
|
+
GL_PARTY = 'GroenLinks'.freeze
|
|
58
|
+
PVDA_PARTY = 'Partij van de Arbeid'.freeze
|
|
59
|
+
PVV_PARTY = 'Partij voor de Vrijheid'.freeze
|
|
60
|
+
SGP_PARTY = 'Staatkundig Gereformeerde Partij'.freeze
|
|
61
|
+
SP_PARTY = 'Socialistische Partij'.freeze
|
|
62
|
+
VVD_PARTY = 'Volkspartij voor Vrijheid en Democratie'.freeze
|
|
63
|
+
|
|
64
|
+
COALITIONS = [[CDA_PARTY, CU_PARTY, D66_PARTY, GL_PARTY, PVDA_PARTY],
|
|
65
|
+
[CDA_PARTY, CU_PARTY, D66_PARTY, GL_PARTY, PVDA_PARTY,
|
|
66
|
+
SP_PARTY],
|
|
67
|
+
[CDA_PARTY, CU_PARTY, D66_PARTY, GL_PARTY, VVD_PARTY],
|
|
68
|
+
[CDA_PARTY, CU_PARTY, D66_PARTY, PVDA_PARTY, VVD_PARTY],
|
|
69
|
+
[CDA_PARTY, CU_PARTY, D66_PARTY, VVD_PARTY],
|
|
70
|
+
[CDA_PARTY, CU_PARTY, PVDA_PARTY],
|
|
71
|
+
[CDA_PARTY, D66_PARTY],
|
|
72
|
+
[CDA_PARTY, D66_PARTY, PVDA_PARTY],
|
|
73
|
+
[CDA_PARTY, D66_PARTY, VVD_PARTY],
|
|
74
|
+
[CDA_PARTY, FIFTY_PARTY, FVD_PARTY, VVD_PARTY],
|
|
75
|
+
[CDA_PARTY, FIFTY_PARTY, FVD_PARTY, VVD_PARTY, SGP_PARTY],
|
|
76
|
+
[CDA_PARTY, FVD_PARTY, PVV_PARTY, SGP_PARTY, VVD_PARTY],
|
|
77
|
+
[CDA_PARTY, FVD_PARTY, PVV_PARTY, VVD_PARTY],
|
|
78
|
+
[CDA_PARTY, FVD_PARTY, SGP_PARTY, VVD_PARTY],
|
|
79
|
+
[CDA_PARTY, FVD_PARTY, VVD_PARTY],
|
|
80
|
+
[CDA_PARTY, PVDA_PARTY],
|
|
81
|
+
[CDA_PARTY, PVDA_PARTY, VVD_PARTY],
|
|
82
|
+
[CDA_PARTY, PVV_PARTY, VVD_PARTY],
|
|
83
|
+
[CDA_PARTY, VVD_PARTY],
|
|
84
|
+
[D66_PARTY, PVDA_PARTY, VVD_PARTY],
|
|
85
|
+
[PVDA_PARTY, VVD_PARTY]].freeze
|
|
86
|
+
|
|
87
|
+
NO_OF_SEATS = 150
|
|
88
|
+
|
|
89
|
+
# Voter turnout on 21 March 2017
|
|
90
|
+
# Source: Web page with the official results of the elections of 21 March
|
|
91
|
+
# 2017, downloaded on 10 August 2019,
|
|
92
|
+
# https://nl.wikipedia.org/wiki/Tweede_Kamerverkiezingen_2017
|
|
93
|
+
POPULATION_SIZE = 10_516_041
|
|
94
|
+
|
|
95
|
+
THRESHOLD = 1 / NO_OF_SEATS.to_f
|
|
96
|
+
|
|
97
|
+
def electoral_system
|
|
98
|
+
if @electoral_system.nil?
|
|
99
|
+
@electoral_system = SingleDistrictProportional.new(
|
|
100
|
+
NO_OF_SEATS,
|
|
101
|
+
DhondtDenominators,
|
|
102
|
+
THRESHOLD
|
|
103
|
+
)
|
|
104
|
+
end
|
|
105
|
+
@electoral_system
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
end
|
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
# Statistical Analysis of Polling Results (SAPoR)
|
|
2
|
+
# Copyright (C) 2020 Filip van Laenen <f.a.vanlaenen@ieee.org>
|
|
3
|
+
#
|
|
4
|
+
# This file is part of SAPoR.
|
|
5
|
+
#
|
|
6
|
+
# SAPoR is free software: you can redistribute it and/or modify it under the
|
|
7
|
+
# terms of the GNU General Public License as published by the Free Software
|
|
8
|
+
# Foundation, either version 3 of the License, or (at your option) any later
|
|
9
|
+
# version.
|
|
10
|
+
#
|
|
11
|
+
# SAPoR is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
12
|
+
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
13
|
+
# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
14
|
+
#
|
|
15
|
+
# You can find a copy of the GNU General Public License in /doc/gpl.txt
|
|
16
|
+
#
|
|
17
|
+
Østfold | Arbeiderpartiet | 51545
|
|
18
|
+
Østfold | Sosialistisk Venstreparti | 7036
|
|
19
|
+
Østfold | Rødt | 3435
|
|
20
|
+
Østfold | Senterpartiet | 13943
|
|
21
|
+
Østfold | Kristelig Folkeparti | 6811
|
|
22
|
+
Østfold | Miljøpartiet De Grønne | 4192
|
|
23
|
+
Østfold | Venstre | 3878
|
|
24
|
+
Østfold | Høyre | 38264
|
|
25
|
+
Østfold | Fremskrittspartiet | 28181
|
|
26
|
+
Østfold | Alliansen | 211
|
|
27
|
+
Østfold | Demokratene i Norge | 190
|
|
28
|
+
Østfold | Helsepartiet | 806
|
|
29
|
+
Østfold | Partiet De Kristne | 518
|
|
30
|
+
Østfold | Kystpartiet | 98
|
|
31
|
+
Østfold | Liberalistene | 353
|
|
32
|
+
Østfold | Pensjonistpartiet | 1359
|
|
33
|
+
Akershus | Arbeiderpartiet | 88689
|
|
34
|
+
Akershus | Sosialistisk Venstreparti | 17859
|
|
35
|
+
Akershus | Rødt | 6542
|
|
36
|
+
Akershus | Senterpartiet | 20219
|
|
37
|
+
Akershus | Kristelig Folkeparti | 7839
|
|
38
|
+
Akershus | Miljøpartiet De Grønne | 12459
|
|
39
|
+
Akershus | Venstre | 21853
|
|
40
|
+
Akershus | Høyre | 104451
|
|
41
|
+
Akershus | Fremskrittspartiet | 50741
|
|
42
|
+
Akershus | Alliansen | 383
|
|
43
|
+
Akershus | Demokratene i Norge | 268
|
|
44
|
+
Akershus | Helsepartiet | 2052
|
|
45
|
+
Akershus | Partiet De Kristne | 420
|
|
46
|
+
Akershus | Kystpartiet | 136
|
|
47
|
+
Akershus | Liberalistene | 598
|
|
48
|
+
Akershus | Piratpartiet | 565
|
|
49
|
+
Akershus | Pensjonistpartiet | 1954
|
|
50
|
+
Oslo | Arbeiderpartiet | 104089
|
|
51
|
+
Oslo | Sosialistisk Venstreparti | 34052
|
|
52
|
+
Oslo | Rødt | 23083
|
|
53
|
+
Oslo | Senterpartiet | 7778
|
|
54
|
+
Oslo | Kristelig Folkeparti | 7843
|
|
55
|
+
Oslo | Miljøpartiet De Grønne | 21853
|
|
56
|
+
Oslo | Venstre | 30933
|
|
57
|
+
Oslo | Høyre | 97085
|
|
58
|
+
Oslo | Fremskrittspartiet | 35037
|
|
59
|
+
Oslo | Alliansen | 314
|
|
60
|
+
Oslo | Demokratene i Norge | 326
|
|
61
|
+
Oslo | Helsepartiet | 1184
|
|
62
|
+
Oslo | Partiet De Kristne | 343
|
|
63
|
+
Oslo | Liberalistene | 667
|
|
64
|
+
Oslo | Norges Kommunistiske Parti | 119
|
|
65
|
+
Oslo | Piratpartiet | 630
|
|
66
|
+
Oslo | Pensjonistpartiet | 1335
|
|
67
|
+
Oslo | Samfunnspartiet | 104
|
|
68
|
+
Oslo | Feministisk Initiativ | 326
|
|
69
|
+
Hedmark | Arbeiderpartiet | 40561
|
|
70
|
+
Hedmark | Sosialistisk Venstreparti | 6528
|
|
71
|
+
Hedmark | Rødt | 1443
|
|
72
|
+
Hedmark | Senterpartiet | 25296
|
|
73
|
+
Hedmark | Kristelig Folkeparti | 2051
|
|
74
|
+
Hedmark | Miljøpartiet De Grønne | 2215
|
|
75
|
+
Hedmark | Venstre | 2659
|
|
76
|
+
Hedmark | Høyre | 17454
|
|
77
|
+
Hedmark | Fremskrittspartiet | 13376
|
|
78
|
+
Hedmark | Alliansen | 120
|
|
79
|
+
Hedmark | Demokratene i Norge | 192
|
|
80
|
+
Hedmark | Helsepartiet | 356
|
|
81
|
+
Hedmark | Partiet De Kristne | 165
|
|
82
|
+
Hedmark | Kystpartiet | 45
|
|
83
|
+
Hedmark | Liberalistene | 165
|
|
84
|
+
Hedmark | Pensjonistpartiet | 1303
|
|
85
|
+
Hedmark | Norgespartiet | 151
|
|
86
|
+
Oppland | Arbeiderpartiet | 38056
|
|
87
|
+
Oppland | Sosialistisk Venstreparti | 5028
|
|
88
|
+
Oppland | Rødt | 1823
|
|
89
|
+
Oppland | Senterpartiet | 22990
|
|
90
|
+
Oppland | Kristelig Folkeparti | 2281
|
|
91
|
+
Oppland | Miljøpartiet De Grønne | 2550
|
|
92
|
+
Oppland | Venstre | 2776
|
|
93
|
+
Oppland | Høyre | 18163
|
|
94
|
+
Oppland | Fremskrittspartiet | 13285
|
|
95
|
+
Oppland | Alliansen | 138
|
|
96
|
+
Oppland | Demokratene i Norge | 132
|
|
97
|
+
Oppland | Helsepartiet | 455
|
|
98
|
+
Oppland | Partiet De Kristne | 184
|
|
99
|
+
Oppland | Kystpartiet | 40
|
|
100
|
+
Oppland | Liberalistene | 146
|
|
101
|
+
Oppland | Pensjonistpartiet | 453
|
|
102
|
+
Buskerud | Arbeiderpartiet | 43143
|
|
103
|
+
Buskerud | Sosialistisk Venstreparti | 7642
|
|
104
|
+
Buskerud | Rødt | 2260
|
|
105
|
+
Buskerud | Senterpartiet | 16446
|
|
106
|
+
Buskerud | Kristelig Folkeparti | 3995
|
|
107
|
+
Buskerud | Miljøpartiet De Grønne | 4112
|
|
108
|
+
Buskerud | Venstre | 5604
|
|
109
|
+
Buskerud | Høyre | 41011
|
|
110
|
+
Buskerud | Fremskrittspartiet | 26419
|
|
111
|
+
Buskerud | Alliansen | 221
|
|
112
|
+
Buskerud | Demokratene i Norge | 201
|
|
113
|
+
Buskerud | Helsepartiet | 855
|
|
114
|
+
Buskerud | Partiet De Kristne | 275
|
|
115
|
+
Buskerud | Kystpartiet | 91
|
|
116
|
+
Buskerud | Liberalistene | 318
|
|
117
|
+
Vestfold | Arbeiderpartiet | 39118
|
|
118
|
+
Vestfold | Sosialistisk Venstreparti | 6927
|
|
119
|
+
Vestfold | Rødt | 2602
|
|
120
|
+
Vestfold | Senterpartiet | 8777
|
|
121
|
+
Vestfold | Kristelig Folkeparti | 5159
|
|
122
|
+
Vestfold | Miljøpartiet De Grønne | 4107
|
|
123
|
+
Vestfold | Venstre | 5373
|
|
124
|
+
Vestfold | Høyre | 42179
|
|
125
|
+
Vestfold | Fremskrittspartiet | 23628
|
|
126
|
+
Vestfold | Alliansen | 186
|
|
127
|
+
Vestfold | Demokratene i Norge | 160
|
|
128
|
+
Vestfold | Helsepartiet | 672
|
|
129
|
+
Vestfold | Partiet De Kristne | 403
|
|
130
|
+
Vestfold | Kystpartiet | 111
|
|
131
|
+
Vestfold | Liberalistene | 309
|
|
132
|
+
Vestfold | Piratpartiet | 217
|
|
133
|
+
Telemark | Arbeiderpartiet | 30931
|
|
134
|
+
Telemark | Sosialistisk Venstreparti | 4800
|
|
135
|
+
Telemark | Rødt | 2041
|
|
136
|
+
Telemark | Senterpartiet | 12457
|
|
137
|
+
Telemark | Kristelig Folkeparti | 4825
|
|
138
|
+
Telemark | Miljøpartiet De Grønne | 2392
|
|
139
|
+
Telemark | Venstre | 2591
|
|
140
|
+
Telemark | Høyre | 19445
|
|
141
|
+
Telemark | Fremskrittspartiet | 16013
|
|
142
|
+
Telemark | Alliansen | 138
|
|
143
|
+
Telemark | Demokratene i Norge | 129
|
|
144
|
+
Telemark | Helsepartiet | 354
|
|
145
|
+
Telemark | Partiet De Kristne | 537
|
|
146
|
+
Telemark | Kystpartiet | 81
|
|
147
|
+
Telemark | Liberalistene | 133
|
|
148
|
+
Aust-Agder | Arbeiderpartiet | 16481
|
|
149
|
+
Aust-Agder | Sosialistisk Venstreparti | 2562
|
|
150
|
+
Aust-Agder | Rødt | 807
|
|
151
|
+
Aust-Agder | Senterpartiet | 5385
|
|
152
|
+
Aust-Agder | Kristelig Folkeparti | 6352
|
|
153
|
+
Aust-Agder | Miljøpartiet De Grønne | 1676
|
|
154
|
+
Aust-Agder | Venstre | 2121
|
|
155
|
+
Aust-Agder | Høyre | 16614
|
|
156
|
+
Aust-Agder | Fremskrittspartiet | 11195
|
|
157
|
+
Aust-Agder | Alliansen | 61
|
|
158
|
+
Aust-Agder | Demokratene i Norge | 102
|
|
159
|
+
Aust-Agder | Helsepartiet | 249
|
|
160
|
+
Aust-Agder | Partiet De Kristne | 470
|
|
161
|
+
Aust-Agder | Kystpartiet | 24
|
|
162
|
+
Aust-Agder | Liberalistene | 122
|
|
163
|
+
Aust-Agder | Piratpartiet | 102
|
|
164
|
+
Aust-Agder | Pensjonistpartiet | 453
|
|
165
|
+
Vest-Agder | Arbeiderpartiet | 21238
|
|
166
|
+
Vest-Agder | Sosialistisk Venstreparti | 4333
|
|
167
|
+
Vest-Agder | Rødt | 1376
|
|
168
|
+
Vest-Agder | Senterpartiet | 6542
|
|
169
|
+
Vest-Agder | Kristelig Folkeparti | 12747
|
|
170
|
+
Vest-Agder | Miljøpartiet De Grønne | 2911
|
|
171
|
+
Vest-Agder | Venstre | 3654
|
|
172
|
+
Vest-Agder | Høyre | 28146
|
|
173
|
+
Vest-Agder | Fremskrittspartiet | 17284
|
|
174
|
+
Vest-Agder | Alliansen | 99
|
|
175
|
+
Vest-Agder | Demokratene i Norge | 748
|
|
176
|
+
Vest-Agder | Helsepartiet | 226
|
|
177
|
+
Vest-Agder | Partiet De Kristne | 793
|
|
178
|
+
Vest-Agder | Kystpartiet | 66
|
|
179
|
+
Vest-Agder | Liberalistene | 211
|
|
180
|
+
Vest-Agder | Piratpartiet | 153
|
|
181
|
+
Vest-Agder | Pensjonistpartiet | 428
|
|
182
|
+
Rogaland | Arbeiderpartiet | 56340
|
|
183
|
+
Rogaland | Sosialistisk Venstreparti | 9895
|
|
184
|
+
Rogaland | Rødt | 2895
|
|
185
|
+
Rogaland | Senterpartiet | 18897
|
|
186
|
+
Rogaland | Kristelig Folkeparti | 21092
|
|
187
|
+
Rogaland | Miljøpartiet De Grønne | 6444
|
|
188
|
+
Rogaland | Venstre | 8851
|
|
189
|
+
Rogaland | Høyre | 72201
|
|
190
|
+
Rogaland | Fremskrittspartiet | 49451
|
|
191
|
+
Rogaland | Alliansen | 231
|
|
192
|
+
Rogaland | Demokratene i Norge | 240
|
|
193
|
+
Rogaland | Helsepartiet | 530
|
|
194
|
+
Rogaland | Partiet De Kristne | 1256
|
|
195
|
+
Rogaland | Kystpartiet | 248
|
|
196
|
+
Rogaland | Liberalistene | 644
|
|
197
|
+
Rogaland | Norges Kommunistiske Parti | 75
|
|
198
|
+
Rogaland | Piratpartiet | 444
|
|
199
|
+
Rogaland | Pensjonistpartiet | 1226
|
|
200
|
+
Rogaland | Verdipartiet | 148
|
|
201
|
+
Hordaland | Arbeiderpartiet | 68195
|
|
202
|
+
Hordaland | Sosialistisk Venstreparti | 20958
|
|
203
|
+
Hordaland | Rødt | 6402
|
|
204
|
+
Hordaland | Senterpartiet | 22594
|
|
205
|
+
Hordaland | Kristelig Folkeparti | 16513
|
|
206
|
+
Hordaland | Miljøpartiet De Grønne | 10476
|
|
207
|
+
Hordaland | Venstre | 13027
|
|
208
|
+
Hordaland | Høyre | 90733
|
|
209
|
+
Hordaland | Fremskrittspartiet | 45060
|
|
210
|
+
Hordaland | Alliansen | 309
|
|
211
|
+
Hordaland | Demokratene i Norge | 328
|
|
212
|
+
Hordaland | Helsepartiet | 745
|
|
213
|
+
Hordaland | Partiet De Kristne | 1357
|
|
214
|
+
Hordaland | Kystpartiet | 443
|
|
215
|
+
Hordaland | Liberalistene | 601
|
|
216
|
+
Hordaland | Piratpartiet | 486
|
|
217
|
+
Hordaland | Feministisk Initiativ | 370
|
|
218
|
+
Sogn og Fjordane | Arbeiderpartiet | 15258
|
|
219
|
+
Sogn og Fjordane | Sosialistisk Venstreparti | 2781
|
|
220
|
+
Sogn og Fjordane | Rødt | 790
|
|
221
|
+
Sogn og Fjordane | Senterpartiet | 18446
|
|
222
|
+
Sogn og Fjordane | Kristelig Folkeparti | 2683
|
|
223
|
+
Sogn og Fjordane | Miljøpartiet De Grønne | 1410
|
|
224
|
+
Sogn og Fjordane | Venstre | 2532
|
|
225
|
+
Sogn og Fjordane | Høyre | 11572
|
|
226
|
+
Sogn og Fjordane | Fremskrittspartiet | 6153
|
|
227
|
+
Sogn og Fjordane | Alliansen | 43
|
|
228
|
+
Sogn og Fjordane | Demokratene i Norge | 43
|
|
229
|
+
Sogn og Fjordane | Helsepartiet | 110
|
|
230
|
+
Sogn og Fjordane | Partiet De Kristne | 255
|
|
231
|
+
Sogn og Fjordane | Liberalistene | 56
|
|
232
|
+
Møre og Romsdal | Arbeiderpartiet | 31353
|
|
233
|
+
Møre og Romsdal | Sosialistisk Venstreparti | 5745
|
|
234
|
+
Møre og Romsdal | Rødt | 1809
|
|
235
|
+
Møre og Romsdal | Senterpartiet | 19046
|
|
236
|
+
Møre og Romsdal | Kristelig Folkeparti | 9017
|
|
237
|
+
Møre og Romsdal | Miljøpartiet De Grønne | 3167
|
|
238
|
+
Møre og Romsdal | Venstre | 5088
|
|
239
|
+
Møre og Romsdal | Høyre | 34708
|
|
240
|
+
Møre og Romsdal | Fremskrittspartiet | 32750
|
|
241
|
+
Møre og Romsdal | Alliansen | 181
|
|
242
|
+
Møre og Romsdal | Demokratene i Norge | 129
|
|
243
|
+
Møre og Romsdal | Partiet De Kristne | 741
|
|
244
|
+
Møre og Romsdal | Kystpartiet | 121
|
|
245
|
+
Møre og Romsdal | Liberalistene | 175
|
|
246
|
+
Møre og Romsdal | Pensjonistpartiet | 798
|
|
247
|
+
Møre og Romsdal | Nordmørslista | 2135
|
|
248
|
+
Sør-Trøndelag | Arbeiderpartiet | 59610
|
|
249
|
+
Sør-Trøndelag | Sosialistisk Venstreparti | 14008
|
|
250
|
+
Sør-Trøndelag | Rødt | 5344
|
|
251
|
+
Sør-Trøndelag | Senterpartiet | 19409
|
|
252
|
+
Sør-Trøndelag | Kristelig Folkeparti | 4974
|
|
253
|
+
Sør-Trøndelag | Miljøpartiet De Grønne | 7082
|
|
254
|
+
Sør-Trøndelag | Venstre | 7385
|
|
255
|
+
Sør-Trøndelag | Høyre | 37719
|
|
256
|
+
Sør-Trøndelag | Fremskrittspartiet | 21248
|
|
257
|
+
Sør-Trøndelag | Alliansen | 264
|
|
258
|
+
Sør-Trøndelag | Demokratene i Norge | 168
|
|
259
|
+
Sør-Trøndelag | Helsepartiet | 405
|
|
260
|
+
Sør-Trøndelag | Partiet De Kristne | 225
|
|
261
|
+
Sør-Trøndelag | Kystpartiet | 143
|
|
262
|
+
Sør-Trøndelag | Liberalistene | 368
|
|
263
|
+
Sør-Trøndelag | Piratpartiet | 361
|
|
264
|
+
Sør-Trøndelag | Pensjonistpartiet | 3083
|
|
265
|
+
Nord-Trøndelag | Arbeiderpartiet | 26822
|
|
266
|
+
Nord-Trøndelag | Sosialistisk Venstreparti | 3951
|
|
267
|
+
Nord-Trøndelag | Rødt | 1282
|
|
268
|
+
Nord-Trøndelag | Senterpartiet | 19155
|
|
269
|
+
Nord-Trøndelag | Kristelig Folkeparti | 2115
|
|
270
|
+
Nord-Trøndelag | Miljøpartiet De Grønne | 1386
|
|
271
|
+
Nord-Trøndelag | Venstre | 1758
|
|
272
|
+
Nord-Trøndelag | Høyre | 11568
|
|
273
|
+
Nord-Trøndelag | Fremskrittspartiet | 9014
|
|
274
|
+
Nord-Trøndelag | Alliansen | 91
|
|
275
|
+
Nord-Trøndelag | Demokratene i Norge | 98
|
|
276
|
+
Nord-Trøndelag | Helsepartiet | 295
|
|
277
|
+
Nord-Trøndelag | Partiet De Kristne | 169
|
|
278
|
+
Nord-Trøndelag | Kystpartiet | 61
|
|
279
|
+
Nord-Trøndelag | Liberalistene | 78
|
|
280
|
+
Nord-Trøndelag | Piratpartiet | 112
|
|
281
|
+
Nord-Trøndelag | Pensjonistpartiet | 463
|
|
282
|
+
Nordland | Arbeiderpartiet | 35196
|
|
283
|
+
Nordland | Sosialistisk Venstreparti | 9467
|
|
284
|
+
Nordland | Rødt | 3905
|
|
285
|
+
Nordland | Senterpartiet | 25207
|
|
286
|
+
Nordland | Kristelig Folkeparti | 3284
|
|
287
|
+
Nordland | Miljøpartiet De Grønne | 2932
|
|
288
|
+
Nordland | Venstre | 3509
|
|
289
|
+
Nordland | Høyre | 27273
|
|
290
|
+
Nordland | Fremskrittspartiet | 22248
|
|
291
|
+
Nordland | Alliansen | 127
|
|
292
|
+
Nordland | Demokratene i Norge | 186
|
|
293
|
+
Nordland | Helsepartiet | 615
|
|
294
|
+
Nordland | Partiet De Kristne | 288
|
|
295
|
+
Nordland | Kystpartiet | 420
|
|
296
|
+
Nordland | Liberalistene | 269
|
|
297
|
+
Nordland | Norges Kommunistiske Parti | 59
|
|
298
|
+
Nordland | Piratpartiet | 210
|
|
299
|
+
Troms Romsa | Arbeiderpartiet | 21882
|
|
300
|
+
Troms Romsa | Sosialistisk Venstreparti | 9213
|
|
301
|
+
Troms Romsa | Rødt | 2081
|
|
302
|
+
Troms Romsa | Senterpartiet | 13640
|
|
303
|
+
Troms Romsa | Kristelig Folkeparti | 2408
|
|
304
|
+
Troms Romsa | Miljøpartiet De Grønne | 2588
|
|
305
|
+
Troms Romsa | Venstre | 2674
|
|
306
|
+
Troms Romsa | Høyre | 18709
|
|
307
|
+
Troms Romsa | Fremskrittspartiet | 16604
|
|
308
|
+
Troms Romsa | Alliansen | 115
|
|
309
|
+
Troms Romsa | Demokratene i Norge | 119
|
|
310
|
+
Troms Romsa | Helsepartiet | 289
|
|
311
|
+
Troms Romsa | Partiet De Kristne | 160
|
|
312
|
+
Troms Romsa | Kystpartiet | 173
|
|
313
|
+
Troms Romsa | Liberalistene | 300
|
|
314
|
+
Troms Romsa | Norges Kommunistiske Parti | 56
|
|
315
|
+
Troms Romsa | Nordting | 59
|
|
316
|
+
Finnmark Finnmárku | Arbeiderpartiet | 12440
|
|
317
|
+
Finnmark Finnmárku | Sosialistisk Venstreparti | 3437
|
|
318
|
+
Finnmark Finnmárku | Rødt | 602
|
|
319
|
+
Finnmark Finnmárku | Senterpartiet | 5790
|
|
320
|
+
Finnmark Finnmárku | Kristelig Folkeparti | 808
|
|
321
|
+
Finnmark Finnmárku | Miljøpartiet De Grønne | 836
|
|
322
|
+
Finnmark Finnmárku | Venstre | 1644
|
|
323
|
+
Finnmark Finnmárku | Høyre | 5600
|
|
324
|
+
Finnmark Finnmárku | Fremskrittspartiet | 6994
|
|
325
|
+
Finnmark Finnmárku | Alliansen | 79
|
|
326
|
+
Finnmark Finnmárku | Demokratene i Norge | 71
|
|
327
|
+
Finnmark Finnmárku | Helsepartiet | 139
|
|
328
|
+
Finnmark Finnmárku | Partiet De Kristne | 141
|
|
329
|
+
Finnmark Finnmárku | Kystpartiet | 166
|
|
330
|
+
Finnmark Finnmárku | Liberalistene | 86
|
|
331
|
+
Finnmark Finnmárku | Piratpartiet | 76
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Statistical Analysis of Polling Results (SAPoR)
|
|
3
|
+
# Copyright (C) 2020 Filip van Laenen <f.a.vanlaenen@ieee.org>
|
|
4
|
+
#
|
|
5
|
+
# This file is part of SAPoR.
|
|
6
|
+
#
|
|
7
|
+
# SAPoR is free software: you can redistribute it and/or modify it under the
|
|
8
|
+
# terms of the GNU General Public License as published by the Free Software
|
|
9
|
+
# Foundation, either version 3 of the License, or (at your option) any later
|
|
10
|
+
# version.
|
|
11
|
+
#
|
|
12
|
+
# SAPoR is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
13
|
+
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
14
|
+
# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
15
|
+
#
|
|
16
|
+
# You can find a copy of the GNU General Public License in /doc/gpl.txt
|
|
17
|
+
#
|
|
18
|
+
|
|
19
|
+
module Sapor
|
|
20
|
+
#
|
|
21
|
+
# The regional data for Norway.
|
|
22
|
+
#
|
|
23
|
+
class Norway < Area
|
|
24
|
+
include Singleton
|
|
25
|
+
|
|
26
|
+
def area_code
|
|
27
|
+
'NO'
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def coalitions
|
|
31
|
+
COALITIONS
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def no_of_seats
|
|
35
|
+
NO_OF_SEATS
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def overall_election_results_of_2017
|
|
39
|
+
if @overall_election_results_of_2017.nil?
|
|
40
|
+
@overall_election_results_of_2017 = \
|
|
41
|
+
summarize_election_results(election_results_of_2017)
|
|
42
|
+
end
|
|
43
|
+
@overall_election_results_of_2017
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def population_size
|
|
47
|
+
# Source: Valgresultat.no, retrieved on 1 January 2020.
|
|
48
|
+
# URL: https://valgresultat.no/?type=st&year=2017
|
|
49
|
+
2_926_836
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def seats(simulation)
|
|
53
|
+
electoral_system.project(simulation)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def threshold
|
|
57
|
+
LEVELING_THRESHOLD
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
private
|
|
61
|
+
|
|
62
|
+
AP_PARTY = 'Arbeiderpartiet'.freeze
|
|
63
|
+
FRP_PARTY = 'Fremskrittspartiet'.freeze
|
|
64
|
+
H_PARTY = 'Høyre'.freeze
|
|
65
|
+
KRF_PARTY = 'Kristelig Folkeparti'.freeze
|
|
66
|
+
MDG_PARTY = 'Miljøpartiet De Grønne'.freeze
|
|
67
|
+
R_PARTY = 'Rødt'.freeze
|
|
68
|
+
SP_PARTY = 'Senterpartiet'.freeze
|
|
69
|
+
SV_PARTY = 'Sosialistisk Venstreparti'.freeze
|
|
70
|
+
V_PARTY = 'Venstre'.freeze
|
|
71
|
+
|
|
72
|
+
COALITIONS = [[AP_PARTY, KRF_PARTY, MDG_PARTY, SP_PARTY],
|
|
73
|
+
[AP_PARTY, KRF_PARTY, MDG_PARTY, SP_PARTY, SV_PARTY],
|
|
74
|
+
[AP_PARTY, KRF_PARTY, SP_PARTY],
|
|
75
|
+
[AP_PARTY, MDG_PARTY, R_PARTY, SP_PARTY, SV_PARTY],
|
|
76
|
+
[AP_PARTY, MDG_PARTY, SP_PARTY, SV_PARTY],
|
|
77
|
+
[AP_PARTY, R_PARTY, SP_PARTY, SV_PARTY],
|
|
78
|
+
[AP_PARTY, SP_PARTY, SV_PARTY],
|
|
79
|
+
[AP_PARTY, SP_PARTY],
|
|
80
|
+
[AP_PARTY, SV_PARTY],
|
|
81
|
+
[FRP_PARTY, H_PARTY],
|
|
82
|
+
[FRP_PARTY, H_PARTY, KRF_PARTY, MDG_PARTY, V_PARTY],
|
|
83
|
+
[FRP_PARTY, H_PARTY, KRF_PARTY, SP_PARTY, V_PARTY],
|
|
84
|
+
[FRP_PARTY, H_PARTY, KRF_PARTY, V_PARTY],
|
|
85
|
+
[FRP_PARTY, H_PARTY, V_PARTY],
|
|
86
|
+
[H_PARTY, KRF_PARTY, V_PARTY],
|
|
87
|
+
[KRF_PARTY, SP_PARTY, V_PARTY]].freeze
|
|
88
|
+
|
|
89
|
+
# Source: Valg i Norge, Valgkretser, Wikipedia, retrieved on 1 May 2015.
|
|
90
|
+
# URL: http://no.wikipedia.org/wiki/Valg_i_Norge#Valgkretser
|
|
91
|
+
DIRECT_SEAT_DISTRIBUTION = { 'Akershus' => 16, 'Aust-Agder' => 3,
|
|
92
|
+
'Buskerud' => 8, 'Finnmark Finnmárku' => 4,
|
|
93
|
+
'Hedmark' => 6, 'Hordaland' => 15,
|
|
94
|
+
'Møre og Romsdal' => 8, 'Nord-Trøndelag' => 4,
|
|
95
|
+
'Nordland' => 8, 'Oppland' => 6, 'Oslo' => 18,
|
|
96
|
+
'Rogaland' => 13, 'Sogn og Fjordane' => 3,
|
|
97
|
+
'Sør-Trøndelag' => 9, 'Telemark' => 5,
|
|
98
|
+
'Troms Romsa' => 5, 'Vest-Agder' => 5,
|
|
99
|
+
'Vestfold' => 6, 'Østfold' => 8 }.freeze
|
|
100
|
+
|
|
101
|
+
LEVELING_THRESHOLD = 0.04
|
|
102
|
+
|
|
103
|
+
# Source: Valg i Norge, Valgkretser, Wikipedia, retrieved on 16 April 2015.
|
|
104
|
+
# URL: http://no.wikipedia.org/wiki/Valg_i_Norge#Valgkretser
|
|
105
|
+
NO_OF_LEVELING_SEATS = 19
|
|
106
|
+
|
|
107
|
+
NO_OF_SEATS = NO_OF_LEVELING_SEATS + \
|
|
108
|
+
DIRECT_SEAT_DISTRIBUTION.values.inject(:+)
|
|
109
|
+
|
|
110
|
+
def election_results_of_2017
|
|
111
|
+
if @election_results_of_2017.nil?
|
|
112
|
+
@election_results_of_2017 = load_election_results(
|
|
113
|
+
'norway-20170911.psv'
|
|
114
|
+
)
|
|
115
|
+
end
|
|
116
|
+
@election_results_of_2017
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
def electoral_system
|
|
120
|
+
if @electoral_system.nil?
|
|
121
|
+
@electoral_system = MultiDistrictLeveledProportional.new(
|
|
122
|
+
overall_election_results_of_2017, election_results_of_2017,
|
|
123
|
+
DIRECT_SEAT_DISTRIBUTION, NO_OF_LEVELING_SEATS, LEVELING_THRESHOLD,
|
|
124
|
+
SainteLague14Denominators
|
|
125
|
+
)
|
|
126
|
+
end
|
|
127
|
+
@electoral_system
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
end
|