sapor 0.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/Area Class Diagram.dia +0 -0
- data/Area Class Diagram.png +0 -0
- data/Class Diagram.dia +0 -0
- data/Class Diagram.png +0 -0
- data/Example-Catalonia.md +361 -0
- data/Example-Flanders.md +486 -0
- data/Example-Greece.md +25 -0
- data/Example-Oslo.md +678 -0
- data/Example-UnitedKingdom-Referendum.md +132 -0
- data/Examples.md +15 -0
- data/LICENSE +674 -0
- data/README.md +103 -0
- data/Rakefile +18 -0
- data/Technical Documentation.md +14 -0
- data/bin/create_installation_package.sh +49 -0
- data/bin/install.sh +45 -0
- data/bin/sapor.rb +24 -0
- data/bin/sapor.sh +106 -0
- data/data/hu/hungary-2014.txt +1680 -0
- data/data/hu/hungary_2014_screen_scraper.rb +48 -0
- data/data/hu/hungary_2014_to_psv.rb +80 -0
- data/data/hu/index-2014.txt +106 -0
- data/data/pl/2015-gl-lis-okr.csv +42 -0
- data/data/pl/poland_2015_to_psv.rb +79 -0
- data/data/pl/poland_2015_to_psv_with_ko_and_rsw.rb +94 -0
- data/data/pl/poland_2015_to_psv_with_ko_konf_kp_l_and_zp.rb +100 -0
- data/data/pl/poland_2015_to_psv_with_ko_sld_and_wi.rb +92 -0
- data/data/pl/poland_2015_to_psv_with_sld.rb +84 -0
- data/data/pl/poland_2015_to_psv_with_sld_and_wi.rb +85 -0
- data/data/uk/inject_ukip_2015_as_brexit_2019_in_2017.rb +54 -0
- data/data/uk/united_kingdom_2015.txt +651 -0
- data/data/uk/united_kingdom_2015_to_psv.rb +104 -0
- data/data/uk/united_kingdom_2017.txt +651 -0
- data/data/uk/united_kingdom_2017_to_psv.rb +104 -0
- data/data/uk/united_kingdom_2017_to_psv_with_brexit_and_chuk.rb +113 -0
- data/data/uk/united_kingdom_2017_to_psv_with_tig.rb +111 -0
- data/lib/sapor.rb +150 -0
- data/lib/sapor/binomials_cache.rb +45 -0
- data/lib/sapor/combinations_distribution.rb +222 -0
- data/lib/sapor/denominators.rb +67 -0
- data/lib/sapor/dichotomies.rb +138 -0
- data/lib/sapor/dichotomy.rb +164 -0
- data/lib/sapor/first_past_the_post.rb +82 -0
- data/lib/sapor/largest_remainder.rb +118 -0
- data/lib/sapor/log4r_logger.rb +49 -0
- data/lib/sapor/log_facade.rb +40 -0
- data/lib/sapor/multi_district_leveled_proportional.rb +64 -0
- data/lib/sapor/multi_district_proportional.rb +123 -0
- data/lib/sapor/multi_district_variable_threshold_proportional.rb +128 -0
- data/lib/sapor/number_formatter.rb +45 -0
- data/lib/sapor/options.rb +73 -0
- data/lib/sapor/poll.rb +286 -0
- data/lib/sapor/polychotomy.rb +200 -0
- data/lib/sapor/pseudorandom_multirange_enumerator.rb +87 -0
- data/lib/sapor/referendum_polychotomy.rb +165 -0
- data/lib/sapor/regional_data/area.rb +82 -0
- data/lib/sapor/regional_data/austria.rb +84 -0
- data/lib/sapor/regional_data/belgium-brussels-2014.psv +46 -0
- data/lib/sapor/regional_data/belgium-brussels-20190526.psv +33 -0
- data/lib/sapor/regional_data/belgium-flanders-2014.psv +80 -0
- data/lib/sapor/regional_data/belgium-flanders-20190526.psv +74 -0
- data/lib/sapor/regional_data/belgium-wallonia-2014.psv +114 -0
- data/lib/sapor/regional_data/belgium-wallonia-20190526.psv +93 -0
- data/lib/sapor/regional_data/belgium.rb +97 -0
- data/lib/sapor/regional_data/belgium_brussels.rb +62 -0
- data/lib/sapor/regional_data/belgium_flanders.rb +64 -0
- data/lib/sapor/regional_data/belgium_wallonia.rb +63 -0
- data/lib/sapor/regional_data/catalonia-2012-2015.psv +100 -0
- data/lib/sapor/regional_data/catalonia-2012.psv +87 -0
- data/lib/sapor/regional_data/catalonia-2015-jxcat.psv +68 -0
- data/lib/sapor/regional_data/catalonia-2015-no-jxsi.psv +68 -0
- data/lib/sapor/regional_data/catalonia-2015.psv +63 -0
- data/lib/sapor/regional_data/catalonia-jxcat.rb +109 -0
- data/lib/sapor/regional_data/catalonia-no-jxsi.rb +96 -0
- data/lib/sapor/regional_data/catalonia.rb +96 -0
- data/lib/sapor/regional_data/denmark-20150618-with-e-and-p.psv +164 -0
- data/lib/sapor/regional_data/denmark-20150618-with-e.psv +153 -0
- data/lib/sapor/regional_data/denmark-20150618-with-p.psv +153 -0
- data/lib/sapor/regional_data/denmark-20150618.psv +142 -0
- data/lib/sapor/regional_data/denmark.rb +128 -0
- data/lib/sapor/regional_data/denmark_with_e.rb +128 -0
- data/lib/sapor/regional_data/denmark_with_e_and_p.rb +128 -0
- data/lib/sapor/regional_data/denmark_with_p.rb +128 -0
- data/lib/sapor/regional_data/estonia.rb +88 -0
- data/lib/sapor/regional_data/european-union-great-britain-20140522-brexit-chuk.psv +172 -0
- data/lib/sapor/regional_data/european-union-great-britain-20140522.psv +146 -0
- data/lib/sapor/regional_data/european-union-great-britain-20190523.psv +141 -0
- data/lib/sapor/regional_data/european-union-ireland-2014-ia-ri-sd.psv +64 -0
- data/lib/sapor/regional_data/european-union-ireland-2014-ia-sd.psv +60 -0
- data/lib/sapor/regional_data/european-union-ireland-2014-ia.psv +56 -0
- data/lib/sapor/regional_data/european-union-ireland-2014-sd.psv +56 -0
- data/lib/sapor/regional_data/european-union-ireland-2014.psv +50 -0
- data/lib/sapor/regional_data/european-union-ireland-20190524-ia.psv +58 -0
- data/lib/sapor/regional_data/european-union-ireland-20190524.psv +52 -0
- data/lib/sapor/regional_data/european_union_27_austria.rb +76 -0
- data/lib/sapor/regional_data/european_union_27_croatia.rb +81 -0
- data/lib/sapor/regional_data/european_union_27_denmark.rb +77 -0
- data/lib/sapor/regional_data/european_union_27_estonia.rb +74 -0
- data/lib/sapor/regional_data/european_union_27_finland.rb +74 -0
- data/lib/sapor/regional_data/european_union_27_ireland.rb +96 -0
- data/lib/sapor/regional_data/european_union_27_ireland_with_ia.rb +97 -0
- data/lib/sapor/regional_data/european_union_27_italy.rb +84 -0
- data/lib/sapor/regional_data/european_union_27_netherlands.rb +81 -0
- data/lib/sapor/regional_data/european_union_27_poland.rb +84 -0
- data/lib/sapor/regional_data/european_union_27_romania.rb +78 -0
- data/lib/sapor/regional_data/european_union_27_slovakia.rb +80 -0
- data/lib/sapor/regional_data/european_union_27_spain.rb +82 -0
- data/lib/sapor/regional_data/european_union_27_sweden.rb +76 -0
- data/lib/sapor/regional_data/european_union_austria.rb +76 -0
- data/lib/sapor/regional_data/european_union_bulgaria.rb +82 -0
- data/lib/sapor/regional_data/european_union_croatia.rb +81 -0
- data/lib/sapor/regional_data/european_union_cyprus.rb +72 -0
- data/lib/sapor/regional_data/european_union_czech_republic.rb +82 -0
- data/lib/sapor/regional_data/european_union_denmark.rb +77 -0
- data/lib/sapor/regional_data/european_union_estonia.rb +74 -0
- data/lib/sapor/regional_data/european_union_finland.rb +74 -0
- data/lib/sapor/regional_data/european_union_flanders.rb +74 -0
- data/lib/sapor/regional_data/european_union_france.rb +84 -0
- data/lib/sapor/regional_data/european_union_france_2019.rb +84 -0
- data/lib/sapor/regional_data/european_union_french_community_of_belgium.rb +73 -0
- data/lib/sapor/regional_data/european_union_germany.rb +86 -0
- data/lib/sapor/regional_data/european_union_great_britain.rb +98 -0
- data/lib/sapor/regional_data/european_union_greece.rb +77 -0
- data/lib/sapor/regional_data/european_union_hungary.rb +76 -0
- data/lib/sapor/regional_data/european_union_ireland.rb +96 -0
- data/lib/sapor/regional_data/european_union_ireland_with_ia.rb +97 -0
- data/lib/sapor/regional_data/european_union_italy.rb +84 -0
- data/lib/sapor/regional_data/european_union_latvia.rb +81 -0
- data/lib/sapor/regional_data/european_union_lithuania.rb +80 -0
- data/lib/sapor/regional_data/european_union_luxembourg.rb +75 -0
- data/lib/sapor/regional_data/european_union_malta.rb +71 -0
- data/lib/sapor/regional_data/european_union_netherlands.rb +81 -0
- data/lib/sapor/regional_data/european_union_northern_ireland.rb +75 -0
- data/lib/sapor/regional_data/european_union_poland.rb +84 -0
- data/lib/sapor/regional_data/european_union_portugal.rb +75 -0
- data/lib/sapor/regional_data/european_union_romania.rb +78 -0
- data/lib/sapor/regional_data/european_union_slovakia.rb +81 -0
- data/lib/sapor/regional_data/european_union_slovenia.rb +85 -0
- data/lib/sapor/regional_data/european_union_spain.rb +82 -0
- data/lib/sapor/regional_data/european_union_sweden.rb +76 -0
- data/lib/sapor/regional_data/finland-20150419-with-sin.psv +224 -0
- data/lib/sapor/regional_data/finland-20150419.psv +212 -0
- data/lib/sapor/regional_data/finland.rb +107 -0
- data/lib/sapor/regional_data/finland_with_sin.rb +107 -0
- data/lib/sapor/regional_data/flanders-2014.psv +96 -0
- data/lib/sapor/regional_data/flanders-20190526.psv +87 -0
- data/lib/sapor/regional_data/flanders.rb +115 -0
- data/lib/sapor/regional_data/france.rb +38 -0
- data/lib/sapor/regional_data/greece.rb +92 -0
- data/lib/sapor/regional_data/hungary-2014.psv +2104 -0
- data/lib/sapor/regional_data/hungary.rb +116 -0
- data/lib/sapor/regional_data/iceland-20161029-midflokkurinn.psv +94 -0
- data/lib/sapor/regional_data/iceland-20161029.psv +88 -0
- data/lib/sapor/regional_data/iceland-20171028.psv +85 -0
- data/lib/sapor/regional_data/iceland.rb +133 -0
- data/lib/sapor/regional_data/latvia-20141004-kpv-p-par.psv +109 -0
- data/lib/sapor/regional_data/latvia-20141004-kpv-par.psv +103 -0
- data/lib/sapor/regional_data/latvia-20141004-kpv.psv +97 -0
- data/lib/sapor/regional_data/latvia-20141004.psv +89 -0
- data/lib/sapor/regional_data/latvia.rb +112 -0
- data/lib/sapor/regional_data/latvia_kpv.rb +112 -0
- data/lib/sapor/regional_data/latvia_kpv_p_par.rb +112 -0
- data/lib/sapor/regional_data/latvia_kpv_par.rb +112 -0
- data/lib/sapor/regional_data/luxembourg-20131020.psv +76 -0
- data/lib/sapor/regional_data/luxembourg.rb +82 -0
- data/lib/sapor/regional_data/netherlands.rb +108 -0
- data/lib/sapor/regional_data/norway.rb +425 -0
- data/lib/sapor/regional_data/norwegian_municipality.rb +68 -0
- data/lib/sapor/regional_data/poland-20151025-with-ko-and-l-without-n-po-r-and-zl.psv +321 -0
- data/lib/sapor/regional_data/poland-20151025-with-ko-konf-kp-l-and-zp-without-k-k15-n-pis-po-psl-r-and-zl.psv +280 -0
- data/lib/sapor/regional_data/poland-20151025-with-ko-sld-and-wi-without-n-po-and-zl.psv +403 -0
- data/lib/sapor/regional_data/poland-20151025-with-sld-and-wi-without-zl.psv +444 -0
- data/lib/sapor/regional_data/poland-20151025-with-sld-without-zl.psv +403 -0
- data/lib/sapor/regional_data/poland-20151025.psv +403 -0
- data/lib/sapor/regional_data/poland.rb +125 -0
- data/lib/sapor/regional_data/poland_with_ko_and_l_without_n_po_r_and_zl.rb +122 -0
- data/lib/sapor/regional_data/poland_with_ko_konf_kp_l_and_zp_without_k_k15_n_pis_po_psl_r_and_zl.rb +123 -0
- data/lib/sapor/regional_data/poland_with_ko_sld_and_wi_without_n_po_and_zl.rb +125 -0
- data/lib/sapor/regional_data/poland_with_sld_and_wi_without_zl.rb +126 -0
- data/lib/sapor/regional_data/poland_with_sld_without_zl.rb +126 -0
- data/lib/sapor/regional_data/portugal-20151004-with-a-and-ch-without-paf.psv +438 -0
- data/lib/sapor/regional_data/portugal-20151004-with-a-and-il-without-paf.psv +438 -0
- data/lib/sapor/regional_data/portugal-20151004-with-a-ch-and-il-without-paf.psv +461 -0
- data/lib/sapor/regional_data/portugal-20151004-with-a-without-paf.psv +415 -0
- data/lib/sapor/regional_data/portugal-20151004-with-ch-and-il-without-paf.psv +438 -0
- data/lib/sapor/regional_data/portugal-20151004-without-paf.psv +392 -0
- data/lib/sapor/regional_data/portugal-20151004.psv +370 -0
- data/lib/sapor/regional_data/portugal.rb +101 -0
- data/lib/sapor/regional_data/portugal_with_a_and_ch_without_paf.rb +92 -0
- data/lib/sapor/regional_data/portugal_with_a_and_il_without_paf.rb +92 -0
- data/lib/sapor/regional_data/portugal_with_a_ch_and_il_without_paf.rb +92 -0
- data/lib/sapor/regional_data/portugal_with_a_without_paf.rb +92 -0
- data/lib/sapor/regional_data/portugal_with_ch_and_il_without_paf.rb +92 -0
- data/lib/sapor/regional_data/portugal_without_paf.rb +92 -0
- data/lib/sapor/regional_data/slovakia.rb +81 -0
- data/lib/sapor/regional_data/slovenia.rb +114 -0
- data/lib/sapor/regional_data/spain-20160626.psv +619 -0
- data/lib/sapor/regional_data/spain.rb +136 -0
- data/lib/sapor/regional_data/sweden.rb +92 -0
- data/lib/sapor/regional_data/sweden_20140914.rb +89 -0
- data/lib/sapor/regional_data/united_kingdom-2015.psv +4358 -0
- data/lib/sapor/regional_data/united_kingdom-20170608-brexit-chuk.psv +5154 -0
- data/lib/sapor/regional_data/united_kingdom-20170608-brexit.psv +4521 -0
- data/lib/sapor/regional_data/united_kingdom-20170608-tig.psv +4529 -0
- data/lib/sapor/regional_data/united_kingdom-20170608.psv +3894 -0
- data/lib/sapor/regional_data/united_kingdom.rb +94 -0
- data/lib/sapor/regional_data/united_kingdom_with_brexit.rb +110 -0
- data/lib/sapor/regional_data/united_kingdom_with_brexit_and_chuk.rb +111 -0
- data/lib/sapor/regional_data/united_kingdom_with_tig.rb +111 -0
- data/lib/sapor/regional_data/utopia.rb +66 -0
- data/lib/sapor/regional_data/wallonia-2014.psv +101 -0
- data/lib/sapor/regional_data/wallonia-20190526.psv +88 -0
- data/lib/sapor/regional_data/wallonia.rb +112 -0
- data/lib/sapor/representatives_polychotomy.rb +338 -0
- data/lib/sapor/single_district_proportional.rb +75 -0
- data/sapor.gemspec +35 -0
- data/spec/integration/area_spec.rb +28 -0
- data/spec/integration/poll_spec.rb +112 -0
- data/spec/integration/sample.poll +8 -0
- data/spec/spec_helper.rb +31 -0
- data/spec/unit/area_spec.rb +115 -0
- data/spec/unit/austria_spec.rb +76 -0
- data/spec/unit/belgium_brussels_spec.rb +58 -0
- data/spec/unit/belgium_flanders_spec.rb +62 -0
- data/spec/unit/belgium_spec.rb +26 -0
- data/spec/unit/belgium_wallonia_spec.rb +65 -0
- data/spec/unit/binomials_cache_spec.rb +34 -0
- data/spec/unit/catalonia_spec.rb +74 -0
- data/spec/unit/combinations_distribution_spec.rb +241 -0
- data/spec/unit/denmark_spec.rb +56 -0
- data/spec/unit/denmark_with_e_and_p_spec.rb +58 -0
- data/spec/unit/denmark_with_e_spec.rb +57 -0
- data/spec/unit/denmark_with_p_spec.rb +57 -0
- data/spec/unit/denominators_spec.rb +40 -0
- data/spec/unit/dichotomies_spec.rb +154 -0
- data/spec/unit/dichotomy_spec.rb +320 -0
- data/spec/unit/estonia_spec.rb +65 -0
- data/spec/unit/european_union_27_austria_spec.rb +61 -0
- data/spec/unit/european_union_27_croatia_spec.rb +60 -0
- data/spec/unit/european_union_27_denmark_spec.rb +62 -0
- data/spec/unit/european_union_27_estonia_spec.rb +94 -0
- data/spec/unit/european_union_27_finland_spec.rb +75 -0
- data/spec/unit/european_union_27_ireland_spec.rb +72 -0
- data/spec/unit/european_union_27_ireland_with_ia_spec.rb +74 -0
- data/spec/unit/european_union_27_italy_spec.rb +69 -0
- data/spec/unit/european_union_27_netherlands_spec.rb +81 -0
- data/spec/unit/european_union_27_poland_spec.rb +69 -0
- data/spec/unit/european_union_27_romania_spec.rb +67 -0
- data/spec/unit/european_union_27_slovakia_spec.rb +111 -0
- data/spec/unit/european_union_27_spain_spec.rb +130 -0
- data/spec/unit/european_union_27_sweden_spec.rb +89 -0
- data/spec/unit/european_union_austria_spec.rb +61 -0
- data/spec/unit/european_union_bulgaria_spec.rb +97 -0
- data/spec/unit/european_union_croatia_spec.rb +59 -0
- data/spec/unit/european_union_cyprus_spec.rb +65 -0
- data/spec/unit/european_union_czech_republic_spec.rb +125 -0
- data/spec/unit/european_union_denmark_spec.rb +61 -0
- data/spec/unit/european_union_estonia_spec.rb +93 -0
- data/spec/unit/european_union_finland_spec.rb +75 -0
- data/spec/unit/european_union_flanders_spec.rb +56 -0
- data/spec/unit/european_union_france_2019_spec.rb +73 -0
- data/spec/unit/european_union_france_spec.rb +73 -0
- data/spec/unit/european_union_french_community_of_belgium_spec.rb +61 -0
- data/spec/unit/european_union_germany_spec.rb +90 -0
- data/spec/unit/european_union_great_britain_spec.rb +87 -0
- data/spec/unit/european_union_greece_spec.rb +148 -0
- data/spec/unit/european_union_hungary_spec.rb +57 -0
- data/spec/unit/european_union_ireland_spec.rb +72 -0
- data/spec/unit/european_union_ireland_with_ia_spec.rb +74 -0
- data/spec/unit/european_union_italy_spec.rb +69 -0
- data/spec/unit/european_union_latvia_spec.rb +76 -0
- data/spec/unit/european_union_lithuania_spec.rb +68 -0
- data/spec/unit/european_union_luxembourg_spec.rb +63 -0
- data/spec/unit/european_union_malta_spec.rb +60 -0
- data/spec/unit/european_union_netherlands_spec.rb +81 -0
- data/spec/unit/european_union_northern_ireland_spec.rb +66 -0
- data/spec/unit/european_union_poland_spec.rb +69 -0
- data/spec/unit/european_union_portugal_spec.rb +77 -0
- data/spec/unit/european_union_romania_spec.rb +67 -0
- data/spec/unit/european_union_slovakia_spec.rb +111 -0
- data/spec/unit/european_union_slovenia_spec.rb +77 -0
- data/spec/unit/european_union_spain_spec.rb +129 -0
- data/spec/unit/european_union_sweden_spec.rb +89 -0
- data/spec/unit/finland_spec.rb +65 -0
- data/spec/unit/finland_with_sin_spec.rb +67 -0
- data/spec/unit/first_past_the_post_spec.rb +54 -0
- data/spec/unit/flanders_spec.rb +70 -0
- data/spec/unit/france_spec.rb +32 -0
- data/spec/unit/greece_spec.rb +118 -0
- data/spec/unit/hungary_spec.rb +132 -0
- data/spec/unit/iceland_spec.rb +57 -0
- data/spec/unit/largest_remainder_spec.rb +79 -0
- data/spec/unit/latvia_kpv_p_par_spec.rb +38 -0
- data/spec/unit/latvia_kpv_par_spec.rb +38 -0
- data/spec/unit/latvia_kpv_spec.rb +38 -0
- data/spec/unit/latvia_spec.rb +60 -0
- data/spec/unit/luxembourg_spec.rb +54 -0
- data/spec/unit/multi_district_leveled_proportional_spec.rb +49 -0
- data/spec/unit/multi_district_proportional_spec.rb +81 -0
- data/spec/unit/netherlands_spec.rb +107 -0
- data/spec/unit/norway_spec.rb +64 -0
- data/spec/unit/norwegian_municipality_spec.rb +89 -0
- data/spec/unit/number_formatter_spec.rb +173 -0
- data/spec/unit/poland_spec.rb +62 -0
- data/spec/unit/poland_with_ko_and_l_without_n_po_r_and_zl_spec.rb +60 -0
- data/spec/unit/poland_with_ko_konf_kp_l_and_zp_without_k_k15_n_pis_po_psl_r_and_zl_spec.rb +59 -0
- data/spec/unit/poland_with_ko_sld_and_wi_without_n_po_and_zl_spec.rb +62 -0
- data/spec/unit/poland_with_sld_and_wi_without_zl_spec.rb +63 -0
- data/spec/unit/poland_with_sld_without_zl_spec.rb +62 -0
- data/spec/unit/poll_spec.rb +110 -0
- data/spec/unit/portugal_spec.rb +66 -0
- data/spec/unit/portugal_with_a_and_ch_without_paf_spec.rb +68 -0
- data/spec/unit/portugal_with_a_and_il_without_paf_spec.rb +68 -0
- data/spec/unit/portugal_with_a_ch_and_il_without_paf_spec.rb +69 -0
- data/spec/unit/portugal_with_a_without_paf_spec.rb +67 -0
- data/spec/unit/portugal_with_ch_and_il_without_paf_spec.rb +68 -0
- data/spec/unit/portugal_without_paf_spec.rb +66 -0
- data/spec/unit/pseudorandom_multirange_enumerator_spec.rb +82 -0
- data/spec/unit/referendum_polychotomy_spec.rb +289 -0
- data/spec/unit/representatives_polychotomy_spec.rb +332 -0
- data/spec/unit/slovakia_spec.rb +99 -0
- data/spec/unit/slovenia_spec.rb +80 -0
- data/spec/unit/spain_spec.rb +101 -0
- data/spec/unit/sweden_20140914_spec.rb +112 -0
- data/spec/unit/sweden_spec.rb +113 -0
- data/spec/unit/united_kingdom_spec.rb +65 -0
- data/spec/unit/united_kingdom_with_brexit_and_chuk_spec.rb +67 -0
- data/spec/unit/united_kingdom_with_brexit_spec.rb +66 -0
- data/spec/unit/united_kingdom_with_tig_spec.rb +66 -0
- data/spec/unit/wallonia_spec.rb +70 -0
- metadata +490 -0
|
@@ -0,0 +1,65 @@
|
|
|
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::Estonia, '#area_code' do
|
|
22
|
+
it 'returns EE as the area code' do
|
|
23
|
+
expect(Sapor::Estonia.instance.area_code).to eq('EE')
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
describe Sapor::Estonia, '#no_of_seats' do
|
|
28
|
+
it 'returns 101 as the number of seats' do
|
|
29
|
+
expect(Sapor::Estonia.instance.no_of_seats).to eq(101)
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
describe Sapor::Estonia, '#population_size' do
|
|
34
|
+
it 'returns a population size of 577,910' do
|
|
35
|
+
expect(Sapor::Estonia.instance.population_size).to eq(577_910)
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
describe Sapor::Estonia, '#seats' do
|
|
40
|
+
it 'calculates the number of seats for the election of 2015' do
|
|
41
|
+
results = { 'Eesti Reformierakond' => 158_971,
|
|
42
|
+
'Eesti Keskerakond' => 142_460,
|
|
43
|
+
'Sotsiaaldemokraatlik Erakond' => 87_190,
|
|
44
|
+
'Erakond Isamaa ja Res Publica Liit' => 78_697,
|
|
45
|
+
'Eesti Vabaerakond' => 49_883,
|
|
46
|
+
'Eesti Konservatiivne Rahvaerakond' => 46_883,
|
|
47
|
+
'Erakond Eestimaa Rohelised' => 5_193,
|
|
48
|
+
'Rahva Ühtsuse Erakond' => 2_289,
|
|
49
|
+
'Eesti Iseseisvuspartei' => 1_047,
|
|
50
|
+
'Üksikkandidaadid' => 887,
|
|
51
|
+
'Eestimaa Ühendatud Vasakpartei' => 764 }
|
|
52
|
+
seats = Sapor::Estonia.instance.seats(results)
|
|
53
|
+
expect(seats['Eesti Reformierakond']).to eq(30)
|
|
54
|
+
expect(seats['Eesti Keskerakond']).to eq(27)
|
|
55
|
+
expect(seats['Sotsiaaldemokraatlik Erakond']).to eq(15)
|
|
56
|
+
expect(seats['Erakond Isamaa ja Res Publica Liit']).to eq(14)
|
|
57
|
+
expect(seats['Eesti Vabaerakond']).to eq(8)
|
|
58
|
+
expect(seats['Eesti Konservatiivne Rahvaerakond']).to eq(7)
|
|
59
|
+
expect(seats['Erakond Eestimaa Rohelised']).to eq(0)
|
|
60
|
+
expect(seats['Rahva Ühtsuse Erakond']).to eq(0)
|
|
61
|
+
expect(seats['Eesti Iseseisvuspartei']).to eq(0)
|
|
62
|
+
expect(seats['Üksikkandidaadid']).to eq(0)
|
|
63
|
+
expect(seats['Eestimaa Ühendatud Vasakpartei']).to eq(0)
|
|
64
|
+
end
|
|
65
|
+
end
|
|
@@ -0,0 +1,61 @@
|
|
|
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::EuropeanUnion27Austria, '#area_code' do
|
|
23
|
+
it 'returns EU27[AT] as the area code' do
|
|
24
|
+
expect(Sapor::EuropeanUnion27Austria.instance.area_code).to eq('EU27[AT]')
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
describe Sapor::EuropeanUnion27Austria, '#no_of_seats' do
|
|
29
|
+
it 'returns 19 as the number of seats' do
|
|
30
|
+
expect(Sapor::EuropeanUnion27Austria.instance.no_of_seats).to eq(19)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
describe Sapor::EuropeanUnion27Austria, '#population_size' do
|
|
35
|
+
it 'returns a population size of 3,834,656' do
|
|
36
|
+
expect(Sapor::EuropeanUnion27Austria.instance.population_size).to \
|
|
37
|
+
eq(3_834_656)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
describe Sapor::EuropeanUnion27Austria, '#seats' do
|
|
42
|
+
it 'calculates the number of seats for the election of 2019' do
|
|
43
|
+
results = { 'Österreichische Volkspartei (EPP)' => 1_305_956,
|
|
44
|
+
'Sozialdemokratische Partei Österreichs (S&D)' => 903_151,
|
|
45
|
+
'Freiheitliche Partei Österreichs (ENF)' => 650_114,
|
|
46
|
+
'Die Grünen–Die Grüne Alternative (Greens/EFA)' => 532_193,
|
|
47
|
+
'NEOS–Das Neue Österreich und Liberales Forum (ALDE)' => \
|
|
48
|
+
319_024,
|
|
49
|
+
'EUROPA JETZT (*)' => 39_087,
|
|
50
|
+
'Kommunistische Partei Österreichs (*)' => 30_087 }
|
|
51
|
+
seats = Sapor::EuropeanUnion27Austria.instance.seats(results)
|
|
52
|
+
expect(seats['Österreichische Volkspartei (EPP)']).to eq(7)
|
|
53
|
+
expect(seats['Sozialdemokratische Partei Österreichs (S&D)']).to eq(5)
|
|
54
|
+
expect(seats['Freiheitliche Partei Österreichs (ENF)']).to eq(3)
|
|
55
|
+
expect(seats['Die Grünen–Die Grüne Alternative (Greens/EFA)']).to eq(2 + 1)
|
|
56
|
+
expect(seats['NEOS–Das Neue Österreich und Liberales Forum (ALDE)']).to \
|
|
57
|
+
eq(1)
|
|
58
|
+
expect(seats['EUROPA JETZT (*)']).to eq(0)
|
|
59
|
+
expect(seats['Kommunistische Partei Österreichs (*)']).to eq(0)
|
|
60
|
+
end
|
|
61
|
+
end
|
|
@@ -0,0 +1,60 @@
|
|
|
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::EuropeanUnion27Croatia, '#area_code' do
|
|
23
|
+
it 'returns EU27[HR] as the area code' do
|
|
24
|
+
expect(Sapor::EuropeanUnion27Croatia.instance.area_code).to \
|
|
25
|
+
eq('EU27[HR]')
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe Sapor::EuropeanUnion27Croatia, '#no_of_seats' do
|
|
30
|
+
it 'returns 12 as the number of seats' do
|
|
31
|
+
expect(Sapor::EuropeanUnion27Croatia.instance.no_of_seats).to eq(12)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
describe Sapor::EuropeanUnion27Croatia, '#population_size' do
|
|
36
|
+
it 'returns a population size of 1,073,954' do
|
|
37
|
+
expect(Sapor::EuropeanUnion27Croatia.instance.population_size).to \
|
|
38
|
+
eq(1_073_954)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
describe Sapor::EuropeanUnion27Croatia, '#seats' do
|
|
43
|
+
it 'calculates the number of seats for the election of 2014' do
|
|
44
|
+
results = { 'HDZ-ova koalicija (EPP)' => 381_844,
|
|
45
|
+
'Kukuriku koalicija (S&D)' => 275_904,
|
|
46
|
+
'Održivi razvoj Hrvatske (—)' => 86_806,
|
|
47
|
+
'Savez za Hrvatsku (—)' => 63_437,
|
|
48
|
+
'Hrvatski laburisti–Stranka rada (GUE/NGL)' => 31_363,
|
|
49
|
+
'Partnership of Croatian Center (—)' => 22_098,
|
|
50
|
+
'Others (—)' => 60_452 }
|
|
51
|
+
seats = Sapor::EuropeanUnion27Croatia.instance.seats(results)
|
|
52
|
+
expect(seats['HDZ-ova koalicija (EPP)']).to eq(6)
|
|
53
|
+
expect(seats['Kukuriku koalicija (S&D)']).to eq(4)
|
|
54
|
+
expect(seats['Održivi razvoj Hrvatske (—)']).to eq(1)
|
|
55
|
+
expect(seats['Savez za Hrvatsku (—)']).to eq(0 + 1)
|
|
56
|
+
expect(seats['Hrvatski laburisti–Stranka rada (GUE/NGL)']).to eq(0)
|
|
57
|
+
expect(seats['Partnership of Croatian Center (—)']).to eq(0)
|
|
58
|
+
expect(seats['Others (—)']).to eq(0)
|
|
59
|
+
end
|
|
60
|
+
end
|
|
@@ -0,0 +1,62 @@
|
|
|
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::EuropeanUnion27Denmark, '#area_code' do
|
|
23
|
+
it 'returns EU27[DK] as the area code' do
|
|
24
|
+
expect(Sapor::EuropeanUnion27Denmark.instance.area_code).to \
|
|
25
|
+
eq('EU27[DK]')
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe Sapor::EuropeanUnion27Denmark, '#no_of_seats' do
|
|
30
|
+
it 'returns 14 as the number of seats' do
|
|
31
|
+
expect(Sapor::EuropeanUnion27Denmark.instance.no_of_seats).to eq(14)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
describe Sapor::EuropeanUnion27Denmark, '#population_size' do
|
|
36
|
+
it 'returns a population size of 2,800,029' do
|
|
37
|
+
expect(Sapor::EuropeanUnion27Denmark.instance.population_size).to \
|
|
38
|
+
eq(2_800_029)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
describe Sapor::EuropeanUnion27Denmark, '#seats' do
|
|
43
|
+
it 'calculates the number of seats for the election of 2014' do
|
|
44
|
+
results = { 'Dansk Folkeparti (EFDD)' => 605_766,
|
|
45
|
+
'Socialdemokraterne (S&D)' => 434_894,
|
|
46
|
+
'Venstre (ALDE)' => 378_772,
|
|
47
|
+
'Socialistisk Folkeparti (Greens/EFA)' => 248_244,
|
|
48
|
+
'Det Konservative Folkeparti (EPP)' => 208_067,
|
|
49
|
+
'Folkebevægelsen mod EU (GUE/NGL)' => 183_493,
|
|
50
|
+
'Radikale Venstre (ALDE)' => 148_006,
|
|
51
|
+
'Liberal Alliance (ALDE)' => 65_776 }
|
|
52
|
+
seats = Sapor::EuropeanUnion27Denmark.instance.seats(results)
|
|
53
|
+
expect(seats['Dansk Folkeparti (EFDD)']).to eq(4)
|
|
54
|
+
expect(seats['Socialdemokraterne (S&D)']).to eq(3)
|
|
55
|
+
expect(seats['Venstre (ALDE)']).to eq(2 + 1)
|
|
56
|
+
expect(seats['Socialistisk Folkeparti (Greens/EFA)']).to eq(1)
|
|
57
|
+
expect(seats['Det Konservative Folkeparti (EPP)']).to eq(1)
|
|
58
|
+
expect(seats['Folkebevægelsen mod EU (GUE/NGL)']).to eq(1)
|
|
59
|
+
expect(seats['Radikale Venstre (ALDE)']).to eq(1)
|
|
60
|
+
expect(seats['Liberal Alliance (ALDE)']).to eq(0)
|
|
61
|
+
end
|
|
62
|
+
end
|
|
@@ -0,0 +1,94 @@
|
|
|
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::EuropeanUnion27Estonia, '#area_code' do
|
|
23
|
+
it 'returns EU27[EE] as the area code' do
|
|
24
|
+
expect(Sapor::EuropeanUnion27Estonia.instance.area_code).to \
|
|
25
|
+
eq('EU27[EE]')
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe Sapor::EuropeanUnion27Estonia, '#no_of_seats' do
|
|
30
|
+
it 'returns 7 as the number of seats' do
|
|
31
|
+
expect(Sapor::EuropeanUnion27Estonia.instance.no_of_seats).to eq(7)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
describe Sapor::EuropeanUnion27Estonia, '#population_size' do
|
|
36
|
+
it 'returns a population size of 332,859' do
|
|
37
|
+
expect(Sapor::EuropeanUnion27Estonia.instance.population_size).to \
|
|
38
|
+
eq(332_859)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
describe Sapor::EuropeanUnion27Estonia, '#seats' do
|
|
43
|
+
it 'calculates the number of seats for the election of 2014' do
|
|
44
|
+
results = { 'Eesti Reformierakond (ALDE)' => 79_849,
|
|
45
|
+
'Eesti Keskerakond (ALDE)' => 73_419,
|
|
46
|
+
'Isamaa ja Res Publica Liit (EPP)' => 45_765,
|
|
47
|
+
'Sotsiaaldemokraatlik Erakond (S&D)' => 44_550,
|
|
48
|
+
'INDREK TARAND (Greens/EFA)' => 43_369,
|
|
49
|
+
'Eesti Konservatiivne Rahvaerakond (NI)' => 13_247,
|
|
50
|
+
'TANEL TALVE (*)' => 10_073,
|
|
51
|
+
'SILVER MEIKAR (*)' => 6018,
|
|
52
|
+
'Eesti Iseseisvuspartei (*)' => 4158,
|
|
53
|
+
'KRISTIINA OJULAND (*)' => 3024,
|
|
54
|
+
'KRISTA MULENOK (*)' => 1266,
|
|
55
|
+
'Erakond Eestimaa Rohelised (Greens/EFA)' => 986,
|
|
56
|
+
'RENE KUULMANN (*)' => 632,
|
|
57
|
+
'JEVGENI KRIŠTAFOVITŠ (*)' => 594,
|
|
58
|
+
'IMRE MÜRK (*)' => 330,
|
|
59
|
+
'OLGA SÕTNIK (*)' => 328,
|
|
60
|
+
'Eestimaa Ühendatud Vasakpartei (*)' => 226,
|
|
61
|
+
'SVETLANA IVNITSKAJA (*)' => 167,
|
|
62
|
+
'TAIRA AASA (*)' => 126,
|
|
63
|
+
'ROMAN UBAKIVI (*)' => 96,
|
|
64
|
+
'DMITRI SILBER (*)' => 86,
|
|
65
|
+
'ANDRES INN (*)' => 72,
|
|
66
|
+
'LANCE GARETH EDWARD BOXALL (*)' => 64,
|
|
67
|
+
'JOERI WIERSMA (*)' => 48 }
|
|
68
|
+
seats = Sapor::EuropeanUnion27Estonia.instance.seats(results)
|
|
69
|
+
expect(seats['Eesti Reformierakond (ALDE)']).to eq(2)
|
|
70
|
+
expect(seats['Eesti Keskerakond (ALDE)']).to eq(1 + 1)
|
|
71
|
+
expect(seats['Isamaa ja Res Publica Liit (EPP)']).to eq(1)
|
|
72
|
+
expect(seats['Sotsiaaldemokraatlik Erakond (S&D)']).to eq(1)
|
|
73
|
+
expect(seats['INDREK TARAND (Greens/EFA)']).to eq(1)
|
|
74
|
+
expect(seats['Eesti Konservatiivne Rahvaerakond (NI)']).to eq(0)
|
|
75
|
+
expect(seats['TANEL TALVE (*)']).to eq(0)
|
|
76
|
+
expect(seats['SILVER MEIKAR (*)']).to eq(0)
|
|
77
|
+
expect(seats['Eesti Iseseisvuspartei (*)']).to eq(0)
|
|
78
|
+
expect(seats['KRISTIINA OJULAND (*)']).to eq(0)
|
|
79
|
+
expect(seats['KRISTA MULENOK (*)']).to eq(0)
|
|
80
|
+
expect(seats['Erakond Eestimaa Rohelised (Greens/EFA)']).to eq(0)
|
|
81
|
+
expect(seats['RENE KUULMANN (*)']).to eq(0)
|
|
82
|
+
expect(seats['JEVGENI KRIŠTAFOVITŠ (*)']).to eq(0)
|
|
83
|
+
expect(seats['IMRE MÜRK (*)']).to eq(0)
|
|
84
|
+
expect(seats['OLGA SÕTNIK (*)']).to eq(0)
|
|
85
|
+
expect(seats['Eestimaa Ühendatud Vasakpartei (*)']).to eq(0)
|
|
86
|
+
expect(seats['SVETLANA IVNITSKAJA (*)']).to eq(0)
|
|
87
|
+
expect(seats['TAIRA AASA (*)']).to eq(0)
|
|
88
|
+
expect(seats['ROMAN UBAKIVI (*)']).to eq(0)
|
|
89
|
+
expect(seats['DMITRI SILBER (*)']).to eq(0)
|
|
90
|
+
expect(seats['ANDRES INN (*)']).to eq(0)
|
|
91
|
+
expect(seats['LANCE GARETH EDWARD BOXALL (*)']).to eq(0)
|
|
92
|
+
expect(seats['JOERI WIERSMA (*)']).to eq(0)
|
|
93
|
+
end
|
|
94
|
+
end
|
|
@@ -0,0 +1,75 @@
|
|
|
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::EuropeanUnion27Finland, '#area_code' do
|
|
23
|
+
it 'returns EU27[FI] as the area code' do
|
|
24
|
+
expect(Sapor::EuropeanUnion27Finland.instance.area_code).to eq('EU27[FI]')
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
describe Sapor::EuropeanUnion27Finland, '#no_of_seats' do
|
|
29
|
+
it 'returns 14 as the number of seats' do
|
|
30
|
+
expect(Sapor::EuropeanUnion27Finland.instance.no_of_seats).to eq(14)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
describe Sapor::EuropeanUnion27Finland, '#population_size' do
|
|
35
|
+
it 'returns a population size of 1,830,045' do
|
|
36
|
+
expect(Sapor::EuropeanUnion27Finland.instance.population_size).to \
|
|
37
|
+
eq(1_830_045)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
describe Sapor::EuropeanUnion27Finland, '#seats' do
|
|
42
|
+
it 'calculates the number of seats using the votes of the 2014 election' do
|
|
43
|
+
results = { 'Kansallinen Kokoomus (EPP)' => 390_376,
|
|
44
|
+
'Suomen Keskusta (ALDE)' => 339_895,
|
|
45
|
+
'Perussuomalaiset (EFDD)' => 222_457,
|
|
46
|
+
'Suomen Sosialidemokraattinen Puolue (S&D)' => 212_781,
|
|
47
|
+
'Vihreä liitto (Greens/EFA)' => 161_263,
|
|
48
|
+
'Vasemmistoliitto (GUE/NGL)' => 161_074,
|
|
49
|
+
'Svenska folkpartiet i Finland (ALDE)' => 116_747,
|
|
50
|
+
'Kristillisdemokraatit (EPP)' => 90_586,
|
|
51
|
+
'Piraattipuolue (Greens/EFA)' => 12_378,
|
|
52
|
+
'Suomen Kommunistinen Puolue (GUE/NGL)' => 5_932,
|
|
53
|
+
'Itsenäisyyspuolue (—)' => 5_668,
|
|
54
|
+
'Muutos 2011 (—)' => 4_768,
|
|
55
|
+
'Köyhien Asialla (—)' => 2_667,
|
|
56
|
+
'Sinivalkoinen Rintama (—)' => 1_176,
|
|
57
|
+
'Kristiina Ilmarinen (—)' => 526 }
|
|
58
|
+
seats = Sapor::EuropeanUnion27Finland.instance.seats(results)
|
|
59
|
+
expect(seats['Kansallinen Kokoomus (EPP)']).to eq(3 + 1)
|
|
60
|
+
expect(seats['Suomen Keskusta (ALDE)']).to eq(3)
|
|
61
|
+
expect(seats['Perussuomalaiset (EFDD)']).to eq(2)
|
|
62
|
+
expect(seats['Suomen Sosialidemokraattinen Puolue (S&D)']).to eq(2)
|
|
63
|
+
expect(seats['Vihreä liitto (Greens/EFA)']).to eq(1)
|
|
64
|
+
expect(seats['Vasemmistoliitto (GUE/NGL)']).to eq(1)
|
|
65
|
+
expect(seats['Svenska folkpartiet i Finland (ALDE)']).to eq(1)
|
|
66
|
+
expect(seats['Kristillisdemokraatit (EPP)']).to eq(0)
|
|
67
|
+
expect(seats['Piraattipuolue (Greens/EFA)']).to eq(0)
|
|
68
|
+
expect(seats['Suomen Kommunistinen Puolue (GUE/NGL)']).to eq(0)
|
|
69
|
+
expect(seats['Itsenäisyyspuolue (—)']).to eq(0)
|
|
70
|
+
expect(seats['Muutos 2011 (—)']).to eq(0)
|
|
71
|
+
expect(seats['Köyhien Asialla (—)']).to eq(0)
|
|
72
|
+
expect(seats['Sinivalkoinen Rintama (—)']).to eq(0)
|
|
73
|
+
expect(seats['Kristiina Ilmarinen (—)']).to eq(0)
|
|
74
|
+
end
|
|
75
|
+
end
|
|
@@ -0,0 +1,72 @@
|
|
|
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::EuropeanUnion27Ireland, '#area_code' do
|
|
23
|
+
it 'returns EU[IE]@2019 as the area code' do
|
|
24
|
+
expect(Sapor::EuropeanUnion27Ireland.instance.area_code).to \
|
|
25
|
+
eq('EU27[IE]')
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe Sapor::EuropeanUnion27Ireland, '#no_of_seats' do
|
|
30
|
+
it 'returns 13 as the number of seats' do
|
|
31
|
+
expect(Sapor::EuropeanUnion27Ireland.instance.no_of_seats).to eq(13)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
describe Sapor::EuropeanUnion27Ireland, '#population_size' do
|
|
36
|
+
it 'returns a population size of 1,678,003' do
|
|
37
|
+
expect(Sapor::EuropeanUnion27Ireland.instance.population_size).to \
|
|
38
|
+
eq(1_678_003)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
describe Sapor::EuropeanUnion27Ireland, '#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
|
+
seats = Sapor::EuropeanUnion27Ireland.instance.seats(results)
|
|
58
|
+
expect(seats['Fine Gael (EPP)']).to eq(4 + 1)
|
|
59
|
+
expect(seats['Green Party (Greens/EFA)']).to eq(2 - 1)
|
|
60
|
+
expect(seats['Independents 4 Change (GUE/NGL)']).to eq(2 - 1 + 1)
|
|
61
|
+
expect(seats['Fianna Fáil (RE)']).to eq(1 + 1)
|
|
62
|
+
expect(seats['Sinn Féin (GUE/NGL)']).to eq(1 - 1 + 1)
|
|
63
|
+
expect(seats['Labour Party (S&D)']).to eq(0)
|
|
64
|
+
expect(seats['Solidarity–People Before Profit (GUE/NGL)']).to eq(0)
|
|
65
|
+
expect(seats['Social Democrats (S&D)']).to eq(0)
|
|
66
|
+
expect(seats['Renua Ireland (*)']).to eq(0)
|
|
67
|
+
expect(seats['Workers’ Party (NI)']).to eq(0)
|
|
68
|
+
expect(seats['Identity Ireland (*)']).to eq(0)
|
|
69
|
+
expect(seats['Direct Democracy Ireland (*)']).to eq(0)
|
|
70
|
+
expect(seats['Independents (*)']).to eq(1 + 1)
|
|
71
|
+
end
|
|
72
|
+
end
|