commit 6dddb42899370996314c958fab92fe0d982729bd
parent ca7401a6edc20cc65e96ac0241ee6a192018f779
Author: NunoSempere <nuno.semperelh@protonmail.com>
Date: Sun, 14 Apr 2024 10:09:46 -0400
filter recent polls
Diffstat:
| M | main.go | | | 53 | ++++++++++++++++++++++++++++++----------------------- |
1 file changed, 30 insertions(+), 23 deletions(-)
diff --git a/main.go b/main.go
@@ -187,15 +187,21 @@ func readStates() ([]State, error) {
}
func sampleFromState(state State) VotesForEachParty {
+ fmt.Printf("\n\nState: %s", state.Name)
+ fmt.Printf("\n\tVotes: %d", state.Votes)
+ fmt.Printf("\n\tHistory: %s", state.PresidentialElectoralHistory)
+ fmt.Printf("\n\tPolls: %s", state.Polls)
switch state.Name {
case "Nebraska":
- // 2000: R
- // 2004: R
- // 2008: Split, 1 D, 4 R
- // 2012: R
- // 2016: R
- // 2020: Split, 1 D, 4 R
+ /*
+ 2000: R
+ 2004: R
+ 2008: Split, 1 D, 4 R
+ 2012: R
+ 2016: R
+ 2020: Split, 1 D, 4 R
+ */
p_split := 2.0 / 6.0
if r.Float64() < p_split {
return VotesForEachParty{Democrats: 1, Republicans: 4}
@@ -203,12 +209,14 @@ func sampleFromState(state State) VotesForEachParty {
return VotesForEachParty{Democrats: 0, Republicans: 5}
}
case "Maine":
- // 2000: D
- // 2004: D
- // 2008: D
- // 2012: D
- // 2016: Split: 3 D, 1 R
- // 2020: Split, 3 D, 1 R
+ /*
+ 2000: D
+ 2004: D
+ 2008: D
+ 2012: D
+ 2016: Split: 3 D, 1 R
+ 2020: Split, 3 D, 1 R
+ */
p_split := 2.0 / 6.0
if r.Float64() < p_split {
return VotesForEachParty{Democrats: 3, Republicans: 1}
@@ -217,6 +225,7 @@ func sampleFromState(state State) VotesForEachParty {
}
default:
{
+ /* Just considering the base rate for the state */
p_republican := 0.0
for _, party := range state.PresidentialElectoralHistory {
if party == "R" {
@@ -229,6 +238,15 @@ func sampleFromState(state State) VotesForEachParty {
} else {
return VotesForEachParty{Democrats: state.Votes, Republicans: 0}
}
+
+ /* Considering polls */
+ var recent_polls []Poll
+ for _, poll := range state.Polls {
+ if poll.Date.After(time.Now().AddDate(0, 0, -30)) {
+ recent_polls = append(recent_polls, poll)
+ }
+ }
+ return VotesForEachParty{Democrats: 1, Republicans: 1}
}
}
}
@@ -237,21 +255,10 @@ func simulateElection(states []State) int {
republican_seats := 0
for _, state := range states {
- fmt.Printf("\n\nState: %s\n\tVotes: %d\n\tHistory: %s\n\tPolls: %s", state.Name, state.Votes, state.PresidentialElectoralHistory, state.Polls)
election_sample := sampleFromState(state)
republican_seats += election_sample.Republicans
- /*
- fmt.Printf("%s: Votes: %d,\n\tWinners: ", state.Name, state.Votes)
- for year, party := range state.PresidentialElectoralHistory {
- fmt.Printf("[%s: %s] ", year, party)
- }
-
- fmt.Printf("\n\tSample: Democrat seats: %d, Republican seats: %d", election_sample.Democrats, election_sample.Republicans)
- fmt.Println()
- */
}
- // fmt.Printf("\nDemocrat seats: %d\n", republican_seats)
fmt.Printf(" (%d) ", republican_seats)
if republican_seats >= 270 {
return 1