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,48 @@
|
|
|
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
|
+
INDEX = 'index-2014.txt'.freeze
|
|
21
|
+
TARGET = 'hungary-2014.txt'.freeze
|
|
22
|
+
|
|
23
|
+
BASE_URL = 'http://valasztas.hu/dyn/pv14/szavossz/en/'.freeze
|
|
24
|
+
|
|
25
|
+
DISTRICT_MATCHER = %r{<h2>Result of the single-member constituencies\s+(.*)\.\s*\(.*</h2>}m
|
|
26
|
+
RESULT_ROW_MATCHER = %r{<tr>\s*((<td[^>]*>[^<]*</td>\s*)+)}m
|
|
27
|
+
SEQUENCE_CELL_MATCHER = %r{<td[^>]*> (\d+) </td>}m
|
|
28
|
+
CELL_MATCHER = %r{<td[^>]*>([^<]*)</td>}m
|
|
29
|
+
|
|
30
|
+
File.open(TARGET, 'w') do |output|
|
|
31
|
+
File.open(INDEX).each do |line|
|
|
32
|
+
url = BASE_URL + line.chomp
|
|
33
|
+
puts url
|
|
34
|
+
content = `curl -s #{url}`.encode('utf-8', 'iso-8859-2')
|
|
35
|
+
district = content.scan(DISTRICT_MATCHER).first.first.gsub(/–/, '–')
|
|
36
|
+
puts district
|
|
37
|
+
content.scan(RESULT_ROW_MATCHER) do |match|
|
|
38
|
+
row = match.first
|
|
39
|
+
unless row.scan(SEQUENCE_CELL_MATCHER).first.nil?
|
|
40
|
+
cells = row.scan(CELL_MATCHER)
|
|
41
|
+
party = cells[2].first
|
|
42
|
+
result = cells[3].first.gsub(/ /, '')
|
|
43
|
+
output.puts "#{district} | #{party} | #{result}"
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
output.puts
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,80 @@
|
|
|
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
|
+
SOURCE = 'hungary-2014.txt'.freeze
|
|
21
|
+
TARGET = '../../lib/sapor/regional_data/hungary-2014.psv'.freeze
|
|
22
|
+
|
|
23
|
+
File.open(TARGET, 'w') do |output|
|
|
24
|
+
output.puts '# Statistical Analysis of Polling Results (SAPoR)'
|
|
25
|
+
output.puts '# Copyright (C) 2016 Filip van Laenen <f.a.vanlaenen@ieee.org>'
|
|
26
|
+
output.puts '#'
|
|
27
|
+
output.puts '# This file is part of SAPoR.'
|
|
28
|
+
output.puts '#'
|
|
29
|
+
output.puts '# SAPoR is free software: you can redistribute it and/or' \
|
|
30
|
+
' modify it under the'
|
|
31
|
+
output.puts '# terms of the GNU General Public License as published by the' \
|
|
32
|
+
' Free Software'
|
|
33
|
+
output.puts '# Foundation, either version 3 of the License, or (at your' \
|
|
34
|
+
' option) any later'
|
|
35
|
+
output.puts '# version.'
|
|
36
|
+
output.puts '#'
|
|
37
|
+
output.puts '# SAPoR is distributed in the hope that it will be useful, but' \
|
|
38
|
+
' WITHOUT ANY'
|
|
39
|
+
output.puts '# WARRANTY; without even the implied warranty of' \
|
|
40
|
+
' MERCHANTABILITY or FITNESS FOR'
|
|
41
|
+
output.puts '# A PARTICULAR PURPOSE. See the GNU General Public License' \
|
|
42
|
+
' for more details.'
|
|
43
|
+
output.puts '#'
|
|
44
|
+
output.puts '# You can find a copy of the GNU General Public License in' \
|
|
45
|
+
' /doc/gpl.txt'
|
|
46
|
+
output.puts '#'
|
|
47
|
+
File.open(SOURCE).each do |line|
|
|
48
|
+
next if line.chomp.start_with?('#')
|
|
49
|
+
if line.chomp.empty?
|
|
50
|
+
output.puts
|
|
51
|
+
else
|
|
52
|
+
elements = line.chomp.split('|').map(&:strip)
|
|
53
|
+
party = elements[1]
|
|
54
|
+
if party == 'FIDESZ-KDNP'
|
|
55
|
+
elements[1] = 'Fidesz–KDNP'
|
|
56
|
+
output.puts(elements.join(' | '))
|
|
57
|
+
elsif party == 'JOBBIK'
|
|
58
|
+
elements[1] = 'Jobbik'
|
|
59
|
+
output.puts(elements.join(' | '))
|
|
60
|
+
elsif party == 'MSZP-EGYÜTT-DK-PM-MLP'
|
|
61
|
+
elements[2] = (elements[2].to_i / 5).to_s
|
|
62
|
+
elements[1] = 'DK'
|
|
63
|
+
output.puts(elements.join(' | '))
|
|
64
|
+
elements[1] = 'Együtt'
|
|
65
|
+
output.puts(elements.join(' | '))
|
|
66
|
+
elements[1] = 'MLP'
|
|
67
|
+
output.puts(elements.join(' | '))
|
|
68
|
+
elements[1] = 'MSZP'
|
|
69
|
+
output.puts(elements.join(' | '))
|
|
70
|
+
elements[1] = 'PM'
|
|
71
|
+
output.puts(elements.join(' | '))
|
|
72
|
+
elsif party == 'SZOCIÁLDEMOKRATÁK'
|
|
73
|
+
elements[1] = 'Szociáldemokraták'
|
|
74
|
+
output.puts(elements.join(' | '))
|
|
75
|
+
else
|
|
76
|
+
output.puts line
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
M01/E01/evkjkv_e.html
|
|
2
|
+
M01/E02/evkjkv_e.html
|
|
3
|
+
M01/E03/evkjkv_e.html
|
|
4
|
+
M01/E04/evkjkv_e.html
|
|
5
|
+
M01/E05/evkjkv_e.html
|
|
6
|
+
M01/E06/evkjkv_e.html
|
|
7
|
+
M01/E07/evkjkv_e.html
|
|
8
|
+
M01/E08/evkjkv_e.html
|
|
9
|
+
M01/E09/evkjkv_e.html
|
|
10
|
+
M01/E10/evkjkv_e.html
|
|
11
|
+
M01/E11/evkjkv_e.html
|
|
12
|
+
M01/E12/evkjkv_e.html
|
|
13
|
+
M01/E13/evkjkv_e.html
|
|
14
|
+
M01/E14/evkjkv_e.html
|
|
15
|
+
M01/E15/evkjkv_e.html
|
|
16
|
+
M01/E16/evkjkv_e.html
|
|
17
|
+
M01/E17/evkjkv_e.html
|
|
18
|
+
M01/E18/evkjkv_e.html
|
|
19
|
+
M02/E01/evkjkv_e.html
|
|
20
|
+
M02/E02/evkjkv_e.html
|
|
21
|
+
M02/E03/evkjkv_e.html
|
|
22
|
+
M02/E04/evkjkv_e.html
|
|
23
|
+
M03/E01/evkjkv_e.html
|
|
24
|
+
M03/E02/evkjkv_e.html
|
|
25
|
+
M03/E03/evkjkv_e.html
|
|
26
|
+
M03/E04/evkjkv_e.html
|
|
27
|
+
M03/E05/evkjkv_e.html
|
|
28
|
+
M03/E06/evkjkv_e.html
|
|
29
|
+
M04/E01/evkjkv_e.html
|
|
30
|
+
M04/E02/evkjkv_e.html
|
|
31
|
+
M04/E03/evkjkv_e.html
|
|
32
|
+
M04/E04/evkjkv_e.html
|
|
33
|
+
M05/E01/evkjkv_e.html
|
|
34
|
+
M05/E02/evkjkv_e.html
|
|
35
|
+
M05/E03/evkjkv_e.html
|
|
36
|
+
M05/E04/evkjkv_e.html
|
|
37
|
+
M05/E05/evkjkv_e.html
|
|
38
|
+
M05/E06/evkjkv_e.html
|
|
39
|
+
M05/E07/evkjkv_e.html
|
|
40
|
+
M06/E01/evkjkv_e.html
|
|
41
|
+
M06/E02/evkjkv_e.html
|
|
42
|
+
M06/E03/evkjkv_e.html
|
|
43
|
+
M06/E04/evkjkv_e.html
|
|
44
|
+
M07/E01/evkjkv_e.html
|
|
45
|
+
M07/E02/evkjkv_e.html
|
|
46
|
+
M07/E03/evkjkv_e.html
|
|
47
|
+
M07/E04/evkjkv_e.html
|
|
48
|
+
M07/E05/evkjkv_e.html
|
|
49
|
+
M08/E01/evkjkv_e.html
|
|
50
|
+
M08/E02/evkjkv_e.html
|
|
51
|
+
M08/E03/evkjkv_e.html
|
|
52
|
+
M08/E04/evkjkv_e.html
|
|
53
|
+
M08/E05/evkjkv_e.html
|
|
54
|
+
M09/E01/evkjkv_e.html
|
|
55
|
+
M09/E02/evkjkv_e.html
|
|
56
|
+
M09/E03/evkjkv_e.html
|
|
57
|
+
M09/E04/evkjkv_e.html
|
|
58
|
+
M09/E05/evkjkv_e.html
|
|
59
|
+
M09/E06/evkjkv_e.html
|
|
60
|
+
M10/E01/evkjkv_e.html
|
|
61
|
+
M10/E02/evkjkv_e.html
|
|
62
|
+
M10/E03/evkjkv_e.html
|
|
63
|
+
M11/E01/evkjkv_e.html
|
|
64
|
+
M11/E02/evkjkv_e.html
|
|
65
|
+
M11/E03/evkjkv_e.html
|
|
66
|
+
M11/E04/evkjkv_e.html
|
|
67
|
+
M12/E01/evkjkv_e.html
|
|
68
|
+
M12/E02/evkjkv_e.html
|
|
69
|
+
M12/E03/evkjkv_e.html
|
|
70
|
+
M13/E01/evkjkv_e.html
|
|
71
|
+
M13/E02/evkjkv_e.html
|
|
72
|
+
M14/E01/evkjkv_e.html
|
|
73
|
+
M14/E02/evkjkv_e.html
|
|
74
|
+
M14/E03/evkjkv_e.html
|
|
75
|
+
M14/E04/evkjkv_e.html
|
|
76
|
+
M14/E05/evkjkv_e.html
|
|
77
|
+
M14/E06/evkjkv_e.html
|
|
78
|
+
M14/E07/evkjkv_e.html
|
|
79
|
+
M14/E08/evkjkv_e.html
|
|
80
|
+
M14/E09/evkjkv_e.html
|
|
81
|
+
M14/E10/evkjkv_e.html
|
|
82
|
+
M14/E11/evkjkv_e.html
|
|
83
|
+
M14/E12/evkjkv_e.html
|
|
84
|
+
M15/E01/evkjkv_e.html
|
|
85
|
+
M15/E02/evkjkv_e.html
|
|
86
|
+
M15/E03/evkjkv_e.html
|
|
87
|
+
M15/E04/evkjkv_e.html
|
|
88
|
+
M16/E01/evkjkv_e.html
|
|
89
|
+
M16/E02/evkjkv_e.html
|
|
90
|
+
M16/E03/evkjkv_e.html
|
|
91
|
+
M16/E04/evkjkv_e.html
|
|
92
|
+
M16/E05/evkjkv_e.html
|
|
93
|
+
M16/E06/evkjkv_e.html
|
|
94
|
+
M17/E01/evkjkv_e.html
|
|
95
|
+
M17/E02/evkjkv_e.html
|
|
96
|
+
M17/E03/evkjkv_e.html
|
|
97
|
+
M18/E01/evkjkv_e.html
|
|
98
|
+
M18/E02/evkjkv_e.html
|
|
99
|
+
M18/E03/evkjkv_e.html
|
|
100
|
+
M19/E01/evkjkv_e.html
|
|
101
|
+
M19/E02/evkjkv_e.html
|
|
102
|
+
M19/E03/evkjkv_e.html
|
|
103
|
+
M19/E04/evkjkv_e.html
|
|
104
|
+
M20/E01/evkjkv_e.html
|
|
105
|
+
M20/E02/evkjkv_e.html
|
|
106
|
+
M20/E03/evkjkv_e.html
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
Siedziba OKW,1 - Komitet Wyborczy Prawo i Sprawiedliwość,2 - Komitet Wyborczy Platforma Obywatelska RP,3 - Komitet Wyborczy Partia Razem,4 - Komitet Wyborczy KORWiN,5 - Komitet Wyborczy Polskie Stronnictwo Ludowe,6 - Koalicyjny Komitet Wyborczy Zjednoczona Lewica SLD+TR+PPS+UP+Zieloni,7 - Komitet Wyborczy Wyborców „Kukiz'15”,8 - Komitet Wyborczy Nowoczesna Ryszarda Petru,9 - Komitet Wyborczy Wyborców JOW Bezpartyjni,10 - Komitet Wyborczy Wyborców Zbigniewa Stonogi,11 - Komitet Wyborczy Wyborców Ruch Społeczny Rzeczypospolitej Polskiej,12 - Komitet Wyborczy Wyborców Zjednoczeni dla Śląska,13 - Komitet Wyborczy Samoobrona,14 - Komitet Wyborczy Wyborców Grzegorza Brauna „Szczęść Boże!”,15 - Komitet Wyborczy Kongres Nowej Prawicy,16 - Komitet Wyborczy Wyborców Mniejszość Niemiecka,16 - Komitet Wyborczy Wyborców Obywatele do Parlamentu
|
|
2
|
+
Legnica,127.370,90.060,13.003,15.427,13.886,37.298,34.229,25.506,,,,,,,,,
|
|
3
|
+
Wałbrzych,72.929,76.424,7.984,10.075,7.448,20.517,20.634,15.544,2.540,,,,,,,,
|
|
4
|
+
Wrocław,163.323,159.582,22.059,27.341,13.604,31.932,45.726,55.756,,2.779,,,,1.269,,,
|
|
5
|
+
Bydgoszcz,113.024,110.948,14.062,17.002,22.701,37.583,29.080,27.334,,2.543,,,,,,,
|
|
6
|
+
Toruń,121.703,93.432,13.227,14.134,24.476,39.003,30.159,23.563,,2.041,,,772,,,,
|
|
7
|
+
Lublin,232.014,80.892,13.395,24.376,37.733,29.172,45.448,22.158,,,599,,580,1.353,,,
|
|
8
|
+
Chełm,163.122,41.823,8.116,14.835,38.689,24.161,35.567,12.745,,,,,628,,,,
|
|
9
|
+
Zielona Góra,97.877,97.676,13.825,17.274,17.743,34.695,30.284,34.586,,2.258,,,,,,,
|
|
10
|
+
Łódź,107.350,112.333,16.627,17.163,9.710,37.615,25.992,32.274,,,,,,,,,
|
|
11
|
+
Piotrków Trybunalski,134.134,44.173,8.747,11.160,21.364,21.352,28.808,15.983,,,,,,,,,
|
|
12
|
+
Sieradz,147.623,78.314,13.077,15.171,29.044,30.256,32.973,19.681,,1.905,,,712,989,,,
|
|
13
|
+
Kraków I (południe),133.213,55.454,8.840,12.089,8.226,14.473,23.551,15.731,,,,,,,,,
|
|
14
|
+
Kraków II (północ),209.607,133.558,21.053,34.446,14.644,34.643,39.379,52.822,,,,,,1.372,1.244,,
|
|
15
|
+
Nowy Sącz,188.010,43.309,6.627,13.379,12.929,7.924,24.318,11.468,,1.606,,,,,891,,
|
|
16
|
+
Tarnów,151.623,42.887,7.082,13.766,23.552,9.933,28.005,13.233,,,,,,906,654,,
|
|
17
|
+
Płock,131.431,49.353,10.062,12.214,31.994,24.440,25.257,15.451,,,,,,,,,
|
|
18
|
+
Radom,130.758,48.332,7.203,10.770,25.933,13.258,23.149,13.233,,2.050,,,,,656,,
|
|
19
|
+
Siedlce,191.733,50.858,9.964,16.332,38.396,16.327,31.378,17.386,1.045,,582,,,1.239,,,
|
|
20
|
+
Warszawa I (miasto),327.342,301.672,60.663,67.700,7.882,93.666,84.937,146.629,,,2.760,,,,,,1.964
|
|
21
|
+
Warszawa II (okręg),190.355,123.227,18.895,23.586,18.666,27.774,35.418,49.098,,3.597,,,,,,,
|
|
22
|
+
Opole,93.926,88.731,10.202,13.346,12.464,22.841,42.533,24.152,1.772,,,,,751,,27.530,
|
|
23
|
+
Krosno,174.900,44.971,7.595,13.984,23.805,14.893,29.919,12.981,2.289,1.528,,,,,,,
|
|
24
|
+
Rzeszów,284.642,66.516,11.623,25.163,23.667,22.409,47.071,21.106,,2.919,,,,1.363,778,,
|
|
25
|
+
Białystok,197.575,72.894,11.258,20.297,35.116,32.015,39.509,23.361,,2.088,,,626,,629,,
|
|
26
|
+
Gdańsk,126.466,148.305,16.992,21.366,12.904,28.168,30.536,39.184,,3.210,,,,,,,
|
|
27
|
+
Gdynia,145.698,156.147,18.918,20.677,15.064,30.973,37.410,38.344,,3.477,,,,,,,
|
|
28
|
+
Bielsko-Biała,136.330,79.506,12.557,15.788,11.533,22.122,31.570,27.882,,,,,,,,,
|
|
29
|
+
Częstochowa,84.773,49.580,8.625,10.111,11.799,26.305,27.521,15.942,,1.378,,,,600,,,
|
|
30
|
+
Gliwice,89.584,85.130,12.181,14.949,7.342,21.163,35.793,26.122,,,,,,1.403,,,
|
|
31
|
+
Rybnik,114.799,70.188,9.669,13.136,5.197,17.201,32.794,18.341,,,,7.928,,710,,,
|
|
32
|
+
Katowice,135.367,116.658,16.786,22.803,4.064,27.837,41.344,35.591,,,,10.740,,,,,
|
|
33
|
+
Sosnowiec,84.410,72.755,12.652,13.682,6.687,39.774,29.161,25.522,,,,,,,,,
|
|
34
|
+
Kielce,200.652,80.866,13.106,19.395,44.574,36.880,44.115,23.360,2.344,1.792,,,448,1.158,,,
|
|
35
|
+
Elbląg,63.236,60.359,7.608,9.480,13.411,15.407,16.514,11.668,1.426,1.253,,,,,,,
|
|
36
|
+
Olsztyn,80.970,72.055,9.948,13.584,22.458,23.312,23.888,18.141,,1.810,,,,,,,
|
|
37
|
+
Kalisz,115.668,89.668,11.497,15.422,39.874,32.047,28.996,25.557,1.973,1.982,,,500,,,,
|
|
38
|
+
Konin,103.781,56.111,11.032,11.061,19.027,32.649,24.486,19.237,,,,,,,,,
|
|
39
|
+
Piła,73.665,83.845,10.591,11.004,20.712,24.723,24.359,18.859,,2.515,,,,,,,
|
|
40
|
+
Poznań,97.975,146.141,18.854,19.548,7.809,33.080,24.825,59.387,2.267,,,,,,,,
|
|
41
|
+
Koszalin,62.032,65.262,8.466,9.672,8.972,24.697,20.428,17.488,,,,,,,,,
|
|
42
|
+
Szczecin,110.697,121.479,15.678,20.291,14.776,32.584,32.030,32.964,,,,,,,,,
|
|
@@ -0,0 +1,79 @@
|
|
|
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
|
+
SOURCE = '2015-gl-lis-okr.csv'.freeze
|
|
21
|
+
TARGET = '../../lib/sapor/regional_data/poland-20151025.psv'.freeze
|
|
22
|
+
PARTIES = ['Prawo i Sprawiedliwość',
|
|
23
|
+
'Platforma Obywatelska',
|
|
24
|
+
'Lewica Razem',
|
|
25
|
+
'KORWiN',
|
|
26
|
+
'Polskie Stronnictwo Ludowe',
|
|
27
|
+
'Zjednoczona Lewica',
|
|
28
|
+
'Kukiz’15',
|
|
29
|
+
'.Nowoczesna',
|
|
30
|
+
'JOW Bezpartyjni',
|
|
31
|
+
'Stonoga Partia Polska',
|
|
32
|
+
'Ruch Społeczny Rzeczypospolitej Polskiej',
|
|
33
|
+
'Zjednoczeni dla Śląska',
|
|
34
|
+
'Samoobrona',
|
|
35
|
+
'Grzegorz Braun „Szczęść Boże!”',
|
|
36
|
+
'Kongres Nowej Prawicy',
|
|
37
|
+
'Mniejszość Niemiecka',
|
|
38
|
+
'Obywatele do Parlamentu']
|
|
39
|
+
|
|
40
|
+
File.open(TARGET, 'w') do |output|
|
|
41
|
+
output.puts '# Statistical Analysis of Polling Results (SAPoR)'
|
|
42
|
+
output.puts '# Copyright (C) 2016 Filip van Laenen <f.a.vanlaenen@ieee.org>'
|
|
43
|
+
output.puts '#'
|
|
44
|
+
output.puts '# This file is part of SAPoR.'
|
|
45
|
+
output.puts '#'
|
|
46
|
+
output.puts '# SAPoR is free software: you can redistribute it and/or' \
|
|
47
|
+
' modify it under the'
|
|
48
|
+
output.puts '# terms of the GNU General Public License as published by the' \
|
|
49
|
+
' Free Software'
|
|
50
|
+
output.puts '# Foundation, either version 3 of the License, or (at your' \
|
|
51
|
+
' option) any later'
|
|
52
|
+
output.puts '# version.'
|
|
53
|
+
output.puts '#'
|
|
54
|
+
output.puts '# SAPoR is distributed in the hope that it will be useful, but' \
|
|
55
|
+
' WITHOUT ANY'
|
|
56
|
+
output.puts '# WARRANTY; without even the implied warranty of' \
|
|
57
|
+
' MERCHANTABILITY or FITNESS FOR'
|
|
58
|
+
output.puts '# A PARTICULAR PURPOSE. See the GNU General Public License' \
|
|
59
|
+
' for more details.'
|
|
60
|
+
output.puts '#'
|
|
61
|
+
output.puts '# You can find a copy of the GNU General Public License in' \
|
|
62
|
+
' /doc/gpl.txt'
|
|
63
|
+
output.puts '#'
|
|
64
|
+
File.open(SOURCE).each do |line|
|
|
65
|
+
next if line.chomp.start_with?('Siedziba OKW')
|
|
66
|
+
if line.chomp.empty?
|
|
67
|
+
output.puts
|
|
68
|
+
else
|
|
69
|
+
elements = line.chomp.split(',').map(&:strip)
|
|
70
|
+
district = elements[0]
|
|
71
|
+
PARTIES.each_with_index do |p, i|
|
|
72
|
+
unless elements[i+1].nil? || elements[i+1].empty?
|
|
73
|
+
votes = elements[i+1].delete('.')
|
|
74
|
+
output.puts "#{district} | #{p} | #{votes}"
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
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
|
+
SOURCE = '2015-gl-lis-okr.csv'.freeze
|
|
21
|
+
TARGET = '../../lib/sapor/regional_data/poland-20151025-with-ko-and-rsw-without-n-po-r-and-zl.psv'.freeze
|
|
22
|
+
|
|
23
|
+
N_PARTY = '.Nowoczesna'.freeze
|
|
24
|
+
PO_PARTY = 'Platforma Obywatelska'.freeze
|
|
25
|
+
R_PARTY = 'Lewica Razem'.freeze
|
|
26
|
+
ZL_PARTY = 'Zjednoczona Lewica'.freeze
|
|
27
|
+
PARTIES = ['Prawo i Sprawiedliwość',
|
|
28
|
+
PO_PARTY,
|
|
29
|
+
R_PARTY,
|
|
30
|
+
'KORWiN',
|
|
31
|
+
'Polskie Stronnictwo Ludowe',
|
|
32
|
+
ZL_PARTY,
|
|
33
|
+
'Kukiz’15',
|
|
34
|
+
N_PARTY,
|
|
35
|
+
'JOW Bezpartyjni',
|
|
36
|
+
'Stonoga Partia Polska',
|
|
37
|
+
'Ruch Społeczny Rzeczypospolitej Polskiej',
|
|
38
|
+
'Zjednoczeni dla Śląska',
|
|
39
|
+
'Samoobrona',
|
|
40
|
+
'Grzegorz Braun „Szczęść Boże!”',
|
|
41
|
+
'Kongres Nowej Prawicy',
|
|
42
|
+
'Mniejszość Niemiecka',
|
|
43
|
+
'Obywatele do Parlamentu']
|
|
44
|
+
|
|
45
|
+
File.open(TARGET, 'w') do |output|
|
|
46
|
+
output.puts '# Statistical Analysis of Polling Results (SAPoR)'
|
|
47
|
+
output.puts '# Copyright (C) 2016 Filip van Laenen <f.a.vanlaenen@ieee.org>'
|
|
48
|
+
output.puts '#'
|
|
49
|
+
output.puts '# This file is part of SAPoR.'
|
|
50
|
+
output.puts '#'
|
|
51
|
+
output.puts '# SAPoR is free software: you can redistribute it and/or' \
|
|
52
|
+
' modify it under the'
|
|
53
|
+
output.puts '# terms of the GNU General Public License as published by the' \
|
|
54
|
+
' Free Software'
|
|
55
|
+
output.puts '# Foundation, either version 3 of the License, or (at your' \
|
|
56
|
+
' option) any later'
|
|
57
|
+
output.puts '# version.'
|
|
58
|
+
output.puts '#'
|
|
59
|
+
output.puts '# SAPoR is distributed in the hope that it will be useful, but' \
|
|
60
|
+
' WITHOUT ANY'
|
|
61
|
+
output.puts '# WARRANTY; without even the implied warranty of' \
|
|
62
|
+
' MERCHANTABILITY or FITNESS FOR'
|
|
63
|
+
output.puts '# A PARTICULAR PURPOSE. See the GNU General Public License' \
|
|
64
|
+
' for more details.'
|
|
65
|
+
output.puts '#'
|
|
66
|
+
output.puts '# You can find a copy of the GNU General Public License in' \
|
|
67
|
+
' /doc/gpl.txt'
|
|
68
|
+
output.puts '#'
|
|
69
|
+
File.open(SOURCE).each do |line|
|
|
70
|
+
next if line.chomp.start_with?('Siedziba OKW')
|
|
71
|
+
if line.chomp.empty?
|
|
72
|
+
output.puts
|
|
73
|
+
else
|
|
74
|
+
elements = line.chomp.split(',').map(&:strip)
|
|
75
|
+
district = elements[0]
|
|
76
|
+
ko_no = 0
|
|
77
|
+
rsw_no = 0
|
|
78
|
+
PARTIES.each_with_index do |p, i|
|
|
79
|
+
unless elements[i+1].nil? || elements[i+1].empty?
|
|
80
|
+
votes = elements[i+1].delete('.')
|
|
81
|
+
if p == R_PARTY || p == ZL_PARTY
|
|
82
|
+
rsw_no += votes.to_i
|
|
83
|
+
elsif p == PO_PARTY || p == N_PARTY
|
|
84
|
+
ko_no += votes.to_i
|
|
85
|
+
else
|
|
86
|
+
output.puts "#{district} | #{p} | #{votes}"
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
output.puts "#{district} | Koalicja Obywatelska | #{ko_no}"
|
|
91
|
+
output.puts "#{district} | Lewica Razem–Sojusz Lewicy Demokratycznej–Wiosna | #{rsw_no}"
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|