sparse_matrix 0.0.1 → 0.3.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.
- checksums.yaml +4 -4
- data/README.md +18 -12
- data/Rakefile +1 -2
- data/lib/sparse_matrix.rb +188 -60
- data/lib/sparse_matrix/version.rb +1 -1
- data/spec/sparsematrix_spec.rb +136 -0
- data/spec/spec_helper.rb +8 -0
- metadata +6 -11
- data/lib/matrix.rb +0 -66
- data/spec/math/matrix_spec.rb +0 -56
- data/spec/math/sparsematrix_spec.rb +0 -16
- data/test/math/matrix_test.rb +0 -0
- data/test/math/sparsematrix_test.rb +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2d3bb6f0f82c1dac4b679ee0ecc93f2a45c9f556
|
4
|
+
data.tar.gz: fa6fd2a910191e1a4f7ca60989e586b0303e41ce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: edd4515e564e016b8f0b350cea8a5eef68e52d7c32147db28ccfbce08a3742f0673c893e07966e321528a316ec412001832b5eee5327b45c3ee6d064f542521b
|
7
|
+
data.tar.gz: 06093fe0182f748338cdf1cc4d1b647ad15aa1d30a866d7afcaf0c5d5d90fcf73d98d507c3b07c0f7936259f24a0fe15515c209573fce7388fa552907439c41a
|
data/README.md
CHANGED
@@ -1,27 +1,33 @@
|
|
1
|
-
# SparseMatrix
|
1
|
+
# SparseMatrix [](https://travis-ci.org/kevinrobayna/SparseMatrix)
|
2
2
|
|
3
3
|
Build a sparce matrix from dense matrix
|
4
4
|
|
5
|
+
##RubyGems
|
6
|
+
https://rubygems.org/gems/sparse_matrix
|
7
|
+
|
5
8
|
## Tree
|
6
9
|
|
10
|
+
.
|
7
11
|
├── Gemfile
|
12
|
+
├── Gemfile.lock
|
13
|
+
├── Guardfile
|
14
|
+
├── LICENSE.txt
|
15
|
+
├── README.md
|
16
|
+
├── Rakefile
|
8
17
|
├── input
|
18
|
+
│ ├── matrix_a
|
19
|
+
│ ├── matrix_b
|
20
|
+
│ └── null
|
9
21
|
├── lib
|
10
22
|
│ ├── sparse_matrix
|
11
23
|
│ │ └── version.rb
|
12
24
|
│ └── sparse_matrix.rb
|
13
|
-
├──
|
14
|
-
|
15
|
-
├── README.md
|
25
|
+
├── pkg
|
26
|
+
│ └── sparse_matrix-0.0.1.gem
|
16
27
|
├── sparse_matrix.gemspec
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
│ └── sparsematrix_spec.rb
|
21
|
-
└── test
|
22
|
-
└── math
|
23
|
-
├── matrix_test.rb
|
24
|
-
└── sparsematrix_test.rb
|
28
|
+
└── spec
|
29
|
+
├── spec_helper.rb
|
30
|
+
└── sparsematrix_spec.rb
|
25
31
|
|
26
32
|
## Installation
|
27
33
|
Add this line to your application's Gemfile:
|
data/Rakefile
CHANGED
@@ -7,6 +7,5 @@ RSpec::Core::RakeTask.new
|
|
7
7
|
task :default => :spec
|
8
8
|
desc "Ejecucion de pruebas rspec"
|
9
9
|
task :spec do
|
10
|
-
sh "rspec --color --format documentation -Ilib -Ispec spec/
|
11
|
-
sh "rspec --color --format documentation -Ilib -Ispec spec/math/sparsematrix_spec.rb"
|
10
|
+
sh "rspec --color --format documentation -Ilib -Ispec spec/sparsematrix_spec.rb"
|
12
11
|
end
|
data/lib/sparse_matrix.rb
CHANGED
@@ -1,81 +1,209 @@
|
|
1
1
|
require "sparse_matrix/version"
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
def to_s
|
11
|
-
|
12
|
-
end
|
13
|
-
|
14
|
-
end
|
15
|
-
|
16
|
-
class Matrix_T
|
17
|
-
@mat
|
18
|
-
@filename
|
3
|
+
module SparseMatrix
|
4
|
+
class AbstractMatrix
|
5
|
+
|
6
|
+
def intialize ()
|
7
|
+
|
8
|
+
end
|
19
9
|
|
20
|
-
def initialize(fn="./input/null")
|
21
|
-
@filename=fn
|
22
|
-
@mat=0
|
23
10
|
end
|
24
11
|
|
25
|
-
|
12
|
+
class SparseMatrix < AbstractMatrix
|
26
13
|
|
27
|
-
def read_matrix
|
28
|
-
text = File.open(@filename).read
|
29
|
-
a = text.split(/\n\n+/)
|
30
|
-
a = text.split(/\n/)
|
31
|
-
@mat = to_m(a)
|
32
|
-
end
|
33
14
|
|
34
|
-
def mapmap(a)
|
35
|
-
a.map { |r|
|
36
|
-
r.map { |e|
|
37
|
-
yield e
|
38
|
-
}
|
39
|
-
}
|
40
15
|
end
|
41
16
|
|
42
|
-
def to_m(a)
|
43
|
-
a = a.map { |r| r.split(/\s+/) }
|
44
|
-
a = mapmap(a) { |x| x.to_f }
|
45
|
-
end
|
46
17
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
18
|
+
class DenseMatrix < AbstractMatrix
|
19
|
+
@mat
|
20
|
+
@filename
|
21
|
+
def initialize(fn="./input/null")
|
22
|
+
@filename=fn
|
23
|
+
@mat = 0
|
24
|
+
end
|
25
|
+
|
26
|
+
attr_accessor :mat
|
27
|
+
|
28
|
+
def read_matrix
|
29
|
+
text = File.open(@filename).read
|
30
|
+
a = text.split(/\n\n+/)
|
31
|
+
a = text.split(/\n/)
|
32
|
+
@mat = to_m(a)
|
33
|
+
end
|
34
|
+
|
35
|
+
def mapmap(a)
|
36
|
+
a.map { |r|
|
37
|
+
r.map { |e|
|
38
|
+
yield e
|
39
|
+
}
|
40
|
+
}
|
41
|
+
end
|
42
|
+
|
43
|
+
def to_m(a)
|
44
|
+
a = a.map { |r| r.split(/\s+/) }
|
45
|
+
a = mapmap(a) { |x| x.to_f }
|
46
|
+
end
|
47
|
+
|
48
|
+
def to_s()
|
49
|
+
s="| "
|
50
|
+
for i in (0... @mat.length)
|
51
|
+
for j in (0... @mat.length)
|
52
|
+
if j==0
|
53
|
+
s += "{ "
|
54
|
+
end
|
55
|
+
s += "#{@mat[i][j]}\t"
|
56
|
+
if j == @mat.length-1
|
57
|
+
s += " } , "
|
58
|
+
end
|
53
59
|
end
|
54
|
-
|
55
|
-
|
56
|
-
|
60
|
+
end
|
61
|
+
s += "|"
|
62
|
+
end
|
63
|
+
|
64
|
+
def print_matrix()
|
65
|
+
printf "| "
|
66
|
+
for i in (0... @mat.length)
|
67
|
+
for j in (0... @mat.length)
|
68
|
+
if j==0
|
69
|
+
printf "{ "
|
70
|
+
end
|
71
|
+
printf "#{@mat[i][j]}\t"
|
72
|
+
if j == @mat.length-1
|
73
|
+
printf " } ,"
|
74
|
+
end
|
57
75
|
end
|
58
76
|
end
|
77
|
+
printf "|"
|
59
78
|
end
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
if j==0
|
68
|
-
printf "{ "
|
79
|
+
|
80
|
+
def +(b)
|
81
|
+
c = DenseMatrix.new()
|
82
|
+
c.read_matrix
|
83
|
+
for i in (0...@mat.length)
|
84
|
+
for j in(0...@mat.length)
|
85
|
+
c.mat[i][j] = self.mat[i][j]+b.mat[i][j]
|
69
86
|
end
|
70
|
-
|
71
|
-
|
72
|
-
|
87
|
+
end
|
88
|
+
c
|
89
|
+
end
|
90
|
+
|
91
|
+
def *(b)
|
92
|
+
c=DenseMatrix.new()
|
93
|
+
c.read_matrix
|
94
|
+
for i in(0...@mat.length)
|
95
|
+
for j in(0...@mat.length)
|
96
|
+
c.mat[i][j]=0
|
97
|
+
for k in (0...@mat.length)
|
98
|
+
c.mat[i][j] += @mat[i][k]*b.mat[k][j]
|
99
|
+
end
|
73
100
|
end
|
74
101
|
end
|
102
|
+
c
|
75
103
|
end
|
76
|
-
printf "|"
|
77
104
|
end
|
78
105
|
|
79
|
-
|
80
|
-
|
106
|
+
class Fraction
|
107
|
+
include Comparable
|
108
|
+
def initialize (*args)
|
109
|
+
if args.size == 2
|
110
|
+
c = gcd(args[0],args[1])
|
111
|
+
@num_ = (args[0]/c)
|
112
|
+
@den_ = (args[1]/c)
|
113
|
+
else
|
114
|
+
@num_ = args[0]
|
115
|
+
@den_ = 1
|
116
|
+
end
|
117
|
+
end
|
118
|
+
attr_accessor :num_,:den_
|
119
|
+
|
120
|
+
def to_s
|
121
|
+
"#{@num_}/#{@den_}"
|
122
|
+
end
|
123
|
+
def to_f
|
124
|
+
@num_.to_f/@den_.to_f
|
125
|
+
end
|
126
|
+
|
127
|
+
def ==(b)
|
128
|
+
return @num_.eql?(b.num_) && @den_.eql?(b.den_)
|
129
|
+
end
|
130
|
+
|
131
|
+
def abs
|
132
|
+
c = @num_.to_f/@den_.to_f
|
133
|
+
return c.abs
|
134
|
+
end
|
135
|
+
|
136
|
+
def reciprocal
|
137
|
+
f=Fraction.new
|
138
|
+
f.num_=@den_
|
139
|
+
f.den_ = @num_
|
140
|
+
f
|
141
|
+
end
|
142
|
+
|
143
|
+
def -@
|
144
|
+
Fraction.new(-@num_,@den_)
|
145
|
+
end
|
146
|
+
|
147
|
+
def +(b)
|
148
|
+
r=Fraction.new
|
149
|
+
if (@den_==b.den_)
|
150
|
+
r.num_ = @num_ + b.num_
|
151
|
+
r.den_ = @den_
|
152
|
+
else
|
153
|
+
r.num_ = @num_ * b.den_ + b.num_ * @den_
|
154
|
+
r.den_ = @den_ * b.den_
|
155
|
+
end
|
156
|
+
r.num_,r.den_ = minimiza(r.num_,r.den_)
|
157
|
+
return r
|
158
|
+
end
|
159
|
+
|
160
|
+
def -(b)
|
161
|
+
r =Fraction.new
|
162
|
+
if (@den_ == b.den_)
|
163
|
+
r.num_=@num_- b.num_
|
164
|
+
r.den_=@den_
|
165
|
+
else
|
166
|
+
r.num_=@num_ * b.den_ - b.num_ * @den_
|
167
|
+
r.den_ = @den_ * b.den_
|
168
|
+
end
|
169
|
+
r.num_,r.den_ = minimiza(r.num_,r.den_)
|
170
|
+
r
|
171
|
+
end
|
172
|
+
|
173
|
+
def *(b)
|
174
|
+
r =Fraction.new
|
175
|
+
r.num_=@num_ * b.num_
|
176
|
+
r.den_=@den_ * b.den_
|
177
|
+
r.num_,r.den_ = minimiza(r.num_,r.den_)
|
178
|
+
return r
|
179
|
+
end
|
180
|
+
|
181
|
+
def /(b)
|
182
|
+
r =Fraction.new
|
183
|
+
r.num_=@num_ / b.num_
|
184
|
+
r.den_=@den_ * b.den_
|
185
|
+
r.num_,r.den_ = minimiza(r.num_,r.den_)
|
186
|
+
r
|
187
|
+
end
|
188
|
+
|
189
|
+
def <=>(b)
|
190
|
+
self.to_f <=> b.to_f
|
191
|
+
end
|
192
|
+
|
193
|
+
def minimiza(x,y)
|
194
|
+
d = gcd(x,y)
|
195
|
+
x = x/d
|
196
|
+
y = y/d
|
197
|
+
return x,y
|
198
|
+
end
|
199
|
+
end
|
200
|
+
|
201
|
+
def gcd(u, v)
|
202
|
+
u, v = u.abs, v.abs
|
203
|
+
while v != 0
|
204
|
+
u, v = v, u % v
|
205
|
+
end
|
206
|
+
u
|
207
|
+
end
|
208
|
+
|
81
209
|
end
|
@@ -0,0 +1,136 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
include SparseMatrix
|
3
|
+
|
4
|
+
describe SparseMatrix do
|
5
|
+
|
6
|
+
describe AbstractMatrix do
|
7
|
+
|
8
|
+
end
|
9
|
+
|
10
|
+
describe SparseMatrix do
|
11
|
+
|
12
|
+
end
|
13
|
+
|
14
|
+
|
15
|
+
describe DenseMatrix do
|
16
|
+
before :all do
|
17
|
+
DMA = DenseMatrix.new("input/matrix_a")
|
18
|
+
DMB = DenseMatrix.new("input/matrix_b")
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'existe una clase Matrix' do
|
22
|
+
DMA.instance_of?(DenseMatrix) == true
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'No se ha cargado los datos del fichero al objeto Matrix_T' do
|
26
|
+
DMA.mat.should eq(0)
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'Se han cargado los datos al objeto A' do
|
30
|
+
DMA.read_matrix
|
31
|
+
DMA.mat.should be_kind_of(Array)
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'Se han cargado los datos al objeto B' do
|
35
|
+
DMB.read_matrix
|
36
|
+
DMB.mat.should be_kind_of(Array)
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'Existe metodo imprimir matrix?' do
|
40
|
+
DMA.should respond_to("print_matrix")
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'Se muetra la matriz correctamente?' do
|
44
|
+
DMA.print_matrix.should eq(nil)
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'Se convierte la matriz correctamente?' do
|
48
|
+
DMA.to_s.should eq("| { 1.0\t2.0\t } , { 4.0\t5.0\t } , |")
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'suma de matrices, existe metodo?' do
|
52
|
+
DMA.should respond_to("+")
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'suma de matrices, suma correctamente?' do
|
56
|
+
(DMA+DMB).to_s.should eq("| { 2.0\t4.0\t } , { 7.0\t9.0\t } , |")
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'multiplicar matrices, existe metodo?' do
|
60
|
+
DMA.should respond_to("*")
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'multiplicar matrices, multiplica correctamente?' do
|
64
|
+
(DMA*DMB).to_s.should eq("| { 7.0\t10.0\t } , { 19.0\t28.0\t } , |")
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
describe Fraction do
|
69
|
+
before :all do
|
70
|
+
FA = Fraction.new(1,1)
|
71
|
+
FB = Fraction.new(1,4)
|
72
|
+
end
|
73
|
+
|
74
|
+
describe" basicas" do
|
75
|
+
it "Existe un numerador" do
|
76
|
+
FA.num_.should == 1
|
77
|
+
end
|
78
|
+
it "Existe un denominador" do
|
79
|
+
FA.den_.should == 1
|
80
|
+
end
|
81
|
+
it "se debe mostrar en consola de la forma a/b" do
|
82
|
+
FA.to_s.should == "1/1"
|
83
|
+
end
|
84
|
+
it "se debe mostrar en consola la fraccion en formato flotante" do
|
85
|
+
FA.to_f.should == 1.0
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
describe "Unarias" do
|
90
|
+
it "Se debe comparar si dos fracciones son iguales con ==" do
|
91
|
+
(FA==FB).should == false
|
92
|
+
end
|
93
|
+
|
94
|
+
it "Se debe calcular el valor absoluto de una fraccion con el meto abs" do
|
95
|
+
FA.abs.should == 1
|
96
|
+
end
|
97
|
+
it "Se debe calcular el reciproco" do
|
98
|
+
(FB.reciprocal).to_s.should == "4/1"
|
99
|
+
end
|
100
|
+
it "Calcular el opuesto de la fraccion con -" do
|
101
|
+
(-FA).to_s.should == "-1/1"
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
describe "aritmeticas" do
|
106
|
+
it "Se debe sumar dos fracciones con +" do
|
107
|
+
(FA+FB).to_s.should == "5/4"
|
108
|
+
end
|
109
|
+
it "Se debe restar dos fracciones con -" do
|
110
|
+
(FA-FB).to_s.should == "3/4"
|
111
|
+
end
|
112
|
+
it "Se debe multiplicar dos fracciones con *" do
|
113
|
+
(FA*FB).to_s.should == "1/4"
|
114
|
+
end
|
115
|
+
it "Se debe dividir dos fracciones con /" do
|
116
|
+
(FA/FB).to_s.should == "1/4"
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
describe "Comparacion" do
|
121
|
+
it "Se debe de poder comprobar si una fraccion es menor que otra" do
|
122
|
+
(FB<FA).should == true
|
123
|
+
end
|
124
|
+
it "Se debe de poder comprobar si una fraccion es mayor que otra" do
|
125
|
+
(FA>FB).should == true
|
126
|
+
end
|
127
|
+
it "Se debe de poder comprobar si una fraccion es menor o igual que otra" do
|
128
|
+
(FB<=FA).should == true
|
129
|
+
end
|
130
|
+
it "Se debe de poder comprobar si una fraccion es mayor o igual que otra" do
|
131
|
+
(FA>=FB).should == true
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sparse_matrix
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- KevinRobayna
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-11-
|
11
|
+
date: 2013-11-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -111,14 +111,11 @@ files:
|
|
111
111
|
- input/matrix_a
|
112
112
|
- input/matrix_b
|
113
113
|
- input/null
|
114
|
-
- lib/matrix.rb
|
115
114
|
- lib/sparse_matrix.rb
|
116
115
|
- lib/sparse_matrix/version.rb
|
117
116
|
- sparse_matrix.gemspec
|
118
|
-
- spec/
|
119
|
-
- spec/
|
120
|
-
- test/math/matrix_test.rb
|
121
|
-
- test/math/sparsematrix_test.rb
|
117
|
+
- spec/sparsematrix_spec.rb
|
118
|
+
- spec/spec_helper.rb
|
122
119
|
homepage: https://github.com/kevinrobayna/SparseMatrix
|
123
120
|
licenses:
|
124
121
|
- MIT
|
@@ -144,7 +141,5 @@ signing_key:
|
|
144
141
|
specification_version: 4
|
145
142
|
summary: sparse matrix
|
146
143
|
test_files:
|
147
|
-
- spec/
|
148
|
-
- spec/
|
149
|
-
- test/math/matrix_test.rb
|
150
|
-
- test/math/sparsematrix_test.rb
|
144
|
+
- spec/sparsematrix_spec.rb
|
145
|
+
- spec/spec_helper.rb
|
data/lib/matrix.rb
DELETED
@@ -1,66 +0,0 @@
|
|
1
|
-
class Matrix_T
|
2
|
-
@mat
|
3
|
-
@filename
|
4
|
-
|
5
|
-
def initialize(fn="./input/null")
|
6
|
-
@filename=fn
|
7
|
-
@mat=0
|
8
|
-
end
|
9
|
-
|
10
|
-
attr_accessor :mat
|
11
|
-
|
12
|
-
def read_matrix
|
13
|
-
text = File.open(@filename).read
|
14
|
-
a = text.split(/\n\n+/)
|
15
|
-
a = text.split(/\n/)
|
16
|
-
@mat = to_m(a)
|
17
|
-
end
|
18
|
-
|
19
|
-
def mapmap(a)
|
20
|
-
a.map { |r|
|
21
|
-
r.map { |e|
|
22
|
-
yield e
|
23
|
-
}
|
24
|
-
}
|
25
|
-
end
|
26
|
-
|
27
|
-
def to_m(a)
|
28
|
-
a = a.map { |r| r.split(/\s+/) }
|
29
|
-
a = mapmap(a) { |x| x.to_f }
|
30
|
-
end
|
31
|
-
|
32
|
-
def to_s()
|
33
|
-
s="| "
|
34
|
-
for i in (0... @mat.length)
|
35
|
-
for j in (0... @mat.length)
|
36
|
-
if j==0
|
37
|
-
s += "{ "
|
38
|
-
end
|
39
|
-
s += "#{@mat[i][j]}\t"
|
40
|
-
if j == @mat.length-1
|
41
|
-
s += " } , "
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
s += "|"
|
46
|
-
end
|
47
|
-
|
48
|
-
def print()
|
49
|
-
printf "| "
|
50
|
-
for i in (0... @mat.length)
|
51
|
-
for j in (0... @mat.length)
|
52
|
-
if j==0
|
53
|
-
printf "{ "
|
54
|
-
end
|
55
|
-
printf "#{@mat[i][j]}\t"
|
56
|
-
if j == @mat.length-1
|
57
|
-
printf " } , "
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
61
|
-
printf "|"
|
62
|
-
end
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
end
|
data/spec/math/matrix_spec.rb
DELETED
@@ -1,56 +0,0 @@
|
|
1
|
-
require 'sparse_matrix'
|
2
|
-
|
3
|
-
describe Matrix_T do
|
4
|
-
before :all do
|
5
|
-
A = Matrix_T.new("input/matrix_a")
|
6
|
-
end
|
7
|
-
describe "Basicas" do
|
8
|
-
it 'Existe una clase Matrix?' do
|
9
|
-
A.instance_of?(Matrix_T) == true
|
10
|
-
end
|
11
|
-
|
12
|
-
it 'Se puede acceder a la matriz?' do
|
13
|
-
A.mat.should == 0
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
describe "Construyendo Matriz" do
|
18
|
-
it 'Existe metodo para leer matrices (READ-MATRIX)?' do
|
19
|
-
A.should respond_to("read_matrix")
|
20
|
-
end
|
21
|
-
|
22
|
-
it 'Existe sub-metodo para leer matrices (MAPMAP)?' do
|
23
|
-
A.should respond_to("mapmap")
|
24
|
-
end
|
25
|
-
|
26
|
-
it 'Existe sub-metodo para leer matrices (TO_M)?' do
|
27
|
-
A.should respond_to("to_m")
|
28
|
-
end
|
29
|
-
|
30
|
-
it 'Se han cargado los datos al objeto A' do
|
31
|
-
A.read_matrix
|
32
|
-
A.mat.should be_kind_of(Array)
|
33
|
-
end
|
34
|
-
|
35
|
-
end
|
36
|
-
|
37
|
-
describe "Mostrando Matrices" do
|
38
|
-
it 'Existe metodo to_s para devolver una matriz?' do
|
39
|
-
A.should respond_to("to_s")
|
40
|
-
end
|
41
|
-
|
42
|
-
it 'Existe metodo print para mostrar una matriz?' do
|
43
|
-
A.should respond_to("print")
|
44
|
-
end
|
45
|
-
|
46
|
-
it 'El Metodo to_s devuelve correctamente la matriz?' do
|
47
|
-
A.to_s.should eq("| { 1.0\t2.0\t } , { 4.0\t5.0\t } , |")
|
48
|
-
end
|
49
|
-
|
50
|
-
it 'El metodo print imprime correctamente la matriz?' do
|
51
|
-
A.print.should eq(nil)
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
|
56
|
-
end
|
data/test/math/matrix_test.rb
DELETED
File without changes
|
File without changes
|