(self)
| 366 | return s, self.m2i(pkt, fld_val) |
| 367 | |
| 368 | def randval(self): |
| 369 | # type: () -> Union[RandBinFloat, RandFloat] |
| 370 | if self._is_float_number(): |
| 371 | return RandBinFloat(0, 0) |
| 372 | |
| 373 | if self._is_signed_number(): |
| 374 | min_val = -2**(self.size - 1) |
| 375 | max_val = 2**(self.size - 1) - 1 |
| 376 | else: |
| 377 | min_val = 0 |
| 378 | max_val = 2 ** self.size - 1 |
| 379 | |
| 380 | min_val = round(min_val * self.scaling + self.offset, self.ndigits) |
| 381 | max_val = round(max_val * self.scaling + self.offset, self.ndigits) |
| 382 | |
| 383 | return RandFloat(min(min_val, max_val), max(min_val, max_val)) |
| 384 | |
| 385 | def i2len(self, pkt, x): |
| 386 | # type: (Packet, Any) -> int |
no test coverage detected