123456789101112131415161718192021222324252627282930313233343536373839404142 |
- import pytest
- import cc1101
- _FREQUENCY_CONTROL_WORD_HERTZ_PARAMS = [
- ([0x10, 0xA7, 0x62], 433000000),
- ([0x10, 0xAB, 0x85], 433420000),
- ([0x10, 0xB1, 0x3B], 434000000),
- ([0x21, 0x62, 0x76], 868000000),
- ]
- @pytest.mark.parametrize(
- ("control_word", "hertz"), _FREQUENCY_CONTROL_WORD_HERTZ_PARAMS
- )
- def test__frequency_control_word_to_hertz(control_word, hertz):
- assert cc1101.CC1101._frequency_control_word_to_hertz(
- control_word
- ) == pytest.approx(hertz, abs=200)
- @pytest.mark.parametrize(
- ("control_word", "hertz"), _FREQUENCY_CONTROL_WORD_HERTZ_PARAMS
- )
- def test__hertz_to_frequency_control_word(control_word, hertz):
- assert cc1101.CC1101._hertz_to_frequency_control_word(hertz) == control_word
- @pytest.mark.parametrize(
- ("mantissa", "exponent", "real"),
- [
- # > The default values give a data rate of 115.051 kBaud
- # > (closest setting to 115.2 kBaud), assuming a 26.0 MHz crystal.
- (34, 12, 115051),
- (34, 12 + 1, 115051 * 2),
- (34, 12 - 1, 115051 / 2),
- ],
- )
- def test__symbol_rate_floating_point_to_real(mantissa, exponent, real):
- assert cc1101.CC1101._symbol_rate_floating_point_to_real(
- mantissa=mantissa, exponent=exponent
- ) == pytest.approx(real, rel=1e-5)
|