يتم إعطاؤك مقتطف كود Python الذي يتضمن فئة تسمى "TestDPTFloat". مهمتك هي تنفيذ طريقتين لهذه الفئة، `to_knx` و`from_knx`، المسؤولة عن التحويل بين تنسيق KNX 2 و4 بايت/ثماني عائم وتنسيق Python العائم القياسي.

يمثل تنسيق KNX 2 & 4 byte/octet float أرقام الفاصلة العائمة باستخدام 2 أو 4 بايت وفقًا لمعيار KNX. يجب أن يأخذ الأسلوب `to_knx` تعويم Python كمدخل ويعيد مصفوفة بايت تمثل القيمة العائمة التي تتبع تنسيق KNX.

يجب أن تأخذ الطريقة `from_knx` مصفوفة بايت بتنسيق KNX كمدخل وتعيد تعويم Python الذي يمثل القيمة التي تم فك تشفيرها من مصفوفة البايت.

يجب عليك التأكد من أن كلا الطريقتين تتعاملان مع الحالات الاستثنائية بشكل صحيح. إذا كانت قيمة الإدخال خارج النطاق الصالح لتنسيق KNX، فيجب أن تقوم الطرق برفع استثناء "ConversionError" من الوحدة النمطية "xknx.exceptions".

قم بتنفيذ الطريقتين `to_knx` و`from_knx` للفئة `TestDPTFloat`.

**مثال**

مدخل:
```بيثون
tdf = TestDPTFloat()
byte_array = tdf.to_knx(3.14)
طباعة (بايت_صفيف)
القيمة = tdf.from_knx(byte_array)
طباعة (القيمة)
```

انتاج:
```
ب'\x45\x28'
3.14
```
{"source": "argilla/DistiCoder-dpo-binarized", "kind": "synthetic", "evolved_from": null}