#fichero de expectativas de la clase fraccion require "Matriz.rb" require "Fraccion.rb" require "Matriz_densa.rb" require "Matriz_dispersa.rb" describe Matriz do before :each do #Objeto Matriz para trabajar con las pruebas @m1 = Matriz_dispersa.new([[1,0,0],[0,0,0],[0,0,1]]) #dispersa @m2 = Matriz_densa.new([[1,2/4,1],[2,1/4,3],[3,5/4,4]]) #densa @m3 = Matriz_densa.new([[2,0,1],[3,0,0],[5,1,1]]) #densa @m4 = Matriz_dispersa.new([[0,0,0],[1,0,0],[0,1,0]])#dispersa @m5 = Matriz_densa.new([[1,0,1],[3,0,0],[5,1,0]]) #densa @m6 = Matriz_densa.new([[1,2/4,1],[1,2/4,1],[1,2/4,1]]) #densa end it " Se debe poder sumar dos matrices de enteros" do @aux = Matriz_densa.new([[1,1,1],[1,1,1],[1,1,1]]) (@m1 + @aux).matriz.should == [[2,1,1],[1,1,1],[1,1,2]] end it " Se debe poder restar dos matrices de enteros" do @aux = Matriz_densa.new([[1,1,1],[1,1,1],[1,1,1]]) (@m1 - @aux).matriz.should == [[0,-1,-1],[-1,-1,-1],[-1,-1,0]] end it " Se debe poder multiplicar dos matrices de enteros" do @aux = Matriz_densa.new([[1,2,3],[1,2,3],[1,2,3]]) (@m1 * @aux).matriz.should == [[1,2,3],[0,0,0],[1,2,3]] end it " Se debe poder hacer la traspuesta de una matriz" do @aux = Matriz_densa.new([[1,6,2],[2,5,5],[4,8,3]]) @aux.traspuesta.matriz.should == [[3,8,4],[5,5,2],[2,6,1]] @m4.traspuesta.matriz.should == Matriz_dispersa.new([[0,1,0],[0,0,1],[0,0,0]]).matriz end it " Se debe poder sumar matrices de fracciones" do @aux = Matriz_densa.new([[1,1,1],[1,1,1],[1,1,1]]) (@m2 + @aux).matriz.should == [[2,3/2,2],[3,5/4,4],[4,9/4,5]] end it "Se debe poder multiplicar dos matrices de racionales" do @aux = Matriz_densa.new([[1,1,1],[1,1,1],[1,1,1]]) (@m6 * @aux).matriz.should == [[2,2,2],[2,2,2],[2,2,2]] end it "Se debe poder comprobar el tipo de matriz del resultado de las operaciones" do (@m1 + @m4).is_a?(Matriz_densa).should == true (@m3 - @m5).is_a?(Matriz_dispersa).should == true (@m3 * @m2).is_a?(Matriz_densa).should == true end it "Se debe poder encontrar el maximo y el minimo de una matriz" do @m5.max.should == 5 @m5.min.should == 0 @m1.max.should == 1 @m1.min.should == 0 end end