testutils.py: začal jsem přidávat Nody
This commit is contained in:
		
							parent
							
								
									34f44c5c99
								
							
						
					
					
						commit
						3ab9e55322
					
				
					 1 changed files with 66 additions and 26 deletions
				
			
		|  | @ -232,6 +232,7 @@ def gen_rocniky(last_rocnik, size): | |||
| def gen_cisla(rocniky): | ||||
| 	slovnik_rocnik_cisla = {} | ||||
| 	for rocnik in rocniky: | ||||
| 		otec = True | ||||
| 		slovnik_cisel = {} | ||||
| 		cisel = rnd.randint(4, 8) | ||||
| 		node = None | ||||
|  | @ -261,6 +262,10 @@ def gen_cisla(rocniky): | |||
| 			) | ||||
| 			node2 = CisloNode.objects.create(cislo = cislo, succ = node) | ||||
| 			node = node2 | ||||
| 			if otec: | ||||
| 				otec = False | ||||
| 				rocnik.RocnikNode.first_child = node | ||||
| 				rocnik.save() | ||||
| 			 | ||||
| 			slovnik_cisel[ci] = cislo | ||||
| 		slovnik_rocnik_cisla[rocnik] = slovnik_cisel | ||||
|  | @ -268,17 +273,19 @@ def gen_cisla(rocniky): | |||
| 
 | ||||
| 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í"] | ||||
| 				poc_oboru = rnd.randint(1, 2) | ||||
| 				poc_op = rnd.randint(1, 3) | ||||
| 	co = ["téma", "záření", "stavení", "jiskření", "jelito", | ||||
| 		"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 | ||||
| 	for rocnik in rocniky: | ||||
| 		temata = {} | ||||
| 		slovnik_cisel = slovnik_rocnik_cisla[rocnik] | ||||
| 		for cislo in slovnik_cisel | ||||
| 			if cislo.cislo <= 3: | ||||
| 				t = Tema.objects.create( | ||||
| 					# atributy třídy Problem | ||||
| 					nazev=" ".join([rnd.choice(jake), rnd.choice(co)]), | ||||
|  | @ -286,42 +293,72 @@ def gen_temata(rocniky, slovnik_rocnik_cisla): | |||
| 					zamereni=rnd.sample(["M", "F", "I", "O", "B"], poc_oboru), | ||||
| 					autor=rnd.choice(organizatori),  | ||||
| 					garant=rnd.choice(organizatori),  | ||||
| 					# FIXME: téma má kód podle čísla, až jich bude | ||||
| 					# více, tak udělat kód podle pořadí vygenerování | ||||
| 					kod=str(cislo), | ||||
| 					kod=str(n), | ||||
| 					# atributy třídy Téma | ||||
| 					tema_typ=rnd.choice(Tema.TEMA_CHOICES), | ||||
| 					rocnik=rocnik) | ||||
| 					rocnik=rocnik | ||||
| 				) | ||||
| 				n+=1 | ||||
| 				konec_tematu = rnd.randint(cislo.cislo, 7) | ||||
| 				for i in range(cislo.cislo, min(konec_tematu, len(slovnik_cisel))): | ||||
| 					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() | ||||
| 
 | ||||
| 				t.opravovatele=rnd.sample(organizatori, poc_op) | ||||
| 				t.save() | ||||
| 				temata[cislo] = t | ||||
| 		slovnik_rocnik_temata[tema] = temata | ||||
| 
 | ||||
| def gen_ulohy_k_tematum(rocniky, slovnik_rocnik_cisla, slovnik_rocnik_temata): | ||||
| 
 | ||||
