matrizHM 0.0.1 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.gitignore CHANGED
@@ -15,3 +15,5 @@ spec/reports
15
15
  test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
+ *~
19
+ *.*~
data/Gemfile CHANGED
File without changes
data/Guardfile ADDED
@@ -0,0 +1,10 @@
1
+ guard 'bundler' do
2
+ watch('Gemfile')
3
+ watch(/^.+\.gemspec/)
4
+ end
5
+
6
+ guard 'rspec', :version => 2 do
7
+ watch(%r{^spec/.+_spec\.rb$})
8
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
9
+ watch('spec/spec_helper.rb') { "spec" }
10
+ end
data/LICENSE.txt CHANGED
File without changes
data/README.md CHANGED
File without changes
data/Rakefile CHANGED
@@ -1 +1,10 @@
1
1
  require "bundler/gem_tasks"
2
+
3
+ $:.unshift File.dirname(__FILE__) + 'lib'
4
+ $:.unshift './lib', './spec'
5
+
6
+ require 'rspec/core/rake_task'
7
+ RSpec::Core::RakeTask.new
8
+ task :default => :spec
9
+
10
+
data/lib/gcd.rb ADDED
@@ -0,0 +1,8 @@
1
+ def gcd(u,v)
2
+ u, v = u.abs, v.abs
3
+ while v > 0
4
+ u, v = v, u % v
5
+ end
6
+ u
7
+ end
8
+
data/lib/matriz.rb ADDED
@@ -0,0 +1,273 @@
1
+ # coding: utf-8
2
+
3
+ module Operatoria
4
+
5
+ #Funcion que asigna un valor k a una posicion i,j dentro de la matriz
6
+ def []=(i, j, k)
7
+ matriz[i][j] = k
8
+ end
9
+
10
+ #Sobrecargado el + para poder sumar 2 matrices
11
+ def +(other)
12
+ raise ArgumentError, "La longitud de las matrices no coincide." unless @filas == other.filas && @columnas == other.columnas
13
+ sum = Matriz.new(matriz) #inicializas el vector sum con el primer con el primer
14
+ self.filas.times do |i|
15
+ self.columnas.times do |j|
16
+ sum.matriz[i][j] = self.matriz[i][j] + other.matriz[i][j]
17
+ end
18
+ end
19
+ return sum #devuelve un tipo array modificando el objeto m1 si se hace m3=m1+m2 -> Se necesita q sea tipo Matriz
20
+ end
21
+
22
+ #Sobrecargado el - para poder restar 2 matrices
23
+ def -(other)
24
+ raise ArgumentError, "La longitud de las matrices no coincide." unless @filas == other.filas && @columnas == other.columnas
25
+ resta = Matriz.new(matriz)
26
+ self.filas.times do |i|
27
+ self.columnas.times do |j|
28
+ resta.matriz[i][j] = self.matriz[i][j] - other.matriz[i][j]
29
+ end
30
+ end
31
+ return resta #devuelve un tipo matriz modificando el objeto m1 si se hace m3=m1+m2
32
+ end
33
+
34
+
35
+ def Producto_escalar (other)
36
+ mul = Matriz.new(matriz)
37
+ self.filas.times do |i|
38
+ self.columnas.times do |j|
39
+ mul.matriz[i][j] = self.matriz[i][j] * other
40
+ end
41
+ end
42
+ return mul
43
+ end
44
+
45
+ #Para comprobar que dos matrices son equivalentes,primero se comprueba sus dimensiones. Si tienen las mismas dimensiones se comprueba que el valor de ambas matrices sean iguales en las mismas posiciones,si esto es así se devuelve true,false en otro caso.
46
+ def ==(other)
47
+ dev=true
48
+ if ((self.filas.size==other.filas.size) && (self.columnas.size==other.columnas.size))
49
+ self.filas.times do |i|
50
+ self.columnas.times do |j|
51
+ if (self.matriz[i][j] != other.matriz[i][j])
52
+ dev=false
53
+ else
54
+ end
55
+ end
56
+ end
57
+ else
58
+ dev=false
59
+ end
60
+ return dev
61
+ end
62
+
63
+
64
+ #Realiza el opuesto de una matriz
65
+ def -@
66
+ op = Matriz.new(matriz)
67
+ self.filas.times do |i|
68
+ self.columnas.times do |j|
69
+ op.matriz[i][j] = -self.matriz[i][j]
70
+ end
71
+ end
72
+ return op
73
+
74
+ end
75
+
76
+ #Dos matrices son multiplicables si el numero de columnas de A coincide con el numero de filas de B
77
+ def * (other)
78
+ raise ArgumentError, "La longitud de las matrices no coincide." unless @columnas == other.filas
79
+ elemento = Array.new
80
+ acumulado = 0
81
+ self.filas.times do |i|
82
+ elemento_fila = Array.new
83
+ other.columnas.times do |j|
84
+ acumulado = 0
85
+ self.columnas.times do |k|
86
+ suma = @matriz[i][k] * other.matriz[k][j]
87
+ acumulado = suma + acumulado
88
+ end
89
+ elemento_fila << acumulado
90
+ end
91
+ elemento << elemento_fila
92
+ end
93
+ Matriz.new(elemento)
94
+ end
95
+ end
96
+
97
+ #Clase Base que contiene el metodo initilize y los getters. Además contiene el to_s y el método []
98
+ class Matriz
99
+ require "racional.rb" #definicion de la clase racional
100
+
101
+ include Operatoria
102
+ attr_accessor :matriz, :filas, :columnas
103
+
104
+ def initialize(matriz)
105
+ @matriz = Array.new(matriz)
106
+ @filas = matriz.size
107
+ @columnas = matriz[0].size
108
+ @n_elementos= (matriz.size * matriz[0].size)*0.6
109
+ n_ceros=0
110
+ filas.times do |i|
111
+ columnas.times do |j|
112
+ if (matriz[i][j]==0)
113
+ n_ceros=n_ceros+1
114
+ end
115
+ end
116
+ end
117
+ if n_ceros > @n_elementos
118
+ raise RuntimeError, 'La Matriz no es densa'
119
+ end
120
+
121
+ end
122
+
123
+ def comprobar (matriz)
124
+
125
+ n_ceros=0
126
+ filas.times do |i|
127
+ columnas.times do |j|
128
+ if (matriz[i][j]==0)
129
+ n_ceros=n_ceros+1
130
+ end
131
+ end
132
+ end
133
+ if n_ceros > @n_elementos
134
+ raise RuntimeError, 'La Matriz no es densa'
135
+ end
136
+ end
137
+
138
+ #Imprime la matrices
139
+ def to_s
140
+ filas.times do |i|
141
+ columnas.times do |j|
142
+ print "#{matriz[i][j]} "
143
+ end
144
+ puts
145
+ end
146
+ puts
147
+ end
148
+
149
+
150
+ def [](i,j)
151
+ matriz[i][j]
152
+ end
153
+
154
+ end
155
+
156
+ #matriz normal
157
+ class MatrizDensa < Matriz
158
+
159
+ def +(other)
160
+ suma=MatrizDensa.new(Array.new(@filas,1){Array.new(@columnas,1)})
161
+ filas.times do |i|
162
+ columnas.times do |j|
163
+ if (other.hash_no_ceros.key?("#{i}#{j}"))
164
+ suma.matriz[i][j] = other.hash_no_ceros["#{i}#{j}"] + matriz[i][j]
165
+ else
166
+ suma.matriz[i][j] = matriz[i][j]
167
+ end
168
+ end
169
+ end
170
+ return suma
171
+ end
172
+
173
+ end
174
+
175
+ class MatrizDispersa < Matriz
176
+ #modificar el initialize,pues no necesito almacenar los '0' guardar los indices donde se encuentran dichos ceros
177
+ #metodo que dado una fila y columna y un porcentaje de ceros prc,construye una matriz aleatoria
178
+ attr_accessor :hash_no_ceros, :filas, :columnas
179
+
180
+ def initialize(matriz)
181
+ @filas = matriz.size
182
+ @columnas = matriz[0].size
183
+ @hash_no_ceros={}
184
+
185
+ #comprobamos que la matriz es dispersa o no
186
+ @n_elementos= (matriz.size * matriz[0].size)*0.6
187
+ n_ceros=0
188
+ filas.times do |i|
189
+ columnas.times do |j|
190
+ if (matriz[i][j]==0)
191
+ n_ceros=n_ceros+1
192
+ else
193
+ pos_no_cero="#{i}#{j}"
194
+ @hash_no_ceros[pos_no_cero]=matriz[i][j]
195
+ end
196
+ end
197
+ end
198
+
199
+ if n_ceros < @n_elementos
200
+ raise RuntimeError, 'La Matriz no es dispersa'
201
+ else
202
+ end
203
+
204
+ end
205
+
206
+
207
+ def comprobar (hash)
208
+ if hash.length > ((@filas * @columnas)*0.4)
209
+ false
210
+ else
211
+ true
212
+ end
213
+ end
214
+
215
+ def to_s
216
+ filas.times do |i|
217
+ columnas.times do |j|
218
+ if (hash_no_ceros.key?("#{i}#{j}"))
219
+ print hash_no_ceros["#{i}#{j}"]
220
+ print " "
221
+ else
222
+ print "0 "
223
+ end
224
+ end
225
+ puts
226
+ end
227
+ end #def to_s
228
+
229
+
230
+ def +(other)
231
+ raise TypeError, "La matriz other no es dispersa" unless other.instance_of? MatrizDispersa
232
+ raise ArgumentError, "La longitud de las matrices no coincide." unless @filas == other.filas && @columnas == other.columnas
233
+ suma=MatrizDispersa.new(Array.new(@filas,0){Array.new(@columnas,0)})
234
+ suma.hash_no_ceros = (hash_no_ceros.merge(other.hash_no_ceros){|key,oldval,newval| oldval+newval}).clone
235
+ if comprobar(suma.hash_no_ceros)
236
+ return suma
237
+ else
238
+ m = Array.new(@filas,0){Array.new(@columnas,0)}
239
+ suma.hash_no_ceros.each {|key, value| m[(key[0]).to_i][(key[1]).to_i] = value }
240
+ sum = MatrizDensa.new(m)
241
+ return sum
242
+ end
243
+
244
+
245
+ end
246
+
247
+ def -(other)
248
+ raise TypeError, "La matriz other no es dispersa" unless other.instance_of? MatrizDispersa
249
+ raise ArgumentError, "La longitud de las matrices no coincide." unless @filas == other.filas && @columnas == other.columnas
250
+ resta=MatrizDispersa.new(Array.new(@filas,0){Array.new(@columnas,0)})
251
+ resta.hash_no_ceros = (self.hash_no_ceros.merge(other.hash_no_ceros){|key,oldval,newval| oldval-0-newval}).clone
252
+ if comprobar(resta.hash_no_ceros)
253
+ return resta
254
+ else
255
+ puts resta.hash_no_ceros
256
+ m = Array.new(@filas,0){Array.new(@columnas,0)}
257
+ resta.hash_no_ceros.each {|key, value| m[(key[0]).to_i][(key[1]).to_i] = value }
258
+ res = MatrizDensa.new(m)
259
+ return res
260
+ end
261
+ end
262
+
263
+ def ==(other)
264
+ hash_no_ceros == other.hash_no_ceros
265
+ end
266
+
267
+
268
+ end
269
+
270
+ # m1=Matriz.new([[2,0,1],[3,0,0],[5,1,1]])
271
+ # m2=Matriz.new([[1,0,1],[1,2,1],[1,1,0]])
272
+
273
+
@@ -1,3 +1,3 @@
1
1
  module MatrizHM
