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,74 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
#
|
|
3
|
+
# Statistical Analysis of Polling Results (SAPoR)
|
|
4
|
+
# Copyright (C) 2020 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
|
+
require 'spec_helper'
|
|
21
|
+
|
|
22
|
+
describe Sapor::EuropeanUnionIrelandWithIa, '#area_code' do
|
|
23
|
+
it 'returns EU[IE]∪{IA} as the area code' do
|
|
24
|
+
expect(Sapor::EuropeanUnionIrelandWithIa.instance.area_code).to \
|
|
25
|
+
eq('EU[IE]∪{IA}')
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe Sapor::EuropeanUnionIrelandWithIa, '#no_of_seats' do
|
|
30
|
+
it 'returns 11 as the number of seats' do
|
|
31
|
+
expect(Sapor::EuropeanUnionIrelandWithIa.instance.no_of_seats).to eq(11)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
describe Sapor::EuropeanUnionIrelandWithIa, '#population_size' do
|
|
36
|
+
it 'returns a population size of 1,678,003' do
|
|
37
|
+
expect(Sapor::EuropeanUnionIrelandWithIa.instance.population_size).to \
|
|
38
|
+
eq(1_678_003)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
describe Sapor::EuropeanUnionIrelandWithIa, '#seats' do
|
|
43
|
+
it 'calculates the number of seats for the election of 2019' do
|
|
44
|
+
results = { 'Fine Gael (EPP)' => 496_459,
|
|
45
|
+
'Green Party (Greens/EFA)' => 190_755,
|
|
46
|
+
'Independents 4 Change (GUE/NGL)' => 124_085,
|
|
47
|
+
'Fianna Fáil (RE)' => 277_705,
|
|
48
|
+
'Sinn Féin (GUE/NGL)' => 196_001,
|
|
49
|
+
'Labour Party (S&D)' => 52_753,
|
|
50
|
+
'Solidarity–People Before Profit (GUE/NGL)' => 38_771,
|
|
51
|
+
'Social Democrats (S&D)' => 20_331,
|
|
52
|
+
'Renua Ireland (*)' => 6_897,
|
|
53
|
+
'Workers’ Party (NI)' => 3_701,
|
|
54
|
+
'Identity Ireland (*)' => 3_685,
|
|
55
|
+
'Direct Democracy Ireland (*)' => 2_773,
|
|
56
|
+
'Independents (*)' => 264_087,
|
|
57
|
+
'Independent Alliance (*)' => 264_087 }
|
|
58
|
+
seats = Sapor::EuropeanUnionIrelandWithIa.instance.seats(results)
|
|
59
|
+
expect(seats['Fine Gael (EPP)']).to eq(4 + 1)
|
|
60
|
+
expect(seats['Green Party (Greens/EFA)']).to eq(2 - 1)
|
|
61
|
+
expect(seats['Independents 4 Change (GUE/NGL)']).to eq(2 - 1)
|
|
62
|
+
expect(seats['Fianna Fáil (RE)']).to eq(1 + 1)
|
|
63
|
+
expect(seats['Sinn Féin (GUE/NGL)']).to eq(1 - 1)
|
|
64
|
+
expect(seats['Labour Party (S&D)']).to eq(0)
|
|
65
|
+
expect(seats['Solidarity–People Before Profit (GUE/NGL)']).to eq(0)
|
|
66
|
+
expect(seats['Social Democrats (S&D)']).to eq(0)
|
|
67
|
+
expect(seats['Renua Ireland (*)']).to eq(0)
|
|
68
|
+
expect(seats['Workers’ Party (NI)']).to eq(0)
|
|
69
|
+
expect(seats['Identity Ireland (*)']).to eq(0)
|
|
70
|
+
expect(seats['Direct Democracy Ireland (*)']).to eq(0)
|
|
71
|
+
expect(seats['Independents (*)']).to eq(1 + 1 - 1)
|
|
72
|
+
expect(seats['Independent Alliance (*)']).to eq(1 + 1 - 1)
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
#
|
|
3
|
+
# Statistical Analysis of Polling Results (SAPoR)
|
|
4
|
+
# Copyright (C) 2020 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
|
+
require 'spec_helper'
|
|
21
|
+
|
|
22
|
+
describe Sapor::EuropeanUnionItaly, '#area_code' do
|
|
23
|
+
it 'returns EU[IT] as the area code' do
|
|
24
|
+
expect(Sapor::EuropeanUnionItaly.instance.area_code).to eq('EU[IT]')
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
describe Sapor::EuropeanUnionItaly, '#no_of_seats' do
|
|
29
|
+
it 'returns 73 as the number of seats' do
|
|
30
|
+
expect(Sapor::EuropeanUnionItaly.instance.no_of_seats).to eq(73)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
describe Sapor::EuropeanUnionItaly, '#population_size' do
|
|
35
|
+
it 'returns a population size of 26,783,732' do
|
|
36
|
+
expect(Sapor::EuropeanUnionItaly.instance.population_size).to \
|
|
37
|
+
eq(26_783_732)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
describe Sapor::EuropeanUnionItaly, '#seats' do
|
|
42
|
+
it 'calculates the number of seats using the votes of the 2014 election' do
|
|
43
|
+
results = { 'Partito Democratico (S&D)' => 11_203_231,
|
|
44
|
+
'Movimento 5 Stelle (EFDD)' => 5_792_865,
|
|
45
|
+
'Forza Italia (EPP)' => 4_614_364,
|
|
46
|
+
'Lega Nord (ENF)' => 1_688_197,
|
|
47
|
+
'Nuovo Centrodestra–Unione di Centro (EPP)' => 1_202_350,
|
|
48
|
+
'L’Altra Europa con Tsipras (GUE/NGL)' => 1_108_457,
|
|
49
|
+
'Fratelli d’Italia (—)' => 1_006_513,
|
|
50
|
+
'Verdi Europei–Green Italia (Greens/EFA)' => 250_102,
|
|
51
|
+
'Scelta Europea (ALDE)' => 197_942,
|
|
52
|
+
'Italia dei Valori (ALDE)' => 181_373,
|
|
53
|
+
'Südtiroler Volkspartei (EPP)' => 138_037,
|
|
54
|
+
'Io Cambio–MAIE (—)' => 50_978 }
|
|
55
|
+
seats = Sapor::EuropeanUnionItaly.instance.seats(results)
|
|
56
|
+
expect(seats['Partito Democratico (S&D)']).to eq(31)
|
|
57
|
+
expect(seats['Movimento 5 Stelle (EFDD)']).to eq(17)
|
|
58
|
+
expect(seats['Forza Italia (EPP)']).to eq(13)
|
|
59
|
+
expect(seats['Lega Nord (ENF)']).to eq(5)
|
|
60
|
+
expect(seats['Nuovo Centrodestra–Unione di Centro (EPP)']).to eq(3)
|
|
61
|
+
expect(seats['L’Altra Europa con Tsipras (GUE/NGL)']).to eq(3)
|
|
62
|
+
expect(seats['Fratelli d’Italia (—)']).to eq(0)
|
|
63
|
+
expect(seats['Verdi Europei–Green Italia (Greens/EFA)']).to eq(0)
|
|
64
|
+
expect(seats['Scelta Europea (ALDE)']).to eq(0)
|
|
65
|
+
expect(seats['Italia dei Valori (ALDE)']).to eq(0)
|
|
66
|
+
expect(seats['Südtiroler Volkspartei (EPP)']).to eq(1)
|
|
67
|
+
expect(seats['Io Cambio–MAIE (—)']).to eq(0)
|
|
68
|
+
end
|
|
69
|
+
end
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
#
|
|
3
|
+
# Statistical Analysis of Polling Results (SAPoR)
|
|
4
|
+
# Copyright (C) 2020 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
|
+
require 'spec_helper'
|
|
21
|
+
|
|
22
|
+
describe Sapor::EuropeanUnionLatvia, '#area_code' do
|
|
23
|
+
it 'returns EU[LV] as the area code' do
|
|
24
|
+
expect(Sapor::EuropeanUnionLatvia.instance.area_code).to eq('EU[LV]')
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
describe Sapor::EuropeanUnionLatvia, '#no_of_seats' do
|
|
29
|
+
it 'returns 8 as the number of seats' do
|
|
30
|
+
expect(Sapor::EuropeanUnionLatvia.instance.no_of_seats).to eq(8)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
describe Sapor::EuropeanUnionLatvia, '#population_size' do
|
|
35
|
+
it 'returns a population size of 470.460' do
|
|
36
|
+
expect(Sapor::EuropeanUnionLatvia.instance.population_size).to \
|
|
37
|
+
eq(470_460)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
describe Sapor::EuropeanUnionLatvia, '#seats' do
|
|
42
|
+
it 'calculates the number of seats for the election of 2014' do
|
|
43
|
+
results = { 'Vienotība (EPP)' => 204_979,
|
|
44
|
+
'Nacionālā apvienība „Visu Latvijai!”–„Tēvzemei un ' \
|
|
45
|
+
'Brīvībai/LNNK” (ECR)' => 63_229,
|
|
46
|
+
'Sociāldemokrātiskā Partija “Saskaņa” (S&D)' => 57_863,
|
|
47
|
+
'Zaļo un Zemnieku savienība (ALDE)' => 36_637,
|
|
48
|
+
'Latvijas Krievu savienība (Greens/EFA)' => 28_303,
|
|
49
|
+
'Alternative (*)' => 16_566,
|
|
50
|
+
'Latvijas Reģionu apvienība (*)' => 11_035,
|
|
51
|
+
'Latvijas attīstībai (ALDE)' => 9_421,
|
|
52
|
+
'Latvijas Sociālistiskā partija (NI)' => 6_817,
|
|
53
|
+
'Latvijas Sociāldemokrātiskā Strādnieku partija (S&D)' => 1_462,
|
|
54
|
+
'Kristīgi demokrātiskā savienība (ECR)' => 1_453,
|
|
55
|
+
'Latvijas Atdzimšanas partija (*)' => 1_252,
|
|
56
|
+
'Par prezidentālu republiku (*)' => 672,
|
|
57
|
+
'Suverenitāte (*)' => 599 }
|
|
58
|
+
seats = Sapor::EuropeanUnionLatvia.instance.seats(results)
|
|
59
|
+
expect(seats['Vienotība (EPP)']).to eq(4)
|
|
60
|
+
expect(seats['Nacionālā apvienība „Visu Latvijai!”–„Tēvzemei un ' \
|
|
61
|
+
'Brīvībai/LNNK” (ECR)']).to eq(1)
|
|
62
|
+
expect(seats['Sociāldemokrātiskā Partija “Saskaņa” (S&D)']).to eq(1)
|
|
63
|
+
expect(seats['Zaļo un Zemnieku savienība (ALDE)']).to eq(1)
|
|
64
|
+
expect(seats['Latvijas Krievu savienība (Greens/EFA)']).to eq(1)
|
|
65
|
+
expect(seats['Alternative (*)']).to eq(0)
|
|
66
|
+
expect(seats['Latvijas Reģionu apvienība (*)']).to eq(0)
|
|
67
|
+
expect(seats['Latvijas attīstībai (ALDE)']).to eq(0)
|
|
68
|
+
expect(seats['Latvijas Sociālistiskā partija (NI)']).to eq(0)
|
|
69
|
+
expect(seats['Latvijas Sociāldemokrātiskā Strādnieku partija (S&D)']).to \
|
|
70
|
+
eq(0)
|
|
71
|
+
expect(seats['Kristīgi demokrātiskā savienība (ECR)']).to eq(0)
|
|
72
|
+
expect(seats['Latvijas Atdzimšanas partija (*)']).to eq(0)
|
|
73
|
+
expect(seats['Par prezidentālu republiku (*)']).to eq(0)
|
|
74
|
+
expect(seats['Suverenitāte (*)']).to eq(0)
|
|
75
|
+
end
|
|
76
|
+
end
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
#
|
|
3
|
+
# Statistical Analysis of Polling Results (SAPoR)
|
|
4
|
+
# Copyright (C) 2020 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
|
+
require 'spec_helper'
|
|
21
|
+
|
|
22
|
+
describe Sapor::EuropeanUnionLithuania, '#area_code' do
|
|
23
|
+
it 'returns EU[LT] as the area code' do
|
|
24
|
+
expect(Sapor::EuropeanUnionLithuania.instance.area_code).to eq('EU[LT]')
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
describe Sapor::EuropeanUnionLithuania, '#no_of_seats' do
|
|
29
|
+
it 'returns 11 as the number of seats' do
|
|
30
|
+
expect(Sapor::EuropeanUnionLithuania.instance.no_of_seats).to eq(11)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
describe Sapor::EuropeanUnionLithuania, '#population_size' do
|
|
35
|
+
it 'returns a population size of 1,322,036' do
|
|
36
|
+
expect(Sapor::EuropeanUnionLithuania.instance.population_size).to \
|
|
37
|
+
eq(1_322_036)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
describe Sapor::EuropeanUnionLithuania, '#seats' do
|
|
42
|
+
it 'calculates the number of seats for the election of 2014' do
|
|
43
|
+
results = { 'Tėvynės sąjunga–Lietuvos krikščionys demokratai (EPP)' => \
|
|
44
|
+
199_393,
|
|
45
|
+
'Lietuvos socialdemokratų partija (S&D)' => 197_477,
|
|
46
|
+
'Liberalų Sąjūdis (ALDE)' => 189_373,
|
|
47
|
+
'Partija tvarka ir teisingumas (EFDD)' => 163_049,
|
|
48
|
+
'Darbo Partija (ALDE)' => 146_607,
|
|
49
|
+
'Lietuvos lenkų rinkimų akcija–Rusų aljanso (ECR)' => 92_108,
|
|
50
|
+
'Lietuvos valstiečių ir žaliųjų sąjunga (Greens/EFA)' => 75_643,
|
|
51
|
+
'Lietuvos Žaliųjų Partija (—)' => 40_696,
|
|
52
|
+
'Lietuvių tautininkų sąjunga (—)' => 22_858,
|
|
53
|
+
'Liberalų ir centro sąjunga (ALDE)' => 16_927 }
|
|
54
|
+
seats = Sapor::EuropeanUnionLithuania.instance.seats(results)
|
|
55
|
+
expect(seats['Tėvynės sąjunga–Lietuvos krikščionys demokratai (EPP)']).to \
|
|
56
|
+
eq(2)
|
|
57
|
+
expect(seats['Lietuvos socialdemokratų partija (S&D)']).to eq(2)
|
|
58
|
+
expect(seats['Liberalų Sąjūdis (ALDE)']).to eq(2)
|
|
59
|
+
expect(seats['Partija tvarka ir teisingumas (EFDD)']).to eq(2)
|
|
60
|
+
expect(seats['Darbo Partija (ALDE)']).to eq(1)
|
|
61
|
+
expect(seats['Lietuvos lenkų rinkimų akcija–Rusų aljanso (ECR)']).to eq(1)
|
|
62
|
+
expect(seats['Lietuvos valstiečių ir žaliųjų sąjunga (Greens/EFA)']).to \
|
|
63
|
+
eq(1)
|
|
64
|
+
expect(seats['Lietuvos Žaliųjų Partija (—)']).to eq(0)
|
|
65
|
+
expect(seats['Lietuvių tautininkų sąjunga (—)']).to eq(0)
|
|
66
|
+
expect(seats['Liberalų ir centro sąjunga (ALDE)']).to eq(0)
|
|
67
|
+
end
|
|
68
|
+
end
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
#
|
|
3
|
+
# Statistical Analysis of Polling Results (SAPoR)
|
|
4
|
+
# Copyright (C) 2020 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
|
+
require 'spec_helper'
|
|
21
|
+
|
|
22
|
+
describe Sapor::EuropeanUnionLuxembourg, '#area_code' do
|
|
23
|
+
it 'returns EU[LU] as the area code' do
|
|
24
|
+
expect(Sapor::EuropeanUnionLuxembourg.instance.area_code).to eq('EU[LU]')
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
describe Sapor::EuropeanUnionLuxembourg, '#no_of_seats' do
|
|
29
|
+
it 'returns 6 as the number of seats' do
|
|
30
|
+
expect(Sapor::EuropeanUnionLuxembourg.instance.no_of_seats).to eq(6)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
describe Sapor::EuropeanUnionLuxembourg, '#population_size' do
|
|
35
|
+
it 'returns a population size of 1,254,363' do
|
|
36
|
+
expect(Sapor::EuropeanUnionLuxembourg.instance.population_size).to \
|
|
37
|
+
eq(1_254_363)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
describe Sapor::EuropeanUnionLuxembourg, '#seats' do
|
|
42
|
+
it 'calculates the number of seats for the election of 2014' do
|
|
43
|
+
results = { 'Chrëschtlech-Sozial Vollekspartei (EPP)' => 441_578,
|
|
44
|
+
'déi gréng (Greens/EFA)' => 176_073,
|
|
45
|
+
'Demokratesch Partei (ALDE)' => 173_255,
|
|
46
|
+
'Lëtzebuerger Sozialistesch Aarbechterpartei (S&D)' => 137_504,
|
|
47
|
+
'Alternativ Demokratesch Reformpartei (ECR)' => 88_298,
|
|
48
|
+
'Déi Lénk (GUE/NGL)' => 67_544,
|
|
49
|
+
'Kommunistesch Partei Lëtzebuerg (*)' => 17_506,
|
|
50
|
+
'Piratepartei Lëtzebuerg (Greens/EFA)' => 49_553,
|
|
51
|
+
'Partei fir Integral Demokratie (*)' => 21_303 }
|
|
52
|
+
seats = Sapor::EuropeanUnionLuxembourg.instance.seats(results)
|
|
53
|
+
expect(seats['Chrëschtlech-Sozial Vollekspartei (EPP)']).to eq(3)
|
|
54
|
+
expect(seats['déi gréng (Greens/EFA)']).to eq(1)
|
|
55
|
+
expect(seats['Demokratesch Partei (ALDE)']).to eq(1)
|
|
56
|
+
expect(seats['Lëtzebuerger Sozialistesch Aarbechterpartei (S&D)']).to eq(1)
|
|
57
|
+
expect(seats['Alternativ Demokratesch Reformpartei (ECR)']).to eq(0)
|
|
58
|
+
expect(seats['Déi Lénk (GUE/NGL)']).to eq(0)
|
|
59
|
+
expect(seats['Kommunistesch Partei Lëtzebuerg (*)']).to eq(0)
|
|
60
|
+
expect(seats['Piratepartei Lëtzebuerg (Greens/EFA)']).to eq(0)
|
|
61
|
+
expect(seats['Partei fir Integral Demokratie (*)']).to eq(0)
|
|
62
|
+
end
|
|
63
|
+
end
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
#
|
|
3
|
+
# Statistical Analysis of Polling Results (SAPoR)
|
|
4
|
+
# Copyright (C) 2020 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
|
+
require 'spec_helper'
|
|
21
|
+
|
|
22
|
+
describe Sapor::EuropeanUnionMalta, '#area_code' do
|
|
23
|
+
it 'returns EU[MT] as the area code' do
|
|
24
|
+
expect(Sapor::EuropeanUnionMalta.instance.area_code).to \
|
|
25
|
+
eq('EU[MT]')
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe Sapor::EuropeanUnionMalta, '#no_of_seats' do
|
|
30
|
+
it 'returns 6 as the number of seats' do
|
|
31
|
+
expect(Sapor::EuropeanUnionMalta.instance.no_of_seats).to eq(6)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
describe Sapor::EuropeanUnionMalta, '#population_size' do
|
|
36
|
+
it 'returns a population size of 251,851' do
|
|
37
|
+
expect(Sapor::EuropeanUnionMalta.instance.population_size).to \
|
|
38
|
+
eq(260_160)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
describe Sapor::EuropeanUnionMalta, '#seats' do
|
|
43
|
+
it 'calculates the number of seats for the election of 2014' do
|
|
44
|
+
results = { 'Partit Laburista (S&D)' => 134_462,
|
|
45
|
+
'Partit Nazzjonalista (EPP)' => 100_785,
|
|
46
|
+
'Alternattiva Demokratika (Greens/EFA)' => 7_418,
|
|
47
|
+
'Imperium Europa (*)' => 6_761,
|
|
48
|
+
'Ajkla (*)' => 1_208,
|
|
49
|
+
'Alleanza Bidla (*)' => 1_015,
|
|
50
|
+
'Alleanza Liberali (*)' => 202 }
|
|
51
|
+
seats = Sapor::EuropeanUnionMalta.instance.seats(results)
|
|
52
|
+
expect(seats['Partit Laburista (S&D)']).to eq(3 + 1)
|
|
53
|
+
expect(seats['Partit Nazzjonalista (EPP)']).to eq(3 - 1)
|
|
54
|
+
expect(seats['Alternattiva Demokratika (Greens/EFA)']).to eq(0)
|
|
55
|
+
expect(seats['Imperium Europa (*)']).to eq(0)
|
|
56
|
+
expect(seats['Ajkla (*)']).to eq(0)
|
|
57
|
+
expect(seats['Alleanza Bidla (*)']).to eq(0)
|
|
58
|
+
expect(seats['Alleanza Liberali (*)']).to eq(0)
|
|
59
|
+
end
|
|
60
|
+
end
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
#
|
|
3
|
+
# Statistical Analysis of Polling Results (SAPoR)
|
|
4
|
+
# Copyright (C) 2020 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
|
+
require 'spec_helper'
|
|
21
|
+
|
|
22
|
+
describe Sapor::EuropeanUnionNetherlands, '#area_code' do
|
|
23
|
+
it 'returns EU[NL] as the area code' do
|
|
24
|
+
expect(Sapor::EuropeanUnionNetherlands.instance.area_code).to eq('EU[NL]')
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
describe Sapor::EuropeanUnionNetherlands, '#no_of_seats' do
|
|
29
|
+
it 'returns 26 as the number of seats' do
|
|
30
|
+
expect(Sapor::EuropeanUnionNetherlands.instance.no_of_seats).to eq(26)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
describe Sapor::EuropeanUnionNetherlands, '#population_size' do
|
|
35
|
+
it 'returns a population size of 5,497,813' do
|
|
36
|
+
expect(Sapor::EuropeanUnionNetherlands.instance.population_size).to \
|
|
37
|
+
eq(5_497_813)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
describe Sapor::EuropeanUnionNetherlands, '#seats' do
|
|
42
|
+
it 'calculates the number of seats for the election of 2014' do
|
|
43
|
+
results = { 'Democraten 66 (ALDE)' => 735_825,
|
|
44
|
+
'Christen-Democratisch Appèl–ChristenUnie–Staatkundig' \
|
|
45
|
+
' Gereformeerde Partij (EPP)' => 721_766 + 364_843,
|
|
46
|
+
'Partij voor de Vrijheid (ENF)' => 633_114,
|
|
47
|
+
'Volkspartij voor Vrijheid en Democratie (ALDE)' => 571_176,
|
|
48
|
+
'Socialistische Partij (GUE/NGL)' => 458_079,
|
|
49
|
+
'Partij van de Arbeid–GroenLinks (S&D)' => 446_763 + 331_594,
|
|
50
|
+
'Partij voor de Dieren (GUE/NGL)' => 200_254,
|
|
51
|
+
'50Plus (ALDE)' => 175_343,
|
|
52
|
+
'Piratenpartij (Greens/EFA)' => 40_216,
|
|
53
|
+
'Artikel 50 (—)' => 24_069,
|
|
54
|
+
'Anti Europa Partij (—)' => 12_290,
|
|
55
|
+
'De Groenen (Greens/EFA)' => 10_833,
|
|
56
|
+
'Jezus Leeft (—)' => 9_507,
|
|
57
|
+
'ikkiesvooreerlijk.eu (—)' => 6_796,
|
|
58
|
+
'Liberaal Democratische Partij (—)' => 6_349,
|
|
59
|
+
'Aandacht en Eenvoud (—)' => 3_174,
|
|
60
|
+
'IQ, de Rechten-Plichten-Partij (—)' => 1_705 }
|
|
61
|
+
seats = Sapor::EuropeanUnionNetherlands.instance.seats(results)
|
|
62
|
+
expect(seats['Democraten 66 (ALDE)']).to eq(4)
|
|
63
|
+
expect(seats['Christen-Democratisch Appèl–ChristenUnie–Staatkundig' \
|
|
64
|
+
' Gereformeerde Partij (EPP)']).to eq(5 + 2)
|
|
65
|
+
expect(seats['Partij voor de Vrijheid (ENF)']).to eq(4)
|
|
66
|
+
expect(seats['Volkspartij voor Vrijheid en Democratie (ALDE)']).to eq(3)
|
|
67
|
+
expect(seats['Socialistische Partij (GUE/NGL)']).to eq(2)
|
|
68
|
+
expect(seats['Partij van de Arbeid–GroenLinks (S&D)']).to eq(3 + 2)
|
|
69
|
+
expect(seats['Partij voor de Dieren (GUE/NGL)']).to eq(1)
|
|
70
|
+
expect(seats['50Plus (ALDE)']).to eq(0)
|
|
71
|
+
expect(seats['Piratenpartij (Greens/EFA)']).to eq(0)
|
|
72
|
+
expect(seats['Artikel 50 (—)']).to eq(0)
|
|
73
|
+
expect(seats['Anti Europa Partij (—)']).to eq(0)
|
|
74
|
+
expect(seats['De Groenen (Greens/EFA)']).to eq(0)
|
|
75
|
+
expect(seats['Jezus Leeft (—)']).to eq(0)
|
|
76
|
+
expect(seats['ikkiesvooreerlijk.eu (—)']).to eq(0)
|
|
77
|
+
expect(seats['Liberaal Democratische Partij (—)']).to eq(0)
|
|
78
|
+
expect(seats['Aandacht en Eenvoud (—)']).to eq(0)
|
|
79
|
+
expect(seats['IQ, de Rechten-Plichten-Partij (—)']).to eq(0)
|
|
80
|
+
end
|
|
81
|
+
end
|