Skip to content

Commit

Permalink
Simply summary sentence structure
Browse files Browse the repository at this point in the history
  • Loading branch information
chrismostert committed Apr 15, 2024
1 parent cdcbc8d commit d996fcc
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 21 deletions.
28 changes: 14 additions & 14 deletions src/eml_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ class VoteDifferencePercentage:
value: float

def __str__(self) -> str:
return f"{self.value}%"
return f"{round(self.value, 1)}%"


VoteDifference = Union[VoteDifferenceAmount, VoteDifferencePercentage]
Expand Down Expand Up @@ -141,15 +141,15 @@ class CheckResult:
def summarise(self, summary_type: SummaryType) -> str:
def prefix(n_findings: int) -> str:
if n_findings == 0:
return " "
return "Er is "
elif n_findings == 1:
return " Daarnaast "
return " Daarnaast is er "
else:
return " Ook "
return " Ook is er "

class Sentence:
def __init__(self) -> None:
self.content = ["In dit stembureau"]
self.content = []
self.n_findings = 0

def add(self, text: str) -> None:
Expand All @@ -158,42 +158,42 @@ def add(self, text: str) -> None:

def render(self, recounted: bool) -> str:
if self.n_findings == 0:
return f"{self.content} zijn er geen bevindingen."
return "Er zijn geen bevindingen."
return f"{''.join(self.content)} Er is {'wel' if recounted else 'niet'} herteld."

sentence = Sentence()

if summary_type == SummaryType.A:
if self.inexplicable_difference:
sentence.add(
f"is er een onverklaard verschil van {self.inexplicable_difference}"
f"een onverklaard verschil van {self.inexplicable_difference}"
)
if self.explanation_sum_difference:
sentence.add(
f"is er een verschil tussen het aantal toegelaten kiezers en de som van de gegeven verklaringen van {self.explanation_sum_difference}"
f"een aantal ontbrekende verklaringen van {self.explanation_sum_difference}"
)
elif summary_type == SummaryType.B:
if self.zero_votes:
sentence.add("zijn er 0 stemmen uitgebracht")
sentence.add("een aantal uitgebrachte stemmen van 0")
if self.high_invalid_vote_percentage:
sentence.add(
f"is er een hoog percentage ongeldige stemmen ({int(self.high_invalid_vote_percentage)}%)"
f"een hoog percentage ongeldige stemmen ({int(self.high_invalid_vote_percentage)}%)"
)
if self.high_blank_vote_percentage:
sentence.add(
f"is er een hoog percentage blanco stemmen ({int(self.high_blank_vote_percentage)}%)"
f"een hoog percentage blanco stemmen ({int(self.high_blank_vote_percentage)}%)"
)
if self.high_vote_difference:
sentence.add(
f"is er een groot verschil tussen het aantal toegelaten kiezers en het aantal uitgebrachte stemmen ({self.high_vote_difference})"
f"een groot verschil tussen het aantal toegelaten kiezers en het aantal uitgebrachte stemmen ({self.high_vote_difference})"
)
if self.parties_with_high_difference_percentage:
sentence.add(
f"hebben de volgende partijen een opmerkelijk grote afwijking ten opzichte van het gemeentegemiddelde: {', '.join(self.parties_with_high_difference_percentage)}"
f"een opmerkelijk grote afwijking ten opzichte van het gemeentegemiddelde bij de volgende partijen: {', '.join(self.parties_with_high_difference_percentage)}"
)
if self.potentially_switched_candidates:
sentence.add(
f"is er een mogelijke verwisseling bij de volgende kandidaten: {', '.join((str(switch) for switch in self.potentially_switched_candidates))}"
f"een mogelijke verwisseling bij de volgende kandidaten: {', '.join((str(switch) for switch in self.potentially_switched_candidates))}"
)

return sentence.render(self.already_recounted)
Expand Down
14 changes: 7 additions & 7 deletions test/test_e2e.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ def test_create_csv_files_a_b():
"Gemeentenummer;0505\n"
"\n"
"Verkiezingnummer;Kieskringnummer;Gemeentenummer;Gemeentenaam;Stembureaunummer;Stembureaunaam;Stembureau met nul stemmen;Stembureau >=3% ongeldig;Stembureau >=3% blanco;Stembureau >=15 of >=2% verschil tussen toegelaten kiezers en uitgebrachte stemmen;Stembureau met lijst >=50% afwijking;Mogelijk verwisselde kandidaten;Al herteld;Samenvatting\n"
"TK2023;14;0505;Dordrecht;1;Stembureau Binnenstad;;;;ja (28);;;ja;In dit stembureau is er een groot verschil tussen het aantal toegelaten kiezers en het aantal uitgebrachte stemmen (28). Er is wel herteld.\n"
"TK2023;14;0505;Dordrecht;1;Stembureau Binnenstad;;;;ja (28);;;ja;Er is een groot verschil tussen het aantal toegelaten kiezers en het aantal uitgebrachte stemmen (28). Er is wel herteld.\n"
)
assert content == expected