2
- VERSION = "0.0.1"
2
+ VERSION = "1.0.1"
3
3
  end
data/lib/matrizHM.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  require "matrizHM/version"
2
2
 
3
3
  module MatrizHM
4
- # Your code goes here...
4
+ require "matriz.rb"
5
5
  end
data/lib/racional.rb ADDED
@@ -0,0 +1,102 @@
1
+ require "gcd.rb" #definicion del mcd
2
+ # Definicion de la clase Fraccion
3
+ class Fraccion
4
+ attr_reader :numerador, :denominador # Se definen set y get para acceder a las variables de la clase.
5
+ include Comparable # Se incluye el modulo de nombre "comparable" utilizado para el operador <=>.
6
+
7
+ def initialize(numerador, denominador) # Se define el constructor.
8
+ mcd = gcd(numerador,denominador)
9
+ @numerador , @denominador = numerador/mcd, denominador/mcd
10
+ end
11
+
12
+ def num() # Devuelve el numerador.
13
+ @numerador
14
+ end
15
+
16
+ def denom() # Devuelve el denominador.
17
+ @denominador
18
+ end
19
+
20
+ def to_s
21
+ if @denominador == 1 #Si el denominador es 1, solo se imprimer el numerador
22
+ "#{@numerador}"
23
+ elsif @denominador == -1 #En el caso de que b=-1 y a>0 ó a=-1
24
+ if @numerador>0 || @numerador==-1
25
+ "#{-@numerador}"
26
+ else #Si b=-1 y a es menor que cero, imprime el valor de a
27
+ "#{@numerador}"
28
+ end
29
+ elsif (@numerador>0 && @denominador>0 && @denominador!=1) #Caso nomal, a y b son mayores que cero, imprime a/b
30
+ "#{@numerador}/#{@denominador}"
31
+ elsif (@numerador>0 && @denominador<0 && @denominador!=-1) # b es menor que cero, se le cambia el signo a todo para que se imprima: -a/b
32
+ "#{-@numerador}/#{-@denominador}"
33
+ elsif (@numerador<0 && @denominador<0 && @denominador!=-1) # a y b son menor que cero, se le cambia el signo a todo para que imprima a/b
34
+ "#{-@numerador}/#{-@denominador}"
35
+ elsif (@numerador<0 && @denominador>0 && @denominador!=1) # a es menor que cero, se imprime igual: -a/b
36
+ "#{@numerador}/#{@denominador}"
37
+ end
38
+ end
39
+
40
+ def to_f() # Imprime el resultado de la Fraccioncioncion como un float.
41
+ @numerador.to_f/@denominador
42
+ end
43
+
44
+ def <=>(other) # Se define el operador <=> para el modulo comparable.
45
+ @numerador.to_f/@denominador <=> other.numerador.to_f/other.denominador
46
+ end
47
+
48
+ def abs() # Se calcula el valor absoluto de una Fraccioncioncion.
49
+ if (@numerador > 0 && @denominador > 0)
50
+ Fraccioncion.new(@numerador, @denominador).to_s
51
+ elsif (@numerador > 0 && @denominador < 0)
52
+ Fraccion.new(@numerador, -1 * @denominador).to_s
53
+ elsif (@numerador < 0 && @denominador > 0)
54
+ Fraccion.new(-1 * @numerador, @denominador).to_s
55
+ else (@numerador < 0 && @denominador < 0)
56
+ Fraccion.new(-1 * @numerador,-1 * @denominador).to_s
57
+ end
58
+ end
59
+
60
+ def reciprocal() # Calcula el reciproco de una Fraccioncion.
61
+ Fraccion.new(@denominador, @numerador)
62
+ end
63
+
64
+ def +(other) # Calcula la suma de dos Fraccionciones.
65
+ if other.class == Fraccion
66
+ Fraccion.new(@numerador*other.denominador + other.numerador*@denominador , @denominador*other.denominador)
67
+ elsif other.class == Fixnum
68
+ Fraccion.new(@numerador + other*@denominador , @denominador)
69
+ end
70
+
71
+ end
72
+
73
+ def -(*other) # Calcula la resta de dos Fraccionciones.
74
+ if (other[0].class == Fraccion)
75
+ Fraccion.new(@numerador*other[0].denominador - other[0].numerador*@denominador , @denominador*other[0].denominador)
76
+ else
77
+ if (@numerador > 0 && @denominador > 0)
78
+ Fraccion.new(-1 * @numerador, @denominador)
79
+ elsif (@numerador > 0 && @denominador < 0)
80
+ Fraccion.new(@numerador, -1 * @denominador)
81
+ elsif (@numerador < 0 && @denominador > 0)
82
+ Fraccion.new(-1 * @numerador, @denominador)
83
+ else (@numerador < 0 && @denominador < 0)
84
+ Fraccion.new(@numerador, -1 * @denominador)
85
+ end
86
+ end
87
+ end
88
+
89
+ def *(other) # Calcula la multiplicacion de dos Fraccionciones.
90
+ Fraccion.new(@numerador * other.numerador, @denominador * other.denominador)
91
+ end
92
+
93
+ def /(other) # Calcula la division de dos Fraccionciones.
94
+ Fraccion.new(@numerador * other.denominador, @denominador * other.numerador)
95
+ end
96
+
97
+ def %(other) # Calcula el resto al dividir dos Fraccionciones (modulo)
98
+ result = self./(other)
99
+ result = (result.numerador%result.denominador).to_i
100
+ end
101
+
102
+ end
data/matrizHM.gemspec CHANGED
@@ -20,5 +20,8 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.3"
22
22
  spec.add_development_dependency "rake"
