require "Fraccion.rb" require "Matriz.rb" require "Matriz_densa.rb" require "Matriz_dispersa.rb" require "Dsl.rb" describe Dsl do before :all do @m1=Dsl.new("suma") do option "consola" option "densa" operando([[2,0,1],[3,0,0],[5,1,1]]) option "densa" operando([[1,1,1],[1,1,1],[1,1,1]]) end @m2=Dsl.new("suma") do option "fichero" option "dispersa" operando([[2,0,1],[3,0,0],[0,1,0]]) option "dispersa" operando([[0,0,0],[1,0,0],[0,0,1]]) end @m3=Dsl.new("resta") do option "fichero" option "densa" operando([[2,0,1],[3,0,0],[5,2,1]]) option "dispersa" operando([[0,0,0],[1,0,0],[0,1,0]]) end @m4=Dsl.new("resta") do option "consola" option "dispersa" operando([[0,0,0],[0,0,0],[0,0,1]]) option "densa" operando([[2,0,0],[2,0,0],[5,0,1]]) end @m5=Dsl.new("multiplicacion") do option "consola" option "densa" operando([[2,0,1],[3,0,0],[5,1,1]]) option "densa" operando([[2,0,1],[3,0,0],[5,1,1]]) end @m6=Dsl.new("multiplicacion") do option "fichero" option "dispersa" operando([[0,0,0],[1,0,0],[0,1,0]]) option "dispersa" operando([[0,0,0],[1,0,0],[0,1,0]]) end end it "La suma de dos matrices densas" do @m1.ejecucion.should eq([[3,1,2],[4,1,1],[6,2,2]]) end it "La resta de dos matrices densa y dispersa" do @m3.ejecucion.should eq([[2,0,1],[2,0,0],[5,1,1]]) end it "La multiplicacion de dos matrices densas" do @m5.ejecucion.should eq([[9,1,3],[6,0,3],[18,1,6]]) end it "La suma de dos matrices dispersas" do @m2.ejecucion.should eq([[2,0,1],[4,0,0],[0,1,1]]) end it "La resta de dos matrices dispersa y densa" do @m4.ejecucion.should eq(Matriz_dispersa.new([[-2,0,0],[-2,0,0],[-5,0,0]]).matriz) end it "La multiplicacion de dos matrices dispersas" do @m6.ejecucion.should eq(Matriz_dispersa.new([[0,0,0],[0,0,0],[1,0,0]]).matriz) end end