Skip to content

Commit

Permalink
Arreglado las clases faltan algunas expectativas
Browse files Browse the repository at this point in the history
  • Loading branch information
quinoescobar committed Nov 26, 2014
1 parent e8dc0e8 commit 0182b2d
Show file tree
Hide file tree
Showing 4 changed files with 116 additions and 56 deletions.
1 change: 1 addition & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@ source 'https://rubygems.org'

# Specify your gem's dependencies in examen.gemspec
gemspec
gem 'coveralls', require: false
53 changes: 40 additions & 13 deletions lib/examen/exam.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@
module Examen
class Exam
attr_reader :preguntas
def initialize (listaPreguntas)
def initialize (listaPreguntas,respu)
@preguntas = listaPreguntas
@respuescorrectas=respu
end

def insertQuestion(question)
Expand All @@ -17,6 +18,43 @@ def insertQuestion2(question)
nodoInsertado = @preguntas.push(nodo)
nodoInsertado.value
end


def compresp(resp)
correctas=0
i=0
n=0

while n < 5 do
if @respuescorrectas[i] == resp[i]
correctas+=1
end
i+=1
n+=1
end
if correctas < (i/2)+1
mensaje = "Ha suspendido el examen: #{correctas}/#{i}"
else
if correctas == i
mensaje = "Su nota es: Sobresaliente 10"
else
mensaje = "Ha aprobado el examen: #{correctas}/#{i}"
end
end
mensaje
end


def preguntas
@preguntas
end


def respu
@respuestascorrectas
end



# def to_ss
# cadena =""
Expand All @@ -26,18 +64,7 @@ def insertQuestion2(question)
# cadena
# end

def to_s
aux = @preguntas.inicio
respuesta = ""
respuesta += aux.value.to_s
respuesta += "\n"
while (aux != @preguntas.fin) do
aux = aux.next
respuesta += aux.value.to_s
respuesta += "\n"
end
respuesta
end

end
end

Expand Down
35 changes: 13 additions & 22 deletions lib/examen/interfaz.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,31 +5,22 @@ class Interfaz

def initialize(examen)
@examen=examen

end

def compresp(resp)
correctas=0
i=0
n=0

while n < 5 do
if @examen[i] == resp[i]
correctas+=1
end
i+=1
n+=1
end
if correctas < (i/2)+1
mensaje = "Ha suspendido el examen: #{correctas}/#{i}"
else
if correctas == i
mensaje = "Su nota es: Sobresaliente 10"
else
mensaje = "Ha aprobado el examen: #{correctas}/#{i}"
end
def to_s
aux = @examen.inicio
respuesta = ""
respuesta += aux.value.to_s
respuesta += "\n"
while (aux != @examen.fin) do
aux = aux.next
respuesta += aux.value.to_s
respuesta += "\n"
end
mensaje
end
respuesta
end

end

end
Expand Down
83 changes: 62 additions & 21 deletions spec/examen_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -403,21 +403,38 @@ class Pregunta

before :each do
@examen = Lista.new(0)
@p1=EleccionSimple.new(:valor => "5",:enunciado =>"Pregunta A",:respuesta =>"NN",:falsas => ["false",0,"Ninguna de las anteriores"])
@p2=Verdaderofalso.new(:valor => "2",:enunciado =>"¿2+2=5?",:respuesta => "falso" ,:falsas => "verdadero")
@p3=EleccionSimple.new(:valor => "3",:enunciado =>"¿Ruby es un lenguaje orientado a ________ ?",:respuesta =>"objetos",:falsas => ["dinamico","programacion","agilidad"])
@p1=EleccionSimple.new(:valor => "5",:enunciado =>"¿Cual es la salida del siguiente codigo Ruby? class Xyz def pots @nice end end xyz = Xyz.new p xyz.pots",:respuesta =>"nil",:falsas => ["#<Xyz:0xa000208>",0,"Ninguna de las anteriores"])
@p2=EleccionSimple.new(:valor => "2",:enunciado =>"¿La siguiente definicion de un hash en ruby es valida?",:respuesta => "verdadero" ,:falsas => "falso")
@p3=EleccionSimple.new(:valor => "3",:enunciado =>"¿Cual es la siguiente salida del codigo en ruby?",:respuesta =>1,:falsas => ["bob","HEY","Ninguna"])
@p4=EleccionSimple.new(:valor => "5",:enunciado =>"¿Cual es el tipo de objeto en el siguiente codigo en ruby?",:respuesta => "una instancia de la clase Class",:falsas => ["una constante","un objeto","Ninguna"])
@p5=EleccionSimple.new(:valor => "1",:enunciado =>"¿Es apropiado que una clase tablero herede de una clase juego?",:respuesta =>"verdadero" , :falsas =>"falso")


@nodo1=Nodo.new(@p1)
@nodo2=Nodo.new(@p2)
@nodo3=Nodo.new(@p3)

@nodo4=Nodo.new(@p4)
@nodo5=Nodo.new(@p5)

@examen.pushf(@nodo1)
@examen.push(@nodo2)
@examen.pushf(@nodo5)
@examen.push(@nodo4)
@examen.push(@nodo3)
@examen.push(@nodo2)
@examen.push(@nodo1)

@rc1="nil"
@rc2="verdadero"
@rc3="1"
@rc4="una instancia de la clase Class"
@rc5="verdadero"
@rf2="falso"
@rf3="HEY"
@rf4="Ninguna"

arrayRespuestasCorrectas = ["@rc1","@rc2","@rc3","@rc4","@rc5"]

@exam=Exam.new(@examen)
@exam=Exam.new(@examen,arrayRespuestasCorrectas)



end
Expand All @@ -430,12 +447,21 @@ class Pregunta
expect(@exam.insertQuestion(@p1)).to eq(@p1)
end

it "Se deben mostrar ordenadas las preguntas" do
it "Debe tener una lista de respuestas correctas"

expect(@exam.to_s).to eq(@p3.to_s+"\n"+@p2.to_s+"\n"+@p1.to_s+"\n")

end

it "#Se evalua si todas las respuestas correctas" do

arrayRespuestasUsuario = ["@rc1","@rc2","@rc3","@rc4","@rc5"]
expect(@exam.compresp(arrayRespuestasUsuario)).to eq("Su nota es: Sobresaliente 10")

end

it "#Se evalua si el examen esta suspenso" do
arrayRespuestasUsuario = ["@rc1","@rf2","@rc3","@rf4","@f5"]
expect(@exam.compresp(arrayRespuestasUsuario)).to eq("Ha suspendido el examen: 2/5")
end


end
Expand All @@ -454,6 +480,18 @@ class Pregunta
@p4=EleccionSimple.new(:valor => "5",:enunciado =>"¿Cual es el tipo de objeto en el siguiente codigo en ruby?",:respuesta => "una instancia de la clase Class",:falsas => ["una constante","un objeto","Ninguna"])
@p5=EleccionSimple.new(:valor => "1",:enunciado =>"¿Es apropiado que una clase tablero herede de una clase juego?",:respuesta =>"verdadero" , :falsas =>"falso")

@nodo1=Nodo.new(@p1)
@nodo2=Nodo.new(@p2)
@nodo3=Nodo.new(@p3)
@nodo4=Nodo.new(@p4)
@nodo5=Nodo.new(@p5)

@examen.pushf(@nodo5)
@examen.push(@nodo4)
@examen.push(@nodo3)
@examen.push(@nodo2)
@examen.push(@nodo1)

@rc1="nil"
@rc2="verdadero"
@rc3="1"
Expand All @@ -465,22 +503,25 @@ class Pregunta

arrayRespuestasCorrectas = ["@rc1","@rc2","@rc3","@rc4","@rc5"]

@exam=Exam.new(@examen,arrayRespuestasCorrectas)





@interfaz=Interfaz.new(arrayRespuestasCorrectas)
@interfaz=Interfaz.new(@examen)


end
it "#Se evalua si todas las respuestas correctas" do

arrayRespuestas = ["@rc1","@rc2","@rc3","@rc4","@rc5"]
expect(@interfaz.compresp(arrayRespuestas)).to eq("Su nota es: Sobresaliente 10")

end

it "#Se evalua si el examen está suspenso" do
arrayRespuestas = ["@rc1","@rf2","@rc3","@rf4","@f5"]
expect(@interfaz.compresp(arrayRespuestas)).to eq("Ha suspendido el examen: 2/5")

it "Debe tener un examen"

it "Debe de mostrar el examen al usuario"

it "Se deben mostrar ordenadas las preguntas" do

expect(@interfaz.to_s).to eq(@p1.to_s+"\n"+@p2.to_s+"\n"+@p3.to_s+"\n"+@p4.to_s+"\n"+@p5.to_s+"\n")

end

end
Expand Down

0 comments on commit 0182b2d

Please sign in to comment.