In [1]:
import tohu
from tohu.v6.primitive_generators import *
from tohu.v6.derived_generators import *
from tohu.v6.generator_dispatch import *
from tohu.v6.utils import print_generated_sequence, make_dummy_tuples
from datetime import datetime
#tohu.v6.logging.logger.setLevel('DEBUG')
In [2]:
print(f'Tohu version: {tohu.__version__}')
In [3]:
def add(x, y):
return (100 * x) + y
In [4]:
g1 = Integer(10, 99).set_tohu_name('g1')
g2 = Integer(10, 99).set_tohu_name('g2')
In [5]:
h = Apply(add, g1, g2).set_tohu_name('h')
In [6]:
g1.reset(seed=11111)
g2.reset(seed=22222)
h.reset(seed=33333)
print_generated_sequence(g1, num=20)
print_generated_sequence(g2, num=20)
print_generated_sequence(h, num=20)
In [7]:
some_tuples = make_dummy_tuples(chars='abcdefghijklmnopqrstuvwxyz')
some_tuples[:5]
Out[7]:
In [8]:
g = SelectOne(some_tuples)
In [9]:
print_generated_sequence(g, num=10, sep='\n', seed=12345)
In [10]:
h1 = GetAttribute(g, 'x')
h2 = GetAttribute(g, 'y')
In [11]:
g.reset(seed=12345)
print_generated_sequence(g, num=10, sep='\n', seed=12345)
print_generated_sequence(h1, num=10)
print_generated_sequence(h2, num=10)
In [12]:
mapping = {1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e', 6: 'f', 7: 'g', 8: 'h', 9: 'i'}
In [13]:
g = Integer(1, 6)
h = Lookup(g, mapping)
In [14]:
g.reset(seed=12345)
print_generated_sequence(g, num=20)
print_generated_sequence(h, num=20)
In [15]:
values = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
In [16]:
g = SelectOne(values)
In [17]:
print_generated_sequence(g, num=20, seed=12345)
By default, all values are chosen with equal probability. This can be changed by passing the argument p.
In [18]:
g = SelectOne(values, p=[0.05, 0.05, 0.05, 0.05, 0.7, 0.05, 0.05])
In [19]:
print_generated_sequence(g, num=20, seed=12345)
In [20]:
values = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
In [21]:
n_vals = Integer(1, 5)
g = SelectMultiple(values, n_vals)
In [22]:
n_vals.reset(seed=11111)
g.reset(seed=99999)
print_generated_sequence(g, num=10, sep='\n')
In [23]:
aa = Constant(10)
bb = Integer(100, 200)
In [24]:
g = Integer(low=aa, high=bb)
In [25]:
aa.reset(seed=11111)
bb.reset(seed=22222)
print_generated_sequence(g, num=20, seed=99999)
In [26]:
aa = Incremental(start=100, step=4)
In [27]:
print_generated_sequence(aa, num=20, seed=11111)
In [28]:
g = Cumsum(aa, start_with_zero=True)
In [29]:
g.reset_input_generators(seed=None)
g.reset()
print_generated_sequence(g, num=20)
In [30]:
g = Cumsum(aa, start_with_zero=False)
In [31]:
g.reset_input_generators(seed=None)
g.reset()
print_generated_sequence(g, num=20)
In [32]:
g_start = Constant(datetime(2018, 1, 1, 11, 22, 33))
g_end = Timestamp(start="2018-02-10", end="2018-02-20")
In [33]:
g = Timestamp(start=g_start, end=g_end)
In [34]:
print(type(next(g)))
In [35]:
g_start.reset(seed=11111)
g_end.reset(seed=22222)
print_generated_sequence(g, num=10, sep='\n', seed=99999)
In [36]:
g = Timestamp(start=g_start, end=g_end).strftime("%-d %b %Y, %H:%M (%a)")
In [37]:
type(next(g))
Out[37]:
In [38]:
g_start.reset(seed=11111)
g_end.reset(seed=22222)
print_generated_sequence(g, num=10, sep='\n', seed=99999)
In [39]:
aa = Integer(100, 200)
bb = Integer(300, 400)
cc = Integer(low=aa, high=bb)
nn = Integer(1, 3)
In [40]:
g = Tee(cc, num=nn)
In [41]:
g.reset_input_generators(seed=11111)
print_generated_sequence(g, num=10, seed=99999, sep='\n')
In [ ]: