def test_returns_0_if_not_enough_samples(self, mock_cps): s = sensors.A100R(pin=18) self.assertEqual(s.value["windspeed_avg"], 0) mock_cps.return_value = 10 s.sample() self.assertEqual(s.value["windspeed_std"], 0)
def test_retrieving_value_resets_values(self): s = sensors.A100R(pin=18) s.counter_callback("channel") s.sample() self.assertGreater(s.value["windspeed_avg"], 0) self.assertEqual(s.value["windspeed_avg"], 0)
def test_correctly_sets_min_and_max_values(self, mock_cps): s = sensors.A100R(pin=18) mock_cps.return_value = 42 s.sample() mock_cps.return_value = 21 s.sample() data = s.value self.assertEqual(data["windspeed_min"], 21) self.assertEqual(data["windspeed_max"], 42)
def test_correctly_updates_runnung_avg_and_std(self, mock_cps): s = sensors.A100R(pin=18) mock_cps.return_value = 10 s.sample() mock_cps.return_value = 20 s.sample() data = s.value self.assertAlmostEqual(data["windspeed_avg"], np.mean([10, 20]), delta=0.01) self.assertAlmostEqual(data["windspeed_std"], np.std([10, 20], ddof=1), delta=0.01)
def test_A100R_adds_scheduler_job(self): pre = len(piweather.scheduler.get_jobs()) sensors.A100R(pin=18) post = len(piweather.scheduler.get_jobs()) self.assertEqual(post, pre + 1)
def test_has_pin_attribute(self): s = sensors.A100R(pin=18) self.assertEqual(s.pin, 18)
def test_gpio_callback_increases_counts(self): s = sensors.A100R(pin=18) self.assertEqual(s.counts_per_second(), 0) s.counter_callback("channel") self.assertGreater(s.counts_per_second(), 0)