igraph 0.3.3 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -27,7 +27,7 @@ class TestGraph < Test::Unit::TestCase
27
27
  end
28
28
  def test_igraph_isoclass_create
29
29
  g = IGraph.new([1,2,3,4],false)
30
- h = IGraph.isoclass_create(4,g.isoclass,false)
30
+ h = IGraph::Generate.isoclass_create(4,g.isoclass,false)
31
31
  assert_equal g.isoclass, h.isoclass
32
32
  end
33
33
  end
@@ -58,4 +58,14 @@ class TestGraph < Test::Unit::TestCase
58
58
  assert_equal g.vcount, l.nrow
59
59
  assert_equal 2, l.ncol
60
60
  end
61
+ def test_merge
62
+ g = IGraph.new([1,2,3,4],true)
63
+ l = g.layout_lgl(10,1,1,2,1,1,1)
64
+ h = IGraph.new([1,2,3,4],true)
65
+ m = h.layout_lgl(10,1,1,2,1,1,1)
66
+ f = IGraph::Layout.layout_merge_dla([g,h],[l,m])
67
+ assert_instance_of IGraphMatrix, f
68
+ assert_equal g.vcount + h.vcount, f.nrow
69
+ assert_equal 2, f.ncol
70
+ end
61
71
  end
@@ -0,0 +1,34 @@
1
+ require 'test/unit'
2
+ require 'igraph'
3
+
4
+ class TestGraph < Test::Unit::TestCase
5
+ def test_random_3d
6
+ g = IGraph.new([1,2,3,4],true)
7
+ l = g.layout_random_3d
8
+ assert_instance_of IGraphMatrix, l
9
+ assert_equal g.vcount, l.nrow
10
+ assert_equal 3, l.ncol
11
+ end
12
+ def test_sphere
13
+ g = IGraph.new([1,2,3,4],true)
14
+ l = g.layout_sphere
15
+ assert_instance_of IGraphMatrix, l
16
+ assert_equal g.vcount, l.nrow
17
+ assert_equal 3, l.ncol
18
+ end
19
+ def test_fruchterman_reingold_3d
20
+ g = IGraph.new([1,2,3,4],true)
21
+ l = g.layout_fruchterman_reingold_3d(10,1,1,2,1)
22
+ assert_instance_of IGraphMatrix, l
23
+ assert_equal g.vcount, l.nrow
24
+ assert_equal 3, l.ncol
25
+ end
26
+ def test_kamada_kawai_3d
27
+ g = IGraph.new([1,2,3,4],true)
28
+ l = g.layout_kamada_kawai_3d(10,1,1,2,1)
29
+ assert_instance_of IGraphMatrix, l
30
+ assert_equal g.vcount, l.nrow
31
+ assert_equal 3, l.ncol
32
+ end
33
+
34
+ end
@@ -0,0 +1,20 @@
1
+ require 'test/unit'
2
+ require 'igraph'
3
+
4
+ class TestGraph < Test::Unit::TestCase
5
+ def test_maxflow_mincut
6
+ g = IGraph.new([1,2,2,3,3,4])
7
+ assert_equal 3, g.maxflow_value(1,4,[5,4,3])
8
+ assert_equal 3, g.st_mincut_value(1,4,[5,4,3])
9
+ end
10
+ def test_mincut
11
+ g = IGraph.new([1,2,2,3,3,4,2,1,3,2,4,3],true)
12
+ assert_equal 3, g.mincut_value([5,4,3,3,4,5])
13
+ g = IGraph.new([1,2,2,3,1,3,3,4,4,5,4,6,5,6],false)
14
+ val,p1,p2,cut_eid = g.mincut(Array.new(7,1))
15
+ assert_equal 1, val
16
+ assert_equal [1,2,3], p2.sort
17
+ assert_equal [4,5,6], p1.sort
18
+ assert_equal [3], cut_eid
19
+ end
20
+ end
@@ -0,0 +1,15 @@
1
+ require 'test/unit'
2
+ require 'igraph'
3
+
4
+ class TestGraph < Test::Unit::TestCase
5
+ def test_rewire_edges
6
+ g = IGraph::GenerateRandom.grg_game(10,0.1,false)
7
+ h = g.rewire_edges(0.5)
8
+ assert_equal 10, h.to_a.size
9
+ end
10
+ def test_rewire
11
+ g = IGraph::GenerateRandom.grg_game(10,0.1,false)
12
+ h = g.rewire(0.5)
13
+ assert_equal 10, h.to_a.size
14
+ end
15
+ end
@@ -9,21 +9,27 @@ require 'tc_add_delete'
9
9
  require 'tc_basic_query'
