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,125 @@
|
|
|
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::EuropeanUnionCzechRepublic, '#area_code' do
|
|
23
|
+
it 'returns EU[CZ] as the area code' do
|
|
24
|
+
expect(Sapor::EuropeanUnionCzechRepublic.instance.area_code).to eq('EU[CZ]')
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
describe Sapor::EuropeanUnionCzechRepublic, '#no_of_seats' do
|
|
29
|
+
it 'returns 21 as the number of seats' do
|
|
30
|
+
expect(Sapor::EuropeanUnionCzechRepublic.instance.no_of_seats).to eq(21)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
describe Sapor::EuropeanUnionCzechRepublic, '#population_size' do
|
|
35
|
+
it 'returns a population size of 1,007,398' do
|
|
36
|
+
expect(Sapor::EuropeanUnionCzechRepublic.instance.population_size).to \
|
|
37
|
+
eq(1_007_398)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
describe Sapor::EuropeanUnionCzechRepublic, '#seats' do
|
|
42
|
+
it 'calculates the number of seats for the election of 2014' do
|
|
43
|
+
results = { 'ANO 2011 (ALDE)' => 244_501,
|
|
44
|
+
'Koalice TOP 09 a STAN (EPP)' => 241_747,
|
|
45
|
+
'Česká strana sociálně demokratická (S&D)' => 214_800,
|
|
46
|
+
'Komunistická strana Čech a Moravy (GUE/NGL)' => 166_478,
|
|
47
|
+
'Křesťanská a demokratická unie–Československá strana lidová' \
|
|
48
|
+
' (EPP)' => 150_792,
|
|
49
|
+
'Občanská demokratická strana (ECR)' => 116_389,
|
|
50
|
+
'Strana svobodných občanů (EFDD)' => 79_540,
|
|
51
|
+
'Česká pirátská strana (*)' => 72_514,
|
|
52
|
+
'Strana zelených (Greens/EFA)' => 57_240,
|
|
53
|
+
'Úsvit přímé demokracie Tomia Okamury (—)' => 47_306,
|
|
54
|
+
'Strana zdravého rozumu–NECHCEME EURO–za Evropu svobodných' \
|
|
55
|
+
' států (—)' => 24_724,
|
|
56
|
+
'Komunistická strana Československa (—)' => 8_549,
|
|
57
|
+
'Volte Pravý Blok www.cibulka.net (—)' => 8_028,
|
|
58
|
+
'SNK Evropští demokraté (—)' => 7_961,
|
|
59
|
+
'Koalice DSSS a SPE (—)' => 7_902,
|
|
60
|
+
'Liberálně ekologická strana (—)' => 7_514,
|
|
61
|
+
'NE Bruselu–Národní demokracie (—)' => 7_109,
|
|
62
|
+
'LEV 21–Národní socialisté (—)' => 7_099,
|
|
63
|
+
'Věci veřejné (—)' => 6_988,
|
|
64
|
+
'Moravané (Greens/EFA)' => 6_614,
|
|
65
|
+
'VIZE 2014 (—)' => 3_698,
|
|
66
|
+
'Občanská konzervativní strana (—)' => 3_481,
|
|
67
|
+
'Koalice SP a NO! (—)' => 2_899,
|
|
68
|
+
'Česká strana regionů (—)' => 2_535,
|
|
69
|
+
'Koruna Česká (monarch.strana) (—)' => 2_434,
|
|
70
|
+
'Klub angažovaných nestraníků (—)' => 2_379,
|
|
71
|
+
'Republika (—)' => 2_240,
|
|
72
|
+
'Česká Suverenita (—)' => 2_086,
|
|
73
|
+
'HNUTÍ SOCIÁLNĚ SLABÝCH (—)' => 1_685,
|
|
74
|
+
'OBČANÉ 2011 (—)' => 1_299,
|
|
75
|
+
'Aktiv nezávislých občanů (—)' => 1_242,
|
|
76
|
+
'Romská demokratická strana (—)' => 1_185,
|
|
77
|
+
'REPUBL.STR.ČECH,MORAVY A SLEZ. (—)' => 1_100,
|
|
78
|
+
'Fair play–HNPD (—)' => 900,
|
|
79
|
+
'ANTIBURSÍK–STOP EKOTERORU! (—)' => 761,
|
|
80
|
+
'evropani.cz (—)' => 631,
|
|
81
|
+
'“Strana rovných příležitostí” (—)' => 640,
|
|
82
|
+
'Česká strana národně sociální (—)' => 502 }
|
|
83
|
+
seats = Sapor::EuropeanUnionCzechRepublic.instance.seats(results)
|
|
84
|
+
expect(seats['ANO 2011 (ALDE)']).to eq(4)
|
|
85
|
+
expect(seats['Koalice TOP 09 a STAN (EPP)']).to eq(4)
|
|
86
|
+
expect(seats['Česká strana sociálně demokratická (S&D)']).to eq(4)
|
|
87
|
+
expect(seats['Komunistická strana Čech a Moravy (GUE/NGL)']).to eq(3)
|
|
88
|
+
expect(seats['Křesťanská a demokratická unie–Československá strana lidová' \
|
|
89
|
+
' (EPP)']).to eq(3)
|
|
90
|
+
expect(seats['Občanská demokratická strana (ECR)']).to eq(2)
|
|
91
|
+
expect(seats['Strana svobodných občanů (EFDD)']).to eq(1)
|
|
92
|
+
expect(seats['Česká pirátská strana (*)']).to eq(0)
|
|
93
|
+
expect(seats['Strana zelených (Greens/EFA)']).to eq(0)
|
|
94
|
+
expect(seats['Úsvit přímé demokracie Tomia Okamury (—)']).to eq(0)
|
|
95
|
+
expect(seats['Strana zdravého rozumu–NECHCEME EURO–za Evropu svobodných' \
|
|
96
|
+
' států (—)']).to eq(0)
|
|
97
|
+
expect(seats['Komunistická strana Československa (—)']).to eq(0)
|
|
98
|
+
expect(seats['Volte Pravý Blok www.cibulka.net (—)']).to eq(0)
|
|
99
|
+
expect(seats['SNK Evropští demokraté (—)']).to eq(0)
|
|
100
|
+
expect(seats['Koalice DSSS a SPE (—)']).to eq(0)
|
|
101
|
+
expect(seats['Liberálně ekologická strana (—)']).to eq(0)
|
|
102
|
+
expect(seats['NE Bruselu–Národní demokracie (—)']).to eq(0)
|
|
103
|
+
expect(seats['LEV 21–Národní socialisté (—)']).to eq(0)
|
|
104
|
+
expect(seats['Věci veřejné (—)']).to eq(0)
|
|
105
|
+
expect(seats['Moravané (Greens/EFA)']).to eq(0)
|
|
106
|
+
expect(seats['VIZE 2014 (—)']).to eq(0)
|
|
107
|
+
expect(seats['Občanská konzervativní strana (—)']).to eq(0)
|
|
108
|
+
expect(seats['Koalice SP a NO! (—)']).to eq(0)
|
|
109
|
+
expect(seats['Česká strana regionů (—)']).to eq(0)
|
|
110
|
+
expect(seats['Koruna Česká (monarch.strana) (—)']).to eq(0)
|
|
111
|
+
expect(seats['Klub angažovaných nestraníků (—)']).to eq(0)
|
|
112
|
+
expect(seats['Republika (—)']).to eq(0)
|
|
113
|
+
expect(seats['Česká Suverenita (—)']).to eq(0)
|
|
114
|
+
expect(seats['HNUTÍ SOCIÁLNĚ SLABÝCH (—)']).to eq(0)
|
|
115
|
+
expect(seats['OBČANÉ 2011 (—)']).to eq(0)
|
|
116
|
+
expect(seats['Aktiv nezávislých občanů (—)']).to eq(0)
|
|
117
|
+
expect(seats['Romská demokratická strana (—)']).to eq(0)
|
|
118
|
+
expect(seats['REPUBL.STR.ČECH,MORAVY A SLEZ. (—)']).to eq(0)
|
|
119
|
+
expect(seats['Fair play–HNPD (—)']).to eq(0)
|
|
120
|
+
expect(seats['ANTIBURSÍK–STOP EKOTERORU! (—)']).to eq(0)
|
|
121
|
+
expect(seats['evropani.cz (—)']).to eq(0)
|
|
122
|
+
expect(seats['“Strana rovných příležitostí” (—)']).to eq(0)
|
|
123
|
+
expect(seats['Česká strana národně sociální (—)']).to eq(0)
|
|
124
|
+
end
|
|
125
|
+
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::EuropeanUnionDenmark, '#area_code' do
|
|
23
|
+
it 'returns EU[DK] as the area code' do
|
|
24
|
+
expect(Sapor::EuropeanUnionDenmark.instance.area_code).to eq('EU[DK]')
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
describe Sapor::EuropeanUnionDenmark, '#no_of_seats' do
|
|
29
|
+
it 'returns 13 as the number of seats' do
|
|
30
|
+
expect(Sapor::EuropeanUnionDenmark.instance.no_of_seats).to eq(13)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
describe Sapor::EuropeanUnionDenmark, '#population_size' do
|
|
35
|
+
it 'returns a population size of 2,800,029' do
|
|
36
|
+
expect(Sapor::EuropeanUnionDenmark.instance.population_size).to \
|
|
37
|
+
eq(2_800_029)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
describe Sapor::EuropeanUnionDenmark, '#seats' do
|
|
42
|
+
it 'calculates the number of seats for the election of 2014' do
|
|
43
|
+
results = { 'Dansk Folkeparti (EFDD)' => 605_766,
|
|
44
|
+
'Socialdemokraterne (S&D)' => 434_894,
|
|
45
|
+
'Venstre (ALDE)' => 378_772,
|
|
46
|
+
'Socialistisk Folkeparti (Greens/EFA)' => 248_244,
|
|
47
|
+
'Det Konservative Folkeparti (EPP)' => 208_067,
|
|
48
|
+
'Folkebevægelsen mod EU (GUE/NGL)' => 183_493,
|
|
49
|
+
'Radikale Venstre (ALDE)' => 148_006,
|
|
50
|
+
'Liberal Alliance (ALDE)' => 65_776 }
|
|
51
|
+
seats = Sapor::EuropeanUnionDenmark.instance.seats(results)
|
|
52
|
+
expect(seats['Dansk Folkeparti (EFDD)']).to eq(4)
|
|
53
|
+
expect(seats['Socialdemokraterne (S&D)']).to eq(3)
|
|
54
|
+
expect(seats['Venstre (ALDE)']).to eq(2)
|
|
55
|
+
expect(seats['Socialistisk Folkeparti (Greens/EFA)']).to eq(1)
|
|
56
|
+
expect(seats['Det Konservative Folkeparti (EPP)']).to eq(1)
|
|
57
|
+
expect(seats['Folkebevægelsen mod EU (GUE/NGL)']).to eq(1)
|
|
58
|
+
expect(seats['Radikale Venstre (ALDE)']).to eq(1)
|
|
59
|
+
expect(seats['Liberal Alliance (ALDE)']).to eq(0)
|
|
60
|
+
end
|
|
61
|
+
end
|
|
@@ -0,0 +1,93 @@
|
|
|
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::EuropeanUnionEstonia, '#area_code' do
|
|
23
|
+
it 'returns EU[EE] as the area code' do
|
|
24
|
+
expect(Sapor::EuropeanUnionEstonia.instance.area_code).to eq('EU[EE]')
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
describe Sapor::EuropeanUnionEstonia, '#no_of_seats' do
|
|
29
|
+
it 'returns 6 as the number of seats' do
|
|
30
|
+
expect(Sapor::EuropeanUnionEstonia.instance.no_of_seats).to eq(6)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
describe Sapor::EuropeanUnionEstonia, '#population_size' do
|
|
35
|
+
it 'returns a population size of 332,859' do
|
|
36
|
+
expect(Sapor::EuropeanUnionEstonia.instance.population_size).to \
|
|
37
|
+
eq(332_859)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
describe Sapor::EuropeanUnionEstonia, '#seats' do
|
|
42
|
+
it 'calculates the number of seats for the election of 2014' do
|
|
43
|
+
results = { 'Eesti Reformierakond (ALDE)' => 79_849,
|
|
44
|
+
'Eesti Keskerakond (ALDE)' => 73_419,
|
|
45
|
+
'Isamaa ja Res Publica Liit (EPP)' => 45_765,
|
|
46
|
+
'Sotsiaaldemokraatlik Erakond (S&D)' => 44_550,
|
|
47
|
+
'INDREK TARAND (Greens/EFA)' => 43_369,
|
|
48
|
+
'Eesti Konservatiivne Rahvaerakond (NI)' => 13_247,
|
|
49
|
+
'TANEL TALVE (*)' => 10_073,
|
|
50
|
+
'SILVER MEIKAR (*)' => 6018,
|
|
51
|
+
'Eesti Iseseisvuspartei (*)' => 4158,
|
|
52
|
+
'KRISTIINA OJULAND (*)' => 3024,
|
|
53
|
+
'KRISTA MULENOK (*)' => 1266,
|
|
54
|
+
'Erakond Eestimaa Rohelised (Greens/EFA)' => 986,
|
|
55
|
+
'RENE KUULMANN (*)' => 632,
|
|
56
|
+
'JEVGENI KRIŠTAFOVITŠ (*)' => 594,
|
|
57
|
+
'IMRE MÜRK (*)' => 330,
|
|
58
|
+
'OLGA SÕTNIK (*)' => 328,
|
|
59
|
+
'Eestimaa Ühendatud Vasakpartei (*)' => 226,
|
|
60
|
+
'SVETLANA IVNITSKAJA (*)' => 167,
|
|
61
|
+
'TAIRA AASA (*)' => 126,
|
|
62
|
+
'ROMAN UBAKIVI (*)' => 96,
|
|
63
|
+
'DMITRI SILBER (*)' => 86,
|
|
64
|
+
'ANDRES INN (*)' => 72,
|
|
65
|
+
'LANCE GARETH EDWARD BOXALL (*)' => 64,
|
|
66
|
+
'JOERI WIERSMA (*)' => 48 }
|
|
67
|
+
seats = Sapor::EuropeanUnionEstonia.instance.seats(results)
|
|
68
|
+
expect(seats['Eesti Reformierakond (ALDE)']).to eq(2)
|
|
69
|
+
expect(seats['Eesti Keskerakond (ALDE)']).to eq(1)
|
|
70
|
+
expect(seats['Isamaa ja Res Publica Liit (EPP)']).to eq(1)
|
|
71
|
+
expect(seats['Sotsiaaldemokraatlik Erakond (S&D)']).to eq(1)
|
|
72
|
+
expect(seats['INDREK TARAND (Greens/EFA)']).to eq(1)
|
|
73
|
+
expect(seats['Eesti Konservatiivne Rahvaerakond (NI)']).to eq(0)
|
|
74
|
+
expect(seats['TANEL TALVE (*)']).to eq(0)
|
|
75
|
+
expect(seats['SILVER MEIKAR (*)']).to eq(0)
|
|
76
|
+
expect(seats['Eesti Iseseisvuspartei (*)']).to eq(0)
|
|
77
|
+
expect(seats['KRISTIINA OJULAND (*)']).to eq(0)
|
|
78
|
+
expect(seats['KRISTA MULENOK (*)']).to eq(0)
|
|
79
|
+
expect(seats['Erakond Eestimaa Rohelised (Greens/EFA)']).to eq(0)
|
|
80
|
+
expect(seats['RENE KUULMANN (*)']).to eq(0)
|
|
81
|
+
expect(seats['JEVGENI KRIŠTAFOVITŠ (*)']).to eq(0)
|
|
82
|
+
expect(seats['IMRE MÜRK (*)']).to eq(0)
|
|
83
|
+
expect(seats['OLGA SÕTNIK (*)']).to eq(0)
|
|
84
|
+
expect(seats['Eestimaa Ühendatud Vasakpartei (*)']).to eq(0)
|
|
85
|
+
expect(seats['SVETLANA IVNITSKAJA (*)']).to eq(0)
|
|
86
|
+
expect(seats['TAIRA AASA (*)']).to eq(0)
|
|
87
|
+
expect(seats['ROMAN UBAKIVI (*)']).to eq(0)
|
|
88
|
+
expect(seats['DMITRI SILBER (*)']).to eq(0)
|
|
89
|
+
expect(seats['ANDRES INN (*)']).to eq(0)
|
|
90
|
+
expect(seats['LANCE GARETH EDWARD BOXALL (*)']).to eq(0)
|
|
91
|
+
expect(seats['JOERI WIERSMA (*)']).to eq(0)
|
|
92
|
+
end
|
|
93
|
+
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::EuropeanUnionFinland, '#area_code' do
|
|
23
|
+
it 'returns EU[FI] as the area code' do
|
|
24
|
+
expect(Sapor::EuropeanUnionFinland.instance.area_code).to eq('EU[FI]')
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
describe Sapor::EuropeanUnionFinland, '#no_of_seats' do
|
|
29
|
+
it 'returns 13 as the number of seats' do
|
|
30
|
+
expect(Sapor::EuropeanUnionFinland.instance.no_of_seats).to eq(13)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
describe Sapor::EuropeanUnionFinland, '#population_size' do
|
|
35
|
+
it 'returns a population size of 1,830,045' do
|
|
36
|
+
expect(Sapor::EuropeanUnionFinland.instance.population_size).to \
|
|
37
|
+
eq(1_830_045)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
describe Sapor::EuropeanUnionFinland, '#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::EuropeanUnionFinland.instance.seats(results)
|
|
59
|
+
expect(seats['Kansallinen Kokoomus (EPP)']).to eq(3)
|
|
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,56 @@
|
|
|
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::EuropeanUnionFlanders, '#area_code' do
|
|
23
|
+
it 'returns EU[BE-VLG] as the area code' do
|
|
24
|
+
expect(Sapor::EuropeanUnionFlanders.instance.area_code).to eq('EU[BE-VLG]')
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
describe Sapor::EuropeanUnionFlanders, '#no_of_seats' do
|
|
29
|
+
it 'returns 12 as the number of seats' do
|
|
30
|
+
expect(Sapor::EuropeanUnionFlanders.instance.no_of_seats).to eq(12)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
describe Sapor::EuropeanUnionFlanders, '#population_size' do
|
|
35
|
+
it 'returns a population size of 4,212,371' do
|
|
36
|
+
expect(Sapor::EuropeanUnionFlanders.instance.population_size).to \
|
|
37
|
+
eq(4_212_371)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
describe Sapor::EuropeanUnionFlanders, '#seats' do
|
|
42
|
+
it 'calculates the number of seats for the election of 2014' do
|
|
43
|
+
results = { 'N-VA (ECR)' => 1_123_363, 'Open Vld (ALDE)' => 859_254,
|
|
44
|
+
'CD&V (EPP)' => 840_814, 'sp.a (S&D)' => 555_354,
|
|
45
|
+
'Groen (Greens/EFA)' => 447_449,
|
|
46
|
+
'Vlaams Belang (ENF)' => 284_891, 'PVDA+ (GUE/NGL)' => 101_246 }
|
|
47
|
+
seats = Sapor::EuropeanUnionFlanders.instance.seats(results)
|
|
48
|
+
expect(seats['N-VA (ECR)']).to eq(4)
|
|
49
|
+
expect(seats['Open Vld (ALDE)']).to eq(3)
|
|
50
|
+
expect(seats['CD&V (EPP)']).to eq(2)
|
|
51
|
+
expect(seats['sp.a (S&D)']).to eq(1)
|
|
52
|
+
expect(seats['Groen (Greens/EFA)']).to eq(1)
|
|
53
|
+
expect(seats['Vlaams Belang (ENF)']).to eq(1)
|
|
54
|
+
expect(seats['PVDA+ (GUE/NGL)']).to eq(0)
|
|
55
|
+
end
|
|
56
|
+
end
|
|
@@ -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::EuropeanUnionFrance2019, '#area_code' do
|
|
23
|
+
it 'returns EU[FR]@2019 as the area code' do
|
|
24
|
+
expect(Sapor::EuropeanUnionFrance2019.instance.area_code).to eq('EU[FR]@2019')
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
describe Sapor::EuropeanUnionFrance2019, '#no_of_seats' do
|
|
29
|
+
it 'returns 79 as the number of seats' do
|
|
30
|
+
expect(Sapor::EuropeanUnionFrance2019.instance.no_of_seats).to eq(79)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
describe Sapor::EuropeanUnionFrance2019, '#population_size' do
|
|
35
|
+
it 'returns a population size of 18,955,636' do
|
|
36
|
+
expect(Sapor::EuropeanUnionFrance2019.instance.population_size).to \
|
|
37
|
+
eq(18_955_636)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
describe Sapor::EuropeanUnionFrance2019, '#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::EuropeanUnionFrance2019.instance.seats(results)
|
|
57
|
+
expect(seats['Front national–Rassemblement bleu Marine (ENF)']).to eq(22 + 1)
|
|
58
|
+
expect(seats['Union pour un mouvement populaire (EPP)']).to eq(18 + 2)
|
|
59
|
+
expect(seats['Parti socialiste–Parti radical de gauche (S&D)']).to eq(12 + 1)
|
|
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 + 1)
|
|
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
|