MCPcopy Create free account
hub / github.com/apple/foundationdb / randomElement

Function randomElement

bindings/python/tests/tuple_tests.py:46–84  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

44
45
46def 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
87def randomTuple():

Callers 2

randomTupleFunction · 0.85
tupleTestFunction · 0.85

Calls 6

uFunction · 0.90
SingleFloatClass · 0.90
randomUnicodeFunction · 0.85
randomMethod · 0.80
joinMethod · 0.45
unpackMethod · 0.45

Tested by

no test coverage detected