testutils.py: je čas debugovat
This commit is contained in:
		
							parent
							
								
									3127dc888a
								
							
						
					
					
						commit
						7bdbbc6aee
					
				
					 1 changed files with 49 additions and 47 deletions
				
			
		|  | @ -125,10 +125,7 @@ def gen_organizatori(rnd, osoby, last_rocnik, users): | |||
| 					organizuje_od=od, organizuje_do=do)) | ||||
| 	return organizatori | ||||
| 
 | ||||
| def gen_ulohy_do_cisla(rnd, cislo, organizatori, resitele, slovnik_cisel, size): | ||||
| 	''' | ||||
| 	cislo = cislo cisla v rocniku, nikoli objekt Cislo | ||||
| 	''' | ||||
| def gen_ulohy_do_cisla(rnd, ci, organizatori, resitele, slovnik_cisel, size): | ||||
| 	# ulohy resene v cisle | ||||
| 	jaka = ["Šachová", "Černá", "Větrná", "Dlouhá", "Křehká", "Rychlá",  | ||||
| 		"Zákeřná", "Fyzikální"] | ||||
|  | @ -148,7 +145,7 @@ def gen_ulohy_do_cisla(rnd, cislo, organizatori, resitele, slovnik_cisel, size): | |||
| 		"sporné", "nepopsatelně jednoduché", "pokud jste na to nepřišli," | ||||
| 		"tak jste fakt hloupí"] | ||||
| 				 | ||||
| 	if cislo >= 3: #TODO nagenerovat i nody!!! | ||||
| 	if ci >= 3: #TODO nagenerovat i nody!!! | ||||
| 		for pi in range(1, ((size + 1) // 2) + 1): | ||||
| 			poc_op = rnd.randint(1, 4) # počet opravovatelů | ||||
| 			poc_oboru = rnd.randint(1, 2) | ||||
|  | @ -161,9 +158,9 @@ def gen_ulohy_do_cisla(rnd, cislo, organizatori, resitele, slovnik_cisel, size): | |||
| 				garant=rnd.choice(organizatori),  | ||||
| 				kod=str(pi),  | ||||
| 				# atributy třídy Uloha | ||||
| 				cislo_zadani=slovnik_cisel[cislo-2],  | ||||
| 				cislo_reseni=slovnik_cisel[cislo],  | ||||
| 				cislo_deadline=slovnik_cisel[cislo],  | ||||
| 				cislo_zadani=slovnik_cisel[ci-2],  | ||||
| 				cislo_reseni=slovnik_cisel[ci],  | ||||
| 				cislo_deadline=slovnik_cisel[ci],  | ||||
| 				max_body = rnd.randint(1, 8) | ||||
| 			) | ||||
| 			p.zadani = " ".join( | ||||
|  | @ -201,7 +198,7 @@ def gen_ulohy_do_cisla(rnd, cislo, organizatori, resitele, slovnik_cisel, size): | |||
| 				res.save() | ||||
| 				hod = Hodnoceni.objects.create( | ||||
| 					body=rnd.randint(0, p.max_body), | ||||
| 					cislo_body=slovnik_cisel[cislo],  | ||||
| 					cislo_body=slovnik_cisel[ci],  | ||||
| 					reseni=res, | ||||
| 					problem=p | ||||
| 				) | ||||
|  | @ -299,24 +296,21 @@ def gen_cisla(rocniky): | |||
| 	return slovnik_rocnik_cisla | ||||
| 
 | ||||
| def gen_temata(rocniky, slovnik_rocnik_cisla): | ||||
| 	slovnik_rocnik_temata = {} | ||||
| 	for rocnik in rocniky: | ||||
| 		temata = {} | ||||
| 		for cislo in slovnik_r[rocnik]: | ||||
| 			if cislo <= 3: | ||||
| 				jake = ["Hravé", "Fyzikální", "Nejlepší", "Totálně masakrální", | ||||
| 	jake = ["Hravé", "Fyzikální", "Nejlepší", "Totálně masakrální", | ||||
| 					"Šokující", "Magnetické", "Modré", "Překvapivé",  | ||||
| 					"Plasmatické", "Novoroční"] | ||||
| 	co = ["téma", "záření", "stavení", "jiskření", "jelito", | ||||
| 		"drama", "kuře", "moře", "klání", "proudění", "čekání"] | ||||
| 					"drama", "kuře", "moře", "klání", "proudění", "čekání"] | ||||
| 	poc_oboru = rnd.randint(1, 2) | ||||
| 	poc_op = rnd.randint(1, 3) | ||||
| 	n = 1 | ||||
| 	poc_op = rnd.randint(1, 3)		 | ||||
| 
 | ||||
| 	slovnik_rocnik_temata = {} | ||||
| 	for rocnik in rocniky: | ||||
| 		n = 1 | ||||
| 		temata = {} | ||||
| 		slovnik_cisel = slovnik_rocnik_cisla[rocnik] | ||||
| 		for cislo in slovnik_cisel | ||||
| 			if cislo.cislo <= 3: | ||||
| 		for ci in slovnik_cisel: | ||||
| 			if ci <= 3: | ||||
| 				t = Tema.objects.create( | ||||
| 					# atributy třídy Problem | ||||
| 					nazev=" ".join([rnd.choice(jake), rnd.choice(co)]), | ||||
|  | @ -330,20 +324,16 @@ def gen_temata(rocniky, slovnik_rocnik_cisla): | |||
| 					rocnik=rocnik | ||||
| 				) | ||||
| 				n+=1 | ||||
| 				konec_tematu = rnd.randint(cislo.cislo, 7) | ||||
| 				for i in range(cislo.cislo, min(konec_tematu, len(slovnik_cisel))): | ||||
| 				konec_tematu = min(rnd.randint(ci, 7), len(slovnik_cisel)) | ||||
| 				for i in range(ci, konec_tematu+1): | ||||
| 					node = TemaVCisleNode.objects.create(tema = t) | ||||
| 					otec = slovnik_cisel[i].CisloNode | ||||
| 					bratr = otec.first_child | ||||
| 					node.succ = bratr | ||||
| 					otec.first_child = node | ||||
| 					node.save() | ||||
| 					otec.save() | ||||
| 					otec_syn(otec, node) | ||||
| 
 | ||||
| 				t.opravovatele=rnd.sample(organizatori, poc_op) | ||||
| 				t.save() | ||||
| 				temata[cislo] = t | ||||
| 		slovnik_rocnik_temata[tema] = temata | ||||
| 				temata[n] = (ci, konec_tematu, t) | ||||
| 		slovnik_rocnik_temata[rocnik] = temata | ||||
| 
 | ||||
| 
 | ||||
| def gen_ulohy_k_tematum(rocniky, slovnik_rocnik_cisla, slovnik_rocnik_temata): #Tahle funkce je nedodělaná | ||||
|  | @ -368,13 +358,17 @@ def gen_ulohy_k_tematum(rocniky, slovnik_rocnik_cisla, slovnik_rocnik_temata): # | |||
| 	for rocnik in rocniky: | ||||
| 		slovnik_cisel = slovnik_rocnik_cisla[rocnik] | ||||
| 		slovnik_temat = slovnik_rocnik_temata[rocnik] | ||||
| 			for cislo in slovnik_cisel: | ||||
| 				syn = cislo.CisloNode.first_child | ||||
| 				while syn != None: | ||||
| 					if type(syn) != TemaVCisleNode | ||||
| 			for ci, cislo in slovnik_cisel.items()[:-2]: | ||||
| 				mozna_tema_vcn = cislo.CisloNode.first_child | ||||
| 				while mozna_tema_vcn != None: | ||||
| 					if type(mozna_tema_vcn) != TemaVCisleNode: | ||||
| 						continue | ||||
| 					else: | ||||
| 						tema = syn.tema | ||||
| 						tema = mozna_tema_vcn.tema | ||||
| 						 | ||||
| 					if not slovnik_temat[int(tema.kod)][1] >= ci+2: | ||||
| 						continue | ||||
| 						 | ||||
| 					for i in range(1, rnd.randint(1, 4)) | ||||
| 						poc_op = rnd.randint(1, 4) | ||||
| 						poc_oboru = rnd.randint(1, 2) | ||||
|  | @ -389,12 +383,15 @@ def gen_ulohy_k_tematum(rocniky, slovnik_rocnik_cisla, slovnik_rocnik_temata): # | |||
| 							opravovatele=rnd.sample(organizatori, poc_op),   | ||||
| 							kod=str(i),  | ||||
| 							cislo_zadani=cislo,  | ||||
| 							cislo_reseni=slovnik_cisel[cislo.cislo+2],  | ||||
| 							cislo_deadline=slovnik_cisel[cislo.cislo+2],  | ||||
| 							cislo_reseni=slovnik_cisel[ci+2],  | ||||
| 							cislo_deadline=slovnik_cisel[ci+2],  | ||||
| 							max_body = rnd.randint(1, 8) | ||||
| 						) | ||||
| 						p.zadani = " ".join([rnd.choice(sloveso), rnd.choice(koho),  | ||||
| 							rnd.choice(ceho), rnd.choice(jmeno), rnd.choice(kde)]) | ||||
| 						uloha_zadani = UlohaZadaniNode.objects.create(uloha=p) | ||||
| 						p.UlohaZadaniNode = uloha_zadani | ||||
| 						otec_syn(mozna_tema_vcn, uloha_zadani) | ||||
| 						 | ||||
| 						text_vzoraku = Text.objects.create( | ||||
| 							na_web = rnd.choice(reseni), | ||||
|  | @ -403,18 +400,22 @@ def gen_ulohy_k_tematum(rocniky, slovnik_rocnik_cisla, slovnik_rocnik_temata): # | |||
| 						vzorak = TextNode.objects.create(text = text_vzoraku) | ||||
| 						uloha_vzorak = UlohaVzorakNode.objects.create(uloha=p, first_child = vzorak) | ||||
| 						p.UlohaVzorakNode = uloha_vzorak | ||||
| 						#res_tema_vcn =  | ||||
| 						res_tema_vcn = slovnik_cisel[ci+2].CisloNode.first_child | ||||
| 						while res_tema_vcn.tema != tema: | ||||
| 							res_tema_vcn = res_tema_vcn.succ | ||||
| 						otec_syn(res_tema_vcn, uloha_vzorak) | ||||
| 						 | ||||
| 						p.save() | ||||
| 						 | ||||
| 						 | ||||
| 				 | ||||
| 				syn = syn.succ | ||||
| 					mozna_tema_vcn = mozna_tema_vcn.succ | ||||
| 				 | ||||
| 				 | ||||
| 				# vytvor text | ||||
| 				# vytvor TemaVCisleNode | ||||
| 				if (rnd.randint(1, 3) % 3 == 0): | ||||
| 					# vytvor mezicislo Node | ||||
| 					pass | ||||
| def otec_syn(otec, syn): | ||||
| 	bratr = otec.first_child | ||||
| 	syn.succ = bratr | ||||
| 	otec.first_child = syn | ||||
| 	syn.save() | ||||
| 	otec.save() | ||||
| 
 | ||||
| @transaction.atomic | ||||
| def create_test_data(size = 6, rnd = None): | ||||
|  | @ -473,8 +474,8 @@ def create_test_data(size = 6, rnd = None): | |||
| 	# generování obyčejných úloh do čísel | ||||
| 	for rocnik in rocniky: | ||||
| 		slovnik_cisel = slovnik_rocnik_cisla[rocnik] | ||||
| 		for cislo in slovnik_cisel: | ||||
| 			gen_ulohy_do_cisla(rnd, cislo, organizatori, resitele, slovnik_cisel, size) | ||||
| 		for ci in slovnik_cisel: | ||||
| 			gen_ulohy_do_cisla(rnd, ci, organizatori, resitele, slovnik_cisel, size) | ||||
| 	 | ||||
| 	# generování témat, zatím v prvních třech číslech po jednom | ||||
| 	# FIXME: více témat | ||||
|  | @ -490,6 +491,7 @@ def create_test_data(size = 6, rnd = None): | |||
| 			# TODO: nagenerovat konfery | ||||
| 			# TODO: vecpat obrázky všude, kde to jde | ||||
| 			# TODO: nagenerovat nějaký strom nodů? | ||||
| 			# TODO: mezičíslo node | ||||
| 
 | ||||
| 	# TODO: nahodne nagenerovat problemum reseni a prilohy reseni, hodnoceni | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Tomáš Domes
						Tomáš Domes