Browse Source

testutils: snaha o to, aby v daném čísle bylo více řešení od jednoho řešitele

export_seznamu_prednasek
Anet 5 years ago
parent
commit
3b8ba5b036
  1. 11
      seminar/testutils.py

11
seminar/testutils.py

@ -167,6 +167,13 @@ def gen_ulohy_do_cisla(rnd, organizatori, resitele, rocnik_cisla, rocniky, size)
k+=1 k+=1
cisla = rocnik_cisla[k-1] cisla = rocnik_cisla[k-1]
for ci in range(3, len(cisla)+1): # pro všechna čísla for ci in range(3, len(cisla)+1): # pro všechna čísla
resitele_size = round(7/8 * 30 * size) # očekáváný celkový počet řešitelů
poc_res = rnd.randint(round(resitele_size/8), round(3*resitele_size/4))
# dané číslo řeší něco mezi osminou a tříčtvrtinou všech řešitelů
# (náhodná hausnumera, možno změnit)
# účelem je, aby se řešení generovala z menší množiny řešitelů a tedy
# bylo více řešení od jednoho řešitele daného čísla
resitele_cisla = rnd.sample(resitele, poc_res)
for pi in range(1, ((size + 1) // 2) + 1): for pi in range(1, ((size + 1) // 2) + 1):
poc_op = rnd.randint(1, 4) # počet opravovatelů poc_op = rnd.randint(1, 4) # počet opravovatelů
@ -226,9 +233,9 @@ def gen_ulohy_do_cisla(rnd, organizatori, resitele, rocnik_cisla, rocniky, size)
for ri in range(poc_reseni): for ri in range(poc_reseni):
if rnd.randint(1, 10) == 6: if rnd.randint(1, 10) == 6:
# cca desetina řešení od více řešitelů # cca desetina řešení od více řešitelů
res_vyber = rnd.sample(resitele, rnd.randint(2, 5)) res_vyber = rnd.sample(resitele_cisla, rnd.randint(2, 5))
else: else:
res_vyber = rnd.sample(resitele, 1) res_vyber = rnd.sample(resitele_cisla, 1)
res = Reseni.objects.create(forma=rnd.choice(Reseni.FORMA_CHOICES)[0]) res = Reseni.objects.create(forma=rnd.choice(Reseni.FORMA_CHOICES)[0])
# problem a resitele přiřadíme později, ManyToManyField # problem a resitele přiřadíme později, ManyToManyField
# se nedá vyplnit v create() # se nedá vyplnit v create()

Loading…
Cancel
Save