Exemple #1
0
 def test_high_temperature(self):
     """Test parsing and streaming of DPT2ByteFloat 500.00, 499.84, 500.16. Testing rounding issues."""
     assert DPT2ByteFloat.to_knx(500.00) == (0x2E, 0x1A)
     assert round(abs(DPT2ByteFloat.from_knx((0x2E, 0x1A)) - 499.84), 7) == 0
     assert round(abs(DPT2ByteFloat.from_knx((0x2E, 0x1B)) - 500.16), 7) == 0
     assert DPT2ByteFloat.to_knx(499.84) == (0x2E, 0x1A)
     assert DPT2ByteFloat.to_knx(500.16) == (0x2E, 0x1B)
Exemple #2
0
    def test_very_cold_temperature(self):
        """
        Test parsing and streaming of DPT2ByteFloat -1000.00,-999.68, -1000.32.

        Testing rounding issues of negative values.
        """
        assert DPT2ByteFloat.to_knx(-1000.00) == (0xB1, 0xE6)
        assert DPT2ByteFloat.from_knx((0xB1, 0xE6)) == -999.68
        assert DPT2ByteFloat.from_knx((0xB1, 0xE5)) == -1000.32
        assert DPT2ByteFloat.to_knx(-999.68) == (0xB1, 0xE6)
        assert DPT2ByteFloat.to_knx(-1000.32) == (0xB1, 0xE5)
Exemple #3
0
 def test_close_to_min(self):
     """Test parsing and streaming of DPT2ByteFloat with minimum value +1."""
     assert DPT2ByteFloat.to_knx(-670760.96) == (0xF8, 0x01)
     assert DPT2ByteFloat.from_knx((0xF8, 0x01)) == -670760.96
Exemple #4
0
 def test_close_to_max(self):
     """Test parsing and streaming of DPT2ByteFloat with maximum value -1."""
     assert DPT2ByteFloat.to_knx(670433.28) == (0x7F, 0xFE)
     assert DPT2ByteFloat.from_knx((0x7F, 0xFE)) == 670433.28
Exemple #5
0
 def test_min(self):
     """Test parsing and streaming of DPT2ByteFloat with minimum value."""
     assert DPT2ByteFloat.to_knx(DPT2ByteFloat.value_min) == (0xF8, 0x00)
     assert DPT2ByteFloat.from_knx((0xF8, 0x00)) == DPT2ByteFloat.value_min
Exemple #6
0
 def test_max(self):
     """Test parsing and streaming of DPT2ByteFloat with maximum value."""
     assert DPT2ByteFloat.to_knx(DPT2ByteFloat.value_max) == (0x7F, 0xFF)
     assert DPT2ByteFloat.from_knx((0x7F, 0xFF)) == DPT2ByteFloat.value_max
Exemple #7
0
 def test_minor_negative_temperature(self):
     """Test parsing and streaming of DPT2ByteFloat -10.00. Testing negative values."""
     assert DPT2ByteFloat.to_knx(-10.00) == (0x84, 0x18)
     assert DPT2ByteFloat.from_knx((0x84, 0x18)) == -10.00
Exemple #8
0
 def test_room_temperature(self):
     """Test parsing and streaming of DPT2ByteFloat 21.00. Room temperature."""
     assert DPT2ByteFloat.to_knx(21.00) == (0x0C, 0x1A)
     assert DPT2ByteFloat.from_knx((0x0C, 0x1A)) == 21.00
Exemple #9
0
 def test_zero_value(self):
     """Test parsing and streaming of DPT2ByteFloat zero value."""
     assert DPT2ByteFloat.to_knx(0.00) == (0x00, 0x00)
     assert DPT2ByteFloat.from_knx((0x00, 0x00)) == 0.00
Exemple #10
0
 def test_value_taken_from_live_thermostat(self):
     """Test parsing and streaming of DPT2ByteFloat 19.96."""
     assert DPT2ByteFloat.to_knx(16.96) == (0x06, 0xA0)
     assert DPT2ByteFloat.from_knx((0x06, 0xA0)) == 16.96
Exemple #11
0
 def test_value_from_documentation(self):
     """Test parsing and streaming of DPT2ByteFloat -30.00. Example from the internet[tm]."""
     assert DPT2ByteFloat.to_knx(-30.00) == (0x8A, 0x24)
     assert DPT2ByteFloat.from_knx((0x8A, 0x24)) == -30.00
Exemple #12
0
 def test_from_knx_wrong_parameter2(self):
     """Test parsing of DPT2ByteFloat with wrong value (second parameter is a string)."""
     with pytest.raises(ConversionError):
         DPT2ByteFloat.from_knx((0xF8, "0x23"))
Exemple #13
0
 def test_from_knx_wrong_parameter(self):
     """Test parsing of DPT2ByteFloat with wrong value (wrong number of bytes)."""
     with pytest.raises(ConversionError):
         DPT2ByteFloat.from_knx((0xF8, 0x01, 0x23))