igraph 0.3.2 → 0.3.3
Sign up to get free protection for your applications and to get access to all the features.
- data/Manifest.txt +14 -0
- data/Rakefile.rb +1 -1
- data/ext/cIGraph.c +40 -4
- data/ext/cIGraph.h +70 -2
- data/ext/cIGraph_attribute_handler.c +6 -0
- data/ext/cIGraph_cliques.c +178 -0
- data/ext/cIGraph_dijkstra.c +258 -0
- data/ext/cIGraph_generators_random.c +72 -0
- data/ext/cIGraph_independent_vertex_sets.c +182 -0
- data/ext/cIGraph_isomorphism.c +137 -0
- data/ext/cIGraph_layout.c +174 -2
- data/ext/cIGraph_motif.c +109 -0
- data/ext/cIGraph_spectral.c +1 -1
- data/test/tc_adj_to_distance.rb +24 -0
- data/test/tc_cliques.rb +21 -0
- data/test/tc_dijkstra.rb +11 -0
- data/test/tc_generators_random.rb +26 -0
- data/test/tc_independent_vertex_sets.rb +21 -0
- data/test/tc_isomorphic.rb +33 -0
- data/test/tc_layout.rb +35 -0
- data/test/tc_motif.rb +19 -0
- data/test/test_all.rb +8 -2
- data/test/test_draw.rb +61 -0
- metadata +16 -2
data/ext/cIGraph_motif.c
ADDED
@@ -0,0 +1,109 @@
|
|
1
|
+
#include "igraph.h"
|
2
|
+
#include "ruby.h"
|
3
|
+
#include "cIGraph.h"
|
4
|
+
|
5
|
+
/* call-seq:
|
6
|
+
* igraph.motifs_randesu(size,cut)
|
7
|
+
*
|
8
|
+
*/
|
9
|
+
VALUE cIGraph_motifs_randesu(VALUE self, VALUE size, VALUE cuts){
|
10
|
+
|
11
|
+
igraph_t *graph;
|
12
|
+
igraph_vector_t cutsv;
|
13
|
+
igraph_vector_t res;
|
14
|
+
int i;
|
15
|
+
VALUE hist = rb_ary_new();
|
16
|
+
|
17
|
+
Data_Get_Struct(self, igraph_t, graph);
|
18
|
+
|
19
|
+
igraph_vector_init(&res,0);
|
20
|
+
|
21
|
+
//Convert an array of vertices to a vector of vertex ids
|
22
|
+
igraph_vector_init(&cutsv,0);
|
23
|
+
for(i=0;i<RARRAY(cuts)->len;i++){
|
24
|
+
igraph_vector_push_back(&cutsv,NUM2DBL(RARRAY(cuts)->ptr[i]));
|
25
|
+
}
|
26
|
+
|
27
|
+
igraph_motifs_randesu(graph,&res,NUM2INT(size),&cutsv);
|
28
|
+
|
29
|
+
for(i=0; i<igraph_vector_size(&res); i++){
|
30
|
+
rb_ary_push(hist,INT2NUM(VECTOR(res)[i]));
|
31
|
+
}
|
32
|
+
|
33
|
+
igraph_vector_destroy(&cutsv);
|
34
|
+
igraph_vector_destroy(&res);
|
35
|
+
|
36
|
+
return hist;
|
37
|
+
|
38
|
+
}
|
39
|
+
|
40
|
+
/* call-seq:
|
41
|
+
* igraph.motifs_randesu_no(size,cut)
|
42
|
+
*
|
43
|
+
*/
|
44
|
+
VALUE cIGraph_motifs_randesu_no(VALUE self, VALUE size, VALUE cuts){
|
45
|
+
|
46
|
+
igraph_t *graph;
|
47
|
+
igraph_vector_t cutsv;
|
48
|
+
igraph_integer_t res;
|
49
|
+
int i;
|
50
|
+
|
51
|
+
Data_Get_Struct(self, igraph_t, graph);
|
52
|
+
|
53
|
+
//Convert an array of vertices to a vector of vertex ids
|
54
|
+
igraph_vector_init(&cutsv,0);
|
55
|
+
for(i=0;i<RARRAY(cuts)->len;i++){
|
56
|
+
igraph_vector_push_back(&cutsv,NUM2DBL(RARRAY(cuts)->ptr[i]));
|
57
|
+
}
|
58
|
+
|
59
|
+
igraph_motifs_randesu_no(graph,&res,NUM2INT(size),&cutsv);
|
60
|
+
|
61
|
+
igraph_vector_destroy(&cutsv);
|
62
|
+
|
63
|
+
return INT2NUM(res);
|
64
|
+
|
65
|
+
}
|
66
|
+
|
67
|
+
/* call-seq:
|
68
|
+
* igraph.motifs_randesu_estimate(size,cut,samplen,samplev)
|
69
|
+
*
|
70
|
+
*/
|
71
|
+
VALUE cIGraph_motifs_randesu_estimate(VALUE self, VALUE size, VALUE cuts,
|
72
|
+
VALUE samplen, VALUE samplev){
|
73
|
+
|
74
|
+
igraph_t *graph;
|
75
|
+
igraph_vector_t cutsv;
|
76
|
+
igraph_vector_t vidv;
|
77
|
+
igraph_integer_t res;
|
78
|
+
int i;
|
79
|
+
|
80
|
+
if(samplev != Qnil){
|
81
|
+
igraph_vector_init(&vidv,0);
|
82
|
+
//Convert an array of vertices to a vector of vertex ids
|
83
|
+
igraph_vector_init_int(&vidv,0);
|
84
|
+
cIGraph_vertex_arr_to_id_vec(self,samplev,&vidv);
|
85
|
+
}
|
86
|
+
|
87
|
+
Data_Get_Struct(self, igraph_t, graph);
|
88
|
+
|
89
|
+
igraph_vector_init(&cutsv,0);
|
90
|
+
for(i=0;i<RARRAY(cuts)->len;i++){
|
91
|
+
igraph_vector_push_back(&cutsv,NUM2DBL(RARRAY(cuts)->ptr[i]));
|
92
|
+
}
|
93
|
+
|
94
|
+
if(samplev == Qnil){
|
95
|
+
igraph_motifs_randesu_estimate(graph,&res,NUM2INT(size),
|
96
|
+
&cutsv,NUM2INT(samplen),NULL);
|
97
|
+
} else {
|
98
|
+
igraph_motifs_randesu_estimate(graph,&res,NUM2INT(size),
|
99
|
+
&cutsv,NUM2INT(samplen),&vidv);
|
100
|
+
}
|
101
|
+
|
102
|
+
igraph_vector_destroy(&cutsv);
|
103
|
+
if(samplev != Qnil){
|
104
|
+
igraph_vector_destroy(&vidv);
|
105
|
+
}
|
106
|
+
|
107
|
+
return INT2NUM(res);
|
108
|
+
|
109
|
+
}
|
data/ext/cIGraph_spectral.c
CHANGED
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'igraph'
|
2
|
+
|
3
|
+
g = IGraph.new(['A','B','A','C','A','D','C','D'],false)
|
4
|
+
|
5
|
+
adj = g.get_adjacency(2)
|
6
|
+
g.vcount.times do |k|
|
7
|
+
adj[k][k] = 1
|
8
|
+
end
|
9
|
+
|
10
|
+
dis = Array.new(4){|i| Array.new(4)}
|
11
|
+
|
12
|
+
dis.each_with_index do |row,i|
|
13
|
+
row.each_with_index do |cell,j|
|
14
|
+
cij = 0
|
15
|
+
g.vcount.times do |k|
|
16
|
+
puts "#{i} #{j} #{k}"
|
17
|
+
cij += adj[i][k] * adj[j][k]
|
18
|
+
end
|
19
|
+
dis[i][j] = 10 - cij
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
p adj
|
24
|
+
p dis
|
data/test/tc_cliques.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'igraph'
|
3
|
+
|
4
|
+
class TestGraph < Test::Unit::TestCase
|
5
|
+
def test_cliques
|
6
|
+
g = IGraph.new([1,2,3,4],false)
|
7
|
+
assert_equal [[1,2],[3,4]], g.cliques(2,0)
|
8
|
+
end
|
9
|
+
def test_largest_cliques
|
10
|
+
g = IGraph.new(['A','B','C','D','A','E','B','E'],false)
|
11
|
+
assert_equal [['A','B','E','B','E']], g.largest_cliques()
|
12
|
+
end
|
13
|
+
def test_maximal_cliques
|
14
|
+
g = IGraph.new(['A','B','C','D','A','E','B','E'],false)
|
15
|
+
assert_equal [['A','B','E'],['C','D']], g.maximal_cliques()
|
16
|
+
end
|
17
|
+
def test_clique_number
|
18
|
+
g = IGraph.new(['A','B','C','D','A','E','B','E'],false)
|
19
|
+
assert_equal 3, g.clique_number
|
20
|
+
end
|
21
|
+
end
|
data/test/tc_dijkstra.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'igraph'
|
3
|
+
|
4
|
+
Infinity = 1.0/0
|
5
|
+
|
6
|
+
class TestGraph < Test::Unit::TestCase
|
7
|
+
def test_dijkstra
|
8
|
+
g = IGraph.new([1,2,3,4],false)
|
9
|
+
assert_equal [[0,1.5,Infinity,Infinity]], g.dijkstra_shortest_paths([1],[1.5,2.5],IGraph::OUT)
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'igraph'
|
3
|
+
|
4
|
+
class TestGraph < Test::Unit::TestCase
|
5
|
+
def test_grg
|
6
|
+
g = IGraph.grg_game(10,0.1,false)
|
7
|
+
assert_equal 10, g.vertices.size
|
8
|
+
end
|
9
|
+
def test_barabasi
|
10
|
+
g = IGraph.barabasi_game(10,3,false,false)
|
11
|
+
assert_equal 10, g.vertices.size
|
12
|
+
end
|
13
|
+
def test_nonlinear_barabasi
|
14
|
+
g = IGraph.nonlinear_barabasi_game(10,1.9,3,false,0.1,false)
|
15
|
+
assert_equal 10, g.vertices.size
|
16
|
+
end
|
17
|
+
def test_erdos_renyi
|
18
|
+
g = IGraph.erdos_renyi_game(IGraph::ERDOS_RENYI_GNP,10,0.5,false,false)
|
19
|
+
assert_equal 10, g.vertices.size
|
20
|
+
g = IGraph.erdos_renyi_game(IGraph::ERDOS_RENYI_GNM,10,0.5,false,false)
|
21
|
+
assert_equal 10, g.vertices.size
|
22
|
+
end
|
23
|
+
def test_watts_strogatz
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'igraph'
|
3
|
+
|
4
|
+
class TestGraph < Test::Unit::TestCase
|
5
|
+
def test_independent_vertex_sets
|
6
|
+
g = IGraph.new([1,2,3,4],true)
|
7
|
+
assert_equal [[1,3],[1,4],[2,3],[2,4]], g.independent_vertex_sets(2,0)
|
8
|
+
end
|
9
|
+
def test_largest_independent_vertex_sets
|
10
|
+
g = IGraph.new([1,2,3,4,1,5],true)
|
11
|
+
assert_equal [[2,3,5],[2,4,5]], g.largest_independent_vertex_sets
|
12
|
+
end
|
13
|
+
def test_maximal_independent_vertex_sets
|
14
|
+
g = IGraph.new([1,2,3,4],true)
|
15
|
+
assert_equal [[1,3],[1,4],[2,3],[2,4]], g.maximal_independent_vertex_sets
|
16
|
+
end
|
17
|
+
def test_independence_number
|
18
|
+
g = IGraph.new([1,2,3,4],true)
|
19
|
+
assert_equal 2, g.independence_number
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'igraph'
|
3
|
+
|
4
|
+
class TestGraph < Test::Unit::TestCase
|
5
|
+
def test_isomorphic
|
6
|
+
g = IGraph.new([1,2,3,4],false)
|
7
|
+
h = IGraph.new([5,6,7,8],false)
|
8
|
+
assert_equal true, g.isomorphic(h)
|
9
|
+
assert_equal true, h.isomorphic(g)
|
10
|
+
end
|
11
|
+
def test_isomorphic_vf2
|
12
|
+
g = IGraph.new([1,2,3,4],false)
|
13
|
+
h = IGraph.new([5,6,7,8],false)
|
14
|
+
assert_equal true, g.isomorphic_vf2(h)
|
15
|
+
assert_equal true, h.isomorphic_vf2(g)
|
16
|
+
end
|
17
|
+
def test_isoclass
|
18
|
+
g = IGraph.new([1,2,3,4],false)
|
19
|
+
h = IGraph.new([5,6,7,8],false)
|
20
|
+
assert g.isoclass >= 0 and g.isoclass <= 11
|
21
|
+
assert_equal h.isoclass, g.isoclass
|
22
|
+
end
|
23
|
+
def test_isoclass_subgraph
|
24
|
+
g = IGraph.new([1,2,3,4],false)
|
25
|
+
assert g.isoclass_subgraph([1,2,3]) >= 0 and g.isoclass <= 4
|
26
|
+
assert_equal g.isoclass_subgraph([1,2,3]), g.isoclass_subgraph([2,3,4])
|
27
|
+
end
|
28
|
+
def test_igraph_isoclass_create
|
29
|
+
g = IGraph.new([1,2,3,4],false)
|
30
|
+
h = IGraph.isoclass_create(4,g.isoclass,false)
|
31
|
+
assert_equal g.isoclass, h.isoclass
|
32
|
+
end
|
33
|
+
end
|
data/test/tc_layout.rb
CHANGED
@@ -23,4 +23,39 @@ class TestGraph < Test::Unit::TestCase
|
|
23
23
|
assert_equal g.vcount, l.nrow
|
24
24
|
assert_equal 2, l.ncol
|
25
25
|
end
|
26
|
+
def test_kamada_kawai
|
27
|
+
g = IGraph.new([1,2,3,4],true)
|
28
|
+
l = g.layout_kamada_kawai(10,1,1,2,1)
|
29
|
+
assert_instance_of IGraphMatrix, l
|
30
|
+
assert_equal g.vcount, l.nrow
|
31
|
+
assert_equal 2, l.ncol
|
32
|
+
end
|
33
|
+
def test_reingold_tilford
|
34
|
+
g = IGraph.new([1,2,3,4],true)
|
35
|
+
l = g.layout_reingold_tilford(1)
|
36
|
+
assert_instance_of IGraphMatrix, l
|
37
|
+
assert_equal g.vcount, l.nrow
|
38
|
+
assert_equal 2, l.ncol
|
39
|
+
end
|
40
|
+
def test_reingold_tilford_circular
|
41
|
+
g = IGraph.new([1,2,3,4],true)
|
42
|
+
l = g.layout_reingold_tilford_circular(1)
|
43
|
+
assert_instance_of IGraphMatrix, l
|
44
|
+
assert_equal g.vcount, l.nrow
|
45
|
+
assert_equal 2, l.ncol
|
46
|
+
end
|
47
|
+
def test_grid_fruchterman_reingold
|
48
|
+
g = IGraph.new([1,2,3,4],true)
|
49
|
+
l = g.layout_grid_fruchterman_reingold(10,1,1,2,1,1,false)
|
50
|
+
assert_instance_of IGraphMatrix, l
|
51
|
+
assert_equal g.vcount, l.nrow
|
52
|
+
assert_equal 2, l.ncol
|
53
|
+
end
|
54
|
+
def test_lgl
|
55
|
+
g = IGraph.new([1,2,3,4],true)
|
56
|
+
l = g.layout_lgl(10,1,1,2,1,1,1)
|
57
|
+
assert_instance_of IGraphMatrix, l
|
58
|
+
assert_equal g.vcount, l.nrow
|
59
|
+
assert_equal 2, l.ncol
|
60
|
+
end
|
26
61
|
end
|
data/test/tc_motif.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'igraph'
|
3
|
+
|
4
|
+
class TestGraph < Test::Unit::TestCase
|
5
|
+
def test_motifs_randesu
|
6
|
+
g = IGraph.new(['A','B','C','D','A','C'],false)
|
7
|
+
hist = g.motifs_randesu(3,[0,0,0])
|
8
|
+
assert_equal [0,0,2,0], hist
|
9
|
+
end
|
10
|
+
def test_motifs_randesu_no
|
11
|
+
g = IGraph.new(['A','B','C','D','A','C'],false)
|
12
|
+
assert_equal 2, g.motifs_randesu_no(3,[0,0,0])
|
13
|
+
end
|
14
|
+
def test_motifs_randesu_estimate
|
15
|
+
g = IGraph.new(['A','B','C','D','A','C'],false)
|
16
|
+
assert_equal 2, g.motifs_randesu_estimate(3,[0,0,0],4,nil)
|
17
|
+
assert_equal 2, g.motifs_randesu_estimate(3,[0,0,0],0,['A','B','C','D'])
|
18
|
+
end
|
19
|
+
end
|
data/test/test_all.rb
CHANGED
@@ -3,9 +3,8 @@
|
|
3
3
|
require 'test/unit'
|
4
4
|
|
5
5
|
require 'tc_attributes'
|
6
|
+
require 'tc_cliques'
|
6
7
|
require 'tc_create'
|
7
|
-
require 'tc_iterators'
|
8
|
-
require 'tc_selectors'
|
9
8
|
require 'tc_add_delete'
|
10
9
|
require 'tc_basic_query'
|
11
10
|
require 'tc_basic_properties'
|
@@ -13,12 +12,19 @@ require 'tc_centrality'
|
|
13
12
|
require 'tc_components'
|
14
13
|
require 'tc_copy'
|
15
14
|
require 'tc_cores'
|
15
|
+
require 'tc_dijkstra'
|
16
16
|
require 'tc_directedness'
|
17
17
|
require 'tc_error_handling'
|
18
18
|
require 'tc_file_read_write'
|
19
|
+
require 'tc_generators_random'
|
20
|
+
require 'tc_independent_vertex_sets'
|
21
|
+
require 'tc_isomorphic'
|
22
|
+
require 'tc_iterators'
|
19
23
|
require 'tc_layout'
|
20
24
|
require 'tc_matrix'
|
25
|
+
require 'tc_motif'
|
21
26
|
require 'tc_other_ops'
|
27
|
+
require 'tc_selectors'
|
22
28
|
require 'tc_shortest_paths'
|
23
29
|
require 'tc_spanning'
|
24
30
|
require 'tc_spectral'
|
data/test/test_draw.rb
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
require 'igraph'
|
2
|
+
require 'cairo'
|
3
|
+
|
4
|
+
g = IGraph.barabasi_game(100,3,false,false)
|
5
|
+
|
6
|
+
vertices = g.to_a
|
7
|
+
layout = g.send(ARGV.shift.to_sym,*ARGV.map{|a| eval(a)}).to_a
|
8
|
+
|
9
|
+
format = Cairo::FORMAT_ARGB32
|
10
|
+
width = 1000
|
11
|
+
height = 1000
|
12
|
+
|
13
|
+
surface = Cairo::ImageSurface.new(format, width, height)
|
14
|
+
cr = Cairo::Context.new(surface)
|
15
|
+
|
16
|
+
# fill background with white
|
17
|
+
cr.set_source_rgba(1.0, 1.0, 1.0, 0.8)
|
18
|
+
cr.paint
|
19
|
+
|
20
|
+
max_x = layout.map{|a| a[0]}.max
|
21
|
+
min_x = layout.map{|a| a[0]}.min
|
22
|
+
max_y = layout.map{|a| a[1]}.max
|
23
|
+
min_y = layout.map{|a| a[1]}.min
|
24
|
+
|
25
|
+
x_var = max_x - min_x
|
26
|
+
y_var = max_y - min_y
|
27
|
+
|
28
|
+
max_var = [x_var,y_var].max
|
29
|
+
|
30
|
+
layout.each_with_index do |a,i|
|
31
|
+
x,y = *a
|
32
|
+
|
33
|
+
x = (x - min_x)/max_var
|
34
|
+
y = (y - min_y)/max_var
|
35
|
+
x *= (width)
|
36
|
+
y *= (height)
|
37
|
+
|
38
|
+
layout[i] = [x,y]
|
39
|
+
|
40
|
+
puts "#{x} #{y}"
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
layout.each_with_index do |a,i|
|
45
|
+
|
46
|
+
v = vertices[i]
|
47
|
+
x,y = *a
|
48
|
+
|
49
|
+
cr.set_source_rgba(rand,rand,rand,0.5)
|
50
|
+
cr.circle(x,y,1).fill
|
51
|
+
|
52
|
+
g.adjacent_vertices(v,IGraph::OUT).each do |w|
|
53
|
+
cr.move_to(x,y)
|
54
|
+
wx,wy = *layout[vertices.index(w)]
|
55
|
+
cr.line_to(wx,wy)
|
56
|
+
cr.stroke
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
|
61
|
+
cr.target.write_to_png("test.png")
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.2
|
|
3
3
|
specification_version: 1
|
4
4
|
name: igraph
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.3.
|
7
|
-
date: 2007-
|
6
|
+
version: 0.3.3
|
7
|
+
date: 2007-10-02 00:00:00 +09:00
|
8
8
|
summary: IGraph is a Ruby extension for interfacing with the C igraph library (http://cneurocvs.rmki.kfki.hu/igraph/). igraph is a library for creating and manipulating graphs with a particular emphasis on network analysis functions.
|
9
9
|
require_paths:
|
10
10
|
- test
|
@@ -41,14 +41,20 @@ files:
|
|
41
41
|
- ext/cIGraph_basic_properties.c
|
42
42
|
- ext/cIGraph_basic_query.c
|
43
43
|
- ext/cIGraph_centrality.c
|
44
|
+
- ext/cIGraph_cliques.c
|
44
45
|
- ext/cIGraph_components.c
|
46
|
+
- ext/cIGraph_dijkstra.c
|
45
47
|
- ext/cIGraph_direction.c
|
46
48
|
- ext/cIGraph_error_handlers.c
|
47
49
|
- ext/cIGraph_file.c
|
50
|
+
- ext/cIGraph_generators_random.c
|
51
|
+
- ext/cIGraph_independent_vertex_sets.c
|
52
|
+
- ext/cIGraph_isomorphism.c
|
48
53
|
- ext/cIGraph_iterators.c
|
49
54
|
- ext/cIGraph_kcores.c
|
50
55
|
- ext/cIGraph_layout.c
|
51
56
|
- ext/cIGraph_matrix.c
|
57
|
+
- ext/cIGraph_motif.c
|
52
58
|
- ext/cIGraph_operators.c
|
53
59
|
- ext/cIGraph_other_ops.c
|
54
60
|
- ext/cIGraph_selectors.c
|
@@ -61,20 +67,27 @@ files:
|
|
61
67
|
- ext/cIGraph_vertex_neighbourhood.c
|
62
68
|
- ext/extconf.rb
|
63
69
|
- test/tc_add_delete.rb
|
70
|
+
- test/tc_adj_to_distance.rb
|
64
71
|
- test/tc_attributes.rb
|
65
72
|
- test/tc_basic_properties.rb
|
66
73
|
- test/tc_basic_query.rb
|
67
74
|
- test/tc_centrality.rb
|
75
|
+
- test/tc_cliques.rb
|
68
76
|
- test/tc_components.rb
|
69
77
|
- test/tc_copy.rb
|
70
78
|
- test/tc_cores.rb
|
71
79
|
- test/tc_create.rb
|
80
|
+
- test/tc_dijkstra.rb
|
72
81
|
- test/tc_directedness.rb
|
73
82
|
- test/tc_error_handling.rb
|
74
83
|
- test/tc_file_read_write.rb
|
84
|
+
- test/tc_generators_random.rb
|
85
|
+
- test/tc_independent_vertex_sets.rb
|
86
|
+
- test/tc_isomorphic.rb
|
75
87
|
- test/tc_iterators.rb
|
76
88
|
- test/tc_layout.rb
|
77
89
|
- test/tc_matrix.rb
|
90
|
+
- test/tc_motif.rb
|
78
91
|
- test/tc_other_ops.rb
|
79
92
|
- test/tc_selectors.rb
|
80
93
|
- test/tc_shortest_paths.rb
|
@@ -85,6 +98,7 @@ files:
|
|
85
98
|
- test/tc_transitivity.rb
|
86
99
|
- test/tc_vertex_neighbourhood.rb
|
87
100
|
- test/test_all.rb
|
101
|
+
- test/test_draw.rb
|
88
102
|
test_files:
|
89
103
|
- test/test_all.rb
|
90
104
|
rdoc_options:
|