| def gen_ulohy_k_tematum(rocniky, slovnik_rocnik_cisla, slovnik_rocnik_temata): #Tahle funkce je nedodělaná | ||||
| 	# ulohy resene v cisle | ||||
| 	jaka = ["Šachová", "Černá", "Větrná", "Dlouhá", "Křehká", "Rychlá",  | ||||
| 		"Zákeřná", "Fyzikální"] | ||||
| 	co = ["kostka", "smršť", "díra", "zrada", "toulka", "tyč",  | ||||
| 		"úloha", "blecha"] | ||||
| 	sloveso = ["Najděte", "Spočítejte", "Zapište", "Změřte", "Odhadněte"] | ||||
| 	koho = ["délku", "počet", "množství", "dílky"] | ||||
| 	ceho = ["všech", "správných", "konstatních", "zelených"] | ||||
| 	jmeno = ["řešení", "tahů", "čísel", "kalhot", "koulí", "hadů"] | ||||
| 	kde = ["na zemi", "ve vesmíru", "ve vzduchu", "na šňůře", "v letadle"] | ||||
| 	obor = ["M", "F", "I", "O", "B"] | ||||
| 	reseni = ["to je přece jasné", "triviální", "omlouváme se,"  | ||||
| 		"otevřený problém", "neřešitelné", "triviálně triviální",  | ||||
| 		"použitím věty z prvního semestru na matfyzu",  | ||||
| 		"jednoduše pomocí látky z druhého semestru na matfyzu", | ||||
| 		"netriviální aplikace diferenciálních rovnic", "zadání je vnitřně" | ||||
| 		"sporné", "nepopsatelně jednoduché", "pokud jste na to nepřišli," | ||||
| 		"tak jste fakt hloupí"] | ||||
| 	for rocnik in rocniky: | ||||
| 		slovnik_cisel = slovnik_rocnik_cisla[rocnik] | ||||
| 		cisel = len(slovnik_cisel) | ||||
| 		slovnik_temat = slovnik_rocnik_temata[rocnik] | ||||
| 			for tema in slovnik_temat: | ||||
| 				for i in range(tema. | ||||
| 					if #TODO | ||||
| 			for cislo in slovnik_cisel: | ||||
| 				syn = cislo.CisloNode.first_child | ||||
| 				while syn != None: | ||||
| 					tema = syn.tema | ||||
| 					for i in range(1, rnd.randint(1, 4)) | ||||
| 						poc_op = rnd.randint(1, 4) | ||||
| 						poc_oboru = rnd.randint(1, 2) | ||||
| 						p = Uloha.objects.create( | ||||
| 							nazev=": ".join([tema.nazev,  | ||||
| 								"úloha {}.".format(i-ci+1)]), | ||||
| 								"úloha {}.".format(i)]), | ||||
| 							nadproblem=tema, | ||||
| 							stav=Problem.STAV_ZADANY, | ||||
| 							zamereni=t.zamereni, | ||||
| 							autor=t.autor,  | ||||
| 							garant=t.garant,  | ||||
| 							zamereni=tema.zamereni, | ||||
| 							autor=tema.autor,  | ||||
| 							garant=tema.garant,  | ||||
| 							opravovatele=rnd.sample(organizatori, poc_op),   | ||||
| 							kod=str(i),  | ||||
| 							cislo_zadani=slovnik_cisel[ci],  | ||||
| 							cislo_reseni=slovnik_cisel[ci+2],  | ||||
| 							cislo_deadline=slovnik_cisel[ci+2],  | ||||
| 							max_body = rnd.randint(1, 8)) | ||||
| 							cislo_zadani=cislo,  | ||||
| 							cislo_reseni=slovnik_cisel[cislo.cislo+2],  | ||||
| 							cislo_deadline=slovnik_cisel[cislo.cislo+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)]) | ||||
| 						 | ||||
|  | @ -338,6 +375,9 @@ def gen_ulohy_k_tematum(rocniky, slovnik_rocnik_cisla, slovnik_rocnik_temata): | |||
| 						p.save() | ||||
| 				 | ||||
| 				 | ||||
| 				syn = syn.succ | ||||
| 				 | ||||
| 				 | ||||
| 				# vytvor text | ||||
| 				# vytvor TemaVCisleNode | ||||
| 				if (rnd.randint(1, 3) % 3 == 0): | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Tomáš Domes
						Tomáš Domes