-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathrandtest_input_generator.py
51 lines (35 loc) · 1.38 KB
/
randtest_input_generator.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
'''generate test Inputs'''
from random import randrange
def make_str_array(size, start_value=''):
to_return = []
for i in range(size):
to_return.append(start_value)
return to_return
def generate_valid_istring(num_states: int, size: int)->[str]:
curr_size = 0
to_return = make_str_array(num_states)
while(curr_size < size):
rand_index = randrange(num_states)
isl_len = randrange(0, 300) + randrange(0, 300)
isl_len = min(isl_len, size-curr_size)
curr_size += isl_len
to_return[rand_index] += isl_len * '1'
for i in range(num_states):
if i != rand_index:
to_return[i] += isl_len * '0'
return to_return
def generate_test_input(device_map: dict, size: int, file_name='test_input.csv'):
with open(file_name, 'w') as outfile:
outfile.write(generate_test_str(device_map, size))
def generate_test_str(device_map: dict, size: int):
template_string = '{},{},{}'
to_return = ''
for k, v in device_map.items():
i_string = generate_valid_istring(len(v.keys()), size)
for i,j in zip(v.items(), i_string):
k1,v1 = i
to_return += template_string.format(k, k1, j) + '\n'
return to_return
if __name__ == '__main__':
pass
#test stuff later