Open fgallard opened 2 months ago
Hola!! Te comento que los predios se recorren en el orden predeterminado que entrega crear_predios, por ende, no se debe ordenar por codigo de menor a mayor o viceversa. Saludos :)
Edit: Se me olvidó comentar que lo anterior lo puedes comprobar en el apartado "2.1 Plantado de cultivos" del enunciado, se menciona que "Al buscar dónde plantar los cultivos, se debe respetar el orden de prioridad de los predios disponibles, desde el primero hasta el último generado según el archivo."
Pero si fuese así los testscase relacionados a la funcion _"buscar_yplantar" no tendrían mucho sentido. Doy como ejemplo el test_06_buscar_y_plantar_dificil con el test_4. se nos dan los siguientes predios con sus correspondientes planos:
plano_1 = [
[1],
[1],
]
predio_1 = Predio(codigo_predio="1", alto=2, ancho=1)
predio_1.plano = plano_1
plano_7 = [
[6, "X"],
]
predio_7 = Predio(codigo_predio="7", alto=1, ancho=2)
predio_7.plano = plano_7
plano_4 = [
[8],
]
predio_4 = Predio(codigo_predio="4", alto=1, ancho=1)
predio_4.plano = plano_4
plano_8 = [
[4, 3],
[9, "X"],
]
predio_8 = Predio(codigo_predio="8", alto=2, ancho=2)
predio_8.plano = plano_8
Luego se da el siguiente orden y bloque a plantar:
dccultivo = DCCultivo()
dccultivo.predios = [predio_1, predio_7, predio_4, predio_8]
resultado_estudiante = dccultivo.buscar_y_plantar(
codigo_cultivo=6, alto=1, ancho=1)
Si fueramos recorriendo en el orden dicho claramente el bloque puede ingresar en el predio_7 antes que cualquier otro pero el testcase toma correcto el bloque ingresado en el predio_8, estando después del orden enlistado
plano_1_esperado = [
[1],
[1],
]
predio_1_esperado = Predio(codigo_predio="1", alto=2, ancho=1)
predio_1_esperado.plano = plano_1_esperado
plano_7_esperado = [
[6, "X"],
]
predio_7_esperado = Predio(codigo_predio="7", alto=1, ancho=2)
predio_7_esperado.plano = plano_7_esperado
plano_4_esperado = [
[8],
]
predio_4_esperado = Predio(codigo_predio="4", alto=1, ancho=1)
predio_4_esperado.plano = plano_4_esperado
plano_8_esperado = [
[4, 3],
[9, 6],
]`
Entonces, ¿esto seria una falla del testcase? o ¿hay algo entorno al orden que no estoy entendiendo? PD: Estoy citando directamente el código proveniente del archivo test_06_buscar_y_plantar_dificil.py
El test_case está correcto, debido a que en la sección 2.1 Plantado de cultivos se menciona "Una restricción importante es que no se permite la repetición del código de cultivo en el mismo predio.". Aterrizando lo anterior al test_4, el programa recorre la lista de predios [predio_1, predio_7, predio_4, predio_8] en el orden de la lista, sin embargo, no se puede plantar un cultivo con código 6 en el predio 7 debido a que ya hay un cultivo con código 6, en consecuencia busca espacio en los siguientes predios, quedando como opción final el predio 8, el cual tiene espacio y no tiene ningún cultivo con código 6. Espero haber solucionado tu duda, saludos.
A vale, no me estaba quedando claro, muchas gracias @individuocomunycorriente ahora podre corregir mejor mi código.
denada :)
Prerrequisitos
(Marcar colocando una
X
entre los corchetes los ítems que ya hiciste, así:"[X]"
)Duda
Cuando habla de que los predios se recorren en orden, se refiere al orden predeterminado que entrega el crear_predios, o debemos ordenarlos por código de menor a mayor y después realizar el buscar y plantar?