23
- # s.add_development_dependency "rspec"
23
+ spec.add_development_dependency "rspec"
24
+ spec.add_development_dependency "guard"
25
+ spec.add_development_dependency "guard-rspec"
26
+ spec.add_development_dependency "guard-bundler"
24
27
  end
File without changes
@@ -0,0 +1,163 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ require "./lib/matriz.rb"
4
+
5
+ describe Matriz do
6
+
7
+ before :each do
8
+ cuarto = Fraccion.new(1,4)
9
+ quinto = Fraccion.new(1,5)
10
+
11
+ medio = Fraccion.new(1, 2)
12
+ quinto2 = Fraccion.new(2, 5)
13
+
14
+ cero = Fraccion.new(0, 1)
15
+ siete = Fraccion.new(7,40)
16
+ nueve = Fraccion.new(9,100)
17
+
18
+ @MatrizA_frac = Matriz.new([[cuarto,cuarto],[quinto,quinto]])
19
+ @MatrizB_frac = Matriz.new([[cuarto,cuarto],[quinto,quinto]])
20
+ @Matriz_Resultado_frac = Matriz.new([[medio,medio],[quinto2,quinto2]])
21
+ @Matriz_Resultado_frac_rest = Matriz.new([[cero,cero],[cero,cero]])
22
+ @Matriz_Resultado_frac_mul = Matriz.new([[siete,nueve],[siete,nueve]])
23
+
24
+ @MatrizA = Matriz.new([[1,1],[2,2]])
25
+ @Matrizop = Matriz.new([[-1,-1],[-2,-2]])
26
+ @MatrizB = Matriz.new([[1,1],[2,2]])
27
+ @MatrizC = Matriz.new([[1,1],[2,2]])
28
+ @Matriz_Resultado = Matriz.new([[2,2],[4,4]])
29
+ @MatrizAmul = Matriz.new([[2,0,1],[3,0,0],[5,1,1]])
30
+ @MatrizBmul = Matriz.new([[1,0,1],[1,2,1],[1,1,0]])
31
+ @Matriz_Resultado_mul = Matriz.new([[3,1,2],[3,0,3],[7,3,6]])
32
+
33
+
34
+ #matrices dispersas
35
+ @MaDis = MatrizDispersa.new([[0,0,0],[1,2,3],[0,0,0]])
36
+ @MaDis2 = MatrizDispersa.new([[0,0,0],[1,2,3],[0,0,0]])
37
+ @MaDis3 = MatrizDispersa.new([[0,0,0],[2,4,6],[0,0,0]])
38
+ @MaDis4 = MatrizDispersa.new([[0,0,0],[1,2,3],[0,0,0]])
39
+ end
40
+
41
+ describe "Debe existir " do
42
+ it "filas " do
43
+ (defined?(@MatrizA.filas)).should be_true
44
+ end
45
+
46
+ it "columnas " do
47
+ (defined?(@MatrizA.columnas)).should be_true
48
+ end
49
+
50
+ it "Tamano de filas " do
51
+ @MatrizA.filas.should eq 2
52
+ end
53
+
54
+ it "Tamano de columnas " do
55
+ @MatrizA.columnas.should eq 2
56
+ end
57
+ end
58
+
59
+ describe "Se puede " do
60
+ it "accerdera un subindice" do
61
+ @MatrizA.matriz[0][0].should eq 1
62
+ end
63
+
64
+ it "modificar un subindice" do
65
+ @MatrizC.matriz[0][0] = 2
66
+ @MatrizA.matriz[0][0].should eq 1
67
+ end
68
+
69
+ it "sumar dos matrices de enteros" do
70
+ ( @MatrizA + @MatrizB ).should eq @Matriz_Resultado
71
+ end
72
+
73
+ it "restar dos matrices de enteros" do
74
+ (@MatrizA - @MatrizB ).matriz.should eq [[0,0],[0,0]]
75
+ end
76
+
77
+ it "multiplicar por un numero" do
78
+ (@MatrizA.Producto_escalar (2) ).should eq @Matriz_Resultado
79
+ end
80
+
81
+ it "multiplicar 2 matrices de enteros" do
82
+ (@MatrizAmul * @MatrizBmul ).should eq @Matriz_Resultado_mul
83
+ end
84
+ end
85
+
86
+
87
+ describe "de debe " do
88
+ it "poder compara 2 matrices" do
89
+ (@MatrizA == @MatrizB).should eq true
90
+ end
91
+
92
+ it "poder hacer el opuesto" do
93
+ (-@MatrizA).should eq @Matrizop
94
+ end
95
+
96
+ it "poder sumar dos matrices de racionales" do
97
+ (@MatrizA_frac + @MatrizB_frac).should eq @Matriz_Resultado_frac
98
+
99
+ end
100
+
101
+ it "poder restar dos matrices de racionales" do
102
+ (@MatrizA_frac - @MatrizB_frac).should eq @Matriz_Resultado_frac_rest
103
+ end
104
+
105
+ it "poder multiplicar dos matrices de racionales" do
106
+ (@MatrizA_frac * @MatrizB_frac).to_s.should eq (@Matriz_Resultado_frac_mul.to_s)
107
+ end
108
+ end
109
+
110
+ describe "se poder comprobar si la " do
111
+ it " matriz es dispersa" do
112
+ MatrizDispersa.new([[0,0,0],[1,2,3],[0,0,0]])
113
+ end
114
+ it "matriz densa" do
115
+ MatrizDensa.new([[0,0,0],[1,2,3],[1,1,0]])
116
+ end
117
+
118
+ end
119
+
120
+ describe "Se puede " do
121
+ it "sumar 2 matrices dispersas" do
122
+
123
+ (@MaDis + @MaDis2).should eq @MaDis3
124
+
125
+ end
126
+
127
+ it "restar 2 matrices dispersas"do
128
+ (@MaDis3 - @MaDis2).should eq @MaDis4
129
+ end
130
+
131
+ it "sumar 2 matrices dispersas y den resultado una densa" do
132
+ @MaDis11 = MatrizDispersa.new([[0,0,0],[1,2,3],[0,0,0]])
133
+ @MaDis22 = MatrizDispersa.new([[1,2,3],[0,0,0],[0,0,0]])
134
+ @MaDenResul = MatrizDensa.new([[1,2,3],[1,2,3],[0,0,0]])
135
+
136
+ (@MaDis11 + @MaDis22).should eq @MaDenResul
137
+
138
+ end
139
+ end
140
+
141
+ describe "Se puede sumar una matriz densa" do
142
+ it " con una dispersa y den resultado una densa" do
143
+ @MaDispersa1 = MatrizDispersa.new([[0,0,0],[1,2,3],[0,0,0]])
144
+ @MaDensa1 = MatrizDensa.new([[1,2,3],[1,2,3],[0,0,0]])
145
+ @MaDensaResul1 = MatrizDensa.new([[1,2,3],[2,4,6],[0,0,0]])
146
+
147
+ (@MaDensa1 + @MaDispersa1).should eq @MaDensaResul1
148
+
149
+ end
150
+
151
+ end
152
+
153
+ it "Se puede restar una matriz dipersa con una dispersa y dar una densa " do
154
+ @MaDis11 = MatrizDispersa.new([[0,0,0],[1,2,3],[0,0,0]])
155
+ @MaDis22 = MatrizDispersa.new([[1,2,3],[0,0,0],[0,0,0]])
156
+ @MaDenResul = MatrizDensa.new([[-1,-2,-3],[1,2,3],[0,0,0]])
157
+ #(@MaDis11 - @MaDis22).should eq @MaDenResul
158
+ end
159
+
160
+
161
+
162
+
163
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: matrizHM
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 1.0.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-11-11 00:00:00.000000000 Z
12
+ date: 2013-11-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
16
- requirement: &73342270 !ruby/object:Gem::Requirement
16
+ requirement: &79770600 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '1.3'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *73342270
24
+ version_requirements: *79770600
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &73341940 !ruby/object:Gem::Requirement
27
+ requirement: &79770380 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,7 +32,51 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *73341940
35
+ version_requirements: *79770380
36
+ - !ruby/object:Gem::Dependency
37
+ name: rspec
38
+ requirement: &79770110 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *79770110
47
+ - !ruby/object:Gem::Dependency
48
+ name: guard
49
+ requirement: &79769850 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *79769850
58
+ - !ruby/object:Gem::Dependency
59
+ name: guard-rspec
60
+ requirement: &79769620 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *79769620
69
+ - !ruby/object:Gem::Dependency
70
+ name: guard-bundler
71
+ requirement: &79769390 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *79769390
36
80
  description: Construcción de una gema ruby para la creación de matrices dispersas
