import time
import numpy as np
import pandas as pd
import tests.common as common
from generators.nb_gm_004 import SequenceGenerator
def run():
res = []
for s in range(common.sample_size):
trials = np.random.randint(common.trials_range[0], common.trials_range[1])
targets = int(trials / 3)
lures = int(targets / 6) # tl_ratio = 2.0
n = np.random.randint(2, 8)
gen = SequenceGenerator(common.choices, n)
st = time.time()
seq = gen.generate(trials, targets, lures)
st = time.time() - st
t, lu = common.count_targets_and_lures(seq, n)
skewed = common.skewness(seq, common.choices)
res.append(['nb_gm_004', n, trials, st, t, lu, skewed, ''.join(seq)])
print(f"sequence #{s+1} generated")
res_df = pd.DataFrame(res, columns=['alg', 'n', 'trials', 'time', 'targets', 'lures', 'skewed', 'sequence'])
res_df.to_csv('tests/results/nb_gm_004_profile.csv', sep=',', encoding='utf-8')