Expand Down Expand Up @@ -91,8 +91,8 @@ def test_create_csv_files_a_b_2():
"Gemeentenummer;1708\n"
"\n"
"Verkiezingnummer;Kieskringnummer;Gemeentenummer;Gemeentenaam;Stembureaunummer;Stembureaunaam;Aantal geen verklaring voor verschil;Aantal ontbrekende verklaringen voor verschil;Al herteld;Samenvatting\n"
"EP2024;alle;1708;Steenwijkerland;1;Stembureau Holterberg;1;405;;In dit stembureau is er een onverklaard verschil van 1. Daarnaast is er een verschil tussen het aantal toegelaten kiezers en de som van de gegeven verklaringen van 405. Er is niet herteld.\n"
'EP2024;alle;1708;Steenwijkerland;3;"Stembureau ""De Waarschuwing""";108;;;In dit stembureau is er een onverklaard verschil van 108. Er is niet herteld.\n'
"EP2024;alle;1708;Steenwijkerland;1;Stembureau Holterberg;1;405;;Er is een onverklaard verschil van 1. Daarnaast is er een aantal ontbrekende verklaringen van 405. Er is niet herteld.\n"
'EP2024;alle;1708;Steenwijkerland;3;"Stembureau ""De Waarschuwing""";108;;;Er is een onverklaard verschil van 108. Er is niet herteld.\n'
)
assert content == expected

Expand All @@ -107,10 +107,10 @@ def test_create_csv_files_a_b_2():
"Gemeentenummer;1708\n"
"\n"
"Verkiezingnummer;Kieskringnummer;Gemeentenummer;Gemeentenaam;Stembureaunummer;Stembureaunaam;Stembureau met nul stemmen;Stembureau >=3% ongeldig;Stembureau >=3% blanco;Stembureau >=15 of >=2% verschil tussen toegelaten kiezers en uitgebrachte stemmen;Stembureau met lijst >=50% afwijking;Mogelijk verwisselde kandidaten;Al herteld;Samenvatting\n"
"EP2024;alle;1708;Steenwijkerland;1;Stembureau Holterberg;;;;ja (417);Kleurenpartij (51%);;;In dit stembureau is er een groot verschil tussen het aantal toegelaten kiezers en het aantal uitgebrachte stemmen (417). Daarnaast hebben de volgende partijen een opmerkelijk grote afwijking ten opzichte van het gemeentegemiddelde: Kleurenpartij (51%). Er is niet herteld.\n"
"EP2024;alle;1708;Steenwijkerland;2;Stembureau Lege boel;ja;;;;Kleurenpartij (-51%);;;In dit stembureau zijn er 0 stemmen uitgebracht. Daarnaast hebben de volgende partijen een opmerkelijk grote afwijking ten opzichte van het gemeentegemiddelde: Kleurenpartij (-51%). Er is niet herteld.\n"
'EP2024;alle;1708;Steenwijkerland;3;"Stembureau ""De Waarschuwing""";;ja (3%);ja (3%);ja (108);;;;In dit stembureau is er een hoog percentage ongeldige stemmen (3%). Daarnaast is er een hoog percentage blanco stemmen (3%). Ook is er een groot verschil tussen het aantal toegelaten kiezers en het aantal uitgebrachte stemmen (108). Er is niet herteld.\n'
"EP2024;alle;1708;Steenwijkerland;4;Stembureau Schoolstraat;;;;ja (20%);Het Verschil (61%), Kleurenpartij (-51%);;;In dit stembureau is er een groot verschil tussen het aantal toegelaten kiezers en het aantal uitgebrachte stemmen (20.0%). Daarnaast hebben de volgende partijen een opmerkelijk grote afwijking ten opzichte van het gemeentegemiddelde: Het Verschil (61%), Kleurenpartij (-51%). Er is niet herteld.\n"
"EP2024;alle;1708;Steenwijkerland;1;Stembureau Holterberg;;;;ja (417);Kleurenpartij (51%);;;Er is een groot verschil tussen het aantal toegelaten kiezers en het aantal uitgebrachte stemmen (417). Daarnaast is er een opmerkelijk grote afwijking ten opzichte van het gemeentegemiddelde bij de volgende partijen: Kleurenpartij (51%). Er is niet herteld.\n"
"EP2024;alle;1708;Steenwijkerland;2;Stembureau Lege boel;ja;;;;Kleurenpartij (-51%);;;Er is een aantal uitgebrachte stemmen van 0. Daarnaast is er een opmerkelijk grote afwijking ten opzichte van het gemeentegemiddelde bij de volgende partijen: Kleurenpartij (-51%). Er is niet herteld.\n"
'EP2024;alle;1708;Steenwijkerland;3;"Stembureau ""De Waarschuwing""";;ja (3%);ja (3%);ja (108);;;;Er is een hoog percentage ongeldige stemmen (3%). Daarnaast is er een hoog percentage blanco stemmen (3%). Ook is er een groot verschil tussen het aantal toegelaten kiezers en het aantal uitgebrachte stemmen (108). Er is niet herteld.\n'
"EP2024;alle;1708;Steenwijkerland;4;Stembureau Schoolstraat;;;;ja (20%);Het Verschil (61%), Kleurenpartij (-51%);;;Er is een groot verschil tussen het aantal toegelaten kiezers en het aantal uitgebrachte stemmen (20.0%). Daarnaast is er een opmerkelijk grote afwijking ten opzichte van het gemeentegemiddelde bij de volgende partijen: Het Verschil (61%), Kleurenpartij (-51%). Er is niet herteld.\n"
)
assert content == expected

Expand Down

0 comments on commit d996fcc

Please sign in to comment.