SparseMatrixProject 0.0.2 → 0.0.3
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/.travis.yml +14 -0
- data/Gemfile +13 -0
- data/Gemfile~ +12 -0
- data/Guardfile +8 -0
- data/LICENSE.txt +1 -1
- data/LICENSE.txt~ +22 -0
- data/README.md +16 -1
- data/README.md~ +47 -0
- data/Rakefile +4 -0
- data/Rakefile~ +17 -0
- data/SparseMatrixProject.gemspec~ +23 -0
- data/bin/SparseMatrixProject +3 -0
- data/bin/SparseMatrixProject~ +0 -0
- data/lib/SparseMatrixProject/version.rb +1 -1
- data/lib/SparseMatrixProject/version.rb~ +3 -0
- data/lib/SparseMatrixProject.rb~ +5 -0
- data/lib/gcd.rb +15 -0
- data/lib/gcd.rb~ +8 -0
- data/lib/matrix_main.rb~ +71 -0
- data/lib/matriz.rb~ +507 -0
- data/lib/racional.rb +146 -0
- data/lib/racional.rb~ +146 -0
- data/spec/racional_spec.rb +119 -0
- data/spec/racional_spec.rb~ +119 -0
- data/test/tc_Matrices.rb +42 -0
- data/test/tc_Matrices.rb~ +42 -0
- metadata +31 -4
data/lib/racional.rb~
ADDED
@@ -0,0 +1,146 @@
|
|
1
|
+
#=racional.rb
|
2
|
+
#
|
3
|
+
# Autores:: Aarón José Vera Cerdeña,Jacobo Saavedra Valdes
|
4
|
+
#
|
5
|
+
# == Este fichero contiene:
|
6
|
+
#
|
7
|
+
#
|
8
|
+
#
|
9
|
+
#
|
10
|
+
require "../lib/gcd.rb"
|
11
|
+
# === Clase Racional
|
12
|
+
#
|
13
|
+
# Definición de la clase _Racional_ compuesta por
|
14
|
+
# * metodo initialize
|
15
|
+
# * metodo to_s(other)
|
16
|
+
# * metodo +(other)
|
17
|
+
# * metodo *(other)
|
18
|
+
# * metodo /(other)
|
19
|
+
# * metodo num
|
20
|
+
# * metodo denom
|
21
|
+
# * metodo to_f
|
22
|
+
# * metodo abs
|
23
|
+
# * metodo %
|
24
|
+
# * metodo reciprocal
|
25
|
+
# * metodo -@
|
26
|
+
# * metodo <=>
|
27
|
+
#
|
28
|
+
class Racional
|
29
|
+
include Comparable
|
30
|
+
|
31
|
+
def initialize(numerador, denominador)
|
32
|
+
@numerador = numerador
|
33
|
+
@denominador = denominador
|
34
|
+
end
|
35
|
+
attr_reader :numerador, :denominador
|
36
|
+
|
37
|
+
|
38
|
+
def to_s#Método que devuelve un String
|
39
|
+
"#{@numerador}/#{@denominador}"
|
40
|
+
end
|
41
|
+
|
42
|
+
def +(other)#Calcular la suma
|
43
|
+
if (@denominador == other.denominador )
|
44
|
+
nume=@numerador + other.numerador
|
45
|
+
deno=@denominador
|
46
|
+
mcd=gcd(nume,deno)
|
47
|
+
else
|
48
|
+
aux= @denominador * other.denominador
|
49
|
+
nume = ((aux / @denominador ) * @numerador) + ((aux / other.denominador ) * other.numerador)
|
50
|
+
deno = @denominador*other.denominador
|
51
|
+
mcd=gcd(nume,deno)
|
52
|
+
end
|
53
|
+
|
54
|
+
temp = Racional.new(nume/mcd, deno/mcd)
|
55
|
+
end
|
56
|
+
|
57
|
+
|
58
|
+
def -(other)#Calcular la resta de un Racional
|
59
|
+
if (@denominador == other.denominador )
|
60
|
+
nume=@numerador - other.numerador
|
61
|
+
deno=@denominador
|
62
|
+
mcd=gcd(nume,deno)
|
63
|
+
|
64
|
+
else
|
65
|
+
aux= @denominador * other.denominador
|
66
|
+
nume = ((aux / @denominador ) * @numerador) - ((aux / other.denominador ) * other.numerador)
|
67
|
+
deno=@denominador*other.denominador
|
68
|
+
mcd=gcd(nume,deno)
|
69
|
+
|
70
|
+
end
|
71
|
+
|
72
|
+
|
73
|
+
temp = Racional.new(nume/mcd, deno/mcd)
|
74
|
+
end
|
75
|
+
|
76
|
+
|
77
|
+
def * (other)#Calcular el producto de un Racional
|
78
|
+
nume = @numerador * other.numerador
|
79
|
+
deno = @denominador * other.denominador
|
80
|
+
mcd=gcd(nume,deno)
|
81
|
+
temp = Racional.new(nume / mcd ,deno / mcd )
|
82
|
+
|
83
|
+
end
|
84
|
+
|
85
|
+
#####Calcular la division
|
86
|
+
def / (other)
|
87
|
+
|
88
|
+
nume = @numerador *other.denominador
|
89
|
+
deno = @denominador * other.numerador
|
90
|
+
mcd= gcd(nume,deno)
|
91
|
+
temp = Racional.new(nume/mcd, deno/mcd )
|
92
|
+
|
93
|
+
end
|
94
|
+
|
95
|
+
|
96
|
+
def num#####Devolver el numerador
|
97
|
+
@numerador
|
98
|
+
end
|
99
|
+
|
100
|
+
|
101
|
+
def denom #####Devolver el denominador
|
102
|
+
@denominador
|
103
|
+
end
|
104
|
+
|
105
|
+
|
106
|
+
def to_f#####Flotante
|
107
|
+
flotante = numerador.to_f/denominador
|
108
|
+
end
|
109
|
+
|
110
|
+
|
111
|
+
def abs#####Calcular el absoluto de la fraccion
|
112
|
+
absnum = numerador.abs
|
113
|
+
absdenom = denominador.abs
|
114
|
+
abs = Racional.new(absnum, absdenom)
|
115
|
+
end
|
116
|
+
|
117
|
+
|
118
|
+
def % (other)#####Calcular el resto
|
119
|
+
nume = @numerador * other.denominador
|
120
|
+
deno = @denominador * other.numerador
|
121
|
+
mcd = gcd(nume,deno)
|
122
|
+
|
123
|
+
temp = ((nume/mcd) % (deno/mcd))
|
124
|
+
|
125
|
+
|
126
|
+
end
|
127
|
+
|
128
|
+
|
129
|
+
def reciprocal#####Calcular el reciproco de la fraccion
|
130
|
+
Racional.new(@denominador,@numerador)
|
131
|
+
end
|
132
|
+
|
133
|
+
|
134
|
+
def -@#####Calcular el opuesto de la fraccion
|
135
|
+
negado = Racional.new(-denominador, numerador)
|
136
|
+
end
|
137
|
+
|
138
|
+
def <=> (other)
|
139
|
+
if other.instance_of? Racional
|
140
|
+
return (numerador.to_f/denominador)<=>(other.numerador.to_f/other.denominador)
|
141
|
+
else
|
142
|
+
false
|
143
|
+
end
|
144
|
+
|
145
|
+
end
|
146
|
+
end
|
@@ -0,0 +1,119 @@
|
|
1
|
+
#=racional_spec.rb
|
2
|
+
#
|
3
|
+
# Autores:: Aarón José Vera Cerdeña,Jacobo Saavedra Valdes
|
4
|
+
#
|
5
|
+
# == Este fichero contiene:
|
6
|
+
#Las expectativas de las operaciones entre las matrices densas y dispersas.
|
7
|
+
#
|
8
|
+
#
|
9
|
+
#
|
10
|
+
require 'rubygems'
|
11
|
+
require 'bundler/setup'
|
12
|
+
require 'nokogiri'
|
13
|
+
|
14
|
+
require "rspec"
|
15
|
+
require "./lib/matriz.rb"
|
16
|
+
require "./lib/racional.rb"
|
17
|
+
|
18
|
+
describe Matrices do##Aquí creamos las matrices densas y dispersas
|
19
|
+
before :each do
|
20
|
+
|
21
|
+
@matrizden1 = Densa.new(3,3,[1,2,3,4,5,6,7,8,9])##Aquí creamos la matriz densa
|
22
|
+
@matrizden2 = Densa.new(3,3,[1,2,3,4,5,6,7,8,9])
|
23
|
+
|
24
|
+
|
25
|
+
@matrizfrac1 = Densa.new(3,3,[Racional.new(1,2),Racional.new(1,3),Racional.new(1,4),Racional.new(1,5),Racional.new(1,6),Racional.new(1,7),Racional.new(1,8),Racional.new(1,9),Racional.new(1,10)])
|
26
|
+
@matrizfrac2 = Densa.new(3,3,[Racional.new(1,2),Racional.new(2,3),Racional.new(3,4),Racional.new(4,5),Racional.new(5,6),Racional.new(6,7),Racional.new(7,8),Racional.new(8,9),Racional.new(9,10)])
|
27
|
+
|
28
|
+
@matrizdis1 = Dispersa.new(3,3,[0,1,2],[0,1,2],[1,2,3])##Aquí creamos la matriz dispersa
|
29
|
+
@matrizdis2 = Dispersa.new(3,3,[0,1,2],[0,1,2],[1,2,3])
|
30
|
+
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
######IMPLEMENTACIÓN NUEVA
|
35
|
+
describe "#Para acceder a elementos" do
|
36
|
+
it "Comprobando que se creo."do
|
37
|
+
@matrizden1.pos(0,0).should eq(1)
|
38
|
+
@matrizden1.pos(1,1).should eq(5)
|
39
|
+
@matrizden1.pos(2,2).should eq(9)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
########################################################
|
43
|
+
##########OPERACIONES CON FRACCIONES####################
|
44
|
+
########################################################
|
45
|
+
describe "#Operaciones con fracciones" do
|
46
|
+
it "Suma fracciones" do
|
47
|
+
(@matrizfrac1+@matrizfrac2).to_s.should eq("[[1/1, 1/1, 1/1], [1/1, 1/1, 1/1], [1/1, 1/1, 1/1]]")
|
48
|
+
end
|
49
|
+
end
|
50
|
+
########################################################
|
51
|
+
#########OPERACIONES ENTRE MATRICES DENSAS##############
|
52
|
+
########################################################
|
53
|
+
describe "#Operaciones de matrices densas" do
|
54
|
+
it "Suma de matrices densas" do
|
55
|
+
(@matrizden1+@matrizden2).to_s.should eq("[[2, 4, 6], [8, 10, 12], [14, 16, 18]]")
|
56
|
+
end
|
57
|
+
it "Resta de matrices densas" do
|
58
|
+
(@matrizden1-@matrizden2).to_s.should eq("[[0, 0, 0], [0, 0, 0], [0, 0, 0]]")
|
59
|
+
end
|
60
|
+
end
|
61
|
+
########################################################
|
62
|
+
#########OPERACIONES ENTRE MATRICES DISPERSAS###########
|
63
|
+
########################################################
|
64
|
+
describe "#Operaciones de matrices dispersas" do
|
65
|
+
it "Suma de matrices dispersas" do
|
66
|
+
(@matrizdis1+@matrizdis2).to_s().should eq("[[0,0,2][1,1,4][2,2,6]]")
|
67
|
+
end
|
68
|
+
|
69
|
+
it "Resta de matrices dispersas" do
|
70
|
+
(@matrizdis1-@matrizdis2).to_s().should eq("[[0,0,0][1,1,0][2,2,0]]")
|
71
|
+
end
|
72
|
+
end
|
73
|
+
########################################################
|
74
|
+
#####OPERACIONES ENTRE MATRICES DISPERSAS Y DENSAS######
|
75
|
+
########################################################
|
76
|
+
describe "#Operaciones de matrices dispersas y densas" do
|
77
|
+
it "Suma de Matrices Dispersas y Densas" do
|
78
|
+
(@matrizdis1+@matrizden1).to_s().should eq("[[2, 2, 3], [4, 7, 6], [7, 8, 12]]")
|
79
|
+
end
|
80
|
+
|
81
|
+
it "Suma de Matrices Densas y Dispersas" do
|
82
|
+
(@matrizden1+@matrizdis1).to_s().should eq("[[2, 2, 3], [4, 7, 6], [7, 8, 12]]")
|
83
|
+
end
|
84
|
+
|
85
|
+
##################################################################
|
86
|
+
#########MÁXIMO Y MÍNIMO DE MATRICES DENSAS#######################
|
87
|
+
##################################################################
|
88
|
+
describe "Maximo y minimo de matrices densas" do
|
89
|
+
|
90
|
+
it"El maximo de una matriz densa se realiza correctamente" do
|
91
|
+
@matrizden1.maximo.should eq (9)
|
92
|
+
end
|
93
|
+
it"El minimo de una matriz densa se realiza correctamente" do
|
94
|
+
@matrizden2.minimo.should eq (1)
|
95
|
+
end
|
96
|
+
end
|
97
|
+
#####################################################################################################################################################
|
98
|
+
describe "Suma densa y dispersa racional" do
|
99
|
+
it "Suma densa y dispersa racional" do
|
100
|
+
|
101
|
+
|
102
|
+
@racprb=Racional.new(1,2)
|
103
|
+
|
104
|
+
@matrizdis2 = Dispersa.new(3,3,[0,1,2],[0,1,2],[1,2,@racprb])
|
105
|
+
@matrizdenprb = Densa.new(3,3,[1,2,3,4,5,6,7,8,9])
|
106
|
+
@matrizdenprb2= Densa.new(3,3,[1,2,3,4,5,6,7,8,9])
|
107
|
+
@matrizdenprbrac = Densa.new(3,3,[1,@racprb,3,4,5,6,7,8,9])
|
108
|
+
@matrizdenprbrac2 = Densa.new(3,3,[1,@racprb,3,4,5,6,7,8,@racprb])
|
109
|
+
puts @matrizdis2.to_s
|
110
|
+
|
111
|
+
(1+@racprb).should == Racional.new(3,2)
|
112
|
+
|
113
|
+
(@matrizdenprbrac + @matrizdenprb2).to_s.should eq("[[2, 5/2, 6], [8, 10, 12], [14, 16, 18]]")
|
114
|
+
(@matrizdenprb + @matrizdis2).to_s.should eq ("[[2, 2, 3], [4, 7, 6], [7, 8, 19/2]]")
|
115
|
+
(@matrizdis2 + @matrizdenprbrac2).to_s.should eq ("[[2, 1/2, 3], [4, 7, 6], [7, 8, 1/1]]")
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
@@ -0,0 +1,119 @@
|
|
1
|
+
#=racional_spec.rb
|
2
|
+
#
|
3
|
+
# Autores:: Aarón José Vera Cerdeña,Jacobo Saavedra Valdes
|
4
|
+
#
|
5
|
+
# == Este fichero contiene:
|
6
|
+
#Las expectativas de las operaciones entre las matrices densas y dispersas.
|
7
|
+
#
|
8
|
+
#
|
9
|
+
#
|
10
|
+
require 'rubygems'
|
11
|
+
require 'bundler/setup'
|
12
|
+
require 'nokogiri'
|
13
|
+
|
14
|
+
require "rspec"
|
15
|
+
require "../lib/matriz.rb"
|
16
|
+
require "../lib/racional.rb"
|
17
|
+
|
18
|
+
describe Matrices do##Aquí creamos las matrices densas y dispersas
|
19
|
+
before :each do
|
20
|
+
|
21
|
+
@matrizden1 = Densa.new(3,3,[1,2,3,4,5,6,7,8,9])##Aquí creamos la matriz densa
|
22
|
+
@matrizden2 = Densa.new(3,3,[1,2,3,4,5,6,7,8,9])
|
23
|
+
|
24
|
+
|
25
|
+
@matrizfrac1 = Densa.new(3,3,[Racional.new(1,2),Racional.new(1,3),Racional.new(1,4),Racional.new(1,5),Racional.new(1,6),Racional.new(1,7),Racional.new(1,8),Racional.new(1,9),Racional.new(1,10)])
|
26
|
+
@matrizfrac2 = Densa.new(3,3,[Racional.new(1,2),Racional.new(2,3),Racional.new(3,4),Racional.new(4,5),Racional.new(5,6),Racional.new(6,7),Racional.new(7,8),Racional.new(8,9),Racional.new(9,10)])
|
27
|
+
|
28
|
+
@matrizdis1 = Dispersa.new(3,3,[0,1,2],[0,1,2],[1,2,3])##Aquí creamos la matriz dispersa
|
29
|
+
@matrizdis2 = Dispersa.new(3,3,[0,1,2],[0,1,2],[1,2,3])
|
30
|
+
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
######IMPLEMENTACIÓN NUEVA
|
35
|
+
describe "#Para acceder a elementos" do
|
36
|
+
it "Comprobando que se creo."do
|
37
|
+
@matrizden1.pos(0,0).should eq(1)
|
38
|
+
@matrizden1.pos(1,1).should eq(5)
|
39
|
+
@matrizden1.pos(2,2).should eq(9)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
########################################################
|
43
|
+
##########OPERACIONES CON FRACCIONES####################
|
44
|
+
########################################################
|
45
|
+
describe "#Operaciones con fracciones" do
|
46
|
+
it "Suma fracciones" do
|
47
|
+
(@matrizfrac1+@matrizfrac2).to_s.should eq("[[1/1, 1/1, 1/1], [1/1, 1/1, 1/1], [1/1, 1/1, 1/1]]")
|
48
|
+
end
|
49
|
+
end
|
50
|
+
########################################################
|
51
|
+
#########OPERACIONES ENTRE MATRICES DENSAS##############
|
52
|
+
########################################################
|
53
|
+
describe "#Operaciones de matrices densas" do
|
54
|
+
it "Suma de matrices densas" do
|
55
|
+
(@matrizden1+@matrizden2).to_s.should eq("[[2, 4, 6], [8, 10, 12], [14, 16, 18]]")
|
56
|
+
end
|
57
|
+
it "Resta de matrices densas" do
|
58
|
+
(@matrizden1-@matrizden2).to_s.should eq("[[0, 0, 0], [0, 0, 0], [0, 0, 0]]")
|
59
|
+
end
|
60
|
+
end
|
61
|
+
########################################################
|
62
|
+
#########OPERACIONES ENTRE MATRICES DISPERSAS###########
|
63
|
+
########################################################
|
64
|
+
describe "#Operaciones de matrices dispersas" do
|
65
|
+
it "Suma de matrices dispersas" do
|
66
|
+
(@matrizdis1+@matrizdis2).to_s().should eq("[[0,0,2][1,1,4][2,2,6]]")
|
67
|
+
end
|
68
|
+
|
69
|
+
it "Resta de matrices dispersas" do
|
70
|
+
(@matrizdis1-@matrizdis2).to_s().should eq("[[0,0,0][1,1,0][2,2,0]]")
|
71
|
+
end
|
72
|
+
end
|
73
|
+
########################################################
|
74
|
+
#####OPERACIONES ENTRE MATRICES DISPERSAS Y DENSAS######
|
75
|
+
########################################################
|
76
|
+
describe "#Operaciones de matrices dispersas y densas" do
|
77
|
+
it "Suma de Matrices Dispersas y Densas" do
|
78
|
+
(@matrizdis1+@matrizden1).to_s().should eq("[[2, 2, 3], [4, 7, 6], [7, 8, 12]]")
|
79
|
+
end
|
80
|
+
|
81
|
+
it "Suma de Matrices Densas y Dispersas" do
|
82
|
+
(@matrizden1+@matrizdis1).to_s().should eq("[[2, 2, 3], [4, 7, 6], [7, 8, 12]]")
|
83
|
+
end
|
84
|
+
|
85
|
+
##################################################################
|
86
|
+
#########MÁXIMO Y MÍNIMO DE MATRICES DENSAS#######################
|
87
|
+
##################################################################
|
88
|
+
describe "Maximo y minimo de matrices densas" do
|
89
|
+
|
90
|
+
it"El maximo de una matriz densa se realiza correctamente" do
|
91
|
+
@matrizden1.maximo.should eq (9)
|
92
|
+
end
|
93
|
+
it"El minimo de una matriz densa se realiza correctamente" do
|
94
|
+
@matrizden2.minimo.should eq (1)
|
95
|
+
end
|
96
|
+
end
|
97
|
+
#####################################################################################################################################################
|
98
|
+
describe "Suma densa y dispersa racional" do
|
99
|
+
it "Suma densa y dispersa racional" do
|
100
|
+
|
101
|
+
|
102
|
+
@racprb=Racional.new(1,2)
|
103
|
+
|
104
|
+
@matrizdis2 = Dispersa.new(3,3,[0,1,2],[0,1,2],[1,2,@racprb])
|
105
|
+
@matrizdenprb = Densa.new(3,3,[1,2,3,4,5,6,7,8,9])
|
106
|
+
@matrizdenprb2= Densa.new(3,3,[1,2,3,4,5,6,7,8,9])
|
107
|
+
@matrizdenprbrac = Densa.new(3,3,[1,@racprb,3,4,5,6,7,8,9])
|
108
|
+
@matrizdenprbrac2 = Densa.new(3,3,[1,@racprb,3,4,5,6,7,8,@racprb])
|
109
|
+
puts @matrizdis2.to_s
|
110
|
+
|
111
|
+
(1+@racprb).should == Racional.new(3,2)
|
112
|
+
|
113
|
+
(@matrizdenprbrac + @matrizdenprb2).to_s.should eq("[[2, 5/2, 6], [8, 10, 12], [14, 16, 18]]")
|
114
|
+
(@matrizdenprb + @matrizdis2).to_s.should eq ("[[2, 2, 3], [4, 7, 6], [7, 8, 19/2]]")
|
115
|
+
(@matrizdis2 + @matrizdenprbrac2).to_s.should eq ("[[2, 1/2, 3], [4, 7, 6], [7, 8, 1/1]]")
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
data/test/tc_Matrices.rb
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
###############################################
|
2
|
+
####Pruebas Unitarias Matriz Dispersa##########
|
3
|
+
###############################################
|
4
|
+
|
5
|
+
require "test/unit"
|
6
|
+
require "./lib/matriz.rb"
|
7
|
+
require "./lib/racional.rb"
|
8
|
+
|
9
|
+
class TestMatrizDensa < Test::Unit::TestCase
|
10
|
+
|
11
|
+
|
12
|
+
def testdensa
|
13
|
+
|
14
|
+
assert_equal "[[2, 4, 6], [8, 10, 12], [14, 16, 18]]", (Densa.new(3,3,[1,2,3,4,5,6,7,8,9]) + Densa.new(3,3,[1,2,3,4,5,6,7,8,9])).to_s
|
15
|
+
assert_equal "[[0, 0, 0], [0, 0, 0], [0, 0, 0]]", (Densa.new(3,3,[1,2,3,4,5,6,7,8,9]) - Densa.new(3,3,[1,2,3,4,5,6,7,8,9])).to_s
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
def fracciones
|
20
|
+
|
21
|
+
assert_equal "[[1/1, 1/1], [1/1, 1/1]]", (MatrizDensa.new(2,2,[Fraccion.new(1,2),Fraccion.new(1,3),Fraccion.new(1,4),Fraccion.new(1,5)]) + MatrizDensa.new(2,2,[Fraccion.new(1,2),Fraccion.new(2,3),Fraccion.new(3,4),Fraccion.new(4,5)])).to_s
|
22
|
+
|
23
|
+
assert_not_equal "[[3/6, 1/1], [1/1, 1/1]]", (MatrizDensa.new(2,2,[Fraccion.new(1,2),Fraccion.new(1,3),Fraccion.new(1,4),Fraccion.new(1,5)]) + MatrizDensa.new(2,2,[Fraccion.new(1,2),Fraccion.new(2,3),Fraccion.new(3,4),Fraccion.new(4,5)])).to_s
|
24
|
+
|
25
|
+
end
|
26
|
+
def testdispersa
|
27
|
+
|
28
|
+
assert_equal "[[0,0,2][1,1,4][2,2,6]]", (Dispersa.new(3,3,[0,1,2],[0,1,2],[1,2,3]) + Dispersa.new(3,3,[0,1,2],[0,1,2],[1,2,3])).to_s
|
29
|
+
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
def maxmin
|
34
|
+
|
35
|
+
assert_equal(@matrizden1.maximo,9)
|
36
|
+
|
37
|
+
assert_equal(@matrizden2.minimo,1)
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
|
@@ -0,0 +1,42 @@
|
|
1
|
+
###############################################
|
2
|
+
####Pruebas Unitarias Matriz Dispersa##########
|
3
|
+
###############################################
|
4
|
+
|
5
|
+
require "test/unit"
|
6
|
+
require "../lib/matriz.rb"
|
7
|
+
require "../lib/racional.rb"
|
8
|
+
|
9
|
+
class TestMatrizDensa < Test::Unit::TestCase
|
10
|
+
|
11
|
+
|
12
|
+
def testdensa
|
13
|
+
|
14
|
+
assert_equal "[[2, 4, 6], [8, 10, 12], [14, 16, 18]]", (Densa.new(3,3,[1,2,3,4,5,6,7,8,9]) + Densa.new(3,3,[1,2,3,4,5,6,7,8,9])).to_s
|
15
|
+
assert_equal "[[0, 0, 0], [0, 0, 0], [0, 0, 0]]", (Densa.new(3,3,[1,2,3,4,5,6,7,8,9]) - Densa.new(3,3,[1,2,3,4,5,6,7,8,9])).to_s
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
def fracciones
|
20
|
+
|
21
|
+
assert_equal "[[1/1, 1/1], [1/1, 1/1]]", (MatrizDensa.new(2,2,[Fraccion.new(1,2),Fraccion.new(1,3),Fraccion.new(1,4),Fraccion.new(1,5)]) + MatrizDensa.new(2,2,[Fraccion.new(1,2),Fraccion.new(2,3),Fraccion.new(3,4),Fraccion.new(4,5)])).to_s
|
22
|
+
|
23
|
+
assert_not_equal "[[3/6, 1/1], [1/1, 1/1]]", (MatrizDensa.new(2,2,[Fraccion.new(1,2),Fraccion.new(1,3),Fraccion.new(1,4),Fraccion.new(1,5)]) + MatrizDensa.new(2,2,[Fraccion.new(1,2),Fraccion.new(2,3),Fraccion.new(3,4),Fraccion.new(4,5)])).to_s
|
24
|
+
|
25
|
+
end
|
26
|
+
def testdispersa
|
27
|
+
|
28
|
+
assert_equal "[[0,0,2][1,1,4][2,2,6]]", (Dispersa.new(3,3,[0,1,2],[0,1,2],[1,2,3]) + Dispersa.new(3,3,[0,1,2],[0,1,2],[1,2,3])).to_s
|
29
|
+
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
def maxmin
|
34
|
+
|
35
|
+
assert_equal(@matrizden1.maximo,9)
|
36
|
+
|
37
|
+
assert_equal(@matrizden2.minimo,1)
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: SparseMatrixProject
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-
|
13
|
+
date: 2013-12-12 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
@@ -48,18 +48,41 @@ description: Gema para realizar suma, resta y producto entre matrices densas y d
|
|
48
48
|
email:
|
49
49
|
- alu0100658682@ull.edu.es
|
50
50
|
- alu0100537451@ull.edu.es
|
51
|
-
executables:
|
51
|
+
executables:
|
52
|
+
- SparseMatrixProject
|
53
|
+
- SparseMatrixProject~
|
52
54
|
extensions: []
|
53
55
|
extra_rdoc_files: []
|
54
56
|
files:
|
55
57
|
- .gitignore
|
58
|
+
- .travis.yml
|
56
59
|
- Gemfile
|
60
|
+
- Gemfile~
|
61
|
+
- Guardfile
|
57
62
|
- LICENSE.txt
|
63
|
+
- LICENSE.txt~
|
58
64
|
- README.md
|
65
|
+
- README.md~
|
59
66
|
- Rakefile
|
67
|
+
- Rakefile~
|
60
68
|
- SparseMatrixProject.gemspec
|
69
|
+
- SparseMatrixProject.gemspec~
|
70
|
+
- bin/SparseMatrixProject
|
71
|
+
- bin/SparseMatrixProject~
|
61
72
|
- lib/SparseMatrixProject.rb
|
73
|
+
- lib/SparseMatrixProject.rb~
|
62
74
|
- lib/SparseMatrixProject/version.rb
|
75
|
+
- lib/SparseMatrixProject/version.rb~
|
76
|
+
- lib/gcd.rb
|
77
|
+
- lib/gcd.rb~
|
78
|
+
- lib/matrix_main.rb~
|
79
|
+
- lib/matriz.rb~
|
80
|
+
- lib/racional.rb
|
81
|
+
- lib/racional.rb~
|
82
|
+
- spec/racional_spec.rb
|
83
|
+
- spec/racional_spec.rb~
|
84
|
+
- test/tc_Matrices.rb
|
85
|
+
- test/tc_Matrices.rb~
|
63
86
|
homepage: ''
|
64
87
|
licenses:
|
65
88
|
- ''
|
@@ -85,4 +108,8 @@ rubygems_version: 1.8.25
|
|
85
108
|
signing_key:
|
86
109
|
specification_version: 3
|
87
110
|
summary: Matrices dispersas y densas
|
88
|
-
test_files:
|
111
|
+
test_files:
|
112
|
+
- spec/racional_spec.rb
|
113
|
+
- spec/racional_spec.rb~
|
114
|
+
- test/tc_Matrices.rb
|
115
|
+
- test/tc_Matrices.rb~
|