def test(self): filename = '/tmp/_test_utenabi_AdaptadorMultiprocesoTest.csv' multigen = MultiGenerador() multigen.agregar_generador(GeneradorDeEntero(0, 9999999, seed=0)) multigen.agregar_generador(GeneradorDeEntero(0, 9999999, seed=1)) multigen.agregar_generador(GeneradorDeEntero(0, 9999999, seed=2)) generador_csv = ArchivoCSV(multigen, ("num1", "num2", "num3")) adaptador_multiproceso = AdaptadorMultiproceso( generador_csv, 2 ) adaptador_multiproceso.generar_csv(filename, 1000) adaptador_multiproceso.close() lineas_totales = 0 lineas_iguales = 0 with open(filename, 'r') as thefile: csv_reader = csv.reader(thefile) csv_reader.next() for values in csv_reader: lineas_totales += 1 if values[0] == values[1] and values[1] == values[2]: lineas_iguales += 1 # 100 es 10% de los 1000 que generamos... # Suponemos `falla` si mas del 10% de las lineas generadas # poseen los 3 valores iguales self.assertTrue(lineas_iguales < 100, "{0} de {1} lineas generadas contienene los mismos valores para las distintas columnas".format( lineas_iguales, lineas_totales))
def test_todos(self): metagen = MultiGenerador() todos_los_generadores = obtener_instancias_de_generadores() for gen in todos_los_generadores: metagen.agregar_generador(gen) undato = metagen.generar() self.assertTrue(len(undato) >= len(todos_los_generadores))
def test_reseed(self): metagen = MultiGenerador() todos_los_generadores = obtener_instancias_de_generadores() for gen in todos_los_generadores: metagen.agregar_generador(gen) metagen = metagen.reseed(GeneradorDeEntero(0, 9, seed=0)) val1 = metagen.generar() val2 = metagen.generar() self.assertNotEqual(val1, val2) reseeded = metagen.reseed(GeneradorDeEntero(0, 9, seed=0)) val3 = reseeded.generar() val4 = reseeded.generar() self.assertEqual(val1, val3) self.assertEqual(val2, val4)
def test(self): filename = '/tmp/_test_utenabi_GeneracionDeUnicosTest_test.csv' # 1er intento -> deberia funcionar si generamos 6 elementos # GeneradorDeEntero / entre 0 y 5 / UNIQUE / 1000 intentos multigen = MultiGenerador() multigen.agregar_generador(GeneradorDeEntero(0, 5, unique=True, max_intentos=1000, seed=0)) generador_csv = ArchivoCSV(multigen, ("numero", )) generador_csv.generar_csv(filename, 6) # 2do intento -> deberia FALLAR si generamos MAS de 6 elementos multigen = MultiGenerador() multigen.agregar_generador(GeneradorDeEntero(0, 5, unique=True, max_intentos=1000, seed=0)) generador_csv = ArchivoCSV(multigen, ("numero", )) # generador_csv.generar_csv(filename, 7) self.assertRaises(NoSePudoGenerarRandomUnico, generador_csv.generar_csv, filename, 7)
def test(self): metagen = MultiGenerador() metagen.agregar_generador(GeneradorDeNroDocumento()) metagen.agregar_generador(GeneradorDeBarrioCiudadProvincia()) metagen.agregar_generador(GeneradorDeNroDocumento()) undato = metagen.generar() print undato self.assertEqual(len(undato), 5) int(undato[0]) # dni deberia ser convertible a `int` int(undato[4]) # dni deberia ser convertible a `int`