-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathrandom_example.py
executable file
·40 lines (31 loc) · 1.18 KB
/
random_example.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
#!/usr/bin/env python3
from expression.components import *
from expression.ubitree import *
def main():
# Create a generator. Refer to expression/ubitree.py for parameters
generator = UbiTreeGenerator(max_ops=5, num_leaves=5, max_int=10)
# Generate a stack of random expression prefix tree
# parameter: number of symbolic values
# (Other leaves will be random constant)
# stack format:
# [(Op name, # of children), ...]
prefix_stack = generator.generate_ubitree_stack(3)
print(prefix_stack)
# Convert the stack into expression.components
obj = prefix_stack_to_expression(prefix_stack)
print(type(obj))
print(obj)
print("---")
# Generate another random tree
prefix_stack2 = generator.generate_ubitree_stack(1)
obj2 = prefix_stack_to_expression(prefix_stack2)
print(obj2)
print("")
print("--- Integer only:")
# Create an integer-only generator
generator = UbiTreeGenerator(max_ops=5, num_leaves=5, max_int=10, int_only=True)
prefix_stack = generator.generate_ubitree_stack(3)
obj = prefix_stack_to_expression(prefix_stack)
print(obj)
if __name__ == '__main__':
main()