10
10
  require 'tc_basic_properties'
11
11
  require 'tc_centrality'
12
+ require 'tc_community'
12
13
  require 'tc_components'
14
+ require 'tc_connectivity'
13
15
  require 'tc_copy'
14
16
  require 'tc_cores'
15
17
  require 'tc_dijkstra'
16
18
  require 'tc_directedness'
17
19
  require 'tc_error_handling'
18
20
  require 'tc_file_read_write'
21
+ require 'tc_generators_deterministic'
19
22
  require 'tc_generators_random'
20
23
  require 'tc_independent_vertex_sets'
21
24
  require 'tc_isomorphic'
22
25
  require 'tc_iterators'
23
26
  require 'tc_layout'
27
+ require 'tc_layout3d'
24
28
  require 'tc_matrix'
29
+ require 'tc_mincuts'
25
30
  require 'tc_motif'
26
31
  require 'tc_other_ops'
32
+ require 'tc_randomisation'
27
33
  require 'tc_selectors'
28
34
  require 'tc_shortest_paths'
29
35
  require 'tc_spanning'
metadata CHANGED
@@ -1,10 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.2
2
+ rubygems_version: 0.9.4
3
3
  specification_version: 1
4
4
  name: igraph
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.3.3
7
- date: 2007-10-02 00:00:00 +09:00
6
+ version: 0.9.0
7
+ date: 2007-11-19 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
@@ -42,21 +42,27 @@ files:
42
42
  - ext/cIGraph_basic_query.c
43
43
  - ext/cIGraph_centrality.c
44
44
  - ext/cIGraph_cliques.c
45
+ - ext/cIGraph_community.c
45
46
  - ext/cIGraph_components.c
47
+ - ext/cIGraph_connectivity.c
46
48
  - ext/cIGraph_dijkstra.c
47
49
  - ext/cIGraph_direction.c
48
50
  - ext/cIGraph_error_handlers.c
49
51
  - ext/cIGraph_file.c
52
+ - ext/cIGraph_generators_deterministic.c
50
53
  - ext/cIGraph_generators_random.c
51
54
  - ext/cIGraph_independent_vertex_sets.c
52
55
  - ext/cIGraph_isomorphism.c
53
56
  - ext/cIGraph_iterators.c
54
57
  - ext/cIGraph_kcores.c
55
58
  - ext/cIGraph_layout.c
59
+ - ext/cIGraph_layout3d.c
56
60
  - ext/cIGraph_matrix.c
61
+ - ext/cIGraph_min_cuts.c
57
62
  - ext/cIGraph_motif.c
58
63
  - ext/cIGraph_operators.c
59
64
  - ext/cIGraph_other_ops.c
65
+ - ext/cIGraph_randomisation.c
60
66
  - ext/cIGraph_selectors.c
61
67
  - ext/cIGraph_shortest_paths.c
62
68
  - ext/cIGraph_spanning.c
@@ -73,7 +79,9 @@ files:
73
79
  - test/tc_basic_query.rb
74
80
  - test/tc_centrality.rb
75
81
  - test/tc_cliques.rb
82
+ - test/tc_community.rb
76
83
  - test/tc_components.rb
84
+ - test/tc_connectivity.rb
77
85
  - test/tc_copy.rb
78
86
  - test/tc_cores.rb
79
87
  - test/tc_create.rb
@@ -81,14 +89,18 @@ files:
81
89
  - test/tc_directedness.rb
82
90
  - test/tc_error_handling.rb
83
91
  - test/tc_file_read_write.rb
92
+ - test/tc_generators_deterministic.rb
84
93
  - test/tc_generators_random.rb
85
94
  - test/tc_independent_vertex_sets.rb
86
95
  - test/tc_isomorphic.rb
87
96
  - test/tc_iterators.rb
88
97
  - test/tc_layout.rb
98
+ - test/tc_layout3d.rb
89
99
  - test/tc_matrix.rb
100
+ - test/tc_mincuts.rb
90
101
  - test/tc_motif.rb
91
102
  - test/tc_other_ops.rb
103
+ - test/tc_randomisation.rb
92
104
  - test/tc_selectors.rb
93
105
  - test/tc_shortest_paths.rb
94
106
  - test/tc_spanning.rb
@@ -98,7 +110,6 @@ files:
98
110
  - test/tc_transitivity.rb
99
111
  - test/tc_vertex_neighbourhood.rb
100
112
  - test/test_all.rb
101
- - test/test_draw.rb
102
113
  test_files:
103
114
  - test/test_all.rb
104
115
  rdoc_options:
@@ -1,61 +0,0 @@
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")