()
| 44 | |
| 45 | |
| 46 | def randomElement(): |
| 47 | r = random.randint(0, 9) |
| 48 | if r == 0: |
| 49 | if random.random() < 0.5: |
| 50 | chars = [b'\x00', b'\x01', b'a', b'7', b'\xfe', b'\ff'] |
| 51 | return b''.join([random.choice(chars) for c in _range(random.randint(0, 5))]) |
| 52 | else: |
| 53 | return b''.join([six.int2byte(random.randint(0, 255)) for _ in _range(random.randint(0, 10))]) |
| 54 | elif r == 1: |
| 55 | if random.random() < 0.5: |
| 56 | chars = [u('\x00'), u('\x01'), u('a'), u('7'), u('\xfe'), u('\ff'), u('\u0000'), u('\u0001'), u('\uffff'), u('\uff00'), u('\U0001f4a9')] |
| 57 | return u('').join([random.choice(chars) for c in _range(random.randint(0, 10))]) |
| 58 | else: |
| 59 | return u('').join([randomUnicode() for _ in _range(random.randint(0, 10))]) |
| 60 | elif r == 2: |
| 61 | return random.choice([-1, 1]) * min(2**random.randint(0, 2040) + random.randint(-10, 10), 2**2040 - 1) |
| 62 | elif r == 3: |
| 63 | return random.choice([-1, 1]) * 2**random.randint(0, 64) + random.randint(-10, 10) |
| 64 | elif r == 4: |
| 65 | return None |
| 66 | elif r == 5: |
| 67 | ret = random.choice([float('-nan'), float('-inf'), -0.0, 0.0, float('inf'), float('nan')]) |
| 68 | if random.random() < 0.5: |
| 69 | return SingleFloat(ret) |
| 70 | else: |
| 71 | return ret |
| 72 | elif r == 6: |
| 73 | is_double = random.random() < 0.5 |
| 74 | byte_str = b''.join([six.int2byte(random.randint(0, 255)) for _ in _range(8 if is_double else 4)]) |
| 75 | if is_double: |
| 76 | return struct.unpack(">d", byte_str)[0] |
| 77 | else: |
| 78 | return SingleFloat(struct.unpack(">f", byte_str)[0]) |
| 79 | elif r == 7: |
| 80 | return random.random() < 0.5 |
| 81 | elif r == 8: |
| 82 | return uuid.uuid4() |
| 83 | elif r == 9: |
| 84 | return [randomElement() for _ in _range(random.randint(0, 5))] |
| 85 | |
| 86 | |
| 87 | def randomTuple(): |
no test coverage detected