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,57 @@
|
|
|
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::EuropeanUnionHungary, '#area_code' do
|
|
23
|
+
it 'returns EU[HU] as the area code' do
|
|
24
|
+
expect(Sapor::EuropeanUnionHungary.instance.area_code).to eq('EU[HU]')
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
describe Sapor::EuropeanUnionHungary, '#no_of_seats' do
|
|
29
|
+
it 'returns 21 as the number of seats' do
|
|
30
|
+
expect(Sapor::EuropeanUnionHungary.instance.no_of_seats).to eq(21)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
describe Sapor::EuropeanUnionHungary, '#population_size' do
|
|
35
|
+
it 'returns a population size of 3,470,257' do
|
|
36
|
+
expect(Sapor::EuropeanUnionHungary.instance.population_size).to \
|
|
37
|
+
eq(3_470_257)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
describe Sapor::EuropeanUnionHungary, '#seats' do
|
|
42
|
+
it 'calculates the number of seats for the election of 2014' do
|
|
43
|
+
results = { 'Fidesz–KDNP (EPP)' => 1_193_991, 'Jobbik (—)' => 340_287,
|
|
44
|
+
'MSZP (S&D)' => 252_751, 'DK (S&D)' => 226_086,
|
|
45
|
+
'Együtt (Greens/EFA)' => 168_076, 'LMP (Greens/EFA)' => 116_904,
|
|
46
|
+
'HNEM (—)' => 12_119, 'SMS (—)' => 9_279 }
|
|
47
|
+
seats = Sapor::EuropeanUnionHungary.instance.seats(results)
|
|
48
|
+
expect(seats['Fidesz–KDNP (EPP)']).to eq(12)
|
|
49
|
+
expect(seats['Jobbik (—)']).to eq(3)
|
|
50
|
+
expect(seats['MSZP (S&D)']).to eq(2)
|
|
51
|
+
expect(seats['DK (S&D)']).to eq(2)
|
|
52
|
+
expect(seats['Együtt (Greens/EFA)']).to eq(1)
|
|
53
|
+
expect(seats['LMP (Greens/EFA)']).to eq(1)
|
|
54
|
+
expect(seats['HNEM (—)']).to eq(0)
|
|
55
|
+
expect(seats['SMS (—)']).to eq(0)
|
|
56
|
+
end
|
|
57
|
+
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::EuropeanUnionIreland, '#area_code' do
|
|
23
|
+
it 'returns EU[IE] as the area code' do
|
|
24
|
+
expect(Sapor::EuropeanUnionIreland.instance.area_code).to \
|
|
25
|
+
eq('EU[IE]')
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe Sapor::EuropeanUnionIreland, '#no_of_seats' do
|
|
30
|
+
it 'returns 11 as the number of seats' do
|
|
31
|
+
expect(Sapor::EuropeanUnionIreland.instance.no_of_seats).to eq(11)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
describe Sapor::EuropeanUnionIreland, '#population_size' do
|
|
36
|
+
it 'returns a population size of 1,678,003' do
|
|
37
|
+
expect(Sapor::EuropeanUnionIreland.instance.population_size).to \
|
|
38
|
+
eq(1_678_003)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
describe Sapor::EuropeanUnionIreland, '#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::EuropeanUnionIreland.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)
|
|
61
|
+
expect(seats['Fianna Fáil (RE)']).to eq(1 + 1)
|
|
62
|
+
expect(seats['Sinn Féin (GUE/NGL)']).to eq(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
|
|
@@ -0,0 +1,74 @@
|
|
|
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::EuropeanUnionIrelandWithIa, '#area_code' do
|
|
23
|
+
it 'returns EU[IE]∪{IA} as the area code' do
|
|
24
|
+
expect(Sapor::EuropeanUnionIrelandWithIa.instance.area_code).to \
|
|
25
|
+
eq('EU[IE]∪{IA}')
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe Sapor::EuropeanUnionIrelandWithIa, '#no_of_seats' do
|
|
30
|
+
it 'returns 11 as the number of seats' do
|
|
31
|
+
expect(Sapor::EuropeanUnionIrelandWithIa.instance.no_of_seats).to eq(11)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
describe Sapor::EuropeanUnionIrelandWithIa, '#population_size' do
|
|
36
|
+
it 'returns a population size of 1,678,003' do
|
|
37
|
+
expect(Sapor::EuropeanUnionIrelandWithIa.instance.population_size).to \
|
|
38
|
+
eq(1_678_003)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
describe Sapor::EuropeanUnionIrelandWithIa, '#seats' do
|
|
43
|
+
it 'calculates the number of seats for the election of 2019' do
|
|
44
|
+
results = { 'Fine Gael (EPP)' => 496_459,
|
|
45
|
+
'Green Party (Greens/EFA)' => 190_755,
|
|
46
|
+
'Independents 4 Change (GUE/NGL)' => 124_085,
|
|
47
|
+
'Fianna Fáil (RE)' => 277_705,
|
|
48
|
+
'Sinn Féin (GUE/NGL)' => 196_001,
|
|
49
|
+
'Labour Party (S&D)' => 52_753,
|
|
50
|
+
'Solidarity–People Before Profit (GUE/NGL)' => 38_771,
|
|
51
|
+
'Social Democrats (S&D)' => 20_331,
|
|
52
|
+
'Renua Ireland (*)' => 6_897,
|
|
53
|
+
'Workers’ Party (NI)' => 3_701,
|
|
54
|
+
'Identity Ireland (*)' => 3_685,
|
|
55
|
+
'Direct Democracy Ireland (*)' => 2_773,
|
|
56
|
+
'Independents (*)' => 264_087,
|
|
57
|
+
'Independent Alliance (*)' => 264_087 }
|
|
58
|
+
seats = Sapor::EuropeanUnionIrelandWithIa.instance.seats(results)
|
|
59
|
+
expect(seats['Fine Gael (EPP)']).to eq(4 + 1)
|
|
60
|
+
expect(seats['Green Party (Greens/EFA)']).to eq(2 - 1)
|
|
61
|
+
expect(seats['Independents 4 Change (GUE/NGL)']).to eq(2 - 1)
|
|
62
|
+
expect(seats['Fianna Fáil (RE)']).to eq(1 + 1)
|
|
63
|
+
expect(seats['Sinn Féin (GUE/NGL)']).to eq(1 - 1)
|
|
64
|
+
expect(seats['Labour Party (S&D)']).to eq(0)
|
|
65
|
+
expect(seats['Solidarity–People Before Profit (GUE/NGL)']).to eq(0)
|
|
66
|
+
expect(seats['Social Democrats (S&D)']).to eq(0)
|
|
67
|
+
expect(seats['Renua Ireland (*)']).to eq(0)
|
|
68
|
+
expect(seats['Workers’ Party (NI)']).to eq(0)
|
|
69
|
+
expect(seats['Identity Ireland (*)']).to eq(0)
|
|
70
|
+
expect(seats['Direct Democracy Ireland (*)']).to eq(0)
|
|
71
|
+
expect(seats['Independents (*)']).to eq(1 + 1 - 1)
|
|
72
|
+
expect(seats['Independent Alliance (*)']).to eq(1 + 1 - 1)
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
#
|
|
3
|
+
# Statistical Analysis of Polling Results (SAPoR)
|
|
4
|
+
# Copyright (C) 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::EuropeanUnionItaly, '#area_code' do
|
|
23
|
+
it 'returns EU[IT] as the area code' do
|
|
24
|
+
expect(Sapor::EuropeanUnionItaly.instance.area_code).to eq('EU[IT]')
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
describe Sapor::EuropeanUnionItaly, '#no_of_seats' do
|
|
29
|
+
it 'returns 73 as the number of seats' do
|
|
30
|
+
expect(Sapor::EuropeanUnionItaly.instance.no_of_seats).to eq(73)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
describe Sapor::EuropeanUnionItaly, '#population_size' do
|
|
35
|
+
it 'returns a population size of 26,783,732' do
|
|
36
|
+
expect(Sapor::EuropeanUnionItaly.instance.population_size).to \
|
|
37
|
+
eq(26_783_732)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
describe Sapor::EuropeanUnionItaly, '#seats' do
|
|
42
|
+
it 'calculates the number of seats using the votes of the 2014 election' do
|
|
43
|
+
results = { 'Partito Democratico (S&D)' => 11_203_231,
|
|
44
|
+
'Movimento 5 Stelle (EFDD)' => 5_792_865,
|
|
45
|
+
'Forza Italia (EPP)' => 4_614_364,
|
|
46
|
+
'Lega Nord (ENF)' => 1_688_197,
|
|
47
|
+
'Nuovo Centrodestra–Unione di Centro (EPP)' => 1_202_350,
|
|
48
|
+
'L’Altra Europa con Tsipras (GUE/NGL)' => 1_108_457,
|
|
49
|
+
'Fratelli d’Italia (—)' => 1_006_513,
|
|
50
|
+
'Verdi Europei–Green Italia (Greens/EFA)' => 250_102,
|
|
51
|
+
'Scelta Europea (ALDE)' => 197_942,
|
|
52
|
+
'Italia dei Valori (ALDE)' => 181_373,
|
|
53
|
+
'Südtiroler Volkspartei (EPP)' => 138_037,
|
|
54
|
+
'Io Cambio–MAIE (—)' => 50_978 }
|
|
55
|
+
seats = Sapor::EuropeanUnionItaly.instance.seats(results)
|
|
56
|
+
expect(seats['Partito Democratico (S&D)']).to eq(31)
|
|
57
|
+
expect(seats['Movimento 5 Stelle (EFDD)']).to eq(17)
|
|
58
|
+
expect(seats['Forza Italia (EPP)']).to eq(13)
|
|
59
|
+
expect(seats['Lega Nord (ENF)']).to eq(5)
|
|
60
|
+
expect(seats['Nuovo Centrodestra–Unione di Centro (EPP)']).to eq(3)
|
|
61
|
+
expect(seats['L’Altra Europa con Tsipras (GUE/NGL)']).to eq(3)
|
|
62
|
+
expect(seats['Fratelli d’Italia (—)']).to eq(0)
|
|
63
|
+
expect(seats['Verdi Europei–Green Italia (Greens/EFA)']).to eq(0)
|
|
64
|
+
expect(seats['Scelta Europea (ALDE)']).to eq(0)
|
|
65
|
+
expect(seats['Italia dei Valori (ALDE)']).to eq(0)
|
|
66
|
+
expect(seats['Südtiroler Volkspartei (EPP)']).to eq(1)
|
|
67
|
+
expect(seats['Io Cambio–MAIE (—)']).to eq(0)
|
|
68
|
+
end
|
|
69
|
+
end
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
#
|
|
3
|
+
# Statistical Analysis of Polling Results (SAPoR)
|
|
4
|
+
# Copyright (C) 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::EuropeanUnionLatvia, '#area_code' do
|
|
23
|
+
it 'returns EU[LV] as the area code' do
|
|
24
|
+
expect(Sapor::EuropeanUnionLatvia.instance.area_code).to eq('EU[LV]')
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
describe Sapor::EuropeanUnionLatvia, '#no_of_seats' do
|
|
29
|
+
it 'returns 8 as the number of seats' do
|
|
30
|
+
expect(Sapor::EuropeanUnionLatvia.instance.no_of_seats).to eq(8)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
describe Sapor::EuropeanUnionLatvia, '#population_size' do
|
|
35
|
+
it 'returns a population size of 470.460' do
|
|
36
|
+
expect(Sapor::EuropeanUnionLatvia.instance.population_size).to \
|
|
37
|
+
eq(470_460)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
describe Sapor::EuropeanUnionLatvia, '#seats' do
|
|
42
|
+
it 'calculates the number of seats for the election of 2014' do
|
|
43
|
+
results = { 'Vienotība (EPP)' => 204_979,
|
|
44
|
+
'Nacionālā apvienība „Visu Latvijai!”–„Tēvzemei un ' \
|
|
45
|
+
'Brīvībai/LNNK” (ECR)' => 63_229,
|
|
46
|
+
'Sociāldemokrātiskā Partija “Saskaņa” (S&D)' => 57_863,
|
|
47
|
+
'Zaļo un Zemnieku savienība (ALDE)' => 36_637,
|
|
48
|
+
'Latvijas Krievu savienība (Greens/EFA)' => 28_303,
|
|
49
|
+
'Alternative (*)' => 16_566,
|
|
50
|
+
'Latvijas Reģionu apvienība (*)' => 11_035,
|
|
51
|
+
'Latvijas attīstībai (ALDE)' => 9_421,
|
|
52
|
+
'Latvijas Sociālistiskā partija (NI)' => 6_817,
|
|
53
|
+
'Latvijas Sociāldemokrātiskā Strādnieku partija (S&D)' => 1_462,
|
|
54
|
+
'Kristīgi demokrātiskā savienība (ECR)' => 1_453,
|
|
55
|
+
'Latvijas Atdzimšanas partija (*)' => 1_252,
|
|
56
|
+
'Par prezidentālu republiku (*)' => 672,
|
|
57
|
+
'Suverenitāte (*)' => 599 }
|
|
58
|
+
seats = Sapor::EuropeanUnionLatvia.instance.seats(results)
|
|
59
|
+
expect(seats['Vienotība (EPP)']).to eq(4)
|
|
60
|
+
expect(seats['Nacionālā apvienība „Visu Latvijai!”–„Tēvzemei un ' \
|
|
61
|
+
'Brīvībai/LNNK” (ECR)']).to eq(1)
|
|
62
|
+
expect(seats['Sociāldemokrātiskā Partija “Saskaņa” (S&D)']).to eq(1)
|
|
63
|
+
expect(seats['Zaļo un Zemnieku savienība (ALDE)']).to eq(1)
|
|
64
|
+
expect(seats['Latvijas Krievu savienība (Greens/EFA)']).to eq(1)
|
|
65
|
+
expect(seats['Alternative (*)']).to eq(0)
|
|
66
|
+
expect(seats['Latvijas Reģionu apvienība (*)']).to eq(0)
|
|
67
|
+
expect(seats['Latvijas attīstībai (ALDE)']).to eq(0)
|
|
68
|
+
expect(seats['Latvijas Sociālistiskā partija (NI)']).to eq(0)
|
|
69
|
+
expect(seats['Latvijas Sociāldemokrātiskā Strādnieku partija (S&D)']).to \
|
|
70
|
+
eq(0)
|
|
71
|
+
expect(seats['Kristīgi demokrātiskā savienība (ECR)']).to eq(0)
|
|
72
|
+
expect(seats['Latvijas Atdzimšanas partija (*)']).to eq(0)
|
|
73
|
+
expect(seats['Par prezidentālu republiku (*)']).to eq(0)
|
|
74
|
+
expect(seats['Suverenitāte (*)']).to eq(0)
|
|
75
|
+
end
|
|
76
|
+
end
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
#
|
|
3
|
+
# Statistical Analysis of Polling Results (SAPoR)
|
|
4
|
+
# Copyright (C) 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::EuropeanUnionLithuania, '#area_code' do
|
|
23
|
+
it 'returns EU[LT] as the area code' do
|
|
24
|
+
expect(Sapor::EuropeanUnionLithuania.instance.area_code).to eq('EU[LT]')
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
describe Sapor::EuropeanUnionLithuania, '#no_of_seats' do
|
|
29
|
+
it 'returns 11 as the number of seats' do
|
|
30
|
+
expect(Sapor::EuropeanUnionLithuania.instance.no_of_seats).to eq(11)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
describe Sapor::EuropeanUnionLithuania, '#population_size' do
|
|
35
|
+
it 'returns a population size of 1,322,036' do
|
|
36
|
+
expect(Sapor::EuropeanUnionLithuania.instance.population_size).to \
|
|
37
|
+
eq(1_322_036)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
describe Sapor::EuropeanUnionLithuania, '#seats' do
|
|
42
|
+
it 'calculates the number of seats for the election of 2014' do
|
|
43
|
+
results = { 'Tėvynės sąjunga–Lietuvos krikščionys demokratai (EPP)' => \
|
|
44
|
+
199_393,
|
|
45
|
+
'Lietuvos socialdemokratų partija (S&D)' => 197_477,
|
|
46
|
+
'Liberalų Sąjūdis (ALDE)' => 189_373,
|
|
47
|
+
'Partija tvarka ir teisingumas (EFDD)' => 163_049,
|
|
48
|
+
'Darbo Partija (ALDE)' => 146_607,
|
|
49
|
+
'Lietuvos lenkų rinkimų akcija–Rusų aljanso (ECR)' => 92_108,
|
|
50
|
+
'Lietuvos valstiečių ir žaliųjų sąjunga (Greens/EFA)' => 75_643,
|
|
51
|
+
'Lietuvos Žaliųjų Partija (—)' => 40_696,
|
|
52
|
+
'Lietuvių tautininkų sąjunga (—)' => 22_858,
|
|
53
|
+
'Liberalų ir centro sąjunga (ALDE)' => 16_927 }
|
|
54
|
+
seats = Sapor::EuropeanUnionLithuania.instance.seats(results)
|
|
55
|
+
expect(seats['Tėvynės sąjunga–Lietuvos krikščionys demokratai (EPP)']).to \
|
|
56
|
+
eq(2)
|
|
57
|
+
expect(seats['Lietuvos socialdemokratų partija (S&D)']).to eq(2)
|
|
58
|
+
expect(seats['Liberalų Sąjūdis (ALDE)']).to eq(2)
|
|
59
|
+
expect(seats['Partija tvarka ir teisingumas (EFDD)']).to eq(2)
|
|
60
|
+
expect(seats['Darbo Partija (ALDE)']).to eq(1)
|
|
61
|
+
expect(seats['Lietuvos lenkų rinkimų akcija–Rusų aljanso (ECR)']).to eq(1)
|
|
62
|
+
expect(seats['Lietuvos valstiečių ir žaliųjų sąjunga (Greens/EFA)']).to \
|
|
63
|
+
eq(1)
|
|
64
|
+
expect(seats['Lietuvos Žaliųjų Partija (—)']).to eq(0)
|
|
65
|
+
expect(seats['Lietuvių tautininkų sąjunga (—)']).to eq(0)
|
|
66
|
+
expect(seats['Liberalų ir centro sąjunga (ALDE)']).to eq(0)
|
|
67
|
+
end
|
|
68
|
+
end
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
#
|
|
3
|
+
# Statistical Analysis of Polling Results (SAPoR)
|
|
4
|
+
# Copyright (C) 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::EuropeanUnionLuxembourg, '#area_code' do
|
|
23
|
+
it 'returns EU[LU] as the area code' do
|
|
24
|
+
expect(Sapor::EuropeanUnionLuxembourg.instance.area_code).to eq('EU[LU]')
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
describe Sapor::EuropeanUnionLuxembourg, '#no_of_seats' do
|
|
29
|
+
it 'returns 6 as the number of seats' do
|
|
30
|
+
expect(Sapor::EuropeanUnionLuxembourg.instance.no_of_seats).to eq(6)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
describe Sapor::EuropeanUnionLuxembourg, '#population_size' do
|
|
35
|
+
it 'returns a population size of 1,254,363' do
|
|
36
|
+
expect(Sapor::EuropeanUnionLuxembourg.instance.population_size).to \
|
|
37
|
+
eq(1_254_363)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
describe Sapor::EuropeanUnionLuxembourg, '#seats' do
|
|
42
|
+
it 'calculates the number of seats for the election of 2014' do
|
|
43
|
+
results = { 'Chrëschtlech-Sozial Vollekspartei (EPP)' => 441_578,
|
|
44
|
+
'déi gréng (Greens/EFA)' => 176_073,
|
|
45
|
+
'Demokratesch Partei (ALDE)' => 173_255,
|
|
46
|
+
'Lëtzebuerger Sozialistesch Aarbechterpartei (S&D)' => 137_504,
|
|
47
|
+
'Alternativ Demokratesch Reformpartei (ECR)' => 88_298,
|
|
48
|
+
'Déi Lénk (GUE/NGL)' => 67_544,
|
|
49
|
+
'Kommunistesch Partei Lëtzebuerg (*)' => 17_506,
|
|
50
|
+
'Piratepartei Lëtzebuerg (Greens/EFA)' => 49_553,
|
|
51
|
+
'Partei fir Integral Demokratie (*)' => 21_303 }
|
|
52
|
+
seats = Sapor::EuropeanUnionLuxembourg.instance.seats(results)
|
|
53
|
+
expect(seats['Chrëschtlech-Sozial Vollekspartei (EPP)']).to eq(3)
|
|
54
|
+
expect(seats['déi gréng (Greens/EFA)']).to eq(1)
|
|
55
|
+
expect(seats['Demokratesch Partei (ALDE)']).to eq(1)
|
|
56
|
+
expect(seats['Lëtzebuerger Sozialistesch Aarbechterpartei (S&D)']).to eq(1)
|
|
57
|
+
expect(seats['Alternativ Demokratesch Reformpartei (ECR)']).to eq(0)
|
|
58
|
+
expect(seats['Déi Lénk (GUE/NGL)']).to eq(0)
|
|
59
|
+
expect(seats['Kommunistesch Partei Lëtzebuerg (*)']).to eq(0)
|
|
60
|
+
expect(seats['Piratepartei Lëtzebuerg (Greens/EFA)']).to eq(0)
|
|
61
|
+
expect(seats['Partei fir Integral Demokratie (*)']).to eq(0)
|
|
62
|
+
end
|
|
63
|
+
end
|