sapor 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/Area Class Diagram.dia +0 -0
- data/Area Class Diagram.png +0 -0
- data/Class Diagram.dia +0 -0
- data/Class Diagram.png +0 -0
- data/Example-Catalonia.md +361 -0
- data/Example-Flanders.md +486 -0
- data/Example-Greece.md +25 -0
- data/Example-Oslo.md +678 -0
- data/Example-UnitedKingdom-Referendum.md +132 -0
- data/Examples.md +15 -0
- data/LICENSE +674 -0
- data/README.md +103 -0
- data/Rakefile +18 -0
- data/Technical Documentation.md +14 -0
- data/bin/create_installation_package.sh +49 -0
- data/bin/install.sh +45 -0
- data/bin/sapor.rb +24 -0
- data/bin/sapor.sh +106 -0
- data/data/hu/hungary-2014.txt +1680 -0
- data/data/hu/hungary_2014_screen_scraper.rb +48 -0
- data/data/hu/hungary_2014_to_psv.rb +80 -0
- data/data/hu/index-2014.txt +106 -0
- data/data/pl/2015-gl-lis-okr.csv +42 -0
- data/data/pl/poland_2015_to_psv.rb +79 -0
- data/data/pl/poland_2015_to_psv_with_ko_and_rsw.rb +94 -0
- data/data/pl/poland_2015_to_psv_with_ko_konf_kp_l_and_zp.rb +100 -0
- data/data/pl/poland_2015_to_psv_with_ko_sld_and_wi.rb +92 -0
- data/data/pl/poland_2015_to_psv_with_sld.rb +84 -0
- data/data/pl/poland_2015_to_psv_with_sld_and_wi.rb +85 -0
- data/data/uk/inject_ukip_2015_as_brexit_2019_in_2017.rb +54 -0
- data/data/uk/united_kingdom_2015.txt +651 -0
- data/data/uk/united_kingdom_2015_to_psv.rb +104 -0
- data/data/uk/united_kingdom_2017.txt +651 -0
- data/data/uk/united_kingdom_2017_to_psv.rb +104 -0
- data/data/uk/united_kingdom_2017_to_psv_with_brexit_and_chuk.rb +113 -0
- data/data/uk/united_kingdom_2017_to_psv_with_tig.rb +111 -0
- data/lib/sapor.rb +150 -0
- data/lib/sapor/binomials_cache.rb +45 -0
- data/lib/sapor/combinations_distribution.rb +222 -0
- data/lib/sapor/denominators.rb +67 -0
- data/lib/sapor/dichotomies.rb +138 -0
- data/lib/sapor/dichotomy.rb +164 -0
- data/lib/sapor/first_past_the_post.rb +82 -0
- data/lib/sapor/largest_remainder.rb +118 -0
- data/lib/sapor/log4r_logger.rb +49 -0
- data/lib/sapor/log_facade.rb +40 -0
- data/lib/sapor/multi_district_leveled_proportional.rb +64 -0
- data/lib/sapor/multi_district_proportional.rb +123 -0
- data/lib/sapor/multi_district_variable_threshold_proportional.rb +128 -0
- data/lib/sapor/number_formatter.rb +45 -0
- data/lib/sapor/options.rb +73 -0
- data/lib/sapor/poll.rb +286 -0
- data/lib/sapor/polychotomy.rb +200 -0
- data/lib/sapor/pseudorandom_multirange_enumerator.rb +87 -0
- data/lib/sapor/referendum_polychotomy.rb +165 -0
- data/lib/sapor/regional_data/area.rb +82 -0
- data/lib/sapor/regional_data/austria.rb +84 -0
- data/lib/sapor/regional_data/belgium-brussels-2014.psv +46 -0
- data/lib/sapor/regional_data/belgium-brussels-20190526.psv +33 -0
- data/lib/sapor/regional_data/belgium-flanders-2014.psv +80 -0
- data/lib/sapor/regional_data/belgium-flanders-20190526.psv +74 -0
- data/lib/sapor/regional_data/belgium-wallonia-2014.psv +114 -0
- data/lib/sapor/regional_data/belgium-wallonia-20190526.psv +93 -0
- data/lib/sapor/regional_data/belgium.rb +97 -0
- data/lib/sapor/regional_data/belgium_brussels.rb +62 -0
- data/lib/sapor/regional_data/belgium_flanders.rb +64 -0
- data/lib/sapor/regional_data/belgium_wallonia.rb +63 -0
- data/lib/sapor/regional_data/catalonia-2012-2015.psv +100 -0
- data/lib/sapor/regional_data/catalonia-2012.psv +87 -0
- data/lib/sapor/regional_data/catalonia-2015-jxcat.psv +68 -0
- data/lib/sapor/regional_data/catalonia-2015-no-jxsi.psv +68 -0
- data/lib/sapor/regional_data/catalonia-2015.psv +63 -0
- data/lib/sapor/regional_data/catalonia-jxcat.rb +109 -0
- data/lib/sapor/regional_data/catalonia-no-jxsi.rb +96 -0
- data/lib/sapor/regional_data/catalonia.rb +96 -0
- data/lib/sapor/regional_data/denmark-20150618-with-e-and-p.psv +164 -0
- data/lib/sapor/regional_data/denmark-20150618-with-e.psv +153 -0
- data/lib/sapor/regional_data/denmark-20150618-with-p.psv +153 -0
- data/lib/sapor/regional_data/denmark-20150618.psv +142 -0
- data/lib/sapor/regional_data/denmark.rb +128 -0
- data/lib/sapor/regional_data/denmark_with_e.rb +128 -0
- data/lib/sapor/regional_data/denmark_with_e_and_p.rb +128 -0
- data/lib/sapor/regional_data/denmark_with_p.rb +128 -0
- data/lib/sapor/regional_data/estonia.rb +88 -0
- data/lib/sapor/regional_data/european-union-great-britain-20140522-brexit-chuk.psv +172 -0
- data/lib/sapor/regional_data/european-union-great-britain-20140522.psv +146 -0
- data/lib/sapor/regional_data/european-union-great-britain-20190523.psv +141 -0
- data/lib/sapor/regional_data/european-union-ireland-2014-ia-ri-sd.psv +64 -0
- data/lib/sapor/regional_data/european-union-ireland-2014-ia-sd.psv +60 -0
- data/lib/sapor/regional_data/european-union-ireland-2014-ia.psv +56 -0
- data/lib/sapor/regional_data/european-union-ireland-2014-sd.psv +56 -0
- data/lib/sapor/regional_data/european-union-ireland-2014.psv +50 -0
- data/lib/sapor/regional_data/european-union-ireland-20190524-ia.psv +58 -0
- data/lib/sapor/regional_data/european-union-ireland-20190524.psv +52 -0
- data/lib/sapor/regional_data/european_union_27_austria.rb +76 -0
- data/lib/sapor/regional_data/european_union_27_croatia.rb +81 -0
- data/lib/sapor/regional_data/european_union_27_denmark.rb +77 -0
- data/lib/sapor/regional_data/european_union_27_estonia.rb +74 -0
- data/lib/sapor/regional_data/european_union_27_finland.rb +74 -0
- data/lib/sapor/regional_data/european_union_27_ireland.rb +96 -0
- data/lib/sapor/regional_data/european_union_27_ireland_with_ia.rb +97 -0
- data/lib/sapor/regional_data/european_union_27_italy.rb +84 -0
- data/lib/sapor/regional_data/european_union_27_netherlands.rb +81 -0
- data/lib/sapor/regional_data/european_union_27_poland.rb +84 -0
- data/lib/sapor/regional_data/european_union_27_romania.rb +78 -0
- data/lib/sapor/regional_data/european_union_27_slovakia.rb +80 -0
- data/lib/sapor/regional_data/european_union_27_spain.rb +82 -0
- data/lib/sapor/regional_data/european_union_27_sweden.rb +76 -0
- data/lib/sapor/regional_data/european_union_austria.rb +76 -0
- data/lib/sapor/regional_data/european_union_bulgaria.rb +81 -0
- data/lib/sapor/regional_data/european_union_croatia.rb +81 -0
- data/lib/sapor/regional_data/european_union_cyprus.rb +72 -0
- data/lib/sapor/regional_data/european_union_czech_republic.rb +82 -0
- data/lib/sapor/regional_data/european_union_denmark.rb +77 -0
- data/lib/sapor/regional_data/european_union_estonia.rb +74 -0
- data/lib/sapor/regional_data/european_union_finland.rb +74 -0
- data/lib/sapor/regional_data/european_union_flanders.rb +74 -0
- data/lib/sapor/regional_data/european_union_france.rb +84 -0
- data/lib/sapor/regional_data/european_union_france_2019.rb +84 -0
- data/lib/sapor/regional_data/european_union_french_community_of_belgium.rb +73 -0
- data/lib/sapor/regional_data/european_union_germany.rb +86 -0
- data/lib/sapor/regional_data/european_union_great_britain.rb +98 -0
- data/lib/sapor/regional_data/european_union_greece.rb +77 -0
- data/lib/sapor/regional_data/european_union_hungary.rb +76 -0
- data/lib/sapor/regional_data/european_union_ireland.rb +96 -0
- data/lib/sapor/regional_data/european_union_ireland_with_ia.rb +97 -0
- data/lib/sapor/regional_data/european_union_italy.rb +84 -0
- data/lib/sapor/regional_data/european_union_latvia.rb +81 -0
- data/lib/sapor/regional_data/european_union_lithuania.rb +80 -0
- data/lib/sapor/regional_data/european_union_luxembourg.rb +75 -0
- data/lib/sapor/regional_data/european_union_malta.rb +71 -0
- data/lib/sapor/regional_data/european_union_netherlands.rb +81 -0
- data/lib/sapor/regional_data/european_union_northern_ireland.rb +75 -0
- data/lib/sapor/regional_data/european_union_poland.rb +84 -0
- data/lib/sapor/regional_data/european_union_portugal.rb +75 -0
- data/lib/sapor/regional_data/european_union_romania.rb +78 -0
- data/lib/sapor/regional_data/european_union_slovakia.rb +81 -0
- data/lib/sapor/regional_data/european_union_slovenia.rb +85 -0
- data/lib/sapor/regional_data/european_union_spain.rb +82 -0
- data/lib/sapor/regional_data/european_union_sweden.rb +76 -0
- data/lib/sapor/regional_data/finland-20150419-with-sin.psv +224 -0
- data/lib/sapor/regional_data/finland-20150419.psv +212 -0
- data/lib/sapor/regional_data/finland.rb +107 -0
- data/lib/sapor/regional_data/finland_with_sin.rb +107 -0
- data/lib/sapor/regional_data/flanders-2014.psv +96 -0
- data/lib/sapor/regional_data/flanders-20190526.psv +87 -0
- data/lib/sapor/regional_data/flanders.rb +115 -0
- data/lib/sapor/regional_data/france.rb +38 -0
- data/lib/sapor/regional_data/greece.rb +92 -0
- data/lib/sapor/regional_data/hungary-2014.psv +2104 -0
- data/lib/sapor/regional_data/hungary.rb +116 -0
- data/lib/sapor/regional_data/iceland-20161029-midflokkurinn.psv +94 -0
- data/lib/sapor/regional_data/iceland-20161029.psv +88 -0
- data/lib/sapor/regional_data/iceland-20171028.psv +85 -0
- data/lib/sapor/regional_data/iceland.rb +133 -0
- data/lib/sapor/regional_data/latvia-20141004-kpv-p-par.psv +109 -0
- data/lib/sapor/regional_data/latvia-20141004-kpv-par.psv +103 -0
- data/lib/sapor/regional_data/latvia-20141004-kpv.psv +97 -0
- data/lib/sapor/regional_data/latvia-20141004.psv +89 -0
- data/lib/sapor/regional_data/latvia.rb +112 -0
- data/lib/sapor/regional_data/latvia_kpv.rb +112 -0
- data/lib/sapor/regional_data/latvia_kpv_p_par.rb +112 -0
- data/lib/sapor/regional_data/latvia_kpv_par.rb +112 -0
- data/lib/sapor/regional_data/luxembourg-20131020.psv +76 -0
- data/lib/sapor/regional_data/luxembourg.rb +82 -0
- data/lib/sapor/regional_data/netherlands.rb +108 -0
- data/lib/sapor/regional_data/norway.rb +425 -0
- data/lib/sapor/regional_data/norwegian_municipality.rb +68 -0
- data/lib/sapor/regional_data/poland-20151025-with-ko-and-l-without-n-po-r-and-zl.psv +321 -0
- data/lib/sapor/regional_data/poland-20151025-with-ko-konf-kp-l-and-zp-without-k-k15-n-pis-po-psl-r-and-zl.psv +280 -0
- data/lib/sapor/regional_data/poland-20151025-with-ko-sld-and-wi-without-n-po-and-zl.psv +403 -0
- data/lib/sapor/regional_data/poland-20151025-with-sld-and-wi-without-zl.psv +444 -0
- data/lib/sapor/regional_data/poland-20151025-with-sld-without-zl.psv +403 -0
- data/lib/sapor/regional_data/poland-20151025.psv +403 -0
- data/lib/sapor/regional_data/poland.rb +125 -0
- data/lib/sapor/regional_data/poland_with_ko_and_l_without_n_po_r_and_zl.rb +122 -0
- data/lib/sapor/regional_data/poland_with_ko_konf_kp_l_and_zp_without_k_k15_n_pis_po_psl_r_and_zl.rb +123 -0
- data/lib/sapor/regional_data/poland_with_ko_sld_and_wi_without_n_po_and_zl.rb +125 -0
- data/lib/sapor/regional_data/poland_with_sld_and_wi_without_zl.rb +126 -0
- data/lib/sapor/regional_data/poland_with_sld_without_zl.rb +126 -0
- data/lib/sapor/regional_data/portugal-20151004-with-a-and-ch-without-paf.psv +438 -0
- data/lib/sapor/regional_data/portugal-20151004-with-a-and-il-without-paf.psv +438 -0
- data/lib/sapor/regional_data/portugal-20151004-with-a-ch-and-il-without-paf.psv +461 -0
- data/lib/sapor/regional_data/portugal-20151004-with-a-without-paf.psv +415 -0
- data/lib/sapor/regional_data/portugal-20151004-with-ch-and-il-without-paf.psv +438 -0
- data/lib/sapor/regional_data/portugal-20151004-without-paf.psv +392 -0
- data/lib/sapor/regional_data/portugal-20151004.psv +370 -0
- data/lib/sapor/regional_data/portugal.rb +101 -0
- data/lib/sapor/regional_data/portugal_with_a_and_ch_without_paf.rb +92 -0
- data/lib/sapor/regional_data/portugal_with_a_and_il_without_paf.rb +92 -0
- data/lib/sapor/regional_data/portugal_with_a_ch_and_il_without_paf.rb +92 -0
- data/lib/sapor/regional_data/portugal_with_a_without_paf.rb +92 -0
- data/lib/sapor/regional_data/portugal_with_ch_and_il_without_paf.rb +92 -0
- data/lib/sapor/regional_data/portugal_without_paf.rb +92 -0
- data/lib/sapor/regional_data/slovakia.rb +81 -0
- data/lib/sapor/regional_data/slovenia.rb +114 -0
- data/lib/sapor/regional_data/spain-20160626.psv +619 -0
- data/lib/sapor/regional_data/spain.rb +136 -0
- data/lib/sapor/regional_data/sweden.rb +92 -0
- data/lib/sapor/regional_data/sweden_20140914.rb +89 -0
- data/lib/sapor/regional_data/united_kingdom-2015.psv +4358 -0
- data/lib/sapor/regional_data/united_kingdom-20170608-brexit-chuk.psv +5154 -0
- data/lib/sapor/regional_data/united_kingdom-20170608-brexit.psv +4521 -0
- data/lib/sapor/regional_data/united_kingdom-20170608-tig.psv +4529 -0
- data/lib/sapor/regional_data/united_kingdom-20170608.psv +3894 -0
- data/lib/sapor/regional_data/united_kingdom.rb +94 -0
- data/lib/sapor/regional_data/united_kingdom_with_brexit.rb +110 -0
- data/lib/sapor/regional_data/united_kingdom_with_brexit_and_chuk.rb +111 -0
- data/lib/sapor/regional_data/united_kingdom_with_tig.rb +111 -0
- data/lib/sapor/regional_data/utopia.rb +66 -0
- data/lib/sapor/regional_data/wallonia-2014.psv +101 -0
- data/lib/sapor/regional_data/wallonia-20190526.psv +88 -0
- data/lib/sapor/regional_data/wallonia.rb +112 -0
- data/lib/sapor/representatives_polychotomy.rb +338 -0
- data/lib/sapor/single_district_proportional.rb +75 -0
- data/sapor.gemspec +35 -0
- data/spec/integration/area_spec.rb +28 -0
- data/spec/integration/poll_spec.rb +112 -0
- data/spec/integration/sample.poll +8 -0
- data/spec/spec_helper.rb +31 -0
- data/spec/unit/area_spec.rb +115 -0
- data/spec/unit/austria_spec.rb +76 -0
- data/spec/unit/belgium_brussels_spec.rb +58 -0
- data/spec/unit/belgium_flanders_spec.rb +62 -0
- data/spec/unit/belgium_spec.rb +26 -0
- data/spec/unit/belgium_wallonia_spec.rb +65 -0
- data/spec/unit/binomials_cache_spec.rb +34 -0
- data/spec/unit/catalonia_spec.rb +74 -0
- data/spec/unit/combinations_distribution_spec.rb +241 -0
- data/spec/unit/denmark_spec.rb +56 -0
- data/spec/unit/denmark_with_e_and_p_spec.rb +58 -0
- data/spec/unit/denmark_with_e_spec.rb +57 -0
- data/spec/unit/denmark_with_p_spec.rb +57 -0
- data/spec/unit/denominators_spec.rb +40 -0
- data/spec/unit/dichotomies_spec.rb +154 -0
- data/spec/unit/dichotomy_spec.rb +320 -0
- data/spec/unit/estonia_spec.rb +65 -0
- data/spec/unit/european_union_27_austria_spec.rb +61 -0
- data/spec/unit/european_union_27_croatia_spec.rb +60 -0
- data/spec/unit/european_union_27_denmark_spec.rb +62 -0
- data/spec/unit/european_union_27_estonia_spec.rb +94 -0
- data/spec/unit/european_union_27_finland_spec.rb +75 -0
- data/spec/unit/european_union_27_ireland_spec.rb +72 -0
- data/spec/unit/european_union_27_ireland_with_ia_spec.rb +74 -0
- data/spec/unit/european_union_27_italy_spec.rb +69 -0
- data/spec/unit/european_union_27_netherlands_spec.rb +81 -0
- data/spec/unit/european_union_27_poland_spec.rb +69 -0
- data/spec/unit/european_union_27_romania_spec.rb +67 -0
- data/spec/unit/european_union_27_slovakia_spec.rb +111 -0
- data/spec/unit/european_union_27_spain_spec.rb +130 -0
- data/spec/unit/european_union_27_sweden_spec.rb +89 -0
- data/spec/unit/european_union_austria_spec.rb +61 -0
- data/spec/unit/european_union_bulgaria_spec.rb +97 -0
- data/spec/unit/european_union_croatia_spec.rb +59 -0
- data/spec/unit/european_union_cyprus_spec.rb +65 -0
- data/spec/unit/european_union_czech_republic_spec.rb +125 -0
- data/spec/unit/european_union_denmark_spec.rb +61 -0
- data/spec/unit/european_union_estonia_spec.rb +93 -0
- data/spec/unit/european_union_finland_spec.rb +75 -0
- data/spec/unit/european_union_flanders_spec.rb +56 -0
- data/spec/unit/european_union_france_2019_spec.rb +73 -0
- data/spec/unit/european_union_france_spec.rb +73 -0
- data/spec/unit/european_union_french_community_of_belgium_spec.rb +61 -0
- data/spec/unit/european_union_germany_spec.rb +90 -0
- data/spec/unit/european_union_great_britain_spec.rb +87 -0
- data/spec/unit/european_union_greece_spec.rb +148 -0
- data/spec/unit/european_union_hungary_spec.rb +57 -0
- data/spec/unit/european_union_ireland_spec.rb +72 -0
- data/spec/unit/european_union_ireland_with_ia_spec.rb +74 -0
- data/spec/unit/european_union_italy_spec.rb +69 -0
- data/spec/unit/european_union_latvia_spec.rb +76 -0
- data/spec/unit/european_union_lithuania_spec.rb +68 -0
- data/spec/unit/european_union_luxembourg_spec.rb +63 -0
- data/spec/unit/european_union_malta_spec.rb +60 -0
- data/spec/unit/european_union_netherlands_spec.rb +81 -0
- data/spec/unit/european_union_northern_ireland_spec.rb +66 -0
- data/spec/unit/european_union_poland_spec.rb +69 -0
- data/spec/unit/european_union_portugal_spec.rb +77 -0
- data/spec/unit/european_union_romania_spec.rb +67 -0
- data/spec/unit/european_union_slovakia_spec.rb +111 -0
- data/spec/unit/european_union_slovenia_spec.rb +77 -0
- data/spec/unit/european_union_spain_spec.rb +129 -0
- data/spec/unit/european_union_sweden_spec.rb +89 -0
- data/spec/unit/finland_spec.rb +65 -0
- data/spec/unit/finland_with_sin_spec.rb +67 -0
- data/spec/unit/first_past_the_post_spec.rb +54 -0
- data/spec/unit/flanders_spec.rb +70 -0
- data/spec/unit/france_spec.rb +32 -0
- data/spec/unit/greece_spec.rb +118 -0
- data/spec/unit/hungary_spec.rb +132 -0
- data/spec/unit/iceland_spec.rb +57 -0
- data/spec/unit/largest_remainder_spec.rb +79 -0
- data/spec/unit/latvia_kpv_p_par_spec.rb +38 -0
- data/spec/unit/latvia_kpv_par_spec.rb +38 -0
- data/spec/unit/latvia_kpv_spec.rb +38 -0
- data/spec/unit/latvia_spec.rb +60 -0
- data/spec/unit/luxembourg_spec.rb +54 -0
- data/spec/unit/multi_district_leveled_proportional_spec.rb +49 -0
- data/spec/unit/multi_district_proportional_spec.rb +81 -0
- data/spec/unit/netherlands_spec.rb +107 -0
- data/spec/unit/norway_spec.rb +64 -0
- data/spec/unit/norwegian_municipality_spec.rb +89 -0
- data/spec/unit/number_formatter_spec.rb +173 -0
- data/spec/unit/poland_spec.rb +62 -0
- data/spec/unit/poland_with_ko_and_l_without_n_po_r_and_zl_spec.rb +60 -0
- data/spec/unit/poland_with_ko_konf_kp_l_and_zp_without_k_k15_n_pis_po_psl_r_and_zl_spec.rb +59 -0
- data/spec/unit/poland_with_ko_sld_and_wi_without_n_po_and_zl_spec.rb +62 -0
- data/spec/unit/poland_with_sld_and_wi_without_zl_spec.rb +63 -0
- data/spec/unit/poland_with_sld_without_zl_spec.rb +62 -0
- data/spec/unit/poll_spec.rb +110 -0
- data/spec/unit/portugal_spec.rb +66 -0
- data/spec/unit/portugal_with_a_and_ch_without_paf_spec.rb +68 -0
- data/spec/unit/portugal_with_a_and_il_without_paf_spec.rb +68 -0
- data/spec/unit/portugal_with_a_ch_and_il_without_paf_spec.rb +69 -0
- data/spec/unit/portugal_with_a_without_paf_spec.rb +67 -0
- data/spec/unit/portugal_with_ch_and_il_without_paf_spec.rb +68 -0
- data/spec/unit/portugal_without_paf_spec.rb +66 -0
- data/spec/unit/pseudorandom_multirange_enumerator_spec.rb +82 -0
- data/spec/unit/referendum_polychotomy_spec.rb +289 -0
- data/spec/unit/representatives_polychotomy_spec.rb +332 -0
- data/spec/unit/slovakia_spec.rb +99 -0
- data/spec/unit/slovenia_spec.rb +80 -0
- data/spec/unit/spain_spec.rb +101 -0
- data/spec/unit/sweden_20140914_spec.rb +112 -0
- data/spec/unit/sweden_spec.rb +113 -0
- data/spec/unit/united_kingdom_spec.rb +65 -0
- data/spec/unit/united_kingdom_with_brexit_and_chuk_spec.rb +67 -0
- data/spec/unit/united_kingdom_with_brexit_spec.rb +66 -0
- data/spec/unit/united_kingdom_with_tig_spec.rb +66 -0
- data/spec/unit/wallonia_spec.rb +70 -0
- metadata +490 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
#
|
|
3
|
+
# Statistical Analysis of Polling Results (SAPoR)
|
|
4
|
+
# Copyright (C) 2016 Filip van Laenen <f.a.vanlaenen@ieee.org>
|
|
5
|
+
#
|
|
6
|
+
# This file is part of SAPoR.
|
|
7
|
+
#
|
|
8
|
+
# SAPoR is free software: you can redistribute it and/or modify it under the
|
|
9
|
+
# terms of the GNU General Public License as published by the Free Software
|
|
10
|
+
# Foundation, either version 3 of the License, or (at your option) any later
|
|
11
|
+
# version.
|
|
12
|
+
#
|
|
13
|
+
# SAPoR is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
14
|
+
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
15
|
+
# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
16
|
+
#
|
|
17
|
+
# You can find a copy of the GNU General Public License in /doc/gpl.txt
|
|
18
|
+
#
|
|
19
|
+
|
|
20
|
+
require 'spec_helper'
|
|
21
|
+
|
|
22
|
+
describe Sapor::EuropeanUnionFrance, '#area_code' do
|
|
23
|
+
it 'returns EU[FR] as the area code' do
|
|
24
|
+
expect(Sapor::EuropeanUnionFrance.instance.area_code).to eq('EU[FR]')
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
describe Sapor::EuropeanUnionFrance, '#no_of_seats' do
|
|
29
|
+
it 'returns 74 as the number of seats' do
|
|
30
|
+
expect(Sapor::EuropeanUnionFrance.instance.no_of_seats).to eq(74)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
describe Sapor::EuropeanUnionFrance, '#population_size' do
|
|
35
|
+
it 'returns a population size of 18,955,636' do
|
|
36
|
+
expect(Sapor::EuropeanUnionFrance.instance.population_size).to \
|
|
37
|
+
eq(18_955_636)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
describe Sapor::EuropeanUnionFrance, '#seats' do
|
|
42
|
+
it 'calculates the number of seats using the votes of the 2014 election' do
|
|
43
|
+
results = { 'Front national–Rassemblement bleu Marine (ENF)' => 4_712_461,
|
|
44
|
+
'Union pour un mouvement populaire (EPP)' => 3_943_819,
|
|
45
|
+
'Parti socialiste–Parti radical de gauche (S&D)' => 2_650_357,
|
|
46
|
+
'L’Alternative (ALDE)' => 1_884_565,
|
|
47
|
+
'Europe Écologie Les Verts (Greens/EFA)' => 1_696_442,
|
|
48
|
+
'Front de gauche–L’Union pour les Outremer (GUE/NGL)' =>
|
|
49
|
+
1_252_730,
|
|
50
|
+
'Debout la République (—)' => 724_441,
|
|
51
|
+
'Nouvelle Donne (—)' => 549_734, 'Nous Citoyens (—)' => 266_343,
|
|
52
|
+
'Lutte ouvrière (—)' => 222_491,
|
|
53
|
+
'Alliance écologiste indépendante (—)' => 211_759,
|
|
54
|
+
'Force vie' => 138_708, 'Europe citoyenne (—)' => 127_849,
|
|
55
|
+
'Parti du vote blanc (—)' => 110_090 }
|
|
56
|
+
seats = Sapor::EuropeanUnionFrance.instance.seats(results)
|
|
57
|
+
expect(seats['Front national–Rassemblement bleu Marine (ENF)']).to eq(22)
|
|
58
|
+
expect(seats['Union pour un mouvement populaire (EPP)']).to eq(18)
|
|
59
|
+
expect(seats['Parti socialiste–Parti radical de gauche (S&D)']).to eq(12)
|
|
60
|
+
expect(seats['L’Alternative (ALDE)']).to eq(9)
|
|
61
|
+
expect(seats['Europe Écologie Les Verts (Greens/EFA)']).to eq(8)
|
|
62
|
+
expect(seats['Front de gauche–L’Union pour les Outremer (GUE/NGL)']).to \
|
|
63
|
+
eq(5)
|
|
64
|
+
expect(seats['Debout la République (—)']).to eq(0)
|
|
65
|
+
expect(seats['Nouvelle Donne (—)']).to eq(0)
|
|
66
|
+
expect(seats['Nous Citoyens (—)']).to eq(0)
|
|
67
|
+
expect(seats['Lutte ouvrière (—)']).to eq(0)
|
|
68
|
+
expect(seats['Alliance écologiste indépendante (—)']).to eq(0)
|
|
69
|
+
expect(seats['Force vie']).to eq(0)
|
|
70
|
+
expect(seats['Europe citoyenne (—)']).to eq(0)
|
|
71
|
+
expect(seats['Parti du vote blanc (—)']).to eq(0)
|
|
72
|
+
end
|
|
73
|
+
end
|
|
@@ -0,0 +1,61 @@
|
|
|
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
|
+
require 'spec_helper'
|
|
20
|
+
|
|
21
|
+
describe Sapor::EuropeanUnionFrenchCommunityOfBelgium, '#area_code' do
|
|
22
|
+
it 'returns EU[BE-FRC] as the area code' do
|
|
23
|
+
expect(
|
|
24
|
+
Sapor::EuropeanUnionFrenchCommunityOfBelgium.instance.area_code
|
|
25
|
+
).to eq('EU[BE-FRC]')
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe Sapor::EuropeanUnionFrenchCommunityOfBelgium, '#no_of_seats' do
|
|
30
|
+
it 'returns 8 as the number of seats' do
|
|
31
|
+
expect(
|
|
32
|
+
Sapor::EuropeanUnionFrenchCommunityOfBelgium.instance.no_of_seats
|
|
33
|
+
).to eq(8)
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
describe Sapor::EuropeanUnionFrenchCommunityOfBelgium, '#population_size' do
|
|
38
|
+
it 'returns a population size of 2,439,775' do
|
|
39
|
+
expect(
|
|
40
|
+
Sapor::EuropeanUnionFrenchCommunityOfBelgium.instance.population_size
|
|
41
|
+
).to eq(2_439_775)
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
describe Sapor::EuropeanUnionFrenchCommunityOfBelgium, '#seats' do
|
|
46
|
+
it 'calculates the number of seats for the election of 2014' do
|
|
47
|
+
results = { 'PS (S&D)' => 713_375, 'MR (ALDE)' => 660_118,
|
|
48
|
+
'Ecolo (Greens/EFA)' => 284_656, 'cdH (EPP)' => 276_879,
|
|
49
|
+
'PTB (GUE/NGL)' => 133_472, 'Parti Populaire (EFDD)' => 145_538,
|
|
50
|
+
'DéFI (ALDE)' => 82_631, 'Debout Les Belges! (*)' => 72_639 }
|
|
51
|
+
seats = Sapor::EuropeanUnionFrenchCommunityOfBelgium.instance.seats(results)
|
|
52
|
+
expect(seats['PS (S&D)']).to eq(3)
|
|
53
|
+
expect(seats['MR (ALDE)']).to eq(3)
|
|
54
|
+
expect(seats['Ecolo (Greens/EFA)']).to eq(1)
|
|
55
|
+
expect(seats['cdH (EPP)']).to eq(1)
|
|
56
|
+
expect(seats['PTB (GUE/NGL)']).to eq(0)
|
|
57
|
+
expect(seats['Parti Populaire (EFDD)']).to eq(0)
|
|
58
|
+
expect(seats['DéFI (ALDE)']).to eq(0)
|
|
59
|
+
expect(seats['Debout Les Belges! (*)']).to eq(0)
|
|
60
|
+
end
|
|
61
|
+
end
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
#
|
|
3
|
+
# Statistical Analysis of Polling Results (SAPoR)
|
|
4
|
+
# Copyright (C) 2016 Filip van Laenen <f.a.vanlaenen@ieee.org>
|
|
5
|
+
#
|
|
6
|
+
# This file is part of SAPoR.
|
|
7
|
+
#
|
|
8
|
+
# SAPoR is free software: you can redistribute it and/or modify it under the
|
|
9
|
+
# terms of the GNU General Public License as published by the Free Software
|
|
10
|
+
# Foundation, either version 3 of the License, or (at your option) any later
|
|
11
|
+
# version.
|
|
12
|
+
#
|
|
13
|
+
# SAPoR is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
14
|
+
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
15
|
+
# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
16
|
+
#
|
|
17
|
+
# You can find a copy of the GNU General Public License in /doc/gpl.txt
|
|
18
|
+
#
|
|
19
|
+
|
|
20
|
+
require 'spec_helper'
|
|
21
|
+
|
|
22
|
+
describe Sapor::EuropeanUnionGermany, '#area_code' do
|
|
23
|
+
it 'returns EU[DE] as the area code' do
|
|
24
|
+
expect(Sapor::EuropeanUnionGermany.instance.area_code).to eq('EU[DE]')
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
describe Sapor::EuropeanUnionGermany, '#no_of_seats' do
|
|
29
|
+
it 'returns 96 as the number of seats' do
|
|
30
|
+
expect(Sapor::EuropeanUnionGermany.instance.no_of_seats).to eq(96)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
describe Sapor::EuropeanUnionGermany, '#population_size' do
|
|
35
|
+
it 'returns a population size of 37,389,231' do
|
|
36
|
+
expect(Sapor::EuropeanUnionGermany.instance.population_size).to \
|
|
37
|
+
eq(37_389_231)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
describe Sapor::EuropeanUnionGermany, '#seats' do
|
|
42
|
+
it 'calculates the number of seats for the election of 2014' do
|
|
43
|
+
results = { 'CDU (EPP)' => 8_812_653, 'SPD (S&D)' => 8_003_628,
|
|
44
|
+
'BÜNDNIS 90/DIE GRÜNEN (Greens/EFA)' => 3_139_274,
|
|
45
|
+
'DIE LINKE (GUE/NGL)' => 2_168_455,
|
|
46
|
+
'Alternative für Deutschland (EFDD)' => 2_070_014,
|
|
47
|
+
'CSU (EPP)' => 1_567_448, 'FDP (ALDE)' => 986_841,
|
|
48
|
+
'FREIE WÄHLER (ALDE)' => 428_800,
|
|
49
|
+
'PIRATEN (Greens/EFA)' => 425_044,
|
|
50
|
+
'Partei Mensch Umwelt Tierschutz (GUE/NGL)' => 366_598,
|
|
51
|
+
'NPD (—)' => 301_139,
|
|
52
|
+
'Familien-Partei Deutschlands (ECR)' => 202_803,
|
|
53
|
+
'ÖDP (Greens/EFA)' => 185_244,
|
|
54
|
+
'Die PARTEI (—)' => 184_709, 'Die Republikaner (—)' => 109_757,
|
|
55
|
+
'Volksabstimmung (—)' => 88_535,
|
|
56
|
+
'Bayernpartei (Greens/EFA)' => 62_438,
|
|
57
|
+
'Partei Bibeltreuer Christen (ECR)' => 55_336,
|
|
58
|
+
'Bürgerbewegung pro NRW (—)' => 52_649,
|
|
59
|
+
'AUF (ECR)' => 50_953, 'Christliche Mitte (—)' => 30_136,
|
|
60
|
+
'DKP (GUE/NGL)' => 25_147, 'MLPD (—)' => 18_198,
|
|
61
|
+
'BüSo (—)' => 10_369,
|
|
62
|
+
'Sozialistische Gleichheitspartei (—)' => 8_924 }
|
|
63
|
+
seats = Sapor::EuropeanUnionGermany.instance.seats(results)
|
|
64
|
+
expect(seats['CDU (EPP)']).to eq(29)
|
|
65
|
+
expect(seats['SPD (S&D)']).to eq(27)
|
|
66
|
+
expect(seats['BÜNDNIS 90/DIE GRÜNEN (Greens/EFA)']).to eq(11)
|
|
67
|
+
expect(seats['DIE LINKE (GUE/NGL)']).to eq(7)
|
|
68
|
+
expect(seats['Alternative für Deutschland (EFDD)']).to eq(7)
|
|
69
|
+
expect(seats['CSU (EPP)']).to eq(5)
|
|
70
|
+
expect(seats['FDP (ALDE)']).to eq(3)
|
|
71
|
+
expect(seats['FREIE WÄHLER (ALDE)']).to eq(1)
|
|
72
|
+
expect(seats['PIRATEN (Greens/EFA)']).to eq(1)
|
|
73
|
+
expect(seats['Partei Mensch Umwelt Tierschutz (GUE/NGL)']).to eq(1)
|
|
74
|
+
expect(seats['NPD (—)']).to eq(1)
|
|
75
|
+
expect(seats['Familien-Partei Deutschlands (ECR)']).to eq(1)
|
|
76
|
+
expect(seats['ÖDP (Greens/EFA)']).to eq(1)
|
|
77
|
+
expect(seats['Die PARTEI (—)']).to eq(1)
|
|
78
|
+
expect(seats['Die Republikaner (—)']).to eq(0)
|
|
79
|
+
expect(seats['Volksabstimmung (—)']).to eq(0)
|
|
80
|
+
expect(seats['Bayernpartei (Greens/EFA)']).to eq(0)
|
|
81
|
+
expect(seats['Partei Bibeltreuer Christen (ECR)']).to eq(0)
|
|
82
|
+
expect(seats['Bürgerbewegung pro NRW (—)']).to eq(0)
|
|
83
|
+
expect(seats['AUF (ECR)']).to eq(0)
|
|
84
|
+
expect(seats['Christliche Mitte (—)']).to eq(0)
|
|
85
|
+
expect(seats['DKP (GUE/NGL)']).to eq(0)
|
|
86
|
+
expect(seats['MLPD (—)']).to eq(0)
|
|
87
|
+
expect(seats['BüSo (—)']).to eq(0)
|
|
88
|
+
expect(seats['Sozialistische Gleichheitspartei (—)']).to eq(0)
|
|
89
|
+
end
|
|
90
|
+
end
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
#
|
|
3
|
+
# Statistical Analysis of Polling Results (SAPoR)
|
|
4
|
+
# Copyright (C) 2016 Filip van Laenen <f.a.vanlaenen@ieee.org>
|
|
5
|
+
#
|
|
6
|
+
# This file is part of SAPoR.
|
|
7
|
+
#
|
|
8
|
+
# SAPoR is free software: you can redistribute it and/or modify it under the
|
|
9
|
+
# terms of the GNU General Public License as published by the Free Software
|
|
10
|
+
# Foundation, either version 3 of the License, or (at your option) any later
|
|
11
|
+
# version.
|
|
12
|
+
#
|
|
13
|
+
# SAPoR is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
14
|
+
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
15
|
+
# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
16
|
+
#
|
|
17
|
+
# You can find a copy of the GNU General Public License in /doc/gpl.txt
|
|
18
|
+
#
|
|
19
|
+
|
|
20
|
+
require 'spec_helper'
|
|
21
|
+
|
|
22
|
+
describe Sapor::EuropeanUnionGreatBritain, '#area_code' do
|
|
23
|
+
it 'returns EU[GB-GBN] as the area code' do
|
|
24
|
+
expect(Sapor::EuropeanUnionGreatBritain.instance.area_code).to \
|
|
25
|
+
eq('EU[GB-GBN]')
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe Sapor::EuropeanUnionGreatBritain, '#no_of_seats' do
|
|
30
|
+
it 'returns 70 as the number of seats' do
|
|
31
|
+
expect(Sapor::EuropeanUnionGreatBritain.instance.no_of_seats).to eq(70)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
describe Sapor::EuropeanUnionGreatBritain, '#population_size' do
|
|
36
|
+
it 'returns a population size of 17,199,701 (UK) - 572,447 (NI)' do
|
|
37
|
+
expect(Sapor::EuropeanUnionGreatBritain.instance.population_size).to \
|
|
38
|
+
eq(17_199_701 - 572_447)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
describe Sapor::EuropeanUnionGreatBritain, '#seats' do
|
|
43
|
+
it 'calculates the number of seats for the election of 2014' do
|
|
44
|
+
great_britain = Sapor::EuropeanUnionGreatBritain.instance
|
|
45
|
+
results = great_britain.overall_election_results_of_2019
|
|
46
|
+
seats = great_britain.seats(results)
|
|
47
|
+
expect(seats['Brexit Party (NI)']).to eq(29)
|
|
48
|
+
expect(seats['Liberal Democrats (RE)']).to eq(16)
|
|
49
|
+
expect(seats['Labour Party (S&D)']).to eq(10)
|
|
50
|
+
expect(seats['Green Party (Greens/EFA)']).to eq(7)
|
|
51
|
+
expect(seats['Conservative Party (ECR)']).to eq(4)
|
|
52
|
+
expect(seats['Scottish National Party (Greens/EFA)']).to eq(3)
|
|
53
|
+
expect(seats['Plaid Cymru (Greens/EFA)']).to eq(1)
|
|
54
|
+
expect(seats['Change UK (RE)']).to eq(0)
|
|
55
|
+
expect(seats['UK Independence Party (ID)']).to eq(0)
|
|
56
|
+
expect(seats['Yorkshire Party (Greens/EFA)']).to eq(0)
|
|
57
|
+
expect(seats['English Democrats (*)']).to eq(0)
|
|
58
|
+
expect(seats['UK European Union Party (*)']).to eq(0)
|
|
59
|
+
expect(seats['Animal Welfare Party (GUE/NGL)']).to eq(0)
|
|
60
|
+
expect(seats['Women’s Equality Party (*)']).to eq(0)
|
|
61
|
+
expect(seats['Independent Network (*)']).to eq(0)
|
|
62
|
+
expect(seats['Socialist Party of Great Britain (*)']).to eq(0)
|
|
63
|
+
expect(seats['Independent: Alan Kirkby (*)']).to eq(0)
|
|
64
|
+
expect(seats['Independent: Andrea Venzon (*)']).to eq(0)
|
|
65
|
+
expect(seats['Independent: Andrew Medhurst (*)']).to eq(0)
|
|
66
|
+
expect(seats['Independent: Attila Csordas (*)']).to eq(0)
|
|
67
|
+
expect(seats['Independent: Claudia McDowell (*)']).to eq(0)
|
|
68
|
+
expect(seats['Independent: David Victor Round (*)']).to eq(0)
|
|
69
|
+
expect(seats['Independent: Daze Aghaji (*)']).to eq(0)
|
|
70
|
+
expect(seats['Independent: Gordon Edgar (*)']).to eq(0)
|
|
71
|
+
expect(seats['Independent: Henry Muss (*)']).to eq(0)
|
|
72
|
+
expect(seats['Independent: Ian Sowden (*)']).to eq(0)
|
|
73
|
+
expect(seats['Independent: Jason Guy Spencer McMahon (*)']).to eq(0)
|
|
74
|
+
expect(seats['Independent: Ken Parke (*)']).to eq(0)
|
|
75
|
+
expect(seats['Independent: Kofi Klu (*)']).to eq(0)
|
|
76
|
+
expect(seats['Independent: Larch Maxey (*)']).to eq(0)
|
|
77
|
+
expect(seats['Independent: Michael Jeffrey Tuberville (*)']).to eq(0)
|
|
78
|
+
expect(seats['Independent: Mike Shad (*)']).to eq(0)
|
|
79
|
+
expect(seats['Independent: Mohammad Aslam (*)']).to eq(0)
|
|
80
|
+
expect(seats['Independent: Mothiur Rahman (*)']).to eq(0)
|
|
81
|
+
expect(seats['Independent: Neville Seed (*)']).to eq(0)
|
|
82
|
+
expect(seats['Independent: Roger Hallam (*)']).to eq(0)
|
|
83
|
+
expect(seats['Independent: Simon Rood (*)']).to eq(0)
|
|
84
|
+
expect(seats['Independent: Tommy Robinson (*)']).to eq(0)
|
|
85
|
+
expect(seats['Independent: Zoe Lafferty (*)']).to eq(0)
|
|
86
|
+
end
|
|
87
|
+
end
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
#
|
|
3
|
+
# Statistical Analysis of Polling Results (SAPoR)
|
|
4
|
+
# Copyright (C) 2016 Filip van Laenen <f.a.vanlaenen@ieee.org>
|
|
5
|
+
#
|
|
6
|
+
# This file is part of SAPoR.
|
|
7
|
+
#
|
|
8
|
+
# SAPoR is free software: you can redistribute it and/or modify it under the
|
|
9
|
+
# terms of the GNU General Public License as published by the Free Software
|
|
10
|
+
# Foundation, either version 3 of the License, or (at your option) any later
|
|
11
|
+
# version.
|
|
12
|
+
#
|
|
13
|
+
# SAPoR is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
14
|
+
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
15
|
+
# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
16
|
+
#
|
|
17
|
+
# You can find a copy of the GNU General Public License in /doc/gpl.txt
|
|
18
|
+
#
|
|
19
|
+
|
|
20
|
+
require 'spec_helper'
|
|
21
|
+
|
|
22
|
+
describe Sapor::EuropeanUnionGreece, '#area_code' do
|
|
23
|
+
it 'returns EU[GR] as the area code' do
|
|
24
|
+
expect(Sapor::EuropeanUnionGreece.instance.area_code).to eq('EU[GR]')
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
describe Sapor::EuropeanUnionGreece, '#no_of_seats' do
|
|
29
|
+
it 'returns 21 as the number of seats' do
|
|
30
|
+
expect(Sapor::EuropeanUnionGreece.instance.no_of_seats).to eq(21)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
describe Sapor::EuropeanUnionGreece, '#population_size' do
|
|
35
|
+
it 'returns a population size of 5,656,122' do
|
|
36
|
+
expect(Sapor::EuropeanUnionGreece.instance.population_size).to \
|
|
37
|
+
eq(5_656_122)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
describe Sapor::EuropeanUnionGreece, '#seats' do
|
|
42
|
+
it 'calculates the number of seats for the election of 2014' do
|
|
43
|
+
results = { 'Συνασπισμός Ριζοσπαστικής Αριστεράς (GUE/NGL)' => 1_518_608,
|
|
44
|
+
'Νέα Δημοκρατία (EPP)' => 1_295_967,
|
|
45
|
+
'Χρυσή Αυγή (—)' => 536_409,
|
|
46
|
+
'Ελιά–Δημοκρατική Παράταξη (S&D)' => 457_573,
|
|
47
|
+
'Το Ποτάμι (S&D)' => 376_629,
|
|
48
|
+
'Κομμουνιστικό Κόμμα Ελλάδας (—)' => 347_467,
|
|
49
|
+
'Ανεξάρτητοι Έλληνες (ECR)' => 197_536,
|
|
50
|
+
'Λαϊκός Ορθόδοξος Συναγερμός (EFDD)' => 153_920,
|
|
51
|
+
'Έλληνες Ευρωπαίοι Πολίτες (—)' => 82_220,
|
|
52
|
+
'Δημοκρατική Αριστερά–Προοδευτική Συνεργασία (S&D)' => 68_695,
|
|
53
|
+
'Ένωση για την Πατρίδα και τον Λαό (—)' => 59_291,
|
|
54
|
+
'Κόμμα Ελλήνων Κυνηγών (—)' => 57_000,
|
|
55
|
+
'Γέφυρες (ALDE)' => 51_542,
|
|
56
|
+
'Οικολόγοι Πράσινοι–Κόμμα Πειρατών Ελλάδας (Greens/EFA)' =>
|
|
57
|
+
51_573,
|
|
58
|
+
'Ενιαίο Παλλαϊκό Μέτωπο (—)' => 49_293,
|
|
59
|
+
'Παναθηναϊκό Κίνημα (—)' => 42_203,
|
|
60
|
+
'Αντικαπιταλιστική Αριστερή Συνεργασία για την Ανατροπή (—)' =>
|
|
61
|
+
41_131,
|
|
62
|
+
'Κόμμα Ισότητας, Ειρήνης και Φιλίας (—)' => 42_620,
|
|
63
|
+
'Ένωση Κεντρώων (ALDE)' => 36_837,
|
|
64
|
+
'Κοινωνία–Πολιτική παράταξη συνεχιστών του Καποδίστρια (—)' =>
|
|
65
|
+
34_475,
|
|
66
|
+
'Αγροτικό Κτηνοτροφικό Κόμμα Ελλάδας (—)' => 32_366,
|
|
67
|
+
'ΠΡΑΣΙΝΟΙ - Αλληλεγγύη, Δημιουργία, Οικολογία (Greens/EFA)' =>
|
|
68
|
+
28_390,
|
|
69
|
+
'Κοινωνία Αξιών (—)' => 20_882,
|
|
70
|
+
'Σύνδεσμος Εθνικής Ενότητας (—)' => 17_110,
|
|
71
|
+
'Σχέδιο Β (—)' => 11_331,
|
|
72
|
+
'Σοσιαλιστικό Κόμμα (—)' => 11_062,
|
|
73
|
+
'Μαρξιστικό-Λενινιστικό Κομμουνιστικό Κόμμα Ελλάδας (—)' =>
|
|
74
|
+
10_784,
|
|
75
|
+
'Κολλάτος–Ανεξάρτητο Πολιτικό Κίνημα–Οικολογικό Ελληνικό (—)' =>
|
|
76
|
+
8_989,
|
|
77
|
+
'Λαϊκές Ενώσεις Υπερκομματικών Κοινωνικών Ομάδων (—)' => 8_891,
|
|
78
|
+
'ΔΡΑΧΜΗ (—)' => 8_791,
|
|
79
|
+
'Εθνικό Μέτωπο (—)' => 8_789,
|
|
80
|
+
'Ελπίδα Πολιτείας (—)' => 6_787,
|
|
81
|
+
'Ευρωπαϊκή Ελεύθερη Συμμαχία–Ουράνιο Τόξο (Greens/EFA)' =>
|
|
82
|
+
5_754,
|
|
83
|
+
'Έλληνες Οικολόγοι (—)' => 5_578,
|
|
84
|
+
'Πατριωτική ΄Ενωση–Ελληνική Λαϊκή Συσπείρωση (—)' => 4_738,
|
|
85
|
+
'Εργατικό Επαναστατικό Κόμμα (—)' => 4_511,
|
|
86
|
+
'Αγωνιστικό Σοσιαλιστικό Κόμμα Ελλάδας (—)' => 3_637,
|
|
87
|
+
'Οργάνωση Κομμουνιστών Διεθνιστών Ελλάδας (—)' => 3_052,
|
|
88
|
+
'Οργάνωση για την Ανασυγκρότηση του Κομμουνιστικού Κόμματος' \
|
|
89
|
+
' Ελλάδας (—)' => 2_860,
|
|
90
|
+
'Κίνημα Εθνικής Αντίστασης (—)' => 2_525,
|
|
91
|
+
'Εθνική Αυγή (—)' => 303,
|
|
92
|
+
'Πανεργατικό Εργατικό Κίνημα Ελλάδος (—)' => 198,
|
|
93
|
+
'ΕΛΕΥΘΕΡΙΑ' => 12 }
|
|
94
|
+
seats = Sapor::EuropeanUnionGreece.instance.seats(results)
|
|
95
|
+
expect(seats['Συνασπισμός Ριζοσπαστικής Αριστεράς (GUE/NGL)']).to eq(6)
|
|
96
|
+
expect(seats['Νέα Δημοκρατία (EPP)']).to eq(5)
|
|
97
|
+
expect(seats['Χρυσή Αυγή (—)']).to eq(3)
|
|
98
|
+
expect(seats['Ελιά–Δημοκρατική Παράταξη (S&D)']).to eq(2)
|
|
99
|
+
expect(seats['Το Ποτάμι (S&D)']).to eq(2)
|
|
100
|
+
expect(seats['Κομμουνιστικό Κόμμα Ελλάδας (—)']).to eq(2)
|
|
101
|
+
expect(seats['Ανεξάρτητοι Έλληνες (ECR)']).to eq(1)
|
|
102
|
+
expect(seats['Λαϊκός Ορθόδοξος Συναγερμός (EFDD)']).to eq(0)
|
|
103
|
+
expect(seats['Έλληνες Ευρωπαίοι Πολίτες (—)']).to eq(0)
|
|
104
|
+
expect(seats['Δημοκρατική Αριστερά–Προοδευτική Συνεργασία (S&D)']).to eq(0)
|
|
105
|
+
expect(seats['Ένωση για την Πατρίδα και τον Λαό (—)']).to eq(0)
|
|
106
|
+
expect(seats['Κόμμα Ελλήνων Κυνηγών (—)']).to eq(0)
|
|
107
|
+
expect(seats['Γέφυρες (ALDE)']).to eq(0)
|
|
108
|
+
expect(seats['Οικολόγοι Πράσινοι–Κόμμα Πειρατών Ελλάδας (Greens/EFA)']).to \
|
|
109
|
+
eq(0)
|
|
110
|
+
expect(seats['Ενιαίο Παλλαϊκό Μέτωπο (—)']).to eq(0)
|
|
111
|
+
expect(seats['Παναθηναϊκό Κίνημα (—)']).to eq(0)
|
|
112
|
+
expect(seats['Αντικαπιταλιστική Αριστερή Συνεργασία για την Ανατροπή' \
|
|
113
|
+
' (—)']).to eq(0)
|
|
114
|
+
expect(seats['Κόμμα Ισότητας, Ειρήνης και Φιλίας (—)']).to eq(0)
|
|
115
|
+
expect(seats['Ένωση Κεντρώων (ALDE)']).to eq(0)
|
|
116
|
+
expect(seats['Κοινωνία–Πολιτική παράταξη συνεχιστών του Καποδίστρια' \
|
|
117
|
+
' (—)']).to eq(0)
|
|
118
|
+
expect(seats['Αγροτικό Κτηνοτροφικό Κόμμα Ελλάδας (—)']).to eq(0)
|
|
119
|
+
expect(seats['ΠΡΑΣΙΝΟΙ - Αλληλεγγύη, Δημιουργία, Οικολογία' \
|
|
120
|
+
' (Greens/EFA)']).to eq(0)
|
|
121
|
+
expect(seats['Κοινωνία Αξιών (—)']).to eq(0)
|
|
122
|
+
expect(seats['Σύνδεσμος Εθνικής Ενότητας (—)']).to eq(0)
|
|
123
|
+
expect(seats['Σχέδιο Β (—)']).to eq(0)
|
|
124
|
+
expect(seats['Σοσιαλιστικό Κόμμα (—)']).to eq(0)
|
|
125
|
+
expect(seats['Μαρξιστικό-Λενινιστικό Κομμουνιστικό Κόμμα Ελλάδας (—)']).to \
|
|
126
|
+
eq(0)
|
|
127
|
+
expect(seats['Κολλάτος–Ανεξάρτητο Πολιτικό Κίνημα–Οικολογικό Ελληνικό' \
|
|
128
|
+
' (—)']).to eq(0)
|
|
129
|
+
expect(seats['Λαϊκές Ενώσεις Υπερκομματικών Κοινωνικών Ομάδων (—)']).to \
|
|
130
|
+
eq(0)
|
|
131
|
+
expect(seats['ΔΡΑΧΜΗ (—)']).to eq(0)
|
|
132
|
+
expect(seats['Εθνικό Μέτωπο (—)']).to eq(0)
|
|
133
|
+
expect(seats['Ελπίδα Πολιτείας (—)']).to eq(0)
|
|
134
|
+
expect(seats['Ευρωπαϊκή Ελεύθερη Συμμαχία–Ουράνιο Τόξο (Greens/EFA)']).to \
|
|
135
|
+
eq(0)
|
|
136
|
+
expect(seats['Έλληνες Οικολόγοι (—)']).to eq(0)
|
|
137
|
+
expect(seats['Πατριωτική ΄Ενωση–Ελληνική Λαϊκή Συσπείρωση (—)']).to eq(0)
|
|
138
|
+
expect(seats['Εργατικό Επαναστατικό Κόμμα (—)']).to eq(0)
|
|
139
|
+
expect(seats['Αγωνιστικό Σοσιαλιστικό Κόμμα Ελλάδας (—)']).to eq(0)
|
|
140
|
+
expect(seats['Οργάνωση Κομμουνιστών Διεθνιστών Ελλάδας (—)']).to eq(0)
|
|
141
|
+
expect(seats['Οργάνωση για την Ανασυγκρότηση του Κομμουνιστικού Κόμματος' \
|
|
142
|
+
' Ελλάδας (—)']).to eq(0)
|
|
143
|
+
expect(seats['Κίνημα Εθνικής Αντίστασης (—)']).to eq(0)
|
|
144
|
+
expect(seats['Εθνική Αυγή (—)']).to eq(0)
|
|
145
|
+
expect(seats['Πανεργατικό Εργατικό Κίνημα Ελλάδος (—)']).to eq(0)
|
|
146
|
+
expect(seats['ΕΛΕΥΘΕΡΙΑ']).to eq(0)
|
|
147
|
+
end
|
|
148
|
+
end
|