Exemplo n.º 1
0
 def test_fails_when_turnout_likelihood_is_too_low(self):
     data = pd.DataFrame({
         "response_likelihood": np.ones(1000),
         "turnout_likelihood": np.ones(1000) * 0.000001
     })
     sampling.predefined_sample(1, False)(500, data)
     with pytest.raises(ValueError):
         sampling.predefined_sample(1, True)(500, data)
Exemplo n.º 2
0
 def test_reaches_more_people_when_makes_multiple_attempts(self):
     np.random.seed(123)
     data = pd.DataFrame({"response_likelihood": np.ones(40) * 0.1})
     single_call_responders, _ = sampling.predefined_sample(1, False)(20,
                                                                      data)
     multi_call_responders, non_responders = sampling.predefined_sample(
         5, False)(20, data)
     assert len(multi_call_responders) > len(single_call_responders)
     assert len(multi_call_responders) < 20
     assert len(multi_call_responders) + len(non_responders) == 20
Exemplo n.º 3
0
 def test_returns_fewer_than_desired_when_response_rates_are_low(self):
     np.random.seed(123)
     data = pd.DataFrame({"response_likelihood": np.ones(20) * 0.5})
     poll_responders, poll_non_responders = sampling.predefined_sample(
         1, False)(10, data)
     assert len(poll_responders) < 10
     assert len(poll_responders) + len(poll_non_responders) == 10
Exemplo n.º 4
0
 def test_applies_likely_voter_screen_correctly(self):
     data = pd.DataFrame({
         "response_likelihood": np.ones(1000),
         "turnout_likelihood": np.ones(1000) * 0.1
     })
     responders, nonresponders = sampling.predefined_sample(1, True)(50,
                                                                     data)
     assert len(responders) + len(nonresponders) < 50
Exemplo n.º 5
0
 def test_fails_when_asked_for_too_many_people(self):
     data = pd.DataFrame({"response_likelihood": np.ones(10)})
     with pytest.raises(ValueError):
         sampling.predefined_sample(1, False)(20, data)