Skip to content

Commit

Permalink
hasta test1.2
Browse files Browse the repository at this point in the history
  • Loading branch information
leanefe committed Oct 28, 2024
1 parent e07c174 commit ce5cb76
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 36 deletions.
39 changes: 26 additions & 13 deletions academia.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,13 @@ class Cosa {
}

class Mueble{
const cosas = []
const cosas = #{}

method validarGuardar(cosa) {
if (self.validarEspecifico(cosa) and not self.estaEnCosas(cosa))
throw Exception
if (self.validarEspecifico(cosa) and not self.estaEnCosas(cosa)){
self.error("no se puede guardar")
}

}

method validarEspecifico(cosa)
Expand All @@ -22,15 +24,19 @@ class Mueble{
return cosas.any({cosa2 => cosa2 == cosa})
}

method tiene(cosa) = cosas.contains(cosa)


}

class ArmarioConvencional inherits Mueble{
var property cantidadMaxima

override validarEspecifico(cosa){
if (not self.hayEspacio())
throw Exception
override method validarEspecifico(cosa){
if (not self.hayEspacio()){
self.error("no hay espacio")
}

}

method hayEspacio(){
Expand All @@ -41,9 +47,11 @@ class ArmarioConvencional inherits Mueble{

class GabineteMagico inherits Mueble{

override validarEspecifico(cosa){
if (not self.esMagico())
throw execption
override method validarEspecifico(cosa){
if (not self.esMagico()){
self.error("no es magico")
}

}

}
Expand All @@ -55,16 +63,21 @@ class Baul inherits Mueble{
return cosas.sum({cosa => cosa.volumen()})
}

override validarEspecifico(cosa){
if(not self.volumenMaximo() - volumenUsado() > cosa.volumen())
throw exception
override method validarEspecifico(cosa){
if(not self.volumenMaximo() - self.volumenUsado() > cosa.volumen()){
self.error("supero el volumen maximo disponible")
}
}
}

class Academia {
const muebles = []
const muebles = #{}

method estaEnAcademia(cosa){
return muebles.any({mueble => mueble.estaEnCosas(cosa)})
}

method cosaEstaGuardadaEn(cosa) {
return muebles.find({mueble => mueble.tiene(cosa)})
}
}
46 changes: 23 additions & 23 deletions academia.wtest
Original file line number Diff line number Diff line change
Expand Up @@ -7,36 +7,36 @@ describe "Academia de Magia" {
* Si el diseño de la solución utiliza objetos bien conocidos en algunos casos entonces
* se debe remover la declaración de la constante y el comentario que se sugiere la instanciación.
*/
const pelota = new Cosa(marca = Cuchuflito, volumen = 3, esMagico = false, reliquia = false)// TODO: construir/obtener una cosa con volumen = 3, marca = cuchuflito, no es mágica ni una reliquia
const escoba = new Cosa(marca = Acme, volumen = 4, esMagico = true, reliquia = true) // TODO: construir/obtener una cosa con volumen = 4, marca = acme, es mágica y una reliquia
const varita = new Cosa(marca = Fenix, volumen = 1, esMagico = true, reliquia = false) // TODO: construir/obtener una cosa con volumen = 1, marca = fenix, es mágica pero no es una reliquia
const pava = new Cosa(marca = Acme, volumen = 2, esMagico = false, reliquia = true) // TODO: construir/obtener una cosa con volumen = 2, marca = acme, no es magica pero sí una reliquia
const lamparaAladino = new Cosa(marca = Fenix, volumen = 3, esMagico = true, reliquia = true) // TODO: construir/obtener una cosa con volumen = 3, marca = fenix, es mágica y una reliquia
const baul = new Baul(volumenMaximo = 5, cosas = [escoba])// TODO: construir/obtener un baúl con volumen máximo = 5 y la escoba dentro
const gabineteMagico = new GabineteMagico(cosas=[varita]) // TODO: construir/obtener un gabinete mágico con la varita dentro. El precio = 6 (segunda parte)
const armario = new ArmarioConvencional(cantidadMaxima=2, cosas = [pelota]) // TODO: construir/obtener un armario con cantidad máxima = 2 y la pelota dentro
const academia = new Academia(muebles = [baul, gabineteMagico, armario]) // TODO: construir/obtener una academia que tiene el baúl, el gabinete mágico y el armario
const pelota = new Cosa(marca = "cuchuflito", volumen = 3, esMagico = false, reliquia = false)// TODO: construir/obtener una cosa con volumen = 3, marca = cuchuflito, no es mágica ni una reliquia
const escoba = new Cosa(marca = "acme", volumen = 4, esMagico = true, reliquia = true) // TODO: construir/obtener una cosa con volumen = 4, marca = acme, es mágica y una reliquia
const varita = new Cosa(marca = "fenix", volumen = 1, esMagico = true, reliquia = false) // TODO: construir/obtener una cosa con volumen = 1, marca = fenix, es mágica pero no es una reliquia
const pava = new Cosa(marca = "acme", volumen = 2, esMagico = false, reliquia = true) // TODO: construir/obtener una cosa con volumen = 2, marca = acme, no es magica pero sí una reliquia
const lamparaAladino = new Cosa(marca = "fenix", volumen = 3, esMagico = true, reliquia = true) // TODO: construir/obtener una cosa con volumen = 3, marca = fenix, es mágica y una reliquia
const baul = new Baul(volumenMaximo = 5, cosas = #{escoba})// TODO: construir/obtener un baúl con volumen máximo = 5 y la escoba dentro
const gabineteMagico = new GabineteMagico(cosas=#{varita}) // TODO: construir/obtener un gabinete mágico con la varita dentro. El precio = 6 (segunda parte)
const armario = new ArmarioConvencional(cantidadMaxima=2, cosas = #{pelota}) // TODO: construir/obtener un armario con cantidad máxima = 2 y la pelota dentro
const academia = new Academia(muebles = #{baul, gabineteMagico, armario}) // TODO: construir/obtener una academia que tiene el baúl, el gabinete mágico y el armario

/* ACLARACIÓN
* Los tests están comentados para evitar errores y warnings, así poder ir incorporándolos
* a medida que se avanza con la solución del ejercicio
*/

* test "punto 1.1 saber si está guardado algo" {
* // TODO: Verificar que la varita está guardada en la academia
* // TODO: Verificar que la pelota está guardada en la academia
* // TODO: Verificar que la escoba está guardada en la academia
* // TODO: Verificar que la pava NO está guardada en la academia
* // TODO: Verificar que la lámpara NO está guardada en la academia
* }
test "punto 1.1 saber si está guardado algo" {
assert.that(academia.estaEnAcademia(varita))// TODO: Verificar que la varita está guardada en la academia
assert.that(academia.estaEnAcademia(pelota))// TODO: Verificar que la pelota está guardada en la academia
assert.that(academia.estaEnAcademia(escoba))// TODO: Verificar que la escoba está guardada en la academia
assert.notThat(academia.estaEnAcademia(pava))// TODO: Verificar que la pava NO está guardada en la academia
assert.notThat(academia.estaEnAcademia(lamparaAladino))// TODO: Verificar que la lámpara NO está guardada en la academia
}


test "punto 1.2, saber en que mueble esta guardado algo" {
assert.equals(gabineteMagico, academia.cosaEstaGuardadaEn(varita)) // TODO: Verificar que el mueble donde se guarda la varita está es el gabinete mágico
assert.equals(armario, academia.cosaEstaGuardadaEn(pelota)) // TODO: Verificar que el mueble donde se guarda la pelota está guardada es el armario
assert.equals(baul, academia.cosaEstaGuardadaEn(escoba)) // TODO: Verificar que el mueble donde se guarda la escoba está guardada es el baúl
}

/*
* test "punto 1.2, saber en que mueble esta guardado algo" {
* // TODO: Verificar que el mueble donde se guarda la varita está es el gabinete mágico
* // TODO: Verificar que el mueble donde se guarda la pelota está guardada es el armario
* // TODO: Verificar que el mueble donde se guarda la escoba está guardada es el baúl
* }
*/
/*
* test "punto 1.3, saber si se puede guardar algo" {
* // TODO: Verificar que la varita NO se puede guardar en la academia
Expand Down

0 comments on commit ce5cb76

Please sign in to comment.