37
81
  y densas,que heredan de la clase base Matriz hecha en prácticas anteriores
38
82
  email:
@@ -43,15 +87,18 @@ extra_rdoc_files: []
43
87
  files:
44
88
  - .gitignore
45
89
  - Gemfile
90
+ - Guardfile
46
91
  - LICENSE.txt
47
92
  - README.md
48
93
  - Rakefile
94
+ - lib/gcd.rb
95
+ - lib/matriz.rb
49
96
  - lib/matrizHM.rb
50
- - lib/matrizHM.rb~
51
97
  - lib/matrizHM/version.rb
52
- - lib/matrizHM/version.rb~
98
+ - lib/racional.rb
53
99
  - matrizHM.gemspec
54
- - matrizHM.gemspec~
100
+ - spec/matrizHM_spec.rb
101
+ - spec/matriz_spec.rb
55
102
  homepage: https://github.com/alu0100545630/gemaHM.git
56
103
  licenses:
57
104
  - MIT
@@ -78,4 +125,6 @@ signing_key:
78
125
  specification_version: 3
79
126
  summary: Se trata de contruir otra estructura para las matrices dispersas y realizar
80
127
  la operatoria necesaria para realizar los mismos algoritmos que las matrices densas
81
- test_files: []
128
+ test_files:
129
+ - spec/matrizHM_spec.rb
130
+ - spec/matriz_spec.rb
@@ -1,3 +0,0 @@
1
- module MatrizHM
2
- VERSION = "0.0.1"
3
- end
data/lib/matrizHM.rb~ DELETED
@@ -1,5 +0,0 @@
1
- require "matrizHM/version"
2
-
3
- module MatrizHM
4
- # Your code goes here...
5
- end
data/matrizHM.gemspec~ DELETED
@@ -1,24 +0,0 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'matrizHM/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = "matrizHM"
8
- spec.version = MatrizHM::VERSION
9
- spec.authors = ["Hamilton Steven Cubillos & Marcos Díaz García"]
10
- spec.email = ["hamiltonetsii@gmail.com"]
11
- spec.description = %q{Construcción de una gema ruby para la creación de matrices dispersas y densas,que heredan de la clase base Matriz hecha en prácticas anteriores}
12
- spec.summary = %q{Se trata de contruir otra estructura para las matrices dispersas y realizar la operatoria necesaria para realizar los mismos algoritmos que las matrices densas}
13
- spec.homepage = "https://github.com/alu0100545630/gemaHM.git"
14
- spec.license = "MIT"
15
-
16
- spec.files = `git ls-files`.split($/)
17
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
20
-
21
- spec.add_development_dependency "bundler", "~> 1.3"
22
- spec.add_development_dependency "rake"
23
- # s.add_development_dependency "rspec"